/* Generated by Cython 3.0.8 */

/* BEGIN: Cython Metadata
{
    "distutils": {
        "depends": [
            "/home/master-andreas/.mujoco/mujoco210/include/mjdata.h",
            "/home/master-andreas/.mujoco/mujoco210/include/mjmodel.h",
            "/home/master-andreas/.mujoco/mujoco210/include/mjrender.h",
            "/home/master-andreas/.mujoco/mujoco210/include/mjui.h",
            "/home/master-andreas/.mujoco/mujoco210/include/mjvisualize.h",
            "/home/master-andreas/.mujoco/mujoco210/include/mujoco.h",
            "/tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/_core/include/numpy/arrayobject.h",
            "/tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/_core/include/numpy/arrayscalars.h",
            "/tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/_core/include/numpy/ndarrayobject.h",
            "/tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/_core/include/numpy/ndarraytypes.h",
            "/tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/_core/include/numpy/ufuncobject.h",
            "mujoco_py/gl/glshim.h"
        ],
        "extra_compile_args": [
            "-fopenmp",
            "-w"
        ],
        "extra_link_args": [
            "-fopenmp"
        ],
        "include_dirs": [
            "mujoco_py",
            "/home/master-andreas/gym/mujoco-py-kalli/mujoco_py",
            "/home/master-andreas/.mujoco/mujoco210/include",
            "/tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/_core/include",
            "/home/master-andreas/gym/mujoco-py-kalli/mujoco_py/vendor/egl"
        ],
        "language": "c",
        "libraries": [
            "mujoco210",
            "glewegl"
        ],
        "library_dirs": [
            "/home/master-andreas/.mujoco/mujoco210/bin"
        ],
        "name": "mujoco_py.cymj",
        "runtime_library_dirs": [
            "/home/master-andreas/.mujoco/mujoco210/bin"
        ],
        "sources": [
            "/home/master-andreas/gym/mujoco-py-kalli/mujoco_py/cymj.pyx",
            "/home/master-andreas/gym/mujoco-py-kalli/mujoco_py/gl/eglshim.c"
        ]
    },
    "module_name": "mujoco_py.cymj"
}
END: Cython Metadata */

#ifndef PY_SSIZE_T_CLEAN
#define PY_SSIZE_T_CLEAN
#endif /* PY_SSIZE_T_CLEAN */
#if defined(CYTHON_LIMITED_API) && 0
  #ifndef Py_LIMITED_API
    #if CYTHON_LIMITED_API+0 > 0x03030000
      #define Py_LIMITED_API CYTHON_LIMITED_API
    #else
      #define Py_LIMITED_API 0x03030000
    #endif
  #endif
#endif

#include "Python.h"
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#elif PY_VERSION_HEX < 0x02070000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
    #error Cython requires Python 2.7+ or Python 3.3+.
#else
#if defined(CYTHON_LIMITED_API) && CYTHON_LIMITED_API
#define __PYX_EXTRA_ABI_MODULE_NAME "limited"
#else
#define __PYX_EXTRA_ABI_MODULE_NAME ""
#endif
#define CYTHON_ABI "3_0_8" __PYX_EXTRA_ABI_MODULE_NAME
#define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI
#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "."
#define CYTHON_HEX_VERSION 0x030008F0
#define CYTHON_FUTURE_DIVISION 1
#include <stddef.h>
#ifndef offsetof
  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif
#if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS)
  #ifndef __stdcall
    #define __stdcall
  #endif
  #ifndef __cdecl
    #define __cdecl
  #endif
  #ifndef __fastcall
    #define __fastcall
  #endif
#endif
#ifndef DL_IMPORT
  #define DL_IMPORT(t) t
#endif
#ifndef DL_EXPORT
  #define DL_EXPORT(t) t
#endif
#define __PYX_COMMA ,
#ifndef HAVE_LONG_LONG
  #define HAVE_LONG_LONG
#endif
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef Py_HUGE_VAL
  #define Py_HUGE_VAL HUGE_VAL
#endif
#define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX
#if defined(GRAALVM_PYTHON)
  /* For very preliminary testing purposes. Most variables are set the same as PyPy.
     The existence of this section does not imply that anything works or is even tested */
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 1
  #define CYTHON_COMPILING_IN_NOGIL 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_TYPE_SPECS
  #define CYTHON_USE_TYPE_SPECS 0
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #if PY_VERSION_HEX < 0x03050000
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3)
  #endif
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
#elif defined(PYPY_VERSION)
  #define CYTHON_COMPILING_IN_PYPY 1
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_NOGIL 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #ifndef CYTHON_USE_TYPE_SPECS
    #define CYTHON_USE_TYPE_SPECS 0
  #endif
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #if PY_VERSION_HEX < 0x03050000
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3)
  #endif
  #if PY_VERSION_HEX < 0x03090000
    #undef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1 && PYPY_VERSION_NUM >= 0x07030C00)
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
#elif defined(CYTHON_LIMITED_API)
  #ifdef Py_LIMITED_API
    #undef __PYX_LIMITED_VERSION_HEX
    #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API
  #endif
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 1
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_NOGIL 0
  #undef CYTHON_CLINE_IN_TRACEBACK
  #define CYTHON_CLINE_IN_TRACEBACK 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_TYPE_SPECS
  #define CYTHON_USE_TYPE_SPECS 1
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_ASYNC_SLOTS
  #define CYTHON_USE_ASYNC_SLOTS 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #endif
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 1
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 0
  #endif
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
#elif defined(Py_GIL_DISABLED) || defined(Py_NOGIL)
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_NOGIL 1
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #ifndef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 1
  #endif
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
#else
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 1
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_NOGIL 0
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #ifndef CYTHON_USE_TYPE_SPECS
    #define CYTHON_USE_TYPE_SPECS 0
  #endif
  #ifndef CYTHON_USE_PYTYPE_LOOKUP
    #define CYTHON_USE_PYTYPE_LOOKUP 1
  #endif
  #if PY_MAJOR_VERSION < 3
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #ifndef CYTHON_USE_PYLONG_INTERNALS
    #define CYTHON_USE_PYLONG_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_PYLIST_INTERNALS
    #define CYTHON_USE_PYLIST_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
    #undef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #elif !defined(CYTHON_USE_UNICODE_WRITER)
    #define CYTHON_USE_UNICODE_WRITER 1
  #endif
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #ifndef CYTHON_FAST_THREAD_STATE
    #define CYTHON_FAST_THREAD_STATE 1
  #endif
  #ifndef CYTHON_FAST_GIL
    #define CYTHON_FAST_GIL (PY_MAJOR_VERSION < 3 || PY_VERSION_HEX >= 0x03060000 && PY_VERSION_HEX < 0x030C00A6)
  #endif
  #ifndef CYTHON_METH_FASTCALL
    #define CYTHON_METH_FASTCALL (PY_VERSION_HEX >= 0x030700A1)
  #endif
  #ifndef CYTHON_FAST_PYCALL
    #define CYTHON_FAST_PYCALL 1
  #endif
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #if PY_VERSION_HEX < 0x03050000
    #undef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #ifndef CYTHON_USE_MODULE_STATE
    #define CYTHON_USE_MODULE_STATE 0
  #endif
  #if PY_VERSION_HEX < 0x030400a1
    #undef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 0
  #elif !defined(CYTHON_USE_TP_FINALIZE)
    #define CYTHON_USE_TP_FINALIZE 1
  #endif
  #if PY_VERSION_HEX < 0x030600B1
    #undef CYTHON_USE_DICT_VERSIONS
    #define CYTHON_USE_DICT_VERSIONS 0
  #elif !defined(CYTHON_USE_DICT_VERSIONS)
    #define CYTHON_USE_DICT_VERSIONS  (PY_VERSION_HEX < 0x030C00A5)
  #endif
  #if PY_VERSION_HEX < 0x030700A3
    #undef CYTHON_USE_EXC_INFO_STACK
    #define CYTHON_USE_EXC_INFO_STACK 0
  #elif !defined(CYTHON_USE_EXC_INFO_STACK)
    #define CYTHON_USE_EXC_INFO_STACK 1
  #endif
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
  #endif
#endif
#if !defined(CYTHON_FAST_PYCCALL)
#define CYTHON_FAST_PYCCALL  (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
#endif
#if !defined(CYTHON_VECTORCALL)
#define CYTHON_VECTORCALL  (CYTHON_FAST_PYCCALL && PY_VERSION_HEX >= 0x030800B1)
#endif
#define CYTHON_BACKPORT_VECTORCALL (CYTHON_METH_FASTCALL && PY_VERSION_HEX < 0x030800B1)
#if CYTHON_USE_PYLONG_INTERNALS
  #if PY_MAJOR_VERSION < 3
    #include "longintrepr.h"
  #endif
  #undef SHIFT
  #undef BASE
  #undef MASK
  #ifdef SIZEOF_VOID_P
    enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
  #endif
#endif
#ifndef __has_attribute
  #define __has_attribute(x) 0
#endif
#ifndef __has_cpp_attribute
  #define __has_cpp_attribute(x) 0
#endif
#ifndef CYTHON_RESTRICT
  #if defined(__GNUC__)
    #define CYTHON_RESTRICT __restrict__
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
    #define CYTHON_RESTRICT __restrict
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_RESTRICT restrict
  #else
    #define CYTHON_RESTRICT
  #endif
#endif
#ifndef CYTHON_UNUSED
  #if defined(__cplusplus)
    /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17
     * but leads to warnings with -pedantic, since it is a C++17 feature */
    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
      #if __has_cpp_attribute(maybe_unused)
        #define CYTHON_UNUSED [[maybe_unused]]
      #endif
    #endif
  #endif
#endif
#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define CYTHON_UNUSED __attribute__ ((__unused__))
#   else
#     define CYTHON_UNUSED
#   endif
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
#   define CYTHON_UNUSED __attribute__ ((__unused__))
# else
#   define CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_UNUSED_VAR
#  if defined(__cplusplus)
     template<class T> void CYTHON_UNUSED_VAR( const T& ) { }
#  else
#    define CYTHON_UNUSED_VAR(x) (void)(x)
#  endif
#endif
#ifndef CYTHON_MAYBE_UNUSED_VAR
  #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x)
#endif
#ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON
#  define CYTHON_NCP_UNUSED
# else
#  define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_USE_CPP_STD_MOVE
  #if defined(__cplusplus) && (\
    __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600))
    #define CYTHON_USE_CPP_STD_MOVE 1
  #else
    #define CYTHON_USE_CPP_STD_MOVE 0
  #endif
#endif
#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
#ifdef _MSC_VER
    #ifndef _MSC_STDINT_H_
        #if _MSC_VER < 1300
            typedef unsigned char     uint8_t;
            typedef unsigned short    uint16_t;
            typedef unsigned int      uint32_t;
        #else
            typedef unsigned __int8   uint8_t;
            typedef unsigned __int16  uint16_t;
            typedef unsigned __int32  uint32_t;
        #endif
    #endif
    #if _MSC_VER < 1300
        #ifdef _WIN64
            typedef unsigned long long  __pyx_uintptr_t;
        #else
            typedef unsigned int        __pyx_uintptr_t;
        #endif
    #else
        #ifdef _WIN64
            typedef unsigned __int64    __pyx_uintptr_t;
        #else
            typedef unsigned __int32    __pyx_uintptr_t;
        #endif
    #endif
#else
    #include <stdint.h>
    typedef uintptr_t  __pyx_uintptr_t;
#endif
#ifndef CYTHON_FALLTHROUGH
  #if defined(__cplusplus)
    /* for clang __has_cpp_attribute(fallthrough) is true even before C++17
     * but leads to warnings with -pedantic, since it is a C++17 feature */
    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
      #if __has_cpp_attribute(fallthrough)
        #define CYTHON_FALLTHROUGH [[fallthrough]]
      #endif
    #endif
    #ifndef CYTHON_FALLTHROUGH
      #if __has_cpp_attribute(clang::fallthrough)
        #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
      #elif __has_cpp_attribute(gnu::fallthrough)
        #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
      #endif
    #endif
  #endif
  #ifndef CYTHON_FALLTHROUGH
    #if __has_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
    #else
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
  #if defined(__clang__) && defined(__apple_build_version__)
    #if __apple_build_version__ < 7000000
      #undef  CYTHON_FALLTHROUGH
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
#endif
#ifdef __cplusplus
  template <typename T>
  struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);};
  #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL<type>::value)
#else
  #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0)
#endif
#if CYTHON_COMPILING_IN_PYPY == 1
  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x030A0000)
#else
  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000)
#endif
#define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer))

#ifndef CYTHON_INLINE
  #if defined(__clang__)
    #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
  #elif defined(__GNUC__)
    #define CYTHON_INLINE __inline__
  #elif defined(_MSC_VER)
    #define CYTHON_INLINE __inline
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_INLINE inline
  #else
    #define CYTHON_INLINE
  #endif
#endif

#define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z"
#if PY_MAJOR_VERSION < 3
  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
  #define __Pyx_DefaultClassType PyClass_Type
  #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#else
  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
  #define __Pyx_DefaultClassType PyType_Type
#if CYTHON_COMPILING_IN_LIMITED_API
    static CYTHON_INLINE PyObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f,
                                                    PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                                    PyObject *fv, PyObject *cell, PyObject* fn,
                                                    PyObject *name, int fline, PyObject *lnos) {
        PyObject *exception_table = NULL;
        PyObject *types_module=NULL, *code_type=NULL, *result=NULL;
        #if __PYX_LIMITED_VERSION_HEX < 0x030B0000
        PyObject *version_info;
        PyObject *py_minor_version = NULL;
        #endif
        long minor_version = 0;
        PyObject *type, *value, *traceback;
        PyErr_Fetch(&type, &value, &traceback);
        #if __PYX_LIMITED_VERSION_HEX >= 0x030B0000
        minor_version = 11;
        #else
        if (!(version_info = PySys_GetObject("version_info"))) goto end;
        if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end;
        minor_version = PyLong_AsLong(py_minor_version);
        Py_DECREF(py_minor_version);
        if (minor_version == -1 && PyErr_Occurred()) goto end;
        #endif
        if (!(types_module = PyImport_ImportModule("types"))) goto end;
        if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end;
        if (minor_version <= 7) {
            (void)p;
            result = PyObject_CallFunction(code_type, "iiiiiOOOOOOiOO", a, k, l, s, f, code,
                          c, n, v, fn, name, fline, lnos, fv, cell);
        } else if (minor_version <= 10) {
            result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOO", a,p, k, l, s, f, code,
                          c, n, v, fn, name, fline, lnos, fv, cell);
        } else {
            if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end;
            result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOO", a,p, k, l, s, f, code,
                          c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell);
        }
    end:
        Py_XDECREF(code_type);
        Py_XDECREF(exception_table);
        Py_XDECREF(types_module);
        if (type) {
            PyErr_Restore(type, value, traceback);
        }
        return result;
    }
    #ifndef CO_OPTIMIZED
    #define CO_OPTIMIZED 0x0001
    #endif
    #ifndef CO_NEWLOCALS
    #define CO_NEWLOCALS 0x0002
    #endif
    #ifndef CO_VARARGS
    #define CO_VARARGS 0x0004
    #endif
    #ifndef CO_VARKEYWORDS
    #define CO_VARKEYWORDS 0x0008
    #endif
    #ifndef CO_ASYNC_GENERATOR
    #define CO_ASYNC_GENERATOR 0x0200
    #endif
    #ifndef CO_GENERATOR
    #define CO_GENERATOR 0x0020
    #endif
    #ifndef CO_COROUTINE
    #define CO_COROUTINE 0x0080
    #endif
#elif PY_VERSION_HEX >= 0x030B0000
  static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f,
                                                    PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                                    PyObject *fv, PyObject *cell, PyObject* fn,
                                                    PyObject *name, int fline, PyObject *lnos) {
    PyCodeObject *result;
    PyObject *empty_bytes = PyBytes_FromStringAndSize("", 0);
    if (!empty_bytes) return NULL;
    result =
      #if PY_VERSION_HEX >= 0x030C0000
        PyUnstable_Code_NewWithPosOnlyArgs
      #else
        PyCode_NewWithPosOnlyArgs
      #endif
        (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, empty_bytes);
    Py_DECREF(empty_bytes);
    return result;
  }
#elif PY_VERSION_HEX >= 0x030800B2 && !CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#else
  #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#endif
#endif
#if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE)
  #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type)
#else
  #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type))
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is)
  #define __Pyx_Py_Is(x, y)  Py_Is(x, y)
#else
  #define __Pyx_Py_Is(x, y) ((x) == (y))
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone)
  #define __Pyx_Py_IsNone(ob) Py_IsNone(ob)
#else
  #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None)
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue)
  #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob)
#else
  #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True)
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse)
  #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob)
#else
  #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False)
#endif
#define __Pyx_NoneAsNull(obj)  (__Pyx_Py_IsNone(obj) ? NULL : (obj))
#if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o)
#else
  #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o)
#endif
#ifndef CO_COROUTINE
  #define CO_COROUTINE 0x80
#endif
#ifndef CO_ASYNC_GENERATOR
  #define CO_ASYNC_GENERATOR 0x200
#endif
#ifndef Py_TPFLAGS_CHECKTYPES
  #define Py_TPFLAGS_CHECKTYPES 0
#endif
#ifndef Py_TPFLAGS_HAVE_INDEX
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif
#ifndef Py_TPFLAGS_HAVE_NEWBUFFER
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#ifndef Py_TPFLAGS_HAVE_FINALIZE
  #define Py_TPFLAGS_HAVE_FINALIZE 0
#endif
#ifndef Py_TPFLAGS_SEQUENCE
  #define Py_TPFLAGS_SEQUENCE 0
#endif
#ifndef Py_TPFLAGS_MAPPING
  #define Py_TPFLAGS_MAPPING 0
#endif
#ifndef METH_STACKLESS
  #define METH_STACKLESS 0
#endif
#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
  #ifndef METH_FASTCALL
     #define METH_FASTCALL 0x80
  #endif
  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
  typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
                                                          Py_ssize_t nargs, PyObject *kwnames);
#else
  #define __Pyx_PyCFunctionFast _PyCFunctionFast
  #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
#endif
#if CYTHON_METH_FASTCALL
  #define __Pyx_METH_FASTCALL METH_FASTCALL
  #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast
  #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords
#else
  #define __Pyx_METH_FASTCALL METH_VARARGS
  #define __Pyx_PyCFunction_FastCall PyCFunction
  #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords
#endif
#if CYTHON_VECTORCALL
  #define __pyx_vectorcallfunc vectorcallfunc
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  PY_VECTORCALL_ARGUMENTS_OFFSET
  #define __Pyx_PyVectorcall_NARGS(n)  PyVectorcall_NARGS((size_t)(n))
#elif CYTHON_BACKPORT_VECTORCALL
  typedef PyObject *(*__pyx_vectorcallfunc)(PyObject *callable, PyObject *const *args,
                                            size_t nargsf, PyObject *kwnames);
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  ((size_t)1 << (8 * sizeof(size_t) - 1))
  #define __Pyx_PyVectorcall_NARGS(n)  ((Py_ssize_t)(((size_t)(n)) & ~__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET))
#else
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  0
  #define __Pyx_PyVectorcall_NARGS(n)  ((Py_ssize_t)(n))
#endif
#if PY_MAJOR_VERSION >= 0x030900B1
#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_CheckExact(func)
#else
#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_Check(func)
#endif
#define __Pyx_CyOrPyCFunction_Check(func)  PyCFunction_Check(func)
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  (((PyCFunctionObject*)(func))->m_ml->ml_meth)
#elif !CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  PyCFunction_GET_FUNCTION(func)
#endif
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CyOrPyCFunction_GET_FLAGS(func)  (((PyCFunctionObject*)(func))->m_ml->ml_flags)
static CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) {
    return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self;
}
#endif
static CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void *cfunc) {
#if CYTHON_COMPILING_IN_LIMITED_API
    return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
#else
    return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
#endif
}
#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCFunction(func, cfunc)
#if __PYX_LIMITED_VERSION_HEX < 0x030900B1
  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  ((void)m, PyType_FromSpecWithBases(s, b))
  typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *);
#else
  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  PyType_FromModuleAndSpec(m, s, b)
  #define __Pyx_PyCMethod  PyCMethod
#endif
#ifndef METH_METHOD
  #define METH_METHOD 0x200
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
  #define PyObject_Malloc(s)   PyMem_Malloc(s)
  #define PyObject_Free(p)     PyMem_Free(p)
  #define PyObject_Realloc(p)  PyMem_Realloc(p)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)
#else
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyThreadState_Current PyThreadState_Get()
#elif !CYTHON_FAST_THREAD_STATE
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#elif PY_VERSION_HEX >= 0x030d00A1
  #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked()
#elif PY_VERSION_HEX >= 0x03060000
  #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
#elif PY_VERSION_HEX >= 0x03000000
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#else
  #define __Pyx_PyThreadState_Current _PyThreadState_Current
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE void *__Pyx_PyModule_GetState(PyObject *op)
{
    void *result;
    result = PyModule_GetState(op);
    if (!result)
        Py_FatalError("Couldn't find the module state");
    return result;
}
#endif
#define __Pyx_PyObject_GetSlot(obj, name, func_ctype)  __Pyx_PyType_GetSlot(Py_TYPE(obj), name, func_ctype)
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((func_ctype) PyType_GetSlot((type), Py_##name))
#else
  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((type)->name)
#endif
#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
#include "pythread.h"
#define Py_tss_NEEDS_INIT 0
typedef int Py_tss_t;
static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
  *key = PyThread_create_key();
  return 0;
}
static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
  Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
  *key = Py_tss_NEEDS_INIT;
  return key;
}
static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
  PyObject_Free(key);
}
static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
  return *key != Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
  PyThread_delete_key(*key);
  *key = Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
  return PyThread_set_key_value(*key, value);
}
static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
  return PyThread_get_key_value(*key);
}
#endif
#if PY_MAJOR_VERSION < 3
    #if CYTHON_COMPILING_IN_PYPY
        #if PYPY_VERSION_NUM < 0x07030600
            #if defined(__cplusplus) && __cplusplus >= 201402L
                [[deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")]]
            #elif defined(__GNUC__) || defined(__clang__)
                __attribute__ ((__deprecated__("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")))
            #elif defined(_MSC_VER)
                __declspec(deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6"))
            #endif
            static CYTHON_INLINE int PyGILState_Check(void) {
                return 0;
            }
        #else  // PYPY_VERSION_NUM < 0x07030600
        #endif  // PYPY_VERSION_NUM < 0x07030600
    #else
        static CYTHON_INLINE int PyGILState_Check(void) {
            PyThreadState * tstate = _PyThreadState_Current;
            return tstate && (tstate == PyGILState_GetThisThreadState());
        }
    #endif
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000 || defined(_PyDict_NewPresized)
#define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
#else
#define __Pyx_PyDict_NewPresized(n)  PyDict_New()
#endif
#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
#else
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX > 0x030600B4 && PY_VERSION_HEX < 0x030d0000 && CYTHON_USE_UNICODE_INTERNALS
#define __Pyx_PyDict_GetItemStrWithError(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) {
    PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name);
    if (res == NULL) PyErr_Clear();
    return res;
}
#elif PY_MAJOR_VERSION >= 3 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000)
#define __Pyx_PyDict_GetItemStrWithError  PyDict_GetItemWithError
#define __Pyx_PyDict_GetItemStr           PyDict_GetItem
#else
static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) {
#if CYTHON_COMPILING_IN_PYPY
    return PyDict_GetItem(dict, name);
#else
    PyDictEntry *ep;
    PyDictObject *mp = (PyDictObject*) dict;
    long hash = ((PyStringObject *) name)->ob_shash;
    assert(hash != -1);
    ep = (mp->ma_lookup)(mp, name, hash);
    if (ep == NULL) {
        return NULL;
    }
    return ep->me_value;
#endif
}
#define __Pyx_PyDict_GetItemStr           PyDict_GetItem
#endif
#if CYTHON_USE_TYPE_SLOTS
  #define __Pyx_PyType_GetFlags(tp)   (((PyTypeObject *)tp)->tp_flags)
  #define __Pyx_PyType_HasFeature(type, feature)  ((__Pyx_PyType_GetFlags(type) & (feature)) != 0)
  #define __Pyx_PyObject_GetIterNextFunc(obj)  (Py_TYPE(obj)->tp_iternext)
#else
  #define __Pyx_PyType_GetFlags(tp)   (PyType_GetFlags((PyTypeObject *)tp))
  #define __Pyx_PyType_HasFeature(type, feature)  PyType_HasFeature(type, feature)
  #define __Pyx_PyObject_GetIterNextFunc(obj)  PyIter_Next
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_SetItemOnTypeDict(tp, k, v) PyObject_GenericSetAttr((PyObject*)tp, k, v)
#else
  #define __Pyx_SetItemOnTypeDict(tp, k, v) PyDict_SetItem(tp->tp_dict, k, v)
#endif
#if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX >= 0x03080000
#define __Pyx_PyHeapTypeObject_GC_Del(obj)  {\
    PyTypeObject *type = Py_TYPE((PyObject*)obj);\
    assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\
    PyObject_GC_Del(obj);\
    Py_DECREF(type);\
}
#else
#define __Pyx_PyHeapTypeObject_GC_Del(obj)  PyObject_GC_Del(obj)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define CYTHON_PEP393_ENABLED 1
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GetLength(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((void)u, 1114111U)
  #define __Pyx_PyUnicode_KIND(u)         ((void)u, (0))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)u)
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)k, PyUnicode_ReadChar((PyObject*)(d), i))
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GetLength(u))
#elif PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
  #define CYTHON_PEP393_ENABLED 1
  #if PY_VERSION_HEX >= 0x030C0000
    #define __Pyx_PyUnicode_READY(op)       (0)
  #else
    #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
                                                0 : _PyUnicode_Ready((PyObject *)(op)))
  #endif
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
  #define __Pyx_PyUnicode_KIND(u)         ((int)PyUnicode_KIND(u))
  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, (Py_UCS4) ch)
  #if PY_VERSION_HEX >= 0x030C0000
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
  #else
    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
    #else
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
    #endif
  #endif
#else
  #define CYTHON_PEP393_ENABLED 0
  #define PyUnicode_1BYTE_KIND  1
  #define PyUnicode_2BYTE_KIND  2
  #define PyUnicode_4BYTE_KIND  4
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((sizeof(Py_UNICODE) == 2) ? 65535U : 1114111U)
  #define __Pyx_PyUnicode_KIND(u)         ((int)sizeof(Py_UNICODE))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  (((void)(k)), ((Py_UNICODE*)d)[i] = (Py_UNICODE) ch)
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_SIZE(u))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
#else
  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #if !defined(PyUnicode_DecodeUnicodeEscape)
    #define PyUnicode_DecodeUnicodeEscape(s, size, errors)  PyUnicode_Decode(s, size, "unicode_escape", errors)
  #endif
  #if !defined(PyUnicode_Contains) || (PY_MAJOR_VERSION == 2 && PYPY_VERSION_NUM < 0x07030500)
    #undef PyUnicode_Contains
    #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
  #endif
  #if !defined(PyByteArray_Check)
    #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
  #endif
  #if !defined(PyObject_Format)
    #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
  #endif
#endif
#define __Pyx_PyString_FormatSafe(a, b)   ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
#else
  #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
#endif
#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
  #define PyObject_ASCII(o)            PyObject_Repr(o)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBaseString_Type            PyUnicode_Type
  #define PyStringObject               PyUnicodeObject
  #define PyString_Type                PyUnicode_Type
  #define PyString_Check               PyUnicode_Check
  #define PyString_CheckExact          PyUnicode_CheckExact
#ifndef PyObject_Unicode
  #define PyObject_Unicode             PyObject_Str
#endif
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
#else
  #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
#endif
#if CYTHON_COMPILING_IN_CPYTHON
  #define __Pyx_PySequence_ListKeepNew(obj)\
    (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj))
#else
  #define __Pyx_PySequence_ListKeepNew(obj)  PySequence_List(obj)
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        __Pyx_IS_TYPE(obj, &PySet_Type)
#endif
#if PY_VERSION_HEX >= 0x030900A4
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
#else
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
#endif
#if CYTHON_ASSUME_SAFE_MACROS
  #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i)
  #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
  #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0))
  #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0))
  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o)
  #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o)
  #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o)
  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o)
  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o)
#else
  #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i)
  #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
  #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v)
  #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v)
  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o)
  #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o)
  #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o)
  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o)
  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o)
#endif
#if PY_VERSION_HEX >= 0x030d00A1
  #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
#else
  static CYTHON_INLINE PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
      PyObject *module = PyImport_AddModule(name);
      Py_XINCREF(module);
      return module;
  }
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyIntObject                  PyLongObject
  #define PyInt_Type                   PyLong_Type
  #define PyInt_Check(op)              PyLong_Check(op)
  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
  #define __Pyx_Py3Int_Check(op)       PyLong_Check(op)
  #define __Pyx_Py3Int_CheckExact(op)  PyLong_CheckExact(op)
  #define PyInt_FromString             PyLong_FromString
  #define PyInt_FromUnicode            PyLong_FromUnicode
  #define PyInt_FromLong               PyLong_FromLong
  #define PyInt_FromSize_t             PyLong_FromSize_t
  #define PyInt_FromSsize_t            PyLong_FromSsize_t
  #define PyInt_AsLong                 PyLong_AsLong
  #define PyInt_AS_LONG                PyLong_AS_LONG
  #define PyInt_AsSsize_t              PyLong_AsSsize_t
  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
  #define PyNumber_Int                 PyNumber_Long
#else
  #define __Pyx_Py3Int_Check(op)       (PyLong_Check(op) || PyInt_Check(op))
  #define __Pyx_Py3Int_CheckExact(op)  (PyLong_CheckExact(op) || PyInt_CheckExact(op))
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBoolObject                 PyLongObject
#endif
#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
  #ifndef PyUnicode_InternFromString
    #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
  #endif
#endif
#if PY_VERSION_HEX < 0x030200A4
  typedef long Py_hash_t;
  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
  #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsHash_t
#else
  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
  #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsSsize_t
#endif
#if CYTHON_USE_ASYNC_SLOTS
  #if PY_VERSION_HEX >= 0x030500B1
    #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
    #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
  #else
    #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
  #endif
#else
  #define __Pyx_PyType_AsAsync(obj) NULL
#endif
#ifndef __Pyx_PyAsyncMethodsStruct
    typedef struct {
        unaryfunc am_await;
        unaryfunc am_aiter;
        unaryfunc am_anext;
    } __Pyx_PyAsyncMethodsStruct;
#endif

#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
  #if !defined(_USE_MATH_DEFINES)
    #define _USE_MATH_DEFINES
  #endif
#endif
#include <math.h>
#ifdef NAN
#define __PYX_NAN() ((float) NAN)
#else
static CYTHON_INLINE float __PYX_NAN() {
  float value;
  memset(&value, 0xFF, sizeof(value));
  return value;
}
#endif
#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
#define __Pyx_truncl trunc
#else
#define __Pyx_truncl truncl
#endif

#define __PYX_MARK_ERR_POS(f_index, lineno) \
    { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; }
#define __PYX_ERR(f_index, lineno, Ln_error) \
    { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }

#ifdef CYTHON_EXTERN_C
    #undef __PYX_EXTERN_C
    #define __PYX_EXTERN_C CYTHON_EXTERN_C
#elif defined(__PYX_EXTERN_C)
    #ifdef _MSC_VER
    #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.")
    #else
    #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.
    #endif
#else
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern "C"
  #else
    #define __PYX_EXTERN_C extern
  #endif
#endif

#define __PYX_HAVE__mujoco_py__cymj
#define __PYX_HAVE_API__mujoco_py__cymj
/* Early includes */
#include <string.h>
#include <stdlib.h>
#include "mjmodel.h"
#include "mjdata.h"
#include "mjrender.h"
#include "mjui.h"
#include "mjvisualize.h"
#include "mujoco.h"
#include <stdint.h>
#include <stdio.h>

    /* Using NumPy API declarations from "numpy/__init__.cython-30.pxd" */
    
#include "numpy/arrayobject.h"
#include "numpy/ndarrayobject.h"
#include "numpy/ndarraytypes.h"
#include "numpy/arrayscalars.h"
#include "numpy/ufuncobject.h"
#include <math.h>
#include "gl/glshim.h"
#include "pythread.h"
#ifdef _OPENMP
#include <omp.h>
#endif /* _OPENMP */

#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
#define CYTHON_WITHOUT_ASSERTIONS
#endif

typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;

#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#define __Pyx_uchar_cast(c) ((unsigned char)c)
#define __Pyx_long_cast(x) ((long)x)
#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
    (sizeof(type) < sizeof(Py_ssize_t))  ||\
    (sizeof(type) > sizeof(Py_ssize_t) &&\
          likely(v < (type)PY_SSIZE_T_MAX ||\
                 v == (type)PY_SSIZE_T_MAX)  &&\
          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
                                v == (type)PY_SSIZE_T_MIN)))  ||\
    (sizeof(type) == sizeof(Py_ssize_t) &&\
          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
                               v == (type)PY_SSIZE_T_MAX)))  )
static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
    return (size_t) i < (size_t) limit;
}
#if defined (__cplusplus) && __cplusplus >= 201103L
    #include <cstdlib>
    #define __Pyx_sst_abs(value) std::abs(value)
#elif SIZEOF_INT >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) abs(value)
#elif SIZEOF_LONG >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) labs(value)
#elif defined (_MSC_VER)
    #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define __Pyx_sst_abs(value) llabs(value)
#elif defined (__GNUC__)
    #define __Pyx_sst_abs(value) __builtin_llabs(value)
#else
    #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
#endif
static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s);
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*);
#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
#define __Pyx_PyBytes_FromString        PyBytes_FromString
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
#if PY_MAJOR_VERSION < 3
    #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#else
    #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
#endif
#define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyObject_AsWritableString(s)    ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableSString(s)    ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
#if CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const wchar_t *u)
{
    const wchar_t *u_end = u;
    while (*u_end++) ;
    return (size_t)(u_end - u - 1);
}
#else
static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
{
    const Py_UNICODE *u_end = u;
    while (*u_end++) ;
    return (size_t)(u_end - u - 1);
}
#endif
#define __Pyx_PyUnicode_FromOrdinal(o)       PyUnicode_FromOrdinal((int)o)
#define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
#define __Pyx_PySequence_Tuple(obj)\
    (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
#if CYTHON_ASSUME_SAFE_MACROS
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
#else
#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#endif
#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
#else
#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
#endif
#if CYTHON_USE_PYLONG_INTERNALS
  #if PY_VERSION_HEX >= 0x030C00A7
  #ifndef _PyLong_SIGN_MASK
    #define _PyLong_SIGN_MASK 3
  #endif
  #ifndef _PyLong_NON_SIZE_BITS
    #define _PyLong_NON_SIZE_BITS 3
  #endif
  #define __Pyx_PyLong_Sign(x)  (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK)
  #define __Pyx_PyLong_IsNeg(x)  ((__Pyx_PyLong_Sign(x) & 2) != 0)
  #define __Pyx_PyLong_IsNonNeg(x)  (!__Pyx_PyLong_IsNeg(x))
  #define __Pyx_PyLong_IsZero(x)  (__Pyx_PyLong_Sign(x) & 1)
  #define __Pyx_PyLong_IsPos(x)  (__Pyx_PyLong_Sign(x) == 0)
  #define __Pyx_PyLong_CompactValueUnsigned(x)  (__Pyx_PyLong_Digits(x)[0])
  #define __Pyx_PyLong_DigitCount(x)  ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS))
  #define __Pyx_PyLong_SignedDigitCount(x)\
        ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x))
  #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue)
    #define __Pyx_PyLong_IsCompact(x)     PyUnstable_Long_IsCompact((PyLongObject*) x)
    #define __Pyx_PyLong_CompactValue(x)  PyUnstable_Long_CompactValue((PyLongObject*) x)
  #else
    #define __Pyx_PyLong_IsCompact(x)     (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS))
    #define __Pyx_PyLong_CompactValue(x)  ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0])
  #endif
  typedef Py_ssize_t  __Pyx_compact_pylong;
  typedef size_t  __Pyx_compact_upylong;
  #else
  #define __Pyx_PyLong_IsNeg(x)  (Py_SIZE(x) < 0)
  #define __Pyx_PyLong_IsNonNeg(x)  (Py_SIZE(x) >= 0)
  #define __Pyx_PyLong_IsZero(x)  (Py_SIZE(x) == 0)
  #define __Pyx_PyLong_IsPos(x)  (Py_SIZE(x) > 0)
  #define __Pyx_PyLong_CompactValueUnsigned(x)  ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0])
  #define __Pyx_PyLong_DigitCount(x)  __Pyx_sst_abs(Py_SIZE(x))
  #define __Pyx_PyLong_SignedDigitCount(x)  Py_SIZE(x)
  #define __Pyx_PyLong_IsCompact(x)  (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1)
  #define __Pyx_PyLong_CompactValue(x)\
        ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0]))
  typedef sdigit  __Pyx_compact_pylong;
  typedef digit  __Pyx_compact_upylong;
  #endif
  #if PY_VERSION_HEX >= 0x030C00A5
  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->long_value.ob_digit)
  #else
  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->ob_digit)
  #endif
#endif
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
#include <string.h>
static int __Pyx_sys_getdefaultencoding_not_ascii;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    PyObject* ascii_chars_u = NULL;
    PyObject* ascii_chars_b = NULL;
    const char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    if (strcmp(default_encoding_c, "ascii") == 0) {
        __Pyx_sys_getdefaultencoding_not_ascii = 0;
    } else {
        char ascii_chars[128];
        int c;
        for (c = 0; c < 128; c++) {
            ascii_chars[c] = (char) c;
        }
        __Pyx_sys_getdefaultencoding_not_ascii = 1;
        ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
        if (!ascii_chars_u) goto bad;
        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
        if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
            PyErr_Format(
                PyExc_ValueError,
                "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
                default_encoding_c);
            goto bad;
        }
        Py_DECREF(ascii_chars_u);
        Py_DECREF(ascii_chars_b);
    }
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    Py_XDECREF(ascii_chars_u);
    Py_XDECREF(ascii_chars_b);
    return -1;
}
#endif
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
#else
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
#include <string.h>
static char* __PYX_DEFAULT_STRING_ENCODING;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
    if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    return -1;
}
#endif
#endif


/* Test for GCC > 2.95 */
#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
  #define likely(x)   __builtin_expect(!!(x), 1)
  #define unlikely(x) __builtin_expect(!!(x), 0)
#else /* !__GNUC__ or GCC < 2.95 */
  #define likely(x)   (x)
  #define unlikely(x) (x)
#endif /* __GNUC__ */
static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }

#if !CYTHON_USE_MODULE_STATE
static PyObject *__pyx_m = NULL;
#endif
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * __pyx_cfilenm = __FILE__;
static const char *__pyx_filename;

/* Header.proto */
#if !defined(CYTHON_CCOMPLEX)
  #if defined(__cplusplus)
    #define CYTHON_CCOMPLEX 1
  #elif (defined(_Complex_I) && !defined(_MSC_VER)) || ((defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) && !defined(__STDC_NO_COMPLEX__) && !defined(_MSC_VER))
    #define CYTHON_CCOMPLEX 1
  #else
    #define CYTHON_CCOMPLEX 0
  #endif
#endif
#if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    #include <complex>
  #else
    #include <complex.h>
  #endif
#endif
#if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__)
  #undef _Complex_I
  #define _Complex_I 1.0fj
#endif

/* #### Code section: filename_table ### */

static const char *__pyx_f[] = {
  "mujoco_py/opengl_context.pyx",
  "mujoco_py/mjrendercontext.pyx",
  "mujoco_py/mjbatchrenderer.pyx",
  "<stringsource>",
  "mujoco_py/generated/wrappers.pxi",
  "mujoco_py/mjsim.pyx",
  "mujoco_py/mjsimstate.pyx",
  "mujoco_py/cymj.pyx",
  "__init__.cython-30.pxd",
  "mujoco_py/mjpid.pyx",
  "type.pxd",
};
/* #### Code section: utility_code_proto_before_types ### */
/* ForceInitThreads.proto */
#ifndef __PYX_FORCE_INIT_THREADS
  #define __PYX_FORCE_INIT_THREADS 0
#endif

/* NoFastGil.proto */
#define __Pyx_PyGILState_Ensure PyGILState_Ensure
#define __Pyx_PyGILState_Release PyGILState_Release
#define __Pyx_FastGIL_Remember()
#define __Pyx_FastGIL_Forget()
#define __Pyx_FastGilFuncInit()

/* BufferFormatStructs.proto */
struct __Pyx_StructField_;
#define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0)
typedef struct {
  const char* name;
  struct __Pyx_StructField_* fields;
  size_t size;
  size_t arraysize[8];
  int ndim;
  char typegroup;
  char is_unsigned;
  int flags;
} __Pyx_TypeInfo;
typedef struct __Pyx_StructField_ {
  __Pyx_TypeInfo* type;
  const char* name;
  size_t offset;
} __Pyx_StructField;
typedef struct {
  __Pyx_StructField* field;
  size_t parent_offset;
} __Pyx_BufFmt_StackElem;
typedef struct {
  __Pyx_StructField root;
  __Pyx_BufFmt_StackElem* head;
  size_t fmt_offset;
  size_t new_count, enc_count;
  size_t struct_alignment;
  int is_complex;
  char enc_type;
  char new_packmode;
  char enc_packmode;
  char is_valid_array;
} __Pyx_BufFmt_Context;

/* Atomics.proto */
#include <pythread.h>
#ifndef CYTHON_ATOMICS
    #define CYTHON_ATOMICS 1
#endif
#define __PYX_CYTHON_ATOMICS_ENABLED() CYTHON_ATOMICS
#define __pyx_atomic_int_type int
#define __pyx_nonatomic_int_type int
#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
                        (__STDC_VERSION__ >= 201112L) &&\
                        !defined(__STDC_NO_ATOMICS__))
    #include <stdatomic.h>
#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
                    (__cplusplus >= 201103L) ||\
                    (defined(_MSC_VER) && _MSC_VER >= 1700)))
    #include <atomic>
#endif
#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
                        (__STDC_VERSION__ >= 201112L) &&\
                        !defined(__STDC_NO_ATOMICS__) &&\
                       ATOMIC_INT_LOCK_FREE == 2)
    #undef __pyx_atomic_int_type
    #define __pyx_atomic_int_type atomic_int
    #define __pyx_atomic_incr_aligned(value) atomic_fetch_add_explicit(value, 1, memory_order_relaxed)
    #define __pyx_atomic_decr_aligned(value) atomic_fetch_sub_explicit(value, 1, memory_order_acq_rel)
    #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
        #pragma message ("Using standard C atomics")
    #elif defined(__PYX_DEBUG_ATOMICS)
        #warning "Using standard C atomics"
    #endif
#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
                    (__cplusplus >= 201103L) ||\
\
                    (defined(_MSC_VER) && _MSC_VER >= 1700)) &&\
                    ATOMIC_INT_LOCK_FREE == 2)
    #undef __pyx_atomic_int_type
    #define __pyx_atomic_int_type std::atomic_int
    #define __pyx_atomic_incr_aligned(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_relaxed)
    #define __pyx_atomic_decr_aligned(value) std::atomic_fetch_sub_explicit(value, 1, std::memory_order_acq_rel)
    #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
        #pragma message ("Using standard C++ atomics")
    #elif defined(__PYX_DEBUG_ATOMICS)
        #warning "Using standard C++ atomics"
    #endif
#elif CYTHON_ATOMICS && (__GNUC__ >= 5 || (__GNUC__ == 4 &&\
                    (__GNUC_MINOR__ > 1 ||\
                    (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ >= 2))))
    #define __pyx_atomic_incr_aligned(value) __sync_fetch_and_add(value, 1)
    #define __pyx_atomic_decr_aligned(value) __sync_fetch_and_sub(value, 1)
    #ifdef __PYX_DEBUG_ATOMICS
        #warning "Using GNU atomics"
    #endif
#elif CYTHON_ATOMICS && defined(_MSC_VER)
    #include <intrin.h>
    #undef __pyx_atomic_int_type
    #define __pyx_atomic_int_type long
    #undef __pyx_nonatomic_int_type
    #define __pyx_nonatomic_int_type long
    #pragma intrinsic (_InterlockedExchangeAdd)
    #define __pyx_atomic_incr_aligned(value) _InterlockedExchangeAdd(value, 1)
    #define __pyx_atomic_decr_aligned(value) _InterlockedExchangeAdd(value, -1)
    #ifdef __PYX_DEBUG_ATOMICS
        #pragma message ("Using MSVC atomics")
    #endif
#else
    #undef CYTHON_ATOMICS
    #define CYTHON_ATOMICS 0
    #ifdef __PYX_DEBUG_ATOMICS
        #warning "Not using atomics"
    #endif
#endif
#if CYTHON_ATOMICS
    #define __pyx_add_acquisition_count(memview)\
             __pyx_atomic_incr_aligned(__pyx_get_slice_count_pointer(memview))
    #define __pyx_sub_acquisition_count(memview)\
            __pyx_atomic_decr_aligned(__pyx_get_slice_count_pointer(memview))
#else
    #define __pyx_add_acquisition_count(memview)\
            __pyx_add_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock)
    #define __pyx_sub_acquisition_count(memview)\
            __pyx_sub_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock)
#endif

/* MemviewSliceStruct.proto */
struct __pyx_memoryview_obj;
typedef struct {
  struct __pyx_memoryview_obj *memview;
  char *data;
  Py_ssize_t shape[8];
  Py_ssize_t strides[8];
  Py_ssize_t suboffsets[8];
} __Pyx_memviewslice;
#define __Pyx_MemoryView_Len(m)  (m.shape[0])

/* #### Code section: numeric_typedefs ### */

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":787
 * # in Cython to enable them only on the right systems.
 * 
 * ctypedef npy_int8       int8_t             # <<<<<<<<<<<<<<
 * ctypedef npy_int16      int16_t
 * ctypedef npy_int32      int32_t
 */
typedef npy_int8 __pyx_t_5numpy_int8_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":788
 * 
 * ctypedef npy_int8       int8_t
 * ctypedef npy_int16      int16_t             # <<<<<<<<<<<<<<
 * ctypedef npy_int32      int32_t
 * ctypedef npy_int64      int64_t
 */
typedef npy_int16 __pyx_t_5numpy_int16_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":789
 * ctypedef npy_int8       int8_t
 * ctypedef npy_int16      int16_t
 * ctypedef npy_int32      int32_t             # <<<<<<<<<<<<<<
 * ctypedef npy_int64      int64_t
 * #ctypedef npy_int96      int96_t
 */
typedef npy_int32 __pyx_t_5numpy_int32_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":790
 * ctypedef npy_int16      int16_t
 * ctypedef npy_int32      int32_t
 * ctypedef npy_int64      int64_t             # <<<<<<<<<<<<<<
 * #ctypedef npy_int96      int96_t
 * #ctypedef npy_int128     int128_t
 */
typedef npy_int64 __pyx_t_5numpy_int64_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":794
 * #ctypedef npy_int128     int128_t
 * 
 * ctypedef npy_uint8      uint8_t             # <<<<<<<<<<<<<<
 * ctypedef npy_uint16     uint16_t
 * ctypedef npy_uint32     uint32_t
 */
typedef npy_uint8 __pyx_t_5numpy_uint8_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":795
 * 
 * ctypedef npy_uint8      uint8_t
 * ctypedef npy_uint16     uint16_t             # <<<<<<<<<<<<<<
 * ctypedef npy_uint32     uint32_t
 * ctypedef npy_uint64     uint64_t
 */
typedef npy_uint16 __pyx_t_5numpy_uint16_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":796
 * ctypedef npy_uint8      uint8_t
 * ctypedef npy_uint16     uint16_t
 * ctypedef npy_uint32     uint32_t             # <<<<<<<<<<<<<<
 * ctypedef npy_uint64     uint64_t
 * #ctypedef npy_uint96     uint96_t
 */
typedef npy_uint32 __pyx_t_5numpy_uint32_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":797
 * ctypedef npy_uint16     uint16_t
 * ctypedef npy_uint32     uint32_t
 * ctypedef npy_uint64     uint64_t             # <<<<<<<<<<<<<<
 * #ctypedef npy_uint96     uint96_t
 * #ctypedef npy_uint128    uint128_t
 */
typedef npy_uint64 __pyx_t_5numpy_uint64_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":801
 * #ctypedef npy_uint128    uint128_t
 * 
 * ctypedef npy_float32    float32_t             # <<<<<<<<<<<<<<
 * ctypedef npy_float64    float64_t
 * #ctypedef npy_float80    float80_t
 */
typedef npy_float32 __pyx_t_5numpy_float32_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":802
 * 
 * ctypedef npy_float32    float32_t
 * ctypedef npy_float64    float64_t             # <<<<<<<<<<<<<<
 * #ctypedef npy_float80    float80_t
 * #ctypedef npy_float128   float128_t
 */
typedef npy_float64 __pyx_t_5numpy_float64_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":809
 * ctypedef double complex complex128_t
 * 
 * ctypedef npy_longlong   longlong_t             # <<<<<<<<<<<<<<
 * ctypedef npy_ulonglong  ulonglong_t
 * 
 */
typedef npy_longlong __pyx_t_5numpy_longlong_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":810
 * 
 * ctypedef npy_longlong   longlong_t
 * ctypedef npy_ulonglong  ulonglong_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef npy_intp       intp_t
 */
typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":812
 * ctypedef npy_ulonglong  ulonglong_t
 * 
 * ctypedef npy_intp       intp_t             # <<<<<<<<<<<<<<
 * ctypedef npy_uintp      uintp_t
 * 
 */
typedef npy_intp __pyx_t_5numpy_intp_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":813
 * 
 * ctypedef npy_intp       intp_t
 * ctypedef npy_uintp      uintp_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef npy_double     float_t
 */
typedef npy_uintp __pyx_t_5numpy_uintp_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":815
 * ctypedef npy_uintp      uintp_t
 * 
 * ctypedef npy_double     float_t             # <<<<<<<<<<<<<<
 * ctypedef npy_double     double_t
 * ctypedef npy_longdouble longdouble_t
 */
typedef npy_double __pyx_t_5numpy_float_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":816
 * 
 * ctypedef npy_double     float_t
 * ctypedef npy_double     double_t             # <<<<<<<<<<<<<<
 * ctypedef npy_longdouble longdouble_t
 * 
 */
typedef npy_double __pyx_t_5numpy_double_t;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":817
 * ctypedef npy_double     float_t
 * ctypedef npy_double     double_t
 * ctypedef npy_longdouble longdouble_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef float complex       cfloat_t
 */
typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
/* #### Code section: complex_type_declarations ### */
/* Declarations.proto */
#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
  #ifdef __cplusplus
    typedef ::std::complex< float > __pyx_t_float_complex;
  #else
    typedef float _Complex __pyx_t_float_complex;
  #endif
#else
    typedef struct { float real, imag; } __pyx_t_float_complex;
#endif
static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);

/* Declarations.proto */
#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
  #ifdef __cplusplus
    typedef ::std::complex< double > __pyx_t_double_complex;
  #else
    typedef double _Complex __pyx_t_double_complex;
  #endif
#else
    typedef struct { double real, imag; } __pyx_t_double_complex;
#endif
static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);

/* Declarations.proto */
#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
  #ifdef __cplusplus
    typedef ::std::complex< long double > __pyx_t_long_double_complex;
  #else
    typedef long double _Complex __pyx_t_long_double_complex;
  #endif
#else
    typedef struct { long double real, imag; } __pyx_t_long_double_complex;
#endif
static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double, long double);

/* #### Code section: type_declarations ### */

/*--- Type declarations ---*/
struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt;
struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS;
struct __pyx_obj_9mujoco_py_4cymj_PyMjOption;
struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual;
struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_;
struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality;
struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight;
struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map;
struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale;
struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba;
struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic;
struct __pyx_obj_9mujoco_py_4cymj_PyMjModel;
struct __pyx_obj_9mujoco_py_4cymj_PyMjContact;
struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat;
struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat;
struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat;
struct __pyx_obj_9mujoco_py_4cymj_PyMjData;
struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb;
struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera;
struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera;
struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom;
struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight;
struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption;
struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene;
struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure;
struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect;
struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext;
struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState;
struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing;
struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor;
struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem;
struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection;
struct __pyx_obj_9mujoco_py_4cymj_PyMjUI;
struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef;
struct __pyx_obj_9mujoco_py_4cymj_MjSim;
struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext;
struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names;
struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr;
struct __pyx_array_obj;
struct __pyx_MemviewEnum_obj;
struct __pyx_memoryview_obj;
struct __pyx_memoryviewslice_obj;

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1113
 * 
 * # Iterator API added in v1.6
 * ctypedef int (*NpyIter_IterNextFunc)(NpyIter* it) noexcept nogil             # <<<<<<<<<<<<<<
 * ctypedef void (*NpyIter_GetMultiIndexFunc)(NpyIter* it, npy_intp* outcoords) noexcept nogil
 * 
 */
typedef int (*__pyx_t_5numpy_NpyIter_IterNextFunc)(NpyIter *);

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1114
 * # Iterator API added in v1.6
 * ctypedef int (*NpyIter_IterNextFunc)(NpyIter* it) noexcept nogil
 * ctypedef void (*NpyIter_GetMultiIndexFunc)(NpyIter* it, npy_intp* outcoords) noexcept nogil             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "numpy/arrayobject.h":
 */
typedef void (*__pyx_t_5numpy_NpyIter_GetMultiIndexFunc)(NpyIter *, npy_intp *);
struct __pyx_t_9mujoco_py_4cymj_mjVisual_global_;
struct __pyx_t_9mujoco_py_4cymj_mjVisual_quality;
struct __pyx_t_9mujoco_py_4cymj_mjVisual_headlight;
struct __pyx_t_9mujoco_py_4cymj_mjVisual_map;
struct __pyx_t_9mujoco_py_4cymj_mjVisual_scale;
struct __pyx_t_9mujoco_py_4cymj_mjVisual_rgba;
struct __pyx_t_9mujoco_py_4cymj_PIDErrors;
struct __pyx_t_9mujoco_py_4cymj_PIDOutput;
struct __pyx_t_9mujoco_py_4cymj_PIDParameters;

/* "mujoco_py/mjpid.pyx":76
 *     return PIDOutput(output=f, errors=PIDErrors(error=error, derivative_error=derivative_error, integral_error=integral_error))
 * 
 * cdef enum USER_DEFINED_ACTUATOR_PARAMS:             # <<<<<<<<<<<<<<
 *     IDX_PROPORTIONAL_GAIN = 0,
 *     IDX_INTEGRAL_TIME_CONSTANT = 1,
 */
enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_PARAMS {
  __pyx_e_9mujoco_py_4cymj_IDX_PROPORTIONAL_GAIN = 0,
  __pyx_e_9mujoco_py_4cymj_IDX_INTEGRAL_TIME_CONSTANT = 1,
  __pyx_e_9mujoco_py_4cymj_IDX_INTEGRAL_MAX_CLAMP = 2,
  __pyx_e_9mujoco_py_4cymj_IDX_DERIVATIVE_TIME_CONSTANT = 3,
  __pyx_e_9mujoco_py_4cymj_IDX_DERIVATIVE_GAIN_SMOOTHING = 4,
  __pyx_e_9mujoco_py_4cymj_IDX_ERROR_DEADBAND = 5
};

/* "mujoco_py/mjpid.pyx":84
 *     IDX_ERROR_DEADBAND = 5,
 * 
 * cdef enum USER_DEFINED_CONTROLLER_DATA_PID:             # <<<<<<<<<<<<<<
 *     IDX_INTEGRAL_ERROR = 0,
 *     IDX_ERROR = 1,
 */
enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID {
  __pyx_e_9mujoco_py_4cymj_IDX_INTEGRAL_ERROR = 0,
  __pyx_e_9mujoco_py_4cymj_IDX_ERROR = 1,
  __pyx_e_9mujoco_py_4cymj_IDX_DERIVATIVE_ERROR = 2,
  __pyx_e_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT_PID = 3
};

/* "mujoco_py/mjpid.pyx":126
 *     return f
 * 
 * cdef enum USER_DEFINED_ACTUATOR_PARAMS_CASCADE:             # <<<<<<<<<<<<<<
 *     IDX_CAS_PROPORTIONAL_GAIN = 0,
 *     IDX_CAS_INTEGRAL_TIME_CONSTANT = 1,
 */
enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_PARAMS_CASCADE {
  __pyx_e_9mujoco_py_4cymj_IDX_CAS_PROPORTIONAL_GAIN = 0,
  __pyx_e_9mujoco_py_4cymj_IDX_CAS_INTEGRAL_TIME_CONSTANT = 1,
  __pyx_e_9mujoco_py_4cymj_IDX_CAS_INTEGRAL_MAX_CLAMP = 2,
  __pyx_e_9mujoco_py_4cymj_IDX_CAS_DERIVATIVE_TIME_CONSTANT = 3,
  __pyx_e_9mujoco_py_4cymj_IDX_CAS_DERIVATIVE_GAIN_SMOOTHING = 4,
  __pyx_e_9mujoco_py_4cymj_IDX_CAS_PROPORTIONAL_GAIN_V = 5,
  __pyx_e_9mujoco_py_4cymj_IDX_CAS_INTEGRAL_TIME_CONSTANT_V = 6,
  __pyx_e_9mujoco_py_4cymj_IDX_CAS_INTEGRAL_MAX_CLAMP_V = 7,
  __pyx_e_9mujoco_py_4cymj_IDX_CAS_EMA_SMOOTH = 8,
  __pyx_e_9mujoco_py_4cymj_IDX_CAS_MAX_VEL = 9
};

/* "mujoco_py/mjpid.pyx":138
 *     IDX_CAS_MAX_VEL = 9,
 * 
 * cdef enum USER_DEFINED_CONTROLLER_DATA_CASCADE:             # <<<<<<<<<<<<<<
 *     IDX_CAS_ERROR = 0,
 *     IDX_CAS_INTEGRAL_ERROR = 1,
 */
enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE {
  __pyx_e_9mujoco_py_4cymj_IDX_CAS_ERROR = 0,
  __pyx_e_9mujoco_py_4cymj_IDX_CAS_INTEGRAL_ERROR = 1,
  __pyx_e_9mujoco_py_4cymj_IDX_CAS_DERIVATIVE_ERROR = 2,
  __pyx_e_9mujoco_py_4cymj_IDX_CAS_INTEGRAL_ERROR_V = 3,
  __pyx_e_9mujoco_py_4cymj_IDX_CAS_STORED_EMA_SMOOTH = 4,
  __pyx_e_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT_CAS = 5
};

/* "mujoco_py/mjpid.pyx":250
 *     return f
 * 
 * cdef enum USER_DEFINED_ACTUATOR_DATA:             # <<<<<<<<<<<<<<
 *     IDX_CONTROLLER_TYPE = 0
 *     NUM_ACTUATOR_DATA = 1
 */
enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA {
  __pyx_e_9mujoco_py_4cymj_IDX_CONTROLLER_TYPE = 0,
  __pyx_e_9mujoco_py_4cymj_NUM_ACTUATOR_DATA = 1
};

/* "mujoco_py/pxd/mjmodel.pxd":1
 * cdef struct mjVisual_global_:   # global parameters             # <<<<<<<<<<<<<<
 *     float fovy                  # y-field of view (deg) for free camera
 *     float ipd                   # inter-pupilary distance for free camera
 */
struct __pyx_t_9mujoco_py_4cymj_mjVisual_global_ {
  float fovy;
  float ipd;
  float linewidth;
  float glow;
  int offwidth;
  int offheight;
};

/* "mujoco_py/pxd/mjmodel.pxd":9
 *     int offheight               # height of offscreen buffer
 * 
 * cdef struct mjVisual_quality:   # rendering quality             # <<<<<<<<<<<<<<
 *     int   shadowsize            # size of shadowmap texture
 *     int   offsamples            # number of multisamples for offscreen rendering
 */
struct __pyx_t_9mujoco_py_4cymj_mjVisual_quality {
  int shadowsize;
  int offsamples;
  int numslices;
  int numstacks;
  int numquads;
};

/* "mujoco_py/pxd/mjmodel.pxd":16
 *     int   numquads              # number of quads for box rendering
 * 
 * cdef struct mjVisual_headlight: # head light             # <<<<<<<<<<<<<<
 *     float ambient[3]            # ambient rgb (alpha=1)
 *     float diffuse[3]            # diffuse rgb (alpha=1)
 */
struct __pyx_t_9mujoco_py_4cymj_mjVisual_headlight {
  float ambient[3];
  float diffuse[3];
  float specular[3];
  int active;
};

/* "mujoco_py/pxd/mjmodel.pxd":22
 *     int   active                # is headlight active
 * 
 * cdef struct mjVisual_map:       # mapping             # <<<<<<<<<<<<<<
 *     float stiffness             # mouse perturbation stiffness (space->force)
 *     float stiffnessrot          # mouse perturbation stiffness (space->torque)
 */
struct __pyx_t_9mujoco_py_4cymj_mjVisual_map {
  float stiffness;
  float stiffnessrot;
  float force;
  float torque;
  float alpha;
  float fogstart;
  float fogend;
  float znear;
  float zfar;
  float haze;
  float shadowclip;
  float shadowscale;
  float actuatortendon;
};

/* "mujoco_py/pxd/mjmodel.pxd":37
 *     float actuatortendon        # scale tendon width
 * 
 * cdef struct mjVisual_scale:     # scale of decor elements relative to mean body size             # <<<<<<<<<<<<<<
 *     float forcewidth            # width of force arrow
 *     float contactwidth          # contact width
 */
struct __pyx_t_9mujoco_py_4cymj_mjVisual_scale {
  float forcewidth;
  float contactwidth;
  float contactheight;
  float connect;
  float com;
  float camera;
  float light;
  float selectpoint;
  float jointlength;
  float jointwidth;
  float actuatorlength;
  float actuatorwidth;
  float framelength;
  float framewidth;
  float constraint;
  float slidercrank;
};

/* "mujoco_py/pxd/mjmodel.pxd":55
 *     float slidercrank           # slidercrank width
 * 
 * cdef struct mjVisual_rgba:      # color of decor elements             # <<<<<<<<<<<<<<
 *     float fog[4]                # external force
 *     float haze[4]               # haze
 */
struct __pyx_t_9mujoco_py_4cymj_mjVisual_rgba {
  float fog[4];
  float haze[4];
  float force[4];
  float inertia[4];
  float joint[4];
  float actuator[4];
  float actuatornegative[4];
  float actuatorpositive[4];
  float com[4];
  float camera[4];
  float light[4];
  float selectpoint[4];
  float connect[4];
  float contactpoint[4];
  float contactforce[4];
  float contactfriction[4];
  float contacttorque[4];
  float contactgap[4];
  float rangefinder[4];
  float constraint[4];
  float slidercrank[4];
  float crankbroken[4];
};

/* "mujoco_py/pxd/mjdata.pxd":291
 * 
 * # generic MuJoCo function
 * ctypedef void (*mjfGeneric)(const mjModel* m, mjData* d)             # <<<<<<<<<<<<<<
 * 
 * # sensor simulation
 */
typedef void (*__pyx_t_9mujoco_py_4cymj_mjfGeneric)(mjModel const *, mjData *);

/* "mujoco_py/pxd/mjdata.pxd":294
 * 
 * # sensor simulation
 * ctypedef void (*mjfSensor)(const mjModel* m, mjData* d, int stage)             # <<<<<<<<<<<<<<
 * 
 * # timer
 */
typedef void (*__pyx_t_9mujoco_py_4cymj_mjfSensor)(mjModel const *, mjData *, int);

/* "mujoco_py/pxd/mjdata.pxd":297
 * 
 * # timer
 * ctypedef long long int (*mjfTime)();             # <<<<<<<<<<<<<<
 * 
 * # actuator dynamics, gain, bias
 */
typedef PY_LONG_LONG (*__pyx_t_9mujoco_py_4cymj_mjfTime)(void);

/* "mujoco_py/pxd/mjdata.pxd":300
 * 
 * # actuator dynamics, gain, bias
 * ctypedef mjtNum (*mjfAct)(const mjModel* m, const mjData* d, int id);             # <<<<<<<<<<<<<<
 * 
 * # solver impedance
 */
typedef mjtNum (*__pyx_t_9mujoco_py_4cymj_mjfAct)(mjModel const *, mjData const *, int);

/* "mujoco_py/pxd/mjdata.pxd":303
 * 
 * # solver impedance
 * ctypedef mjtNum (*mjfSolImp)(const mjModel* m, const mjData* d, int id,             # <<<<<<<<<<<<<<
 *                              mjtNum distance, mjtNum* constimp);
 * 
 */
typedef mjtNum (*__pyx_t_9mujoco_py_4cymj_mjfSolImp)(mjModel const *, mjData const *, int, mjtNum, mjtNum *);

/* "mujoco_py/pxd/mjdata.pxd":307
 * 
 * # solver reference
 * ctypedef void (*mjfSolRef)(const mjModel* m, const mjData* d, int id,             # <<<<<<<<<<<<<<
 *                            mjtNum constimp, mjtNum imp, int dim, mjtNum* ref);
 * 
 */
typedef void (*__pyx_t_9mujoco_py_4cymj_mjfSolRef)(mjModel const *, mjData const *, int, mjtNum, mjtNum, int, mjtNum *);

/* "mujoco_py/pxd/mjdata.pxd":311
 * 
 * # collision detection
 * ctypedef int (*mjfCollision)(const mjModel* m, const mjData* d,             # <<<<<<<<<<<<<<
 *                              mjContact* con, int g1, int g2, mjtNum margin);
 */
typedef int (*__pyx_t_9mujoco_py_4cymj_mjfCollision)(mjModel const *, mjData const *, mjContact *, int, int, mjtNum);

/* "mujoco_py/mjsim.pyx":8
 * _MjSim_render_lock = Lock()
 * 
 * ctypedef void (*substep_udd_t)(const mjModel* m, mjData* d)             # <<<<<<<<<<<<<<
 * 
 * 
 */
typedef void (*__pyx_t_9mujoco_py_4cymj_substep_udd_t)(mjModel const *, mjData *);

/* "mujoco_py/mjpid.pyx":6
 * cdef int CONTROLLER_TYPE_PI_CASCADE = 1,
 * 
 * cdef struct PIDErrors:             # <<<<<<<<<<<<<<
 *     double error
 *     double integral_error
 */
struct __pyx_t_9mujoco_py_4cymj_PIDErrors {
  double error;
  double integral_error;
  double derivative_error;
};

/* "mujoco_py/mjpid.pyx":11
 *     double derivative_error
 * 
 * cdef struct PIDOutput:             # <<<<<<<<<<<<<<
 *     PIDErrors errors
 *     double output
 */
struct __pyx_t_9mujoco_py_4cymj_PIDOutput {
  struct __pyx_t_9mujoco_py_4cymj_PIDErrors errors;
  double output;
};

/* "mujoco_py/mjpid.pyx":15
 *     double output
 * 
 * cdef struct PIDParameters:             # <<<<<<<<<<<<<<
 *     double dt_seconds  # PID sampling time.
 *     double setpoint
 */
struct __pyx_t_9mujoco_py_4cymj_PIDParameters {
  double dt_seconds;
  double setpoint;
  double feedback;
  double Kp;
  double error_deadband;
  double integral_max_clamp;
  double integral_time_const;
  double derivative_gain_smoothing;
  double derivative_time_const;
  struct __pyx_t_9mujoco_py_4cymj_PIDErrors previous_errors;
};

/* "mujoco_py/generated/wrappers.pxi":11
 * from tempfile import TemporaryDirectory
 * 
 * cdef class PyMjLROpt(object):             # <<<<<<<<<<<<<<
 *     cdef mjLROpt* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjLROpt *__pyx_vtab;
  mjLROpt *ptr;
};


/* "mujoco_py/generated/wrappers.pxi":75
 *     return o
 * 
 * cdef class PyMjVFS(object):             # <<<<<<<<<<<<<<
 *     cdef mjVFS* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVFS *__pyx_vtab;
  mjVFS *ptr;
  PyArrayObject *_filesize;
  PyArrayObject *_filename;
};


/* "mujoco_py/generated/wrappers.pxi":116
 *     return o
 * 
 * cdef class PyMjOption(object):             # <<<<<<<<<<<<<<
 *     cdef mjOption* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjOption {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjOption *__pyx_vtab;
  mjOption *ptr;
  PyArrayObject *_gravity;
  PyArrayObject *_wind;
  PyArrayObject *_magnetic;
  PyArrayObject *_o_solref;
  PyArrayObject *_o_solimp;
};


/* "mujoco_py/generated/wrappers.pxi":236
 *     return o
 * 
 * cdef class PyMjVisual(object):             # <<<<<<<<<<<<<<
 *     cdef mjVisual* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual *__pyx_vtab;
  mjVisual *ptr;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *_global_;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *_quality;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *_headlight;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *_map;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *_scale;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *_rgba;
};


/* "mujoco_py/generated/wrappers.pxi":284
 *     return o
 * 
 * cdef class PyMjVisual_global_(object):             # <<<<<<<<<<<<<<
 *     cdef mjVisual_global_* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_vtab;
  struct __pyx_t_9mujoco_py_4cymj_mjVisual_global_ *ptr;
};


/* "mujoco_py/generated/wrappers.pxi":332
 *     return o
 * 
 * cdef class PyMjVisual_quality(object):             # <<<<<<<<<<<<<<
 *     cdef mjVisual_quality* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_vtab;
  struct __pyx_t_9mujoco_py_4cymj_mjVisual_quality *ptr;
};


/* "mujoco_py/generated/wrappers.pxi":376
 *     return o
 * 
 * cdef class PyMjVisual_headlight(object):             # <<<<<<<<<<<<<<
 *     cdef mjVisual_headlight* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_vtab;
  struct __pyx_t_9mujoco_py_4cymj_mjVisual_headlight *ptr;
  PyArrayObject *_ambient;
  PyArrayObject *_diffuse;
  PyArrayObject *_specular;
};


/* "mujoco_py/generated/wrappers.pxi":416
 *     return o
 * 
 * cdef class PyMjVisual_map(object):             # <<<<<<<<<<<<<<
 *     cdef mjVisual_map* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_map *__pyx_vtab;
  struct __pyx_t_9mujoco_py_4cymj_mjVisual_map *ptr;
};


/* "mujoco_py/generated/wrappers.pxi":492
 *     return o
 * 
 * cdef class PyMjVisual_scale(object):             # <<<<<<<<<<<<<<
 *     cdef mjVisual_scale* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_vtab;
  struct __pyx_t_9mujoco_py_4cymj_mjVisual_scale *ptr;
};


/* "mujoco_py/generated/wrappers.pxi":580
 *     return o
 * 
 * cdef class PyMjVisual_rgba(object):             # <<<<<<<<<<<<<<
 *     cdef mjVisual_rgba* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_vtab;
  struct __pyx_t_9mujoco_py_4cymj_mjVisual_rgba *ptr;
  PyArrayObject *_fog;
  PyArrayObject *_haze;
  PyArrayObject *_force;
  PyArrayObject *_inertia;
  PyArrayObject *_joint;
  PyArrayObject *_actuator;
  PyArrayObject *_actuatornegative;
  PyArrayObject *_actuatorpositive;
  PyArrayObject *_com;
  PyArrayObject *_camera;
  PyArrayObject *_light;
  PyArrayObject *_selectpoint;
  PyArrayObject *_connect;
  PyArrayObject *_contactpoint;
  PyArrayObject *_contactforce;
  PyArrayObject *_contactfriction;
  PyArrayObject *_contacttorque;
  PyArrayObject *_contactgap;
  PyArrayObject *_rangefinder;
  PyArrayObject *_constraint;
  PyArrayObject *_slidercrank;
  PyArrayObject *_crankbroken;
};


/* "mujoco_py/generated/wrappers.pxi":692
 *     return o
 * 
 * cdef class PyMjStatistic(object):             # <<<<<<<<<<<<<<
 *     cdef mjStatistic* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjStatistic *__pyx_vtab;
  mjStatistic *ptr;
  PyArrayObject *_center;
};


/* "mujoco_py/generated/wrappers.pxi":736
 *     return o
 * 
 * cdef class PyMjModel(object):             # <<<<<<<<<<<<<<
 *     cdef mjModel* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjModel {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjModel *__pyx_vtab;
  mjModel *ptr;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *_opt;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *_vis;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *_stat;
  PyArrayObject *_qpos0;
  PyArrayObject *_qpos_spring;
  PyArrayObject *_body_parentid;
  PyArrayObject *_body_rootid;
  PyArrayObject *_body_weldid;
  PyArrayObject *_body_mocapid;
  PyArrayObject *_body_jntnum;
  PyArrayObject *_body_jntadr;
  PyArrayObject *_body_dofnum;
  PyArrayObject *_body_dofadr;
  PyArrayObject *_body_geomnum;
  PyArrayObject *_body_geomadr;
  PyArrayObject *_body_simple;
  PyArrayObject *_body_sameframe;
  PyArrayObject *_body_pos;
  PyArrayObject *_body_quat;
  PyArrayObject *_body_ipos;
  PyArrayObject *_body_iquat;
  PyArrayObject *_body_mass;
  PyArrayObject *_body_subtreemass;
  PyArrayObject *_body_inertia;
  PyArrayObject *_body_invweight0;
  PyArrayObject *_body_user;
  PyArrayObject *_jnt_type;
  PyArrayObject *_jnt_qposadr;
  PyArrayObject *_jnt_dofadr;
  PyArrayObject *_jnt_bodyid;
  PyArrayObject *_jnt_group;
  PyArrayObject *_jnt_limited;
  PyArrayObject *_jnt_solref;
  PyArrayObject *_jnt_solimp;
  PyArrayObject *_jnt_pos;
  PyArrayObject *_jnt_axis;
  PyArrayObject *_jnt_stiffness;
  PyArrayObject *_jnt_range;
  PyArrayObject *_jnt_margin;
  PyArrayObject *_jnt_user;
  PyArrayObject *_dof_bodyid;
  PyArrayObject *_dof_jntid;
  PyArrayObject *_dof_parentid;
  PyArrayObject *_dof_Madr;
  PyArrayObject *_dof_simplenum;
  PyArrayObject *_dof_solref;
  PyArrayObject *_dof_solimp;
  PyArrayObject *_dof_frictionloss;
  PyArrayObject *_dof_armature;
  PyArrayObject *_dof_damping;
  PyArrayObject *_dof_invweight0;
  PyArrayObject *_dof_M0;
  PyArrayObject *_geom_type;
  PyArrayObject *_geom_contype;
  PyArrayObject *_geom_conaffinity;
  PyArrayObject *_geom_condim;
  PyArrayObject *_geom_bodyid;
  PyArrayObject *_geom_dataid;
  PyArrayObject *_geom_matid;
  PyArrayObject *_geom_group;
  PyArrayObject *_geom_priority;
  PyArrayObject *_geom_sameframe;
  PyArrayObject *_geom_solmix;
  PyArrayObject *_geom_solref;
  PyArrayObject *_geom_solimp;
  PyArrayObject *_geom_size;
  PyArrayObject *_geom_rbound;
  PyArrayObject *_geom_pos;
  PyArrayObject *_geom_quat;
  PyArrayObject *_geom_friction;
  PyArrayObject *_geom_margin;
  PyArrayObject *_geom_gap;
  PyArrayObject *_geom_user;
  PyArrayObject *_geom_rgba;
  PyArrayObject *_site_type;
  PyArrayObject *_site_bodyid;
  PyArrayObject *_site_matid;
  PyArrayObject *_site_group;
  PyArrayObject *_site_sameframe;
  PyArrayObject *_site_size;
  PyArrayObject *_site_pos;
  PyArrayObject *_site_quat;
  PyArrayObject *_site_user;
  PyArrayObject *_site_rgba;
  PyArrayObject *_cam_mode;
  PyArrayObject *_cam_bodyid;
  PyArrayObject *_cam_targetbodyid;
  PyArrayObject *_cam_pos;
  PyArrayObject *_cam_quat;
  PyArrayObject *_cam_poscom0;
  PyArrayObject *_cam_pos0;
  PyArrayObject *_cam_mat0;
  PyArrayObject *_cam_fovy;
  PyArrayObject *_cam_ipd;
  PyArrayObject *_cam_user;
  PyArrayObject *_light_mode;
  PyArrayObject *_light_bodyid;
  PyArrayObject *_light_targetbodyid;
  PyArrayObject *_light_directional;
  PyArrayObject *_light_castshadow;
  PyArrayObject *_light_active;
  PyArrayObject *_light_pos;
  PyArrayObject *_light_dir;
  PyArrayObject *_light_poscom0;
  PyArrayObject *_light_pos0;
  PyArrayObject *_light_dir0;
  PyArrayObject *_light_attenuation;
  PyArrayObject *_light_cutoff;
  PyArrayObject *_light_exponent;
  PyArrayObject *_light_ambient;
  PyArrayObject *_light_diffuse;
  PyArrayObject *_light_specular;
  PyArrayObject *_mesh_vertadr;
  PyArrayObject *_mesh_vertnum;
  PyArrayObject *_mesh_texcoordadr;
  PyArrayObject *_mesh_faceadr;
  PyArrayObject *_mesh_facenum;
  PyArrayObject *_mesh_graphadr;
  PyArrayObject *_mesh_vert;
  PyArrayObject *_mesh_normal;
  PyArrayObject *_mesh_texcoord;
  PyArrayObject *_mesh_face;
  PyArrayObject *_mesh_graph;
  PyArrayObject *_skin_matid;
  PyArrayObject *_skin_rgba;
  PyArrayObject *_skin_inflate;
  PyArrayObject *_skin_vertadr;
  PyArrayObject *_skin_vertnum;
  PyArrayObject *_skin_texcoordadr;
  PyArrayObject *_skin_faceadr;
  PyArrayObject *_skin_facenum;
  PyArrayObject *_skin_boneadr;
  PyArrayObject *_skin_bonenum;
  PyArrayObject *_skin_vert;
  PyArrayObject *_skin_texcoord;
  PyArrayObject *_skin_face;
  PyArrayObject *_skin_bonevertadr;
  PyArrayObject *_skin_bonevertnum;
  PyArrayObject *_skin_bonebindpos;
  PyArrayObject *_skin_bonebindquat;
  PyArrayObject *_skin_bonebodyid;
  PyArrayObject *_skin_bonevertid;
  PyArrayObject *_skin_bonevertweight;
  PyArrayObject *_hfield_size;
  PyArrayObject *_hfield_nrow;
  PyArrayObject *_hfield_ncol;
  PyArrayObject *_hfield_adr;
  PyArrayObject *_hfield_data;
  PyArrayObject *_tex_type;
  PyArrayObject *_tex_height;
  PyArrayObject *_tex_width;
  PyArrayObject *_tex_adr;
  PyArrayObject *_tex_rgb;
  PyArrayObject *_mat_texid;
  PyArrayObject *_mat_texuniform;
  PyArrayObject *_mat_texrepeat;
  PyArrayObject *_mat_emission;
  PyArrayObject *_mat_specular;
  PyArrayObject *_mat_shininess;
  PyArrayObject *_mat_reflectance;
  PyArrayObject *_mat_rgba;
  PyArrayObject *_pair_dim;
  PyArrayObject *_pair_geom1;
  PyArrayObject *_pair_geom2;
  PyArrayObject *_pair_signature;
  PyArrayObject *_pair_solref;
  PyArrayObject *_pair_solimp;
  PyArrayObject *_pair_margin;
  PyArrayObject *_pair_gap;
  PyArrayObject *_pair_friction;
  PyArrayObject *_exclude_signature;
  PyArrayObject *_eq_type;
  PyArrayObject *_eq_obj1id;
  PyArrayObject *_eq_obj2id;
  PyArrayObject *_eq_active;
  PyArrayObject *_eq_solref;
  PyArrayObject *_eq_solimp;
  PyArrayObject *_eq_data;
  PyArrayObject *_tendon_adr;
  PyArrayObject *_tendon_num;
  PyArrayObject *_tendon_matid;
  PyArrayObject *_tendon_group;
  PyArrayObject *_tendon_limited;
  PyArrayObject *_tendon_width;
  PyArrayObject *_tendon_solref_lim;
  PyArrayObject *_tendon_solimp_lim;
  PyArrayObject *_tendon_solref_fri;
  PyArrayObject *_tendon_solimp_fri;
  PyArrayObject *_tendon_range;
  PyArrayObject *_tendon_margin;
  PyArrayObject *_tendon_stiffness;
  PyArrayObject *_tendon_damping;
  PyArrayObject *_tendon_frictionloss;
  PyArrayObject *_tendon_lengthspring;
  PyArrayObject *_tendon_length0;
  PyArrayObject *_tendon_invweight0;
  PyArrayObject *_tendon_user;
  PyArrayObject *_tendon_rgba;
  PyArrayObject *_wrap_type;
  PyArrayObject *_wrap_objid;
  PyArrayObject *_wrap_prm;
  PyArrayObject *_actuator_trntype;
  PyArrayObject *_actuator_dyntype;
  PyArrayObject *_actuator_gaintype;
  PyArrayObject *_actuator_biastype;
  PyArrayObject *_actuator_trnid;
  PyArrayObject *_actuator_group;
  PyArrayObject *_actuator_ctrllimited;
  PyArrayObject *_actuator_forcelimited;
  PyArrayObject *_actuator_dynprm;
  PyArrayObject *_actuator_gainprm;
  PyArrayObject *_actuator_biasprm;
  PyArrayObject *_actuator_ctrlrange;
  PyArrayObject *_actuator_forcerange;
  PyArrayObject *_actuator_gear;
  PyArrayObject *_actuator_cranklength;
  PyArrayObject *_actuator_acc0;
  PyArrayObject *_actuator_length0;
  PyArrayObject *_actuator_lengthrange;
  PyArrayObject *_actuator_user;
  PyArrayObject *_sensor_type;
  PyArrayObject *_sensor_datatype;
  PyArrayObject *_sensor_needstage;
  PyArrayObject *_sensor_objtype;
  PyArrayObject *_sensor_objid;
  PyArrayObject *_sensor_dim;
  PyArrayObject *_sensor_adr;
  PyArrayObject *_sensor_cutoff;
  PyArrayObject *_sensor_noise;
  PyArrayObject *_sensor_user;
  PyArrayObject *_numeric_adr;
  PyArrayObject *_numeric_size;
  PyArrayObject *_numeric_data;
  PyArrayObject *_text_adr;
  PyArrayObject *_text_size;
  PyArrayObject *_text_data;
  PyArrayObject *_tuple_adr;
  PyArrayObject *_tuple_size;
  PyArrayObject *_tuple_objtype;
  PyArrayObject *_tuple_objid;
  PyArrayObject *_tuple_objprm;
  PyArrayObject *_key_time;
  PyArrayObject *_key_qpos;
  PyArrayObject *_key_qvel;
  PyArrayObject *_key_act;
  PyArrayObject *_key_mpos;
  PyArrayObject *_key_mquat;
  PyArrayObject *_name_bodyadr;
  PyArrayObject *_name_jntadr;
  PyArrayObject *_name_geomadr;
  PyArrayObject *_name_siteadr;
  PyArrayObject *_name_camadr;
  PyArrayObject *_name_lightadr;
  PyArrayObject *_name_meshadr;
  PyArrayObject *_name_skinadr;
  PyArrayObject *_name_hfieldadr;
  PyArrayObject *_name_texadr;
  PyArrayObject *_name_matadr;
  PyArrayObject *_name_pairadr;
  PyArrayObject *_name_excludeadr;
  PyArrayObject *_name_eqadr;
  PyArrayObject *_name_tendonadr;
  PyArrayObject *_name_actuatoradr;
  PyArrayObject *_name_sensoradr;
  PyArrayObject *_name_numericadr;
  PyArrayObject *_name_textadr;
  PyArrayObject *_name_tupleadr;
  PyArrayObject *_name_keyadr;
  PyArrayObject *_names;
  PyObject *body_names;
  PyObject *joint_names;
  PyObject *geom_names;
  PyObject *site_names;
  PyObject *light_names;
  PyObject *camera_names;
  PyObject *actuator_names;
  PyObject *sensor_names;
  PyObject *tendon_names;
  PyObject *mesh_names;
  PyObject *_body_id2name;
  PyObject *_joint_id2name;
  PyObject *_geom_id2name;
  PyObject *_site_id2name;
  PyObject *_light_id2name;
  PyObject *_camera_id2name;
  PyObject *_actuator_id2name;
  PyObject *_sensor_id2name;
  PyObject *_tendon_id2name;
  PyObject *_mesh_id2name;
  PyObject *_body_name2id;
  PyObject *_joint_name2id;
  PyObject *_geom_name2id;
  PyObject *_site_name2id;
  PyObject *_light_name2id;
  PyObject *_camera_name2id;
  PyObject *_actuator_name2id;
  PyObject *_sensor_name2id;
  PyObject *_tendon_name2id;
  PyObject *_mesh_name2id;
  PyObject *userdata_names;
  PyObject *_userdata_id2name;
  PyObject *_userdata_name2id;
};


/* "mujoco_py/generated/wrappers.pxi":2291
 *     return o
 * 
 * cdef class PyMjContact(object):             # <<<<<<<<<<<<<<
 *     cdef mjContact* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjContact {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjContact *__pyx_vtab;
  mjContact *ptr;
  PyArrayObject *_pos;
  PyArrayObject *_frame;
  PyArrayObject *_friction;
  PyArrayObject *_solref;
  PyArrayObject *_solimp;
  PyArrayObject *_H;
};


/* "mujoco_py/generated/wrappers.pxi":2371
 *     return o
 * 
 * cdef class PyMjWarningStat(object):             # <<<<<<<<<<<<<<
 *     cdef mjWarningStat* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjWarningStat *__pyx_vtab;
  mjWarningStat *ptr;
};


/* "mujoco_py/generated/wrappers.pxi":2403
 *     return o
 * 
 * cdef class PyMjTimerStat(object):             # <<<<<<<<<<<<<<
 *     cdef mjTimerStat* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjTimerStat *__pyx_vtab;
  mjTimerStat *ptr;
};


/* "mujoco_py/generated/wrappers.pxi":2435
 *     return o
 * 
 * cdef class PyMjSolverStat(object):             # <<<<<<<<<<<<<<
 *     cdef mjSolverStat* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjSolverStat *__pyx_vtab;
  mjSolverStat *ptr;
};


/* "mujoco_py/generated/wrappers.pxi":2487
 *     return o
 * 
 * cdef class PyMjData(object):             # <<<<<<<<<<<<<<
 *     cdef mjData* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjData {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjData *__pyx_vtab;
  mjData *ptr;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *_model;
  PyArrayObject *_qpos;
  PyArrayObject *_qvel;
  PyArrayObject *_act;
  PyArrayObject *_qacc_warmstart;
  PyArrayObject *_ctrl;
  PyArrayObject *_qfrc_applied;
  PyArrayObject *_xfrc_applied;
  PyArrayObject *_qacc;
  PyArrayObject *_act_dot;
  PyArrayObject *_mocap_pos;
  PyArrayObject *_mocap_quat;
  PyArrayObject *_userdata;
  PyArrayObject *_sensordata;
  PyArrayObject *_xpos;
  PyArrayObject *_xquat;
  PyArrayObject *_xmat;
  PyArrayObject *_xipos;
  PyArrayObject *_ximat;
  PyArrayObject *_xanchor;
  PyArrayObject *_xaxis;
  PyArrayObject *_geom_xpos;
  PyArrayObject *_geom_xmat;
  PyArrayObject *_site_xpos;
  PyArrayObject *_site_xmat;
  PyArrayObject *_cam_xpos;
  PyArrayObject *_cam_xmat;
  PyArrayObject *_light_xpos;
  PyArrayObject *_light_xdir;
  PyArrayObject *_subtree_com;
  PyArrayObject *_cdof;
  PyArrayObject *_cinert;
  PyArrayObject *_ten_wrapadr;
  PyArrayObject *_ten_wrapnum;
  PyArrayObject *_ten_J_rownnz;
  PyArrayObject *_ten_J_rowadr;
  PyArrayObject *_ten_J_colind;
  PyArrayObject *_ten_length;
  PyArrayObject *_ten_J;
  PyArrayObject *_wrap_obj;
  PyArrayObject *_wrap_xpos;
  PyArrayObject *_actuator_length;
  PyArrayObject *_actuator_moment;
  PyArrayObject *_crb;
  PyArrayObject *_qM;
  PyArrayObject *_qLD;
  PyArrayObject *_qLDiagInv;
  PyArrayObject *_qLDiagSqrtInv;
  PyObject *_contact;
  PyArrayObject *_efc_type;
  PyArrayObject *_efc_id;
  PyArrayObject *_efc_J_rownnz;
  PyArrayObject *_efc_J_rowadr;
  PyArrayObject *_efc_J_rowsuper;
  PyArrayObject *_efc_J_colind;
  PyArrayObject *_efc_JT_rownnz;
  PyArrayObject *_efc_JT_rowadr;
  PyArrayObject *_efc_JT_rowsuper;
  PyArrayObject *_efc_JT_colind;
  PyArrayObject *_efc_J;
  PyArrayObject *_efc_JT;
  PyArrayObject *_efc_pos;
  PyArrayObject *_efc_margin;
  PyArrayObject *_efc_frictionloss;
  PyArrayObject *_efc_diagApprox;
  PyArrayObject *_efc_KBIP;
  PyArrayObject *_efc_D;
  PyArrayObject *_efc_R;
  PyArrayObject *_efc_AR_rownnz;
  PyArrayObject *_efc_AR_rowadr;
  PyArrayObject *_efc_AR_colind;
  PyArrayObject *_efc_AR;
  PyArrayObject *_ten_velocity;
  PyArrayObject *_actuator_velocity;
  PyArrayObject *_cvel;
  PyArrayObject *_cdof_dot;
  PyArrayObject *_qfrc_bias;
  PyArrayObject *_qfrc_passive;
  PyArrayObject *_efc_vel;
  PyArrayObject *_efc_aref;
  PyArrayObject *_subtree_linvel;
  PyArrayObject *_subtree_angmom;
  PyArrayObject *_actuator_force;
  PyArrayObject *_qfrc_actuator;
  PyArrayObject *_qfrc_unc;
  PyArrayObject *_qacc_unc;
  PyArrayObject *_efc_b;
  PyArrayObject *_efc_force;
  PyArrayObject *_efc_state;
  PyArrayObject *_qfrc_constraint;
  PyArrayObject *_qfrc_inverse;
  PyArrayObject *_cacc;
  PyArrayObject *_cfrc_int;
  PyArrayObject *_cfrc_ext;
  PyObject *_warning;
  PyObject *_timer;
  PyObject *_solver;
  PyArrayObject *_solver_fwdinv;
  PyArrayObject *_energy;
};


/* "mujoco_py/generated/wrappers.pxi":3315
 *     return o
 * 
 * cdef class PyMjvPerturb(object):             # <<<<<<<<<<<<<<
 *     cdef mjvPerturb* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvPerturb *__pyx_vtab;
  mjvPerturb *ptr;
  PyArrayObject *_refpos;
  PyArrayObject *_refquat;
  PyArrayObject *_localpos;
};


/* "mujoco_py/generated/wrappers.pxi":3371
 *     return o
 * 
 * cdef class PyMjvCamera(object):             # <<<<<<<<<<<<<<
 *     cdef mjvCamera* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvCamera *__pyx_vtab;
  mjvCamera *ptr;
  PyArrayObject *_lookat;
};


/* "mujoco_py/generated/wrappers.pxi":3423
 *     return o
 * 
 * cdef class PyMjvGLCamera(object):             # <<<<<<<<<<<<<<
 *     cdef mjvGLCamera* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_vtab;
  mjvGLCamera *ptr;
  PyArrayObject *_pos;
  PyArrayObject *_forward;
  PyArrayObject *_up;
};


/* "mujoco_py/generated/wrappers.pxi":3479
 *     return o
 * 
 * cdef class PyMjvGeom(object):             # <<<<<<<<<<<<<<
 *     cdef mjvGeom* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvGeom *__pyx_vtab;
  mjvGeom *ptr;
  PyArrayObject *_texrepeat;
  PyArrayObject *_size;
  PyArrayObject *_pos;
  PyArrayObject *_mat;
  PyArrayObject *_rgba;
  PyArrayObject *_label;
};


/* "mujoco_py/generated/wrappers.pxi":3591
 *     return o
 * 
 * cdef class PyMjvLight(object):             # <<<<<<<<<<<<<<
 *     cdef mjvLight* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvLight *__pyx_vtab;
  mjvLight *ptr;
  PyArrayObject *_pos;
  PyArrayObject *_dir;
  PyArrayObject *_attenuation;
  PyArrayObject *_ambient;
  PyArrayObject *_diffuse;
  PyArrayObject *_specular;
};


/* "mujoco_py/generated/wrappers.pxi":3659
 *     return o
 * 
 * cdef class PyMjvOption(object):             # <<<<<<<<<<<<<<
 *     cdef mjvOption* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvOption *__pyx_vtab;
  mjvOption *ptr;
  PyArrayObject *_geomgroup;
  PyArrayObject *_sitegroup;
  PyArrayObject *_jointgroup;
  PyArrayObject *_tendongroup;
  PyArrayObject *_actuatorgroup;
  PyArrayObject *_flags;
};


/* "mujoco_py/generated/wrappers.pxi":3715
 *     return o
 * 
 * cdef class PyMjvScene(object):             # <<<<<<<<<<<<<<
 *     cdef mjvScene* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvScene *__pyx_vtab;
  mjvScene *ptr;
  PyObject *_lights;
  PyObject *_camera;
  PyArrayObject *_translate;
  PyArrayObject *_rotate;
  PyArrayObject *_flags;
  PyArrayObject *_framergb;
};


/* "mujoco_py/generated/wrappers.pxi":3795
 *     return o
 * 
 * cdef class PyMjvFigure(object):             # <<<<<<<<<<<<<<
 *     cdef mjvFigure* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvFigure *__pyx_vtab;
  mjvFigure *ptr;
  PyArrayObject *_flg_ticklabel;
  PyArrayObject *_gridsize;
  PyArrayObject *_gridrgb;
  PyArrayObject *_figurergba;
  PyArrayObject *_panergba;
  PyArrayObject *_legendrgba;
  PyArrayObject *_textrgb;
  PyArrayObject *_xformat;
  PyArrayObject *_yformat;
  PyArrayObject *_minwidth;
  PyArrayObject *_title;
  PyArrayObject *_xlabel;
  PyArrayObject *_highlight;
  PyArrayObject *_linepnt;
  PyArrayObject *_xaxispixel;
  PyArrayObject *_yaxispixel;
  PyArrayObject *_xaxisdata;
  PyArrayObject *_yaxisdata;
  PyArrayObject *_linergb;
  PyArrayObject *_range;
  PyArrayObject *_linename;
  PyArrayObject *_linedata;
};


/* "mujoco_py/generated/wrappers.pxi":3951
 *     return o
 * 
 * cdef class PyMjrRect(object):             # <<<<<<<<<<<<<<
 *     cdef mjrRect* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjrRect *__pyx_vtab;
  mjrRect *ptr;
};


/* "mujoco_py/generated/wrappers.pxi":3996
 *     return o
 * 
 * cdef class PyMjrContext(object):             # <<<<<<<<<<<<<<
 *     cdef mjrContext* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjrContext *__pyx_vtab;
  mjrContext *ptr;
  PyArrayObject *_fogRGBA;
  PyArrayObject *_auxWidth;
  PyArrayObject *_auxHeight;
  PyArrayObject *_auxSamples;
  PyArrayObject *_auxFBO;
  PyArrayObject *_auxFBO_r;
  PyArrayObject *_auxColor;
  PyArrayObject *_auxColor_r;
  PyArrayObject *_textureType;
  PyArrayObject *_texture;
  PyArrayObject *_charWidth;
  PyArrayObject *_charWidthBig;
};


/* "mujoco_py/generated/wrappers.pxi":4228
 *     return o
 * 
 * cdef class PyMjuiState(object):             # <<<<<<<<<<<<<<
 *     cdef mjuiState* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiState *__pyx_vtab;
  mjuiState *ptr;
  PyObject *_rect;
};


/* "mujoco_py/generated/wrappers.pxi":4312
 *     return o
 * 
 * cdef class PyMjuiThemeSpacing(object):             # <<<<<<<<<<<<<<
 *     cdef mjuiThemeSpacing* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_vtab;
  mjuiThemeSpacing *ptr;
};


/* "mujoco_py/generated/wrappers.pxi":4380
 *     return o
 * 
 * cdef class PyMjuiThemeColor(object):             # <<<<<<<<<<<<<<
 *     cdef mjuiThemeColor* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_vtab;
  mjuiThemeColor *ptr;
  PyArrayObject *_master;
  PyArrayObject *_thumb;
  PyArrayObject *_secttitle;
  PyArrayObject *_sectfont;
  PyArrayObject *_sectsymbol;
  PyArrayObject *_sectpane;
  PyArrayObject *_shortcut;
  PyArrayObject *_fontactive;
  PyArrayObject *_fontinactive;
  PyArrayObject *_decorinactive;
  PyArrayObject *_decorinactive2;
  PyArrayObject *_button;
  PyArrayObject *_check;
  PyArrayObject *_radio;
  PyArrayObject *_select;
  PyArrayObject *_select2;
  PyArrayObject *_slider;
  PyArrayObject *_slider2;
  PyArrayObject *_edit;
  PyArrayObject *_edit2;
  PyArrayObject *_cursor;
};


/* "mujoco_py/generated/wrappers.pxi":4488
 *     return o
 * 
 * cdef class PyMjuiItem(object):             # <<<<<<<<<<<<<<
 *     cdef mjuiItem* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiItem *__pyx_vtab;
  mjuiItem *ptr;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *_rect;
  PyArrayObject *_name;
};


/* "mujoco_py/generated/wrappers.pxi":4536
 *     return o
 * 
 * cdef class PyMjuiSection(object):             # <<<<<<<<<<<<<<
 *     cdef mjuiSection* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiSection *__pyx_vtab;
  mjuiSection *ptr;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *_rtitle;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *_rcontent;
  PyArrayObject *_name;
  PyObject *_item;
};


/* "mujoco_py/generated/wrappers.pxi":4592
 *     return o
 * 
 * cdef class PyMjUI(object):             # <<<<<<<<<<<<<<
 *     cdef mjUI* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjUI {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjUI *__pyx_vtab;
  mjUI *ptr;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *_spacing;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *_color;
  PyArrayObject *_edittext;
  PyObject *_sect;
};


/* "mujoco_py/generated/wrappers.pxi":4692
 *     return o
 * 
 * cdef class PyMjuiDef(object):             # <<<<<<<<<<<<<<
 *     cdef mjuiDef* ptr
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiDef *__pyx_vtab;
  mjuiDef *ptr;
  PyArrayObject *_name;
  PyArrayObject *_other;
};


/* "mujoco_py/mjsim.pyx":11
 * 
 * 
 * cdef class MjSim(object):             # <<<<<<<<<<<<<<
 *     """MjSim represents a running simulation including its state.
 * 
 */
struct __pyx_obj_9mujoco_py_4cymj_MjSim {
  PyObject_HEAD
  struct __pyx_vtabstruct_9mujoco_py_4cymj_MjSim *__pyx_vtab;
  PyObject *render_contexts;
  PyObject *_render_context_window;
  PyObject *_render_context_offscreen;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *model;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *data;
  int nsubsteps;
  PyObject *udd_state;
  PyObject *_udd_callback;
  PyObject *extras;
  uintptr_t substep_callback_ptr;
  PyObject *render_callback;
};


/* "mujoco_py/mjrendercontext.pyx":6
 * cimport numpy as np
 * 
 * cdef class MjRenderContext(object):             # <<<<<<<<<<<<<<
 *     """
 *     Class that encapsulates rendering functionality for a
 */
struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext {
  PyObject_HEAD
  mjModel *_model_ptr;
  mjData *_data_ptr;
  mjvScene _scn;
  mjvCamera _cam;
  mjvOption _vopt;
  mjvPerturb _pert;
  mjrContext _con;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *scn;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *cam;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *vopt;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *pert;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *con;
  PyObject *opengl_context;
  int _visible;
  PyObject *_markers;
  PyObject *_overlay;
  int offscreen;
  PyObject *sim;
};


/* "mujoco_py/generated/wrappers.pxi":1127
 *         return self._userdata_name2id[name]
 * 
 *     cdef inline tuple _extract_mj_names(self, mjModel* p, int*name_adr, int n, mjtObj obj_type):             # <<<<<<<<<<<<<<
 *         cdef char *name
 *         cdef int obj_id
 */
struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names {
  PyObject_HEAD
  PyObject *__pyx_v_id2name;
};


/* "mujoco_py/generated/wrappers.pxi":1144
 * 
 *         # sort names by increasing id to keep order deterministic
 *         return tuple(id2name[id] for id in sorted(name2id.values())), name2id, id2name             # <<<<<<<<<<<<<<
 * 
 *     def get_xml(self):
 */
struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr {
  PyObject_HEAD
  struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names *__pyx_outer_scope;
  PyObject *__pyx_genexpr_arg_0;
  PyObject *__pyx_v_id;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
};


/* "View.MemoryView":114
 * @cython.collection_type("sequence")
 * @cname("__pyx_array")
 * cdef class array:             # <<<<<<<<<<<<<<
 * 
 *     cdef:
 */
struct __pyx_array_obj {
  PyObject_HEAD
  struct __pyx_vtabstruct_array *__pyx_vtab;
  char *data;
  Py_ssize_t len;
  char *format;
  int ndim;
  Py_ssize_t *_shape;
  Py_ssize_t *_strides;
  Py_ssize_t itemsize;
  PyObject *mode;
  PyObject *_format;
  void (*callback_free_data)(void *);
  int free_data;
  int dtype_is_object;
};


/* "View.MemoryView":302
 * 
 * @cname('__pyx_MemviewEnum')
 * cdef class Enum(object):             # <<<<<<<<<<<<<<
 *     cdef object name
 *     def __init__(self, name):
 */
struct __pyx_MemviewEnum_obj {
  PyObject_HEAD
  PyObject *name;
};


/* "View.MemoryView":337
 * 
 * @cname('__pyx_memoryview')
 * cdef class memoryview:             # <<<<<<<<<<<<<<
 * 
 *     cdef object obj
 */
struct __pyx_memoryview_obj {
  PyObject_HEAD
  struct __pyx_vtabstruct_memoryview *__pyx_vtab;
  PyObject *obj;
  PyObject *_size;
  PyObject *_array_interface;
  PyThread_type_lock lock;
  __pyx_atomic_int_type acquisition_count;
  Py_buffer view;
  int flags;
  int dtype_is_object;
  __Pyx_TypeInfo *typeinfo;
};


/* "View.MemoryView":952
 * @cython.collection_type("sequence")
 * @cname('__pyx_memoryviewslice')
 * cdef class _memoryviewslice(memoryview):             # <<<<<<<<<<<<<<
 *     "Internal class for passing memoryview slices to Python"
 * 
 */
struct __pyx_memoryviewslice_obj {
  struct __pyx_memoryview_obj __pyx_base;
  __Pyx_memviewslice from_slice;
  PyObject *from_object;
  PyObject *(*to_object_func)(char *);
  int (*to_dtype_func)(char *, PyObject *);
};



/* "mujoco_py/generated/wrappers.pxi":11
 * from tempfile import TemporaryDirectory
 * 
 * cdef class PyMjLROpt(object):             # <<<<<<<<<<<<<<
 *     cdef mjLROpt* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjLROpt {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *, mjLROpt *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjLROpt *__pyx_vtabptr_9mujoco_py_4cymj_PyMjLROpt;


/* "mujoco_py/generated/wrappers.pxi":75
 *     return o
 * 
 * cdef class PyMjVFS(object):             # <<<<<<<<<<<<<<
 *     cdef mjVFS* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVFS {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *, mjVFS *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVFS *__pyx_vtabptr_9mujoco_py_4cymj_PyMjVFS;


/* "mujoco_py/generated/wrappers.pxi":116
 *     return o
 * 
 * cdef class PyMjOption(object):             # <<<<<<<<<<<<<<
 *     cdef mjOption* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjOption {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *, mjOption *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjOption *__pyx_vtabptr_9mujoco_py_4cymj_PyMjOption;


/* "mujoco_py/generated/wrappers.pxi":236
 *     return o
 * 
 * cdef class PyMjVisual(object):             # <<<<<<<<<<<<<<
 *     cdef mjVisual* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *, mjVisual *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual *__pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual;


/* "mujoco_py/generated/wrappers.pxi":284
 *     return o
 * 
 * cdef class PyMjVisual_global_(object):             # <<<<<<<<<<<<<<
 *     cdef mjVisual_global_* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_global_ {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *, struct __pyx_t_9mujoco_py_4cymj_mjVisual_global_ *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_global_;


/* "mujoco_py/generated/wrappers.pxi":332
 *     return o
 * 
 * cdef class PyMjVisual_quality(object):             # <<<<<<<<<<<<<<
 *     cdef mjVisual_quality* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_quality {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *, struct __pyx_t_9mujoco_py_4cymj_mjVisual_quality *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_quality;


/* "mujoco_py/generated/wrappers.pxi":376
 *     return o
 * 
 * cdef class PyMjVisual_headlight(object):             # <<<<<<<<<<<<<<
 *     cdef mjVisual_headlight* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_headlight {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *, struct __pyx_t_9mujoco_py_4cymj_mjVisual_headlight *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_headlight;


/* "mujoco_py/generated/wrappers.pxi":416
 *     return o
 * 
 * cdef class PyMjVisual_map(object):             # <<<<<<<<<<<<<<
 *     cdef mjVisual_map* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_map {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *, struct __pyx_t_9mujoco_py_4cymj_mjVisual_map *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_map *__pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_map;


/* "mujoco_py/generated/wrappers.pxi":492
 *     return o
 * 
 * cdef class PyMjVisual_scale(object):             # <<<<<<<<<<<<<<
 *     cdef mjVisual_scale* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_scale {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *, struct __pyx_t_9mujoco_py_4cymj_mjVisual_scale *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_scale;


/* "mujoco_py/generated/wrappers.pxi":580
 *     return o
 * 
 * cdef class PyMjVisual_rgba(object):             # <<<<<<<<<<<<<<
 *     cdef mjVisual_rgba* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_rgba {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *, struct __pyx_t_9mujoco_py_4cymj_mjVisual_rgba *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_rgba;


/* "mujoco_py/generated/wrappers.pxi":692
 *     return o
 * 
 * cdef class PyMjStatistic(object):             # <<<<<<<<<<<<<<
 *     cdef mjStatistic* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjStatistic {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *, mjStatistic *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjStatistic *__pyx_vtabptr_9mujoco_py_4cymj_PyMjStatistic;


/* "mujoco_py/generated/wrappers.pxi":736
 *     return o
 * 
 * cdef class PyMjModel(object):             # <<<<<<<<<<<<<<
 *     cdef mjModel* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjModel {
  PyObject *(*_extract_mj_names)(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *, mjModel *, int *, int, mjtObj);
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *, mjModel *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjModel *__pyx_vtabptr_9mujoco_py_4cymj_PyMjModel;
static CYTHON_INLINE PyObject *__pyx_f_9mujoco_py_4cymj_9PyMjModel__extract_mj_names(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *, mjModel *, int *, int, mjtObj);


/* "mujoco_py/generated/wrappers.pxi":2291
 *     return o
 * 
 * cdef class PyMjContact(object):             # <<<<<<<<<<<<<<
 *     cdef mjContact* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjContact {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *, mjContact *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjContact *__pyx_vtabptr_9mujoco_py_4cymj_PyMjContact;


/* "mujoco_py/generated/wrappers.pxi":2371
 *     return o
 * 
 * cdef class PyMjWarningStat(object):             # <<<<<<<<<<<<<<
 *     cdef mjWarningStat* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjWarningStat {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *, mjWarningStat *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjWarningStat *__pyx_vtabptr_9mujoco_py_4cymj_PyMjWarningStat;


/* "mujoco_py/generated/wrappers.pxi":2403
 *     return o
 * 
 * cdef class PyMjTimerStat(object):             # <<<<<<<<<<<<<<
 *     cdef mjTimerStat* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjTimerStat {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *, mjTimerStat *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjTimerStat *__pyx_vtabptr_9mujoco_py_4cymj_PyMjTimerStat;


/* "mujoco_py/generated/wrappers.pxi":2435
 *     return o
 * 
 * cdef class PyMjSolverStat(object):             # <<<<<<<<<<<<<<
 *     cdef mjSolverStat* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjSolverStat {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *, mjSolverStat *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjSolverStat *__pyx_vtabptr_9mujoco_py_4cymj_PyMjSolverStat;


/* "mujoco_py/generated/wrappers.pxi":2487
 *     return o
 * 
 * cdef class PyMjData(object):             # <<<<<<<<<<<<<<
 *     cdef mjData* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjData {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *, mjData *, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjData *__pyx_vtabptr_9mujoco_py_4cymj_PyMjData;


/* "mujoco_py/generated/wrappers.pxi":3315
 *     return o
 * 
 * cdef class PyMjvPerturb(object):             # <<<<<<<<<<<<<<
 *     cdef mjvPerturb* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvPerturb {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *, mjvPerturb *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvPerturb *__pyx_vtabptr_9mujoco_py_4cymj_PyMjvPerturb;


/* "mujoco_py/generated/wrappers.pxi":3371
 *     return o
 * 
 * cdef class PyMjvCamera(object):             # <<<<<<<<<<<<<<
 *     cdef mjvCamera* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvCamera {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *, mjvCamera *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvCamera *__pyx_vtabptr_9mujoco_py_4cymj_PyMjvCamera;


/* "mujoco_py/generated/wrappers.pxi":3423
 *     return o
 * 
 * cdef class PyMjvGLCamera(object):             # <<<<<<<<<<<<<<
 *     cdef mjvGLCamera* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvGLCamera {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *, mjvGLCamera *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_vtabptr_9mujoco_py_4cymj_PyMjvGLCamera;


/* "mujoco_py/generated/wrappers.pxi":3479
 *     return o
 * 
 * cdef class PyMjvGeom(object):             # <<<<<<<<<<<<<<
 *     cdef mjvGeom* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvGeom {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *, mjvGeom *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvGeom *__pyx_vtabptr_9mujoco_py_4cymj_PyMjvGeom;


/* "mujoco_py/generated/wrappers.pxi":3591
 *     return o
 * 
 * cdef class PyMjvLight(object):             # <<<<<<<<<<<<<<
 *     cdef mjvLight* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvLight {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *, mjvLight *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvLight *__pyx_vtabptr_9mujoco_py_4cymj_PyMjvLight;


/* "mujoco_py/generated/wrappers.pxi":3659
 *     return o
 * 
 * cdef class PyMjvOption(object):             # <<<<<<<<<<<<<<
 *     cdef mjvOption* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvOption {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *, mjvOption *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvOption *__pyx_vtabptr_9mujoco_py_4cymj_PyMjvOption;


/* "mujoco_py/generated/wrappers.pxi":3715
 *     return o
 * 
 * cdef class PyMjvScene(object):             # <<<<<<<<<<<<<<
 *     cdef mjvScene* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvScene {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *, mjvScene *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvScene *__pyx_vtabptr_9mujoco_py_4cymj_PyMjvScene;


/* "mujoco_py/generated/wrappers.pxi":3795
 *     return o
 * 
 * cdef class PyMjvFigure(object):             # <<<<<<<<<<<<<<
 *     cdef mjvFigure* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvFigure {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *, mjvFigure *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvFigure *__pyx_vtabptr_9mujoco_py_4cymj_PyMjvFigure;


/* "mujoco_py/generated/wrappers.pxi":3951
 *     return o
 * 
 * cdef class PyMjrRect(object):             # <<<<<<<<<<<<<<
 *     cdef mjrRect* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjrRect {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *, mjrRect *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjrRect *__pyx_vtabptr_9mujoco_py_4cymj_PyMjrRect;


/* "mujoco_py/generated/wrappers.pxi":3996
 *     return o
 * 
 * cdef class PyMjrContext(object):             # <<<<<<<<<<<<<<
 *     cdef mjrContext* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjrContext {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *, mjrContext *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjrContext *__pyx_vtabptr_9mujoco_py_4cymj_PyMjrContext;


/* "mujoco_py/generated/wrappers.pxi":4228
 *     return o
 * 
 * cdef class PyMjuiState(object):             # <<<<<<<<<<<<<<
 *     cdef mjuiState* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiState {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *, mjuiState *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiState *__pyx_vtabptr_9mujoco_py_4cymj_PyMjuiState;


/* "mujoco_py/generated/wrappers.pxi":4312
 *     return o
 * 
 * cdef class PyMjuiThemeSpacing(object):             # <<<<<<<<<<<<<<
 *     cdef mjuiThemeSpacing* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiThemeSpacing {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *, mjuiThemeSpacing *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_vtabptr_9mujoco_py_4cymj_PyMjuiThemeSpacing;


/* "mujoco_py/generated/wrappers.pxi":4380
 *     return o
 * 
 * cdef class PyMjuiThemeColor(object):             # <<<<<<<<<<<<<<
 *     cdef mjuiThemeColor* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiThemeColor {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *, mjuiThemeColor *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_vtabptr_9mujoco_py_4cymj_PyMjuiThemeColor;


/* "mujoco_py/generated/wrappers.pxi":4488
 *     return o
 * 
 * cdef class PyMjuiItem(object):             # <<<<<<<<<<<<<<
 *     cdef mjuiItem* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiItem {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *, mjuiItem *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiItem *__pyx_vtabptr_9mujoco_py_4cymj_PyMjuiItem;


/* "mujoco_py/generated/wrappers.pxi":4536
 *     return o
 * 
 * cdef class PyMjuiSection(object):             # <<<<<<<<<<<<<<
 *     cdef mjuiSection* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiSection {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *, mjuiSection *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiSection *__pyx_vtabptr_9mujoco_py_4cymj_PyMjuiSection;


/* "mujoco_py/generated/wrappers.pxi":4592
 *     return o
 * 
 * cdef class PyMjUI(object):             # <<<<<<<<<<<<<<
 *     cdef mjUI* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjUI {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *, mjUI *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjUI *__pyx_vtabptr_9mujoco_py_4cymj_PyMjUI;


/* "mujoco_py/generated/wrappers.pxi":4692
 *     return o
 * 
 * cdef class PyMjuiDef(object):             # <<<<<<<<<<<<<<
 *     cdef mjuiDef* ptr
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiDef {
  void (*_set)(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *, mjuiDef *);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiDef *__pyx_vtabptr_9mujoco_py_4cymj_PyMjuiDef;


/* "mujoco_py/mjsim.pyx":11
 * 
 * 
 * cdef class MjSim(object):             # <<<<<<<<<<<<<<
 *     """MjSim represents a running simulation including its state.
 * 
 */

struct __pyx_vtabstruct_9mujoco_py_4cymj_MjSim {
  PyObject *(*substep_callback)(struct __pyx_obj_9mujoco_py_4cymj_MjSim *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_9mujoco_py_4cymj_MjSim *__pyx_vtabptr_9mujoco_py_4cymj_MjSim;


/* "View.MemoryView":114
 * @cython.collection_type("sequence")
 * @cname("__pyx_array")
 * cdef class array:             # <<<<<<<<<<<<<<
 * 
 *     cdef:
 */

struct __pyx_vtabstruct_array {
  PyObject *(*get_memview)(struct __pyx_array_obj *);
};
static struct __pyx_vtabstruct_array *__pyx_vtabptr_array;


/* "View.MemoryView":337
 * 
 * @cname('__pyx_memoryview')
 * cdef class memoryview:             # <<<<<<<<<<<<<<
 * 
 *     cdef object obj
 */

struct __pyx_vtabstruct_memoryview {
  char *(*get_item_pointer)(struct __pyx_memoryview_obj *, PyObject *);
  PyObject *(*is_slice)(struct __pyx_memoryview_obj *, PyObject *);
  PyObject *(*setitem_slice_assignment)(struct __pyx_memoryview_obj *, PyObject *, PyObject *);
  PyObject *(*setitem_slice_assign_scalar)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *);
  PyObject *(*setitem_indexed)(struct __pyx_memoryview_obj *, PyObject *, PyObject *);
  PyObject *(*convert_item_to_object)(struct __pyx_memoryview_obj *, char *);
  PyObject *(*assign_item_from_object)(struct __pyx_memoryview_obj *, char *, PyObject *);
  PyObject *(*_get_base)(struct __pyx_memoryview_obj *);
};
static struct __pyx_vtabstruct_memoryview *__pyx_vtabptr_memoryview;


/* "View.MemoryView":952
 * @cython.collection_type("sequence")
 * @cname('__pyx_memoryviewslice')
 * cdef class _memoryviewslice(memoryview):             # <<<<<<<<<<<<<<
 *     "Internal class for passing memoryview slices to Python"
 * 
 */

struct __pyx_vtabstruct__memoryviewslice {
  struct __pyx_vtabstruct_memoryview __pyx_base;
};
static struct __pyx_vtabstruct__memoryviewslice *__pyx_vtabptr__memoryviewslice;
/* #### Code section: utility_code_proto ### */

/* --- Runtime support code (head) --- */
/* Refnanny.proto */
#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif
#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, Py_ssize_t);
    void (*DECREF)(void*, PyObject*, Py_ssize_t);
    void (*GOTREF)(void*, PyObject*, Py_ssize_t);
    void (*GIVEREF)(void*, PyObject*, Py_ssize_t);
    void* (*SetupContext)(const char*, Py_ssize_t, const char*);
    void (*FinishContext)(void**);
  } __Pyx_RefNannyAPIStruct;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
#ifdef WITH_THREAD
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          if (acquire_gil) {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
              PyGILState_Release(__pyx_gilstate_save);\
          } else {\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
          }
  #define __Pyx_RefNannyFinishContextNogil() {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __Pyx_RefNannyFinishContext();\
              PyGILState_Release(__pyx_gilstate_save);\
          }
#else
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__))
  #define __Pyx_RefNannyFinishContextNogil() __Pyx_RefNannyFinishContext()
#endif
  #define __Pyx_RefNannyFinishContextNogil() {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __Pyx_RefNannyFinishContext();\
              PyGILState_Release(__pyx_gilstate_save);\
          }
  #define __Pyx_RefNannyFinishContext()\
          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_XINCREF(r)  do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
  #define __Pyx_RefNannyFinishContextNogil()
  #define __Pyx_RefNannyFinishContext()
  #define __Pyx_INCREF(r) Py_INCREF(r)
  #define __Pyx_DECREF(r) Py_DECREF(r)
  #define __Pyx_GOTREF(r)
  #define __Pyx_GIVEREF(r)
  #define __Pyx_XINCREF(r) Py_XINCREF(r)
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
  #define __Pyx_XGOTREF(r)
  #define __Pyx_XGIVEREF(r)
#endif
#define __Pyx_Py_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; Py_XDECREF(tmp);\
    } while (0)
#define __Pyx_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_XDECREF(tmp);\
    } while (0)
#define __Pyx_DECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_DECREF(tmp);\
    } while (0)
#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)

/* PyErrExceptionMatches.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
#else
#define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
#endif

/* PyThreadStateGet.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
#define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
#if PY_VERSION_HEX >= 0x030C00A6
#define __Pyx_PyErr_Occurred()  (__pyx_tstate->current_exception != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)
#else
#define __Pyx_PyErr_Occurred()  (__pyx_tstate->curexc_type != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->curexc_type)
#endif
#else
#define __Pyx_PyThreadState_declare
#define __Pyx_PyThreadState_assign
#define __Pyx_PyErr_Occurred()  (PyErr_Occurred() != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  PyErr_Occurred()
#endif

/* PyErrFetchRestore.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
#define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6
#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
#else
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#endif
#else
#define __Pyx_PyErr_Clear() PyErr_Clear()
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
#endif

/* PyObjectGetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
#endif

/* PyObjectGetAttrStrNoError.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);

/* GetBuiltinName.proto */
static PyObject *__Pyx_GetBuiltinName(PyObject *name);

/* GetTopmostException.proto */
#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
#endif

/* SaveResetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
#else
#define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
#define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
#endif

/* FastTypeChecks.proto */
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
#define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2)
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
#else
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
#define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2))
#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
#endif
#define __Pyx_PyErr_ExceptionMatches2(err1, err2)  __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2)
#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)

/* TupleAndListFromArray.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n);
static CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n);
#endif

/* IncludeStringH.proto */
#include <string.h>

/* BytesEquals.proto */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);

/* UnicodeEquals.proto */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);

/* fastcall.proto */
#if CYTHON_AVOID_BORROWED_REFS
    #define __Pyx_Arg_VARARGS(args, i) PySequence_GetItem(args, i)
#elif CYTHON_ASSUME_SAFE_MACROS
    #define __Pyx_Arg_VARARGS(args, i) PyTuple_GET_ITEM(args, i)
#else
    #define __Pyx_Arg_VARARGS(args, i) PyTuple_GetItem(args, i)
#endif
#if CYTHON_AVOID_BORROWED_REFS
    #define __Pyx_Arg_NewRef_VARARGS(arg) __Pyx_NewRef(arg)
    #define __Pyx_Arg_XDECREF_VARARGS(arg) Py_XDECREF(arg)
#else
    #define __Pyx_Arg_NewRef_VARARGS(arg) arg
    #define __Pyx_Arg_XDECREF_VARARGS(arg)
#endif
#define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds)
#define __Pyx_KwValues_VARARGS(args, nargs) NULL
#define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s)
#define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw)
#if CYTHON_METH_FASTCALL
    #define __Pyx_Arg_FASTCALL(args, i) args[i]
    #define __Pyx_NumKwargs_FASTCALL(kwds) PyTuple_GET_SIZE(kwds)
    #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs))
    static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
    CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues);
  #else
    #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw)
  #endif
    #define __Pyx_Arg_NewRef_FASTCALL(arg) arg  /* no-op, __Pyx_Arg_FASTCALL is direct and this needs
                                                   to have the same reference counting */
    #define __Pyx_Arg_XDECREF_FASTCALL(arg)
#else
    #define __Pyx_Arg_FASTCALL __Pyx_Arg_VARARGS
    #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS
    #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS
    #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS
    #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS
    #define __Pyx_Arg_NewRef_FASTCALL(arg) __Pyx_Arg_NewRef_VARARGS(arg)
    #define __Pyx_Arg_XDECREF_FASTCALL(arg) __Pyx_Arg_XDECREF_VARARGS(arg)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
#define __Pyx_ArgsSlice_VARARGS(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_VARARGS(args, start), stop - start)
#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_FASTCALL(args, start), stop - start)
#else
#define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop)
#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop)
#endif

/* RaiseArgTupleInvalid.proto */
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);

/* RaiseDoubleKeywords.proto */
static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);

/* ParseKeywords.proto */
static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject *const *kwvalues,
    PyObject **argnames[],
    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,
    const char* function_name);

/* ArgTypeTest.proto */
#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
    ((likely(__Pyx_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None)))) ? 1 :\
        __Pyx__ArgTypeTest(obj, type, name, exact))
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);

/* RaiseException.proto */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);

/* PyFunctionFastCall.proto */
#if CYTHON_FAST_PYCALL
#if !CYTHON_VECTORCALL
#define __Pyx_PyFunction_FastCall(func, args, nargs)\
    __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
#endif
#define __Pyx_BUILD_ASSERT_EXPR(cond)\
    (sizeof(char [1 - 2*!(cond)]) - 1)
#ifndef Py_MEMBER_SIZE
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
#endif
#if !CYTHON_VECTORCALL
#if PY_VERSION_HEX >= 0x03080000
  #include "frameobject.h"
#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API
  #ifndef Py_BUILD_CORE
    #define Py_BUILD_CORE 1
  #endif
  #include "internal/pycore_frame.h"
#endif
  #define __Pxy_PyFrame_Initialize_Offsets()
  #define __Pyx_PyFrame_GetLocalsplus(frame)  ((frame)->f_localsplus)
#else
  static size_t __pyx_pyframe_localsplus_offset = 0;
  #include "frameobject.h"
  #define __Pxy_PyFrame_Initialize_Offsets()\
    ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
     (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
  #define __Pyx_PyFrame_GetLocalsplus(frame)\
    (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
#endif
#endif
#endif

/* PyObjectCall.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
#else
#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
#endif

/* PyObjectCallMethO.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
#endif

/* PyObjectFastCall.proto */
#define __Pyx_PyObject_FastCall(func, args, nargs)  __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL)
static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs);

/* RaiseUnexpectedTypeError.proto */
static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj);

/* GCCDiagnostics.proto */
#if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
#define __Pyx_HAS_GCC_DIAGNOSTIC
#endif

/* BuildPyUnicode.proto */
static PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, char* chars, int clength,
                                                int prepend_sign, char padding_char);

/* CIntToPyUnicode.proto */
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char, char format_char);

/* CIntToPyUnicode.proto */
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char);

/* JoinPyUnicode.proto */
static PyObject* __Pyx_PyUnicode_Join(PyObject* value_tuple, Py_ssize_t value_count, Py_ssize_t result_ulength,
                                      Py_UCS4 max_char);

/* StrEquals.proto */
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals
#else
#define __Pyx_PyString_Equals __Pyx_PyBytes_Equals
#endif

/* PyObjectFormatSimple.proto */
#if CYTHON_COMPILING_IN_PYPY
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        PyObject_Format(s, f))
#elif PY_MAJOR_VERSION < 3
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        likely(PyString_CheckExact(s)) ? PyUnicode_FromEncodedObject(s, NULL, "strict") :\
        PyObject_Format(s, f))
#elif CYTHON_USE_TYPE_SLOTS
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        likely(PyLong_CheckExact(s)) ? PyLong_Type.tp_repr(s) :\
        likely(PyFloat_CheckExact(s)) ? PyFloat_Type.tp_repr(s) :\
        PyObject_Format(s, f))
#else
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        PyObject_Format(s, f))
#endif

CYTHON_UNUSED static int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *); /*proto*/
/* GetAttr.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);

/* GetItemInt.proto */
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                     int is_list, int wraparound, int boundscheck);

/* PyObjectCallOneArg.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);

/* ObjectGetItem.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key);
#else
#define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)
#endif

/* KeywordStringCheck.proto */
static int __Pyx_CheckKeywordStrings(PyObject *kw, const char* function_name, int kw_allowed);

/* DivInt[Py_ssize_t].proto */
static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t);

/* UnaryNegOverflows.proto */
#define __Pyx_UNARY_NEG_WOULD_OVERFLOW(x)\
        (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x)))

/* GetAttr3.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);

/* PyDictVersioning.proto */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
    (version_var) = __PYX_GET_DICT_VERSION(dict);\
    (cache_var) = (value);
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
        (VAR) = __pyx_dict_cached_value;\
    } else {\
        (VAR) = __pyx_dict_cached_value = (LOOKUP);\
        __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
    }\
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
#else
#define __PYX_GET_DICT_VERSION(dict)  (0)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
#endif

/* GetModuleGlobalName.proto */
#if CYTHON_USE_DICT_VERSIONS
#define __Pyx_GetModuleGlobalName(var, name)  do {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
        (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
        __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
} while(0)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  do {\
    PY_UINT64_T __pyx_dict_version;\
    PyObject *__pyx_dict_cached_value;\
    (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
} while(0)
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
#else
#define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
#endif

/* AssertionsEnabled.proto */
#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
  #define __Pyx_init_assertions_enabled()  (0)
  #define __pyx_assertions_enabled()  (1)
#elif CYTHON_COMPILING_IN_LIMITED_API  ||  (CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030C0000)
  static int __pyx_assertions_enabled_flag;
  #define __pyx_assertions_enabled() (__pyx_assertions_enabled_flag)
  static int __Pyx_init_assertions_enabled(void) {
    PyObject *builtins, *debug, *debug_str;
    int flag;
    builtins = PyEval_GetBuiltins();
    if (!builtins) goto bad;
    debug_str = PyUnicode_FromStringAndSize("__debug__", 9);
    if (!debug_str) goto bad;
    debug = PyObject_GetItem(builtins, debug_str);
    Py_DECREF(debug_str);
    if (!debug) goto bad;
    flag = PyObject_IsTrue(debug);
    Py_DECREF(debug);
    if (flag == -1) goto bad;
    __pyx_assertions_enabled_flag = flag;
    return 0;
  bad:
    __pyx_assertions_enabled_flag = 1;
    return -1;
  }
#else
  #define __Pyx_init_assertions_enabled()  (0)
  #define __pyx_assertions_enabled()  (!Py_OptimizeFlag)
#endif

/* RaiseTooManyValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

/* RaiseNeedMoreValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

/* RaiseNoneIterError.proto */
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);

/* ExtTypeTest.proto */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);

/* GetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* SwapException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSwap(type, value, tb)  __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* Import.proto */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);

/* ImportDottedModule.proto */
static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple);
#if PY_MAJOR_VERSION >= 3
static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple);
#endif

CYTHON_UNUSED static int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
/* ListCompAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len)) {
        Py_INCREF(x);
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
        L->ob_item[len] = x;
        #else
        PyList_SET_ITEM(list, len, x);
        #endif
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
#endif

/* PySequenceMultiply.proto */
#define __Pyx_PySequence_Multiply_Left(mul, seq)  __Pyx_PySequence_Multiply(seq, mul)
static CYTHON_INLINE PyObject* __Pyx_PySequence_Multiply(PyObject *seq, Py_ssize_t mul);

/* SetItemInt.proto */
#define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\
               __Pyx_SetItemInt_Generic(o, to_py_func(i), v)))
static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v);
static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v,
                                               int is_list, int wraparound, int boundscheck);

/* RaiseUnboundLocalError.proto */
static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);

/* DivInt[long].proto */
static CYTHON_INLINE long __Pyx_div_long(long, long);

/* PySequenceContains.proto */
static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
    int result = PySequence_Contains(seq, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* ImportFrom.proto */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);

/* HasAttr.proto */
#if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
#define __Pyx_HasAttr(o, n)  PyObject_HasAttrWithError(o, n)
#else
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);
#endif

/* ListAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
        Py_INCREF(x);
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
        L->ob_item[len] = x;
        #else
        PyList_SET_ITEM(list, len, x);
        #endif
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
#endif

/* PyObjectCall2Args.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);

/* PyObjectGetMethod.proto */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);

/* PyObjectCallMethod1.proto */
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg);

/* StringJoin.proto */
#if PY_MAJOR_VERSION < 3
#define __Pyx_PyString_Join __Pyx_PyBytes_Join
#define __Pyx_PyBaseString_Join(s, v) (PyUnicode_CheckExact(s) ? PyUnicode_Join(s, v) : __Pyx_PyBytes_Join(s, v))
#else
#define __Pyx_PyString_Join PyUnicode_Join
#define __Pyx_PyBaseString_Join PyUnicode_Join
#endif
static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values);

/* CIntToPyUnicode.proto */
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_size_t(size_t value, Py_ssize_t width, char padding_char, char format_char);

/* PyObjectCallNoArg.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);

/* WriteUnraisableException.proto */
static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback, int nogil);

/* PyDictContains.proto */
static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) {
    int result = PyDict_Contains(dict, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* DictGetItem.proto */
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
#define __Pyx_PyObject_Dict_GetItem(obj, name)\
    (likely(PyDict_CheckExact(obj)) ?\
     __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
#else
#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
#define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)
#endif

/* PyObjectFormatAndDecref.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f);
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f);

/* RaiseClosureNameError.proto */
static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname);

/* pep479.proto */
static void __Pyx_Generator_Replace_StopIteration(int in_async_gen);

/* decode_c_string_utf16.proto */
static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16(const char *s, Py_ssize_t size, const char *errors) {
    int byteorder = 0;
    return PyUnicode_DecodeUTF16(s, size, errors, &byteorder);
}
static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16LE(const char *s, Py_ssize_t size, const char *errors) {
    int byteorder = -1;
    return PyUnicode_DecodeUTF16(s, size, errors, &byteorder);
}
static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16BE(const char *s, Py_ssize_t size, const char *errors) {
    int byteorder = 1;
    return PyUnicode_DecodeUTF16(s, size, errors, &byteorder);
}

/* decode_c_string.proto */
static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
         const char* cstring, Py_ssize_t start, Py_ssize_t stop,
         const char* encoding, const char* errors,
         PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors));

/* py_dict_values.proto */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d);

/* UnpackUnboundCMethod.proto */
typedef struct {
    PyObject *type;
    PyObject **method_name;
    PyCFunction func;
    PyObject *method;
    int flag;
} __Pyx_CachedCFunction;

/* CallUnboundCMethod0.proto */
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CallUnboundCMethod0(cfunc, self)\
    (likely((cfunc)->func) ?\
        (likely((cfunc)->flag == METH_NOARGS) ?  (*((cfunc)->func))(self, NULL) :\
         (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\
            (PY_VERSION_HEX >= 0x030700A0 ?\
                (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\
                (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\
          (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\
            (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\
            (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ?  ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\
               ((cfunc)->flag == METH_VARARGS ?  (*((cfunc)->func))(self, __pyx_empty_tuple) :\
               __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\
        __Pyx__CallUnboundCMethod0(cfunc, self))
#else
#define __Pyx_CallUnboundCMethod0(cfunc, self)  __Pyx__CallUnboundCMethod0(cfunc, self)
#endif

/* PyObjectLookupSpecial.proto */
#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_LookupSpecialNoError(obj, attr_name)  __Pyx__PyObject_LookupSpecial(obj, attr_name, 0)
#define __Pyx_PyObject_LookupSpecial(obj, attr_name)  __Pyx__PyObject_LookupSpecial(obj, attr_name, 1)
static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error);
#else
#define __Pyx_PyObject_LookupSpecialNoError(o,n) __Pyx_PyObject_GetAttrStrNoError(o,n)
#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n)
#endif

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* PyIntCompare.proto */
static CYTHON_INLINE int __Pyx_PyInt_BoolEqObjC(PyObject *op1, PyObject *op2, long intval, long inplace);

/* SliceObject.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
        PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
        int has_cstart, int has_cstop, int wraparound);

/* IsLittleEndian.proto */
static CYTHON_INLINE int __Pyx_Is_Little_Endian(void);

/* BufferFormatCheck.proto */
static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts);
static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
                              __Pyx_BufFmt_StackElem* stack,
                              __Pyx_TypeInfo* type);

/* BufferGetAndValidate.proto */
#define __Pyx_GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)\
    ((obj == Py_None || obj == NULL) ?\
    (__Pyx_ZeroBuffer(buf), 0) :\
    __Pyx__GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack))
static int  __Pyx__GetBufferAndValidate(Py_buffer* buf, PyObject* obj,
    __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack);
static void __Pyx_ZeroBuffer(Py_buffer* buf);
static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info);
static Py_ssize_t __Pyx_minusones[] = { -1, -1, -1, -1, -1, -1, -1, -1 };
static Py_ssize_t __Pyx_zeros[] = { 0, 0, 0, 0, 0, 0, 0, 0 };

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_MultiplyCObj(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_MultiplyCObj(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceMultiply(op1, op2) : PyNumber_Multiply(op1, op2))
#endif

/* BufferFallbackError.proto */
static void __Pyx_RaiseBufferFallbackError(void);

/* BufferIndexError.proto */
static void __Pyx_RaiseBufferIndexError(int axis);

#define __Pyx_BufPtrCContig1d(type, buf, i0, s0) ((type)buf + i0)
/* IterFinish.proto */
static CYTHON_INLINE int __Pyx_IterFinish(void);

/* UnpackItemEndCheck.proto */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);

/* SliceObject.proto */
#define __Pyx_PyObject_DelSlice(obj, cstart, cstop, py_start, py_stop, py_slice, has_cstart, has_cstop, wraparound)\
    __Pyx_PyObject_SetSlice(obj, (PyObject*)NULL, cstart, cstop, py_start, py_stop, py_slice, has_cstart, has_cstop, wraparound)
static CYTHON_INLINE int __Pyx_PyObject_SetSlice(
        PyObject* obj, PyObject* value, Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
        int has_cstart, int has_cstop, int wraparound);

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_MultiplyObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_MultiplyObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceMultiply(op1, op2) : PyNumber_Multiply(op1, op2))
#endif

/* PyObjectSetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
#else
#define __Pyx_PyObject_DelAttrStr(o,n)   PyObject_DelAttr(o,n)
#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
#endif

/* Globals.proto */
static PyObject* __Pyx_Globals(void);

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_FloorDivideObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_FloorDivideObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceFloorDivide(op1, op2) : PyNumber_FloorDivide(op1, op2))
#endif

/* py_dict_keys.proto */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Keys(PyObject* d);

/* set_iter.proto */
static CYTHON_INLINE PyObject* __Pyx_set_iterator(PyObject* iterable, int is_set,
                                                  Py_ssize_t* p_orig_length, int* p_source_is_set);
static CYTHON_INLINE int __Pyx_set_iter_next(
        PyObject* iter_obj, Py_ssize_t orig_length,
        Py_ssize_t* ppos, PyObject **value,
        int source_is_set);

/* PyIntCompare.proto */
static CYTHON_INLINE int __Pyx_PyInt_BoolNeObjC(PyObject *op1, PyObject *op2, long intval, long inplace);

/* IncludeStructmemberH.proto */
#include <structmember.h>

/* FixUpExtensionType.proto */
#if CYTHON_USE_TYPE_SPECS
static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type);
#endif

/* FetchSharedCythonModule.proto */
static PyObject *__Pyx_FetchSharedCythonABIModule(void);

/* FetchCommonType.proto */
#if !CYTHON_USE_TYPE_SPECS
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);
#else
static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases);
#endif

/* PyMethodNew.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    PyObject *typesModule=NULL, *methodType=NULL, *result=NULL;
    CYTHON_UNUSED_VAR(typ);
    if (!self)
        return __Pyx_NewRef(func);
    typesModule = PyImport_ImportModule("types");
    if (!typesModule) return NULL;
    methodType = PyObject_GetAttrString(typesModule, "MethodType");
    Py_DECREF(typesModule);
    if (!methodType) return NULL;
    result = PyObject_CallFunctionObjArgs(methodType, func, self, NULL);
    Py_DECREF(methodType);
    return result;
}
#elif PY_MAJOR_VERSION >= 3
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    CYTHON_UNUSED_VAR(typ);
    if (!self)
        return __Pyx_NewRef(func);
    return PyMethod_New(func, self);
}
#else
    #define __Pyx_PyMethod_New PyMethod_New
#endif

/* PyVectorcallFastCallDict.proto */
#if CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw);
#endif

/* CythonFunctionShared.proto */
#define __Pyx_CyFunction_USED
#define __Pyx_CYFUNCTION_STATICMETHOD  0x01
#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
#define __Pyx_CYFUNCTION_CCLASS        0x04
#define __Pyx_CYFUNCTION_COROUTINE     0x08
#define __Pyx_CyFunction_GetClosure(f)\
    (((__pyx_CyFunctionObject *) (f))->func_closure)
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_CyFunction_GetClassObj(f)\
      (((__pyx_CyFunctionObject *) (f))->func_classobj)
#else
  #define __Pyx_CyFunction_GetClassObj(f)\
      ((PyObject*) ((PyCMethodObject *) (f))->mm_class)
#endif
#define __Pyx_CyFunction_SetClassObj(f, classobj)\
    __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (classobj))
#define __Pyx_CyFunction_Defaults(type, f)\
    ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
    ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
typedef struct {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject_HEAD
    PyObject *func;
#elif PY_VERSION_HEX < 0x030900B1
    PyCFunctionObject func;
#else
    PyCMethodObject func;
#endif
#if CYTHON_BACKPORT_VECTORCALL
    __pyx_vectorcallfunc func_vectorcall;
#endif
#if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_weakreflist;
#endif
    PyObject *func_dict;
    PyObject *func_name;
    PyObject *func_qualname;
    PyObject *func_doc;
    PyObject *func_globals;
    PyObject *func_code;
    PyObject *func_closure;
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_classobj;
#endif
    void *defaults;
    int defaults_pyobjects;
    size_t defaults_size;
    int flags;
    PyObject *defaults_tuple;
    PyObject *defaults_kwdict;
    PyObject *(*defaults_getter)(PyObject *);
    PyObject *func_annotations;
    PyObject *func_is_coroutine;
} __pyx_CyFunctionObject;
#undef __Pyx_CyOrPyCFunction_Check
#define __Pyx_CyFunction_Check(obj)  __Pyx_TypeCheck(obj, __pyx_CyFunctionType)
#define __Pyx_CyOrPyCFunction_Check(obj)  __Pyx_TypeCheck2(obj, __pyx_CyFunctionType, &PyCFunction_Type)
#define __Pyx_CyFunction_CheckExact(obj)  __Pyx_IS_TYPE(obj, __pyx_CyFunctionType)
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc);
#undef __Pyx_IsSameCFunction
#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCyOrCFunction(func, cfunc)
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);
static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj);
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m,
                                                         size_t size,
                                                         int pyobjects);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
                                                            PyObject *tuple);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
                                                             PyObject *dict);
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
                                                              PyObject *dict);
static int __pyx_CyFunction_init(PyObject *module);
#if CYTHON_METH_FASTCALL
static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
#if CYTHON_BACKPORT_VECTORCALL
#define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall)
#else
#define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall)
#endif
#endif

/* CythonFunction.proto */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);

/* PyObject_Str.proto */
#define __Pyx_PyObject_Str(obj)\
    (likely(PyString_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj))

/* PyObjectCallMethod0.proto */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);

/* UnpackTupleError.proto */
static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index);

/* UnpackTuple2.proto */
#define __Pyx_unpack_tuple2(tuple, value1, value2, is_tuple, has_known_size, decref_tuple)\
    (likely(is_tuple || PyTuple_Check(tuple)) ?\
        (likely(has_known_size || PyTuple_GET_SIZE(tuple) == 2) ?\
            __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple) :\
            (__Pyx_UnpackTupleError(tuple, 2), -1)) :\
        __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple))
static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
    PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple);
static int __Pyx_unpack_tuple2_generic(
    PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple);

/* dict_iter.proto */
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_is_dict);
static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos,
                                              PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict);

/* ListExtend.proto */
static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    PyObject* none = _PyList_Extend((PyListObject*)L, v);
    if (unlikely(!none))
        return -1;
    Py_DECREF(none);
    return 0;
#else
    return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v);
#endif
}

#define __Pyx_BufPtrStrided2d(type, buf, i0, s0, i1, s1) (type)((char*)buf + i0 * s0 + i1 * s1)
/* pop.proto */
static CYTHON_INLINE PyObject* __Pyx__PyObject_Pop(PyObject* L);
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE PyObject* __Pyx_PyList_Pop(PyObject* L);
#define __Pyx_PyObject_Pop(L) (likely(PyList_CheckExact(L)) ?\
    __Pyx_PyList_Pop(L) : __Pyx__PyObject_Pop(L))
#else
#define __Pyx_PyList_Pop(L)  __Pyx__PyObject_Pop(L)
#define __Pyx_PyObject_Pop(L)  __Pyx__PyObject_Pop(L)
#endif

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_SubtractCObj(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_SubtractCObj(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2))
#endif

/* PyIntFromDouble.proto */
#if PY_MAJOR_VERSION < 3
static CYTHON_INLINE PyObject* __Pyx_PyInt_FromDouble(double value);
#else
#define __Pyx_PyInt_FromDouble(value) PyLong_FromDouble(value)
#endif

/* unicode_tailmatch.proto */
static int __Pyx_PyUnicode_Tailmatch(
    PyObject* s, PyObject* substr, Py_ssize_t start, Py_ssize_t end, int direction);

/* PyUnicode_Unicode.proto */
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Unicode(PyObject *obj);

/* PyObject_GenericGetAttrNoDict.proto */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr
#endif

/* PyObject_GenericGetAttr.proto */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
#endif

/* ValidateBasesTuple.proto */
#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases);
#endif

/* PyType_Ready.proto */
CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t);

/* SetVTable.proto */
static int __Pyx_SetVtable(PyTypeObject* typeptr , void* vtable);

/* GetVTable.proto */
static void* __Pyx_GetVtable(PyTypeObject *type);

/* MergeVTables.proto */
#if !CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_MergeVtables(PyTypeObject *type);
#endif

/* SetupReduce.proto */
#if !CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_setup_reduce(PyObject* type_obj);
#endif

/* TypeImport.proto */
#ifndef __PYX_HAVE_RT_ImportType_proto_3_0_8
#define __PYX_HAVE_RT_ImportType_proto_3_0_8
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
#include <stdalign.h>
#endif
#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L
#define __PYX_GET_STRUCT_ALIGNMENT_3_0_8(s) alignof(s)
#else
#define __PYX_GET_STRUCT_ALIGNMENT_3_0_8(s) sizeof(void*)
#endif
enum __Pyx_ImportType_CheckSize_3_0_8 {
   __Pyx_ImportType_CheckSize_Error_3_0_8 = 0,
   __Pyx_ImportType_CheckSize_Warn_3_0_8 = 1,
   __Pyx_ImportType_CheckSize_Ignore_3_0_8 = 2
};
static PyTypeObject *__Pyx_ImportType_3_0_8(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_8 check_size);
#endif

/* SetNameInClass.proto */
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && PY_VERSION_HEX < 0x030d0000
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))
#elif CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value))
#else
#define __Pyx_SetNameInClass(ns, name, value)  PyObject_SetItem(ns, name, value)
#endif

/* CalculateMetaclass.proto */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);

/* Py3ClassCreate.proto */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
                                           PyObject *mkw, PyObject *modname, PyObject *doc);
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
                                      PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);

/* Py3UpdateBases.proto */
static PyObject* __Pyx_PEP560_update_bases(PyObject *bases);

/* CyFunctionClassCell.proto */
static int __Pyx_CyFunction_InitClassCell(PyObject *cyfunctions, PyObject *classobj);

/* CLineInTraceback.proto */
#ifdef CYTHON_CLINE_IN_TRACEBACK
#define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
#else
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
#endif

/* CodeObjectCache.proto */
#if !CYTHON_COMPILING_IN_LIMITED_API
typedef struct {
    PyCodeObject* code_object;
    int code_line;
} __Pyx_CodeObjectCacheEntry;
struct __Pyx_CodeObjectCache {
    int count;
    int max_count;
    __Pyx_CodeObjectCacheEntry* entries;
};
static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
static PyCodeObject *__pyx_find_code_object(int code_line);
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
#endif

/* AddTraceback.proto */
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename);

#if PY_MAJOR_VERSION < 3
    static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags);
    static void __Pyx_ReleaseBuffer(Py_buffer *view);
#else
    #define __Pyx_GetBuffer PyObject_GetBuffer
    #define __Pyx_ReleaseBuffer PyBuffer_Release
#endif


/* BufferStructDeclare.proto */
typedef struct {
  Py_ssize_t shape, strides, suboffsets;
} __Pyx_Buf_DimInfo;
typedef struct {
  size_t refcount;
  Py_buffer pybuffer;
} __Pyx_Buffer;
typedef struct {
  __Pyx_Buffer *rcbuffer;
  char *data;
  __Pyx_Buf_DimInfo diminfo[8];
} __Pyx_LocalBuf_ND;

/* MemviewSliceIsContig.proto */
static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim);

/* OverlappingSlices.proto */
static int __pyx_slices_overlap(__Pyx_memviewslice *slice1,
                                __Pyx_memviewslice *slice2,
                                int ndim, size_t itemsize);

/* TypeInfoCompare.proto */
static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b);

/* MemviewSliceValidateAndInit.proto */
static int __Pyx_ValidateAndInit_memviewslice(
                int *axes_specs,
                int c_or_f_flag,
                int buf_flags,
                int ndim,
                __Pyx_TypeInfo *dtype,
                __Pyx_BufFmt_StackElem stack[],
                __Pyx_memviewslice *memviewslice,
                PyObject *original_obj);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyObject *, int writable_flag);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_char(PyObject *, int writable_flag);

/* MemviewDtypeToObject.proto */
static CYTHON_INLINE PyObject *__pyx_memview_get_char(const char *itemp);
static CYTHON_INLINE int __pyx_memview_set_char(const char *itemp, PyObject *obj);

/* MemviewDtypeToObject.proto */
static CYTHON_INLINE PyObject *__pyx_memview_get_double(const char *itemp);
static CYTHON_INLINE int __pyx_memview_set_double(const char *itemp, PyObject *obj);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_float(PyObject *, int writable_flag);

/* MemviewDtypeToObject.proto */
static CYTHON_INLINE PyObject *__pyx_memview_get_float(const char *itemp);
static CYTHON_INLINE int __pyx_memview_set_float(const char *itemp, PyObject *obj);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_int(PyObject *, int writable_flag);

/* MemviewDtypeToObject.proto */
static CYTHON_INLINE PyObject *__pyx_memview_get_int(const char *itemp);
static CYTHON_INLINE int __pyx_memview_set_int(const char *itemp, PyObject *obj);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_nn_mjtByte(PyObject *, int writable_flag);

/* MemviewDtypeToObject.proto */
static CYTHON_INLINE PyObject *__pyx_memview_get_nn_mjtByte(const char *itemp);
static CYTHON_INLINE int __pyx_memview_set_nn_mjtByte(const char *itemp, PyObject *obj);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_nn_mjtNum(PyObject *, int writable_flag);

/* MemviewDtypeToObject.proto */
static CYTHON_INLINE PyObject *__pyx_memview_get_nn_mjtNum(const char *itemp);
static CYTHON_INLINE int __pyx_memview_set_nn_mjtNum(const char *itemp, PyObject *obj);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_unsigned_int(PyObject *, int writable_flag);

/* MemviewDtypeToObject.proto */
static CYTHON_INLINE PyObject *__pyx_memview_get_unsigned_int(const char *itemp);
static CYTHON_INLINE int __pyx_memview_set_unsigned_int(const char *itemp, PyObject *obj);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_char(PyObject *, int writable_flag);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_double(PyObject *, int writable_flag);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_float(PyObject *, int writable_flag);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_int(PyObject *, int writable_flag);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_mjtByte(PyObject *, int writable_flag);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_mjtNum(PyObject *, int writable_flag);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn_mjtNum(PyObject *, int writable_flag);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn_mjtByte(PyObject *, int writable_flag);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_unsigned_char(PyObject *, int writable_flag);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_float(PyObject *, int writable_flag);

/* ObjectToMemviewSlice.proto */
static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_unsigned_short(PyObject *, int writable_flag);

/* RealImag.proto */
#if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    #define __Pyx_CREAL(z) ((z).real())
    #define __Pyx_CIMAG(z) ((z).imag())
  #else
    #define __Pyx_CREAL(z) (__real__(z))
    #define __Pyx_CIMAG(z) (__imag__(z))
  #endif
#else
    #define __Pyx_CREAL(z) ((z).real)
    #define __Pyx_CIMAG(z) ((z).imag)
#endif
#if defined(__cplusplus) && CYTHON_CCOMPLEX\
        && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103)
    #define __Pyx_SET_CREAL(z,x) ((z).real(x))
    #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
#else
    #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
    #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
#endif

/* Arithmetic.proto */
#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
    #define __Pyx_c_eq_float(a, b)   ((a)==(b))
    #define __Pyx_c_sum_float(a, b)  ((a)+(b))
    #define __Pyx_c_diff_float(a, b) ((a)-(b))
    #define __Pyx_c_prod_float(a, b) ((a)*(b))
    #define __Pyx_c_quot_float(a, b) ((a)/(b))
    #define __Pyx_c_neg_float(a)     (-(a))
  #ifdef __cplusplus
    #define __Pyx_c_is_zero_float(z) ((z)==(float)0)
    #define __Pyx_c_conj_float(z)    (::std::conj(z))
    #if 1
        #define __Pyx_c_abs_float(z)     (::std::abs(z))
        #define __Pyx_c_pow_float(a, b)  (::std::pow(a, b))
    #endif
  #else
    #define __Pyx_c_is_zero_float(z) ((z)==0)
    #define __Pyx_c_conj_float(z)    (conjf(z))
    #if 1
        #define __Pyx_c_abs_float(z)     (cabsf(z))
        #define __Pyx_c_pow_float(a, b)  (cpowf(a, b))
    #endif
 #endif
#else
    static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);
    static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);
    #if 1
        static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex);
        static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);
    #endif
#endif

/* Arithmetic.proto */
#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
    #define __Pyx_c_eq_double(a, b)   ((a)==(b))
    #define __Pyx_c_sum_double(a, b)  ((a)+(b))
    #define __Pyx_c_diff_double(a, b) ((a)-(b))
    #define __Pyx_c_prod_double(a, b) ((a)*(b))
    #define __Pyx_c_quot_double(a, b) ((a)/(b))
    #define __Pyx_c_neg_double(a)     (-(a))
  #ifdef __cplusplus
    #define __Pyx_c_is_zero_double(z) ((z)==(double)0)
    #define __Pyx_c_conj_double(z)    (::std::conj(z))
    #if 1
        #define __Pyx_c_abs_double(z)     (::std::abs(z))
        #define __Pyx_c_pow_double(a, b)  (::std::pow(a, b))
    #endif
  #else
    #define __Pyx_c_is_zero_double(z) ((z)==0)
    #define __Pyx_c_conj_double(z)    (conj(z))
    #if 1
        #define __Pyx_c_abs_double(z)     (cabs(z))
        #define __Pyx_c_pow_double(a, b)  (cpow(a, b))
    #endif
 #endif
#else
    static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);
    static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);
    #if 1
        static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex);
        static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);
    #endif
#endif

/* Arithmetic.proto */
#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
    #define __Pyx_c_eq_long__double(a, b)   ((a)==(b))
    #define __Pyx_c_sum_long__double(a, b)  ((a)+(b))
    #define __Pyx_c_diff_long__double(a, b) ((a)-(b))
    #define __Pyx_c_prod_long__double(a, b) ((a)*(b))
    #define __Pyx_c_quot_long__double(a, b) ((a)/(b))
    #define __Pyx_c_neg_long__double(a)     (-(a))
  #ifdef __cplusplus
    #define __Pyx_c_is_zero_long__double(z) ((z)==(long double)0)
    #define __Pyx_c_conj_long__double(z)    (::std::conj(z))
    #if 1
        #define __Pyx_c_abs_long__double(z)     (::std::abs(z))
        #define __Pyx_c_pow_long__double(a, b)  (::std::pow(a, b))
    #endif
  #else
    #define __Pyx_c_is_zero_long__double(z) ((z)==0)
    #define __Pyx_c_conj_long__double(z)    (conjl(z))
    #if 1
        #define __Pyx_c_abs_long__double(z)     (cabsl(z))
        #define __Pyx_c_pow_long__double(a, b)  (cpowl(a, b))
    #endif
 #endif
#else
    static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex);
    static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex);
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex);
    #if 1
        static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex);
        static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    #endif
#endif

/* MemviewSliceCopyTemplate.proto */
static __Pyx_memviewslice
__pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs,
                                 const char *mode, int ndim,
                                 size_t sizeof_dtype, int contig_flag,
                                 int dtype_is_object);

/* MemviewSliceInit.proto */
#define __Pyx_BUF_MAX_NDIMS %(BUF_MAX_NDIMS)d
#define __Pyx_MEMVIEW_DIRECT   1
#define __Pyx_MEMVIEW_PTR      2
#define __Pyx_MEMVIEW_FULL     4
#define __Pyx_MEMVIEW_CONTIG   8
#define __Pyx_MEMVIEW_STRIDED  16
#define __Pyx_MEMVIEW_FOLLOW   32
#define __Pyx_IS_C_CONTIG 1
#define __Pyx_IS_F_CONTIG 2
static int __Pyx_init_memviewslice(
                struct __pyx_memoryview_obj *memview,
                int ndim,
                __Pyx_memviewslice *memviewslice,
                int memview_is_new_reference);
static CYTHON_INLINE int __pyx_add_acquisition_count_locked(
    __pyx_atomic_int_type *acquisition_count, PyThread_type_lock lock);
static CYTHON_INLINE int __pyx_sub_acquisition_count_locked(
    __pyx_atomic_int_type *acquisition_count, PyThread_type_lock lock);
#define __pyx_get_slice_count_pointer(memview) (&memview->acquisition_count)
#define __PYX_INC_MEMVIEW(slice, have_gil) __Pyx_INC_MEMVIEW(slice, have_gil, __LINE__)
#define __PYX_XCLEAR_MEMVIEW(slice, have_gil) __Pyx_XCLEAR_MEMVIEW(slice, have_gil, __LINE__)
static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *, int, int);
static CYTHON_INLINE void __Pyx_XCLEAR_MEMVIEW(__Pyx_memviewslice *, int, int);

/* CIntFromPy.proto */
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE mjtByte __Pyx_PyInt_As_mjtByte(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_mjtJoint(mjtJoint value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From___pyx_anon_enum(int value);

/* CIntFromPy.proto */
static CYTHON_INLINE int __Pyx_PyInt_As___pyx_anon_enum(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);

/* TypeInfoToFormat.proto */
struct __pyx_typeinfo_string {
    char string[3];
};
static struct __pyx_typeinfo_string __Pyx_TypeInfoToFormat(__Pyx_TypeInfo *type);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_mjtByte(mjtByte value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_char(char value);

/* CIntFromPy.proto */
static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA value);

/* FormatTypeName.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
typedef PyObject *__Pyx_TypeName;
#define __Pyx_FMT_TYPENAME "%U"
static __Pyx_TypeName __Pyx_PyType_GetName(PyTypeObject* tp);
#define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj)
#else
typedef const char *__Pyx_TypeName;
#define __Pyx_FMT_TYPENAME "%.200s"
#define __Pyx_PyType_GetName(tp) ((tp)->tp_name)
#define __Pyx_DECREF_TypeName(obj)
#endif

/* CoroutineBase.proto */
struct __pyx_CoroutineObject;
typedef PyObject *(*__pyx_coroutine_body_t)(struct __pyx_CoroutineObject *, PyThreadState *, PyObject *);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_ExcInfoStruct  _PyErr_StackItem
#else
typedef struct {
    PyObject *exc_type;
    PyObject *exc_value;
    PyObject *exc_traceback;
} __Pyx_ExcInfoStruct;
#endif
typedef struct __pyx_CoroutineObject {
    PyObject_HEAD
    __pyx_coroutine_body_t body;
    PyObject *closure;
    __Pyx_ExcInfoStruct gi_exc_state;
    PyObject *gi_weakreflist;
    PyObject *classobj;
    PyObject *yieldfrom;
    PyObject *gi_name;
    PyObject *gi_qualname;
    PyObject *gi_modulename;
    PyObject *gi_code;
    PyObject *gi_frame;
    int resume_label;
    char is_running;
} __pyx_CoroutineObject;
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
    PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
    PyObject *name, PyObject *qualname, PyObject *module_name);
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name);
static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *self);
static int __Pyx_Coroutine_clear(PyObject *self);
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value);
static PyObject *__Pyx_Coroutine_Close(PyObject *self);
static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_Coroutine_SwapException(self)
#define __Pyx_Coroutine_ResetAndClearException(self)  __Pyx_Coroutine_ExceptionClear(&(self)->gi_exc_state)
#else
#define __Pyx_Coroutine_SwapException(self) {\
    __Pyx_ExceptionSwap(&(self)->gi_exc_state.exc_type, &(self)->gi_exc_state.exc_value, &(self)->gi_exc_state.exc_traceback);\
    __Pyx_Coroutine_ResetFrameBackpointer(&(self)->gi_exc_state);\
    }
#define __Pyx_Coroutine_ResetAndClearException(self) {\
    __Pyx_ExceptionReset((self)->gi_exc_state.exc_type, (self)->gi_exc_state.exc_value, (self)->gi_exc_state.exc_traceback);\
    (self)->gi_exc_state.exc_type = (self)->gi_exc_state.exc_value = (self)->gi_exc_state.exc_traceback = NULL;\
    }
#endif
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__pyx_tstate, pvalue)
#else
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, pvalue)
#endif
static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue);
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state);

/* PatchModuleWithCoroutine.proto */
static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code);

/* PatchGeneratorABC.proto */
static int __Pyx_patch_abc(void);

/* Generator.proto */
#define __Pyx_Generator_USED
#define __Pyx_Generator_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_GeneratorType)
#define __Pyx_Generator_New(body, code, closure, name, qualname, module_name)\
    __Pyx__Coroutine_New(__pyx_GeneratorType, body, code, closure, name, qualname, module_name)
static PyObject *__Pyx_Generator_Next(PyObject *self);
static int __pyx_Generator_init(PyObject *module);

/* CheckBinaryVersion.proto */
static unsigned long __Pyx_get_runtime_version(void);
static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer);

/* InitStrings.proto */
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);

/* #### Code section: module_declarations ### */
static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self); /* proto*/
static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto*/
static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj); /* proto*/
static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src); /* proto*/
static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value); /* proto*/
static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto*/
static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/
static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/
static PyObject *__pyx_memoryview__get_base(struct __pyx_memoryview_obj *__pyx_v_self); /* proto*/
static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/
static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/
static PyObject *__pyx_memoryviewslice__get_base(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto*/
static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_Descr *__pyx_v_self); /* proto*/
static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment_alignment(PyArray_Descr *__pyx_v_self); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Descr *__pyx_v_self); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr *__pyx_v_self); /* proto*/
static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray_subarray(PyArray_Descr *__pyx_v_self); /* proto*/
static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags_flags(PyArray_Descr *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter_numiter(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size_size(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index_index(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd_nd(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions_dimensions(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters_iters(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArrayObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__pyx_v_self); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_9PyMjLROpt__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjLROpt *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_7PyMjVFS__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self, mjVFS *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_10PyMjOption__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjOption *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_10PyMjVisual__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self, mjVisual *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_18PyMjVisual_global___set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, struct __pyx_t_9mujoco_py_4cymj_mjVisual_global_ *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_18PyMjVisual_quality__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self, struct __pyx_t_9mujoco_py_4cymj_mjVisual_quality *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_20PyMjVisual_headlight__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self, struct __pyx_t_9mujoco_py_4cymj_mjVisual_headlight *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_14PyMjVisual_map__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, struct __pyx_t_9mujoco_py_4cymj_mjVisual_map *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_16PyMjVisual_scale__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, struct __pyx_t_9mujoco_py_4cymj_mjVisual_scale *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_15PyMjVisual_rgba__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self, struct __pyx_t_9mujoco_py_4cymj_mjVisual_rgba *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_13PyMjStatistic__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self, mjStatistic *__pyx_v_p); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_9mujoco_py_4cymj_9PyMjModel__extract_mj_names(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, mjModel *__pyx_v_p, int *__pyx_v_name_adr, int __pyx_v_n, mjtObj __pyx_v_obj_type); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_9PyMjModel__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, mjModel *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_11PyMjContact__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, mjContact *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_15PyMjWarningStat__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self, mjWarningStat *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_13PyMjTimerStat__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self, mjTimerStat *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_14PyMjSolverStat__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, mjSolverStat *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_8PyMjData__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, mjData *__pyx_v_p, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_model); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_12PyMjvPerturb__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self, mjvPerturb *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_11PyMjvCamera__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, mjvCamera *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_13PyMjvGLCamera__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self, mjvGLCamera *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_9PyMjvGeom__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, mjvGeom *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_10PyMjvLight__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self, mjvLight *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_11PyMjvOption__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self, mjvOption *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_10PyMjvScene__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, mjvScene *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_11PyMjvFigure__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, mjvFigure *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_9PyMjrRect__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self, mjrRect *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_12PyMjrContext__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, mjrContext *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_11PyMjuiState__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, mjuiState *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_18PyMjuiThemeSpacing__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, mjuiThemeSpacing *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_16PyMjuiThemeColor__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self, mjuiThemeColor *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_10PyMjuiItem__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self, mjuiItem *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_13PyMjuiSection__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self, mjuiSection *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_6PyMjUI__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, mjUI *__pyx_v_p); /* proto*/
static void __pyx_f_9mujoco_py_4cymj_9PyMjuiDef__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self, mjuiDef *__pyx_v_p); /* proto*/
static PyObject *__pyx_f_9mujoco_py_4cymj_5MjSim_substep_callback(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/

/* Module declarations from "libc.string" */

/* Module declarations from "libc.stdlib" */

/* Module declarations from "cython.view" */
static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/

/* Module declarations from "cython.dataclasses" */

/* Module declarations from "cython" */

/* Module declarations from "libc.stdint" */

/* Module declarations from "cpython.mem" */

/* Module declarations from "libc.stdio" */

/* Module declarations from "__builtin__" */

/* Module declarations from "cpython.type" */

/* Module declarations from "cpython" */

/* Module declarations from "cpython.object" */

/* Module declarations from "cpython.ref" */

/* Module declarations from "numpy" */

/* Module declarations from "numpy" */

/* Module declarations from "libc.math" */

/* Module declarations from "mujoco_py.cymj" */
static int __pyx_v_9mujoco_py_4cymj_CONTROLLER_TYPE_PI_CASCADE;
static PyObject *__pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT = 0;
static PyObject *__pyx_v_9mujoco_py_4cymj_py_warning_callback = 0;
static PyObject *__pyx_v_9mujoco_py_4cymj_py_error_callback = 0;
static PyObject *__pyx_v_9mujoco_py_4cymj_py_warning_exception = 0;
static PyObject *__pyx_v_9mujoco_py_4cymj_py_error_exception = 0;
static PyObject *__pyx_collections_abc_Sequence = 0;
static PyObject *generic = 0;
static PyObject *strided = 0;
static PyObject *indirect = 0;
static PyObject *contiguous = 0;
static PyObject *indirect_contiguous = 0;
static int __pyx_memoryview_thread_locks_used;
static PyThread_type_lock __pyx_memoryview_thread_locks[8];
static struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_f_9mujoco_py_4cymj_WrapMjOption(mjOption *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_f_9mujoco_py_4cymj_WrapMjVisual(mjVisual *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_f_9mujoco_py_4cymj_WrapMjVisual_global_(struct __pyx_t_9mujoco_py_4cymj_mjVisual_global_ *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_f_9mujoco_py_4cymj_WrapMjVisual_quality(struct __pyx_t_9mujoco_py_4cymj_mjVisual_quality *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_f_9mujoco_py_4cymj_WrapMjVisual_headlight(struct __pyx_t_9mujoco_py_4cymj_mjVisual_headlight *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_f_9mujoco_py_4cymj_WrapMjVisual_map(struct __pyx_t_9mujoco_py_4cymj_mjVisual_map *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_f_9mujoco_py_4cymj_WrapMjVisual_scale(struct __pyx_t_9mujoco_py_4cymj_mjVisual_scale *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_f_9mujoco_py_4cymj_WrapMjVisual_rgba(struct __pyx_t_9mujoco_py_4cymj_mjVisual_rgba *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_f_9mujoco_py_4cymj_WrapMjStatistic(mjStatistic *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_f_9mujoco_py_4cymj_WrapMjModel(mjModel *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_f_9mujoco_py_4cymj_WrapMjContact(mjContact *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_f_9mujoco_py_4cymj_WrapMjWarningStat(mjWarningStat *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_f_9mujoco_py_4cymj_WrapMjTimerStat(mjTimerStat *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_f_9mujoco_py_4cymj_WrapMjSolverStat(mjSolverStat *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_f_9mujoco_py_4cymj_WrapMjData(mjData *, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_f_9mujoco_py_4cymj_WrapMjvPerturb(mjvPerturb *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_f_9mujoco_py_4cymj_WrapMjvCamera(mjvCamera *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_f_9mujoco_py_4cymj_WrapMjvGLCamera(mjvGLCamera *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_f_9mujoco_py_4cymj_WrapMjvGeom(mjvGeom *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_f_9mujoco_py_4cymj_WrapMjvLight(mjvLight *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_f_9mujoco_py_4cymj_WrapMjvOption(mjvOption *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_f_9mujoco_py_4cymj_WrapMjvScene(mjvScene *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_f_9mujoco_py_4cymj_WrapMjrRect(mjrRect *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_f_9mujoco_py_4cymj_WrapMjrContext(mjrContext *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_f_9mujoco_py_4cymj_WrapMjuiThemeSpacing(mjuiThemeSpacing *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_f_9mujoco_py_4cymj_WrapMjuiThemeColor(mjuiThemeColor *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_f_9mujoco_py_4cymj_WrapMjuiItem(mjuiItem *); /*proto*/
static struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_f_9mujoco_py_4cymj_WrapMjuiSection(mjuiSection *); /*proto*/
static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_char_1d(char *, int); /*proto*/
static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_float_1d(float *, int); /*proto*/
static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_int_1d(int *, int); /*proto*/
static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(mjtByte *, int); /*proto*/
static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(mjtNum *, int); /*proto*/
static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_unsigned_int_1d(unsigned int *, int); /*proto*/
static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_char_2d(char *, int, int); /*proto*/
static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_float_2d(float *, int, int); /*proto*/
static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_int_2d(int *, int, int); /*proto*/
static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(mjtNum *, int, int); /*proto*/
static mjtNum __pyx_f_9mujoco_py_4cymj_c_zero_gains(mjModel const *, mjData const *, int); /*proto*/
static struct __pyx_t_9mujoco_py_4cymj_PIDOutput __pyx_f_9mujoco_py_4cymj__pid(struct __pyx_t_9mujoco_py_4cymj_PIDParameters); /*proto*/
static mjtNum __pyx_f_9mujoco_py_4cymj_c_pid_bias(mjModel const *, mjData const *, int); /*proto*/
static mjtNum __pyx_f_9mujoco_py_4cymj_c_pi_cascade_bias(mjModel const *, mjData const *, int); /*proto*/
static mjtNum __pyx_f_9mujoco_py_4cymj_c_custom_bias(mjModel const *, mjData const *, int); /*proto*/
static void __pyx_f_9mujoco_py_4cymj_c_warning_callback(char const *); /*proto*/
static void __pyx_f_9mujoco_py_4cymj_c_error_callback(char const *); /*proto*/
static int __Pyx_carray_from_py_float(PyObject *, float *, Py_ssize_t); /*proto*/
static int __pyx_array_allocate_buffer(struct __pyx_array_obj *); /*proto*/
static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/
static PyObject *__pyx_memoryview_new(PyObject *, int, int, __Pyx_TypeInfo *); /*proto*/
static CYTHON_INLINE int __pyx_memoryview_check(PyObject *); /*proto*/
static PyObject *_unellipsify(PyObject *, int); /*proto*/
static int assert_direct_dimensions(Py_ssize_t *, int); /*proto*/
static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *, PyObject *); /*proto*/
static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int, int); /*proto*/
static char *__pyx_pybuffer_index(Py_buffer *, char *, Py_ssize_t, Py_ssize_t); /*proto*/
static int __pyx_memslice_transpose(__Pyx_memviewslice *); /*proto*/
static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice, int, PyObject *(*)(char *), int (*)(char *, PyObject *), int); /*proto*/
static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/
static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/
static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *); /*proto*/
static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/
static Py_ssize_t abs_py_ssize_t(Py_ssize_t); /*proto*/
static char __pyx_get_best_slice_order(__Pyx_memviewslice *, int); /*proto*/
static void _copy_strided_to_strided(char *, Py_ssize_t *, char *, Py_ssize_t *, Py_ssize_t *, Py_ssize_t *, int, size_t); /*proto*/
static void copy_strided_to_strided(__Pyx_memviewslice *, __Pyx_memviewslice *, int, size_t); /*proto*/
static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *, int); /*proto*/
static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *, Py_ssize_t *, Py_ssize_t, int, char); /*proto*/
static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *, __Pyx_memviewslice *, char, int); /*proto*/
static int __pyx_memoryview_err_extents(int, Py_ssize_t, Py_ssize_t); /*proto*/
static int __pyx_memoryview_err_dim(PyObject *, PyObject *, int); /*proto*/
static int __pyx_memoryview_err(PyObject *, PyObject *); /*proto*/
static int __pyx_memoryview_err_no_memory(void); /*proto*/
static int __pyx_memoryview_copy_contents(__Pyx_memviewslice, __Pyx_memviewslice, int, int, int); /*proto*/
static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *, int, int); /*proto*/
static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *, int, int, int); /*proto*/
static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/
static void __pyx_memoryview_refcount_objects_in_slice(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/
static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *, int, size_t, void *, int); /*proto*/
static void __pyx_memoryview__slice_assign_scalar(char *, Py_ssize_t *, Py_ssize_t *, int, size_t, void *); /*proto*/
static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *, PyObject *); /*proto*/
static PyObject *__pyx_format_from_typeinfo(__Pyx_TypeInfo *); /*proto*/
/* #### Code section: typeinfo ### */
static __Pyx_TypeInfo __Pyx_TypeInfo_double = { "double", NULL, sizeof(double), { 0 }, 0, 'R', 0, 0 };
static __Pyx_TypeInfo __Pyx_TypeInfo_char = { "char", NULL, sizeof(char), { 0 }, 0, 'H', __PYX_IS_UNSIGNED(char), 0 };
static __Pyx_TypeInfo __Pyx_TypeInfo_float = { "float", NULL, sizeof(float), { 0 }, 0, 'R', 0, 0 };
static __Pyx_TypeInfo __Pyx_TypeInfo_int = { "int", NULL, sizeof(int), { 0 }, 0, __PYX_IS_UNSIGNED(int) ? 'U' : 'I', __PYX_IS_UNSIGNED(int), 0 };
static __Pyx_TypeInfo __Pyx_TypeInfo_nn_mjtByte = { "mjtByte", NULL, sizeof(mjtByte), { 0 }, 0, __PYX_IS_UNSIGNED(mjtByte) ? 'U' : 'I', __PYX_IS_UNSIGNED(mjtByte), 0 };
static __Pyx_TypeInfo __Pyx_TypeInfo_nn_mjtNum = { "mjtNum", NULL, sizeof(mjtNum), { 0 }, 0, 'R', 0, 0 };
static __Pyx_TypeInfo __Pyx_TypeInfo_unsigned_int = { "unsigned int", NULL, sizeof(unsigned int), { 0 }, 0, __PYX_IS_UNSIGNED(unsigned int) ? 'U' : 'I', __PYX_IS_UNSIGNED(unsigned int), 0 };
static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t = { "float64_t", NULL, sizeof(__pyx_t_5numpy_float64_t), { 0 }, 0, 'R', 0, 0 };
static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t = { "uint8_t", NULL, sizeof(__pyx_t_5numpy_uint8_t), { 0 }, 0, __PYX_IS_UNSIGNED(__pyx_t_5numpy_uint8_t) ? 'U' : 'I', __PYX_IS_UNSIGNED(__pyx_t_5numpy_uint8_t), 0 };
static __Pyx_TypeInfo __Pyx_TypeInfo_nn_npy_uint32 = { "npy_uint32", NULL, sizeof(npy_uint32), { 0 }, 0, __PYX_IS_UNSIGNED(npy_uint32) ? 'U' : 'I', __PYX_IS_UNSIGNED(npy_uint32), 0 };
static __Pyx_TypeInfo __Pyx_TypeInfo_nn_npy_int32 = { "npy_int32", NULL, sizeof(npy_int32), { 0 }, 0, __PYX_IS_UNSIGNED(npy_int32) ? 'U' : 'I', __PYX_IS_UNSIGNED(npy_int32), 0 };
static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t = { "float32_t", NULL, sizeof(__pyx_t_5numpy_float32_t), { 0 }, 0, 'R', 0, 0 };
static __Pyx_TypeInfo __Pyx_TypeInfo_unsigned_char = { "unsigned char", NULL, sizeof(unsigned char), { 0 }, 0, __PYX_IS_UNSIGNED(unsigned char) ? 'U' : 'I', __PYX_IS_UNSIGNED(unsigned char), 0 };
static __Pyx_TypeInfo __Pyx_TypeInfo_unsigned_short = { "unsigned short", NULL, sizeof(unsigned short), { 0 }, 0, __PYX_IS_UNSIGNED(unsigned short) ? 'U' : 'I', __PYX_IS_UNSIGNED(unsigned short), 0 };
/* #### Code section: before_global_var ### */
#define __Pyx_MODULE_NAME "mujoco_py.cymj"
extern int __pyx_module_is_main_mujoco_py__cymj;
int __pyx_module_is_main_mujoco_py__cymj = 0;

/* Implementation of "mujoco_py.cymj" */
/* #### Code section: global_var ### */
static PyObject *__pyx_builtin_ImportError;
static PyObject *__pyx_builtin_RuntimeError;
static PyObject *__pyx_builtin_staticmethod;
static PyObject *__pyx_builtin_property;
static PyObject *__pyx_builtin_object;
static PyObject *__pyx_builtin_TypeError;
static PyObject *__pyx_builtin_MemoryError;
static PyObject *__pyx_builtin_ValueError;
static PyObject *__pyx_builtin_range;
static PyObject *__pyx_builtin_AssertionError;
static PyObject *__pyx_builtin_open;
static PyObject *__pyx_builtin_enumerate;
static PyObject *__pyx_builtin_NotImplementedError;
static PyObject *__pyx_builtin_print;
static PyObject *__pyx_builtin_map;
static PyObject *__pyx_builtin_NotImplemented;
static PyObject *__pyx_builtin_super;
static PyObject *__pyx_builtin_OverflowError;
static PyObject *__pyx_builtin_IndexError;
static PyObject *__pyx_builtin___import__;
static PyObject *__pyx_builtin_Ellipsis;
static PyObject *__pyx_builtin_id;
/* #### Code section: string_decls ### */
static const char __pyx_k_[] = ": ";
static const char __pyx_k_M[] = "M";
static const char __pyx_k_N[] = "N";
static const char __pyx_k_O[] = "O";
static const char __pyx_k_T[] = "T{";
  static const char __pyx_k_a[] = "a";
  static const char __pyx_k_b[] = "b";
  static const char __pyx_k_c[] = "c";
  static const char __pyx_k_d[] = "d";
  static const char __pyx_k_f[] = "f";
  static const char __pyx_k_g[] = "g";
  static const char __pyx_k_i[] = "i";
  static const char __pyx_k_k[] = "k";
  static const char __pyx_k_m[] = "m";
  static const char __pyx_k_n[] = "n";
  static const char __pyx_k_v[] = "v";
  static const char __pyx_k_x[] = "x";
  static const char __pyx_k_y[] = "y";
  static const char __pyx_k_Kp[] = "Kp";
  static const char __pyx_k_Kv[] = "Kv";
  static const char __pyx_k__2[] = ".";
  static const char __pyx_k__3[] = "*";
  static const char __pyx_k__6[] = "'";
  static const char __pyx_k__7[] = ")";
  static const char __pyx_k__9[] = "^";
  static const char __pyx_k_a0[] = "a0";
  static const char __pyx_k_a1[] = "a1";
  static const char __pyx_k_a2[] = "a2";
  static const char __pyx_k_b0[] = "b0";
  static const char __pyx_k_b1[] = "b1";
  static const char __pyx_k_b2[] = "b2";
  static const char __pyx_k_c1[] = "c1";
  static const char __pyx_k_c2[] = "c2";
  static const char __pyx_k_dt[] = "dt";
  static const char __pyx_k_eq[] = "__eq__";
  static const char __pyx_k_fp[] = "fp";
  static const char __pyx_k_gc[] = "gc";
  static const char __pyx_k_id[] = "id";
  static const char __pyx_k_mu[] = "mu";
  static const char __pyx_k_nM[] = "nM";
  static const char __pyx_k_na[] = "na";
  static const char __pyx_k_nc[] = "nc";
  static const char __pyx_k_ne[] = "ne";
  static const char __pyx_k_np[] = "np";
  static const char __pyx_k_nq[] = "nq";
  static const char __pyx_k_nr[] = "nr";
  static const char __pyx_k_nu[] = "nu";
  static const char __pyx_k_nv[] = "nv";
  static const char __pyx_k_os[] = "os";
  static const char __pyx_k_qa[] = "qa";
  static const char __pyx_k_qb[] = "qb";
  static const char __pyx_k_r1[] = "r1";
  static const char __pyx_k_r2[] = "r2";
  static const char __pyx_k_rb[] = "rb";
  static const char __pyx_k_td[] = "td";
  static const char __pyx_k_ui[] = "ui";
  static const char __pyx_k_up[] = "up";
  static const char __pyx_k_wb[] = "wb";
  static const char __pyx_k__10[] = "";
  static const char __pyx_k__11[] = ":";
static const char __pyx_k__12[] = "}";
static const char __pyx_k__13[] = "(";
static const char __pyx_k__14[] = ",";
static const char __pyx_k__34[] = "{}:{}";
static const char __pyx_k__41[] = " ";
static const char __pyx_k__44[] = "    ";
static const char __pyx_k__52[] = "\n";
static const char __pyx_k_abc[] = "abc";
static const char __pyx_k_act[] = "act";
static const char __pyx_k_and[] = " and ";
static const char __pyx_k_arr[] = "arr";
static const char __pyx_k_bin[] = "bin";
static const char __pyx_k_cam[] = "cam";
static const char __pyx_k_con[] = "con";
static const char __pyx_k_def[] = "_def";
static const char __pyx_k_del[] = "__del__";
static const char __pyx_k_dim[] = "dim";
static const char __pyx_k_doc[] = "__doc__";
static const char __pyx_k_dom[] = "dom";
static const char __pyx_k_dot[] = "dot";
static const char __pyx_k_drv[] = "drv";
static const char __pyx_k_dst[] = "dst";
static const char __pyx_k_eye[] = "eye";
static const char __pyx_k_fig[] = "fig";
static const char __pyx_k_got[] = " (got ";
static const char __pyx_k_idx[] = "idx";
static const char __pyx_k_jar[] = "jar";
static const char __pyx_k_key[] = "key";
static const char __pyx_k_len[] = "len";
static const char __pyx_k_map[] = "map";
static const char __pyx_k_mat[] = "mat";
static const char __pyx_k_mjb[] = "mjb";
static const char __pyx_k_msg[] = "msg";
static const char __pyx_k_new[] = "__new__";
static const char __pyx_k_obj[] = "obj";
static const char __pyx_k_opt[] = "opt";
static const char __pyx_k_pnt[] = "pnt";
static const char __pyx_k_pop[] = "pop";
static const char __pyx_k_pos[] = "pos";
static const char __pyx_k_prm[] = "prm";
static const char __pyx_k_ptr[] = "ptr";
static const char __pyx_k_ray[] = "ray";
static const char __pyx_k_res[] = "res";
static const char __pyx_k_ret[] = "ret";
static const char __pyx_k_scl[] = "scl";
static const char __pyx_k_scn[] = "scn";
static const char __pyx_k_sim[] = "sim";
static const char __pyx_k_src[] = "src";
static const char __pyx_k_str[] = "str";
static const char __pyx_k_sys[] = "sys";
static const char __pyx_k_val[] = "val";
static const char __pyx_k_vec[] = "vec";
static const char __pyx_k_vel[] = "vel";
static const char __pyx_k_vfs[] = "vfs";
static const char __pyx_k_vis[] = "vis";
static const char __pyx_k_xml[] = "xml";
static const char __pyx_k_GPUS[] = "GPUS";
static const char __pyx_k_Lock[] = "Lock";
static const char __pyx_k_None[] = "None";
static const char __pyx_k__637[] = "_";
static const char __pyx_k__778[] = "?";
static const char __pyx_k_acc0[] = "acc0";
static const char __pyx_k_addr[] = "addr";
static const char __pyx_k_args[] = "args";
static const char __pyx_k_attr[] = "attr";
static const char __pyx_k_axis[] = "axis";
static const char __pyx_k_base[] = "base";
static const char __pyx_k_body[] = "body";
static const char __pyx_k_copy[] = "copy";
static const char __pyx_k_cost[] = "cost";
static const char __pyx_k_ctrl[] = "ctrl";
static const char __pyx_k_data[] = "data";
static const char __pyx_k_dest[] = "dest";
static const char __pyx_k_diag[] = "diag";
static const char __pyx_k_dict[] = "__dict__";
static const char __pyx_k_exit[] = "__exit__";
static const char __pyx_k_file[] = "file";
static const char __pyx_k_font[] = "font";
static const char __pyx_k_full[] = "full";
static const char __pyx_k_geom[] = "geom";
static const char __pyx_k_glfw[] = "glfw";
static const char __pyx_k_info[] = "info";
static const char __pyx_k_init[] = "init";
static const char __pyx_k_item[] = "item";
static const char __pyx_k_jacp[] = "jacp";
static const char __pyx_k_jacr[] = "jacr";
static const char __pyx_k_join[] = "join";
static const char __pyx_k_keys[] = "keys";
static const char __pyx_k_left[] = "left";
static const char __pyx_k_list[] = "list";
static const char __pyx_k_main[] = "__main__";
static const char __pyx_k_mat1[] = "mat1";
static const char __pyx_k_mat2[] = "mat2";
static const char __pyx_k_mode[] = "mode";
static const char __pyx_k_name[] = "name";
static const char __pyx_k_ncam[] = "ncam";
static const char __pyx_k_ndim[] = "ndim";
static const char __pyx_k_ne_2[] = "__ne__";
static const char __pyx_k_nefc[] = "nefc";
static const char __pyx_k_njnt[] = "njnt";
static const char __pyx_k_num2[] = "num2";
static const char __pyx_k_ones[] = "ones";
static const char __pyx_k_open[] = "open";
static const char __pyx_k_pack[] = "pack";
static const char __pyx_k_path[] = "path";
static const char __pyx_k_pert[] = "pert";
static const char __pyx_k_pos0[] = "pos0";
static const char __pyx_k_pos1[] = "pos1";
static const char __pyx_k_pos2[] = "pos2";
static const char __pyx_k_push[] = "push";
static const char __pyx_k_qpos[] = "qpos";
static const char __pyx_k_quat[] = "quat";
static const char __pyx_k_qvel[] = "qvel";
static const char __pyx_k_read[] = "read";
static const char __pyx_k_rect[] = "rect";
static const char __pyx_k_relx[] = "relx";
static const char __pyx_k_rely[] = "rely";
static const char __pyx_k_save[] = "save";
static const char __pyx_k_sect[] = "sect";
static const char __pyx_k_self[] = "self";
static const char __pyx_k_send[] = "send";
static const char __pyx_k_site[] = "site";
static const char __pyx_k_size[] = "size";
static const char __pyx_k_spec[] = "__spec__";
static const char __pyx_k_stat[] = "stat";
static const char __pyx_k_step[] = "step";
static const char __pyx_k_stop[] = "stop";
static const char __pyx_k_test[] = "__test__";
static const char __pyx_k_text[] = "text";
static const char __pyx_k_time[] = "time";
static const char __pyx_k_type[] = "type";
static const char __pyx_k_vec1[] = "vec1";
static const char __pyx_k_vec2[] = "vec2";
static const char __pyx_k_vel0[] = "vel0";
static const char __pyx_k_vopt[] = "vopt";
static const char __pyx_k_warn[] = "warn";
static const char __pyx_k_xmat[] = "xmat";
static const char __pyx_k_xpos[] = "xpos";
static const char __pyx_k_ASCII[] = "ASCII";
static const char __pyx_k_MjSim[] = "MjSim";
static const char __pyx_k_NGAIN[] = "NGAIN";
static const char __pyx_k_angle[] = "angle";
static const char __pyx_k_array[] = "array";
static const char __pyx_k_cinit[] = "__cinit__";
static const char __pyx_k_class[] = "__class__";
static const char __pyx_k_close[] = "close";
static const char __pyx_k_const[] = "const";
static const char __pyx_k_count[] = "count";
static const char __pyx_k_depth[] = "depth";
static const char __pyx_k_dtype[] = "dtype";
static const char __pyx_k_empty[] = "empty";
static const char __pyx_k_end_i[] = "end_i";
static const char __pyx_k_enter[] = "__enter__";
static const char __pyx_k_error[] = "error";
static const char __pyx_k_flags[] = "flags";
static const char __pyx_k_flush[] = "flush";
static const char __pyx_k_force[] = "force";
static const char __pyx_k_image[] = "image";
static const char __pyx_k_index[] = "index";
static const char __pyx_k_int32[] = "int32";
static const char __pyx_k_int64[] = "int64";
static const char __pyx_k_items[] = "items";
static const char __pyx_k_label[] = "label";
static const char __pyx_k_lower[] = "lower";
static const char __pyx_k_mjb_2[] = ".mjb";
static const char __pyx_k_model[] = "model";
static const char __pyx_k_nbody[] = "nbody";
static const char __pyx_k_ngeom[] = "ngeom";
static const char __pyx_k_njmax[] = "njmax";
static const char __pyx_k_nrect[] = "nrect";
static const char __pyx_k_nsite[] = "nsite";
static const char __pyx_k_numpy[] = "numpy";
static const char __pyx_k_nwrap[] = "nwrap";
static const char __pyx_k_objid[] = "objid";
static const char __pyx_k_other[] = "other";
static const char __pyx_k_point[] = "point";
static const char __pyx_k_print[] = "print";
static const char __pyx_k_qpos1[] = "qpos1";
static const char __pyx_k_qpos2[] = "qpos2";
static const char __pyx_k_quat1[] = "quat1";
static const char __pyx_k_quat2[] = "quat2";
static const char __pyx_k_quiet[] = "quiet";
static const char __pyx_k_range[] = "range";
static const char __pyx_k_ravel[] = "ravel";
static const char __pyx_k_reldx[] = "reldx";
static const char __pyx_k_reldy[] = "reldy";
static const char __pyx_k_reset[] = "reset";
static const char __pyx_k_scale[] = "scale";
static const char __pyx_k_shape[] = "shape";
static const char __pyx_k_slots[] = "__slots__";
static const char __pyx_k_split[] = "split";
static const char __pyx_k_start[] = "start";
static const char __pyx_k_state[] = "state";
static const char __pyx_k_super[] = "super";
static const char __pyx_k_texid[] = "texid";
static const char __pyx_k_text1[] = "text1";
static const char __pyx_k_text2[] = "text2";
static const char __pyx_k_throw[] = "throw";
static const char __pyx_k_uint8[] = "uint8";
static const char __pyx_k_unmap[] = "unmap";
static const char __pyx_k_value[] = "value";
static const char __pyx_k_width[] = "width";
static const char __pyx_k_write[] = "write";
static const char __pyx_k_xml_2[] = ".xml";
static const char __pyx_k_xvelp[] = "xvelp";
static const char __pyx_k_xvelr[] = "xvelr";
static const char __pyx_k_zeros[] = "zeros";
static const char __pyx_k_Device[] = "Device";
static const char __pyx_k_Number[] = "Number";
static const char __pyx_k_PyMjUI[] = "PyMjUI";
static const char __pyx_k_action[] = "action";
static const char __pyx_k_bottom[] = "bottom";
static const char __pyx_k_buffer[] = "buffer";
static const char __pyx_k_colind[] = "colind";
static const char __pyx_k_darwin[] = "darwin";
static const char __pyx_k_delete[] = "delete";
static const char __pyx_k_detach[] = "detach";
static const char __pyx_k_device[] = "device";
static const char __pyx_k_driver[] = "driver";
static const char __pyx_k_eigval[] = "eigval";
static const char __pyx_k_eigvec[] = "eigvec";
static const char __pyx_k_enable[] = "enable";
static const char __pyx_k_encode[] = "encode";
static const char __pyx_k_errors[] = "errors";
static const char __pyx_k_errstr[] = "errstr";
static const char __pyx_k_extent[] = "extent";
static const char __pyx_k_format[] = "format";
static const char __pyx_k_geomid[] = "geomid";
static const char __pyx_k_getenv[] = "getenv";
static const char __pyx_k_height[] = "height";
static const char __pyx_k_import[] = "__import__";
static const char __pyx_k_indent[] = "indent";
static const char __pyx_k_init_2[] = "__init__";
static const char __pyx_k_key_el[] = "key_el";
static const char __pyx_k_lookat[] = "lookat";
static const char __pyx_k_median[] = "median";
static const char __pyx_k_meshid[] = "meshid";
static const char __pyx_k_mj_crb[] = "_mj_crb";
static const char __pyx_k_mj_jac[] = "_mj_jac";
static const char __pyx_k_mj_ray[] = "_mj_ray";
static const char __pyx_k_mj_rne[] = "_mj_rne";
static const char __pyx_k_mju_L1[] = "_mju_L1";
static const char __pyx_k_module[] = "__module__";
static const char __pyx_k_mujoco[] = "mujoco";
static const char __pyx_k_name_2[] = "__name__";
static const char __pyx_k_newpos[] = "newpos";
static const char __pyx_k_nlight[] = "nlight";
static const char __pyx_k_nmocap[] = "nmocap";
static const char __pyx_k_object[] = "object";
static const char __pyx_k_oldpos[] = "oldpos";
static const char __pyx_k_output[] = "output";
static const char __pyx_k_pickle[] = "pickle";
static const char __pyx_k_posres[] = "posres";
static const char __pyx_k_pycuda[] = "pycuda";
static const char __pyx_k_reduce[] = "__reduce__";
static const char __pyx_k_render[] = "render";
static const char __pyx_k_result[] = "result";
static const char __pyx_k_roomup[] = "roomup";
static const char __pyx_k_rowadr[] = "rowadr";
static const char __pyx_k_rownnz[] = "rownnz";
static const char __pyx_k_selpnt[] = "selpnt";
static const char __pyx_k_skinid[] = "skinid";
static const char __pyx_k_solimp[] = "solimp";
static const char __pyx_k_solref[] = "solref";
static const char __pyx_k_struct[] = "struct";
static const char __pyx_k_suffix[] = "suffix";
static const char __pyx_k_tex_id[] = "tex_id";
static const char __pyx_k_torque[] = "torque";
static const char __pyx_k_uint16[] = "uint16";
static const char __pyx_k_unpack[] = "unpack";
static const char __pyx_k_update[] = "update";
static const char __pyx_k_values[] = "values";
static const char __pyx_k_window[] = "window";
static const char __pyx_k_ABCMeta[] = "ABCMeta";
static const char __pyx_k_Context[] = "Context";
static const char __pyx_k_PyMjVFS[] = "PyMjVFS";
static const char __pyx_k_SAMPLES[] = "SAMPLES";
static const char __pyx_k_VISIBLE[] = "VISIBLE";
static const char __pyx_k_asarray[] = "asarray";
static const char __pyx_k_body_id[] = "body_id";
static const char __pyx_k_catmask[] = "catmask";
static const char __pyx_k_depth_2[] = "_depth";
static const char __pyx_k_disable[] = "disable";
static const char __pyx_k_element[] = "element";
static const char __pyx_k_environ[] = "environ";
static const char __pyx_k_flatten[] = "flatten";
static const char __pyx_k_flg_acc[] = "flg_acc";
static const char __pyx_k_flg_pad[] = "flg_pad";
static const char __pyx_k_float32[] = "float32";
static const char __pyx_k_float64[] = "float64";
static const char __pyx_k_fortran[] = "fortran";
static const char __pyx_k_forward[] = "forward";
static const char __pyx_k_genexpr[] = "genexpr";
static const char __pyx_k_get_mjb[] = "get_mjb";
static const char __pyx_k_get_xml[] = "get_xml";
static const char __pyx_k_gridpos[] = "gridpos";
static const char __pyx_k_headpos[] = "headpos";
static const char __pyx_k_idx_act[] = "idx_act";
static const char __pyx_k_idx_udd[] = "idx_udd";
static const char __pyx_k_invalid[] = "invalid: {}";
static const char __pyx_k_jacAxis[] = "jacAxis";
static const char __pyx_k_logging[] = "logging";
static const char __pyx_k_maxgeom[] = "maxgeom";
static const char __pyx_k_memview[] = "memview";
static const char __pyx_k_mindiag[] = "mindiag";
static const char __pyx_k_minidom[] = "minidom";
static const char __pyx_k_mj_addM[] = "_mj_addM";
static const char __pyx_k_mj_mulM[] = "_mj_mulM";
static const char __pyx_k_mj_step[] = "_mj_step";
static const char __pyx_k_mju_add[] = "_mju_add";
static const char __pyx_k_mju_dot[] = "_mju_dot";
static const char __pyx_k_mju_max[] = "_mju_max";
static const char __pyx_k_mju_min[] = "_mju_min";
static const char __pyx_k_mju_scl[] = "_mju_scl";
static const char __pyx_k_mju_sub[] = "_mju_sub";
static const char __pyx_k_mju_sum[] = "_mju_sum";
static const char __pyx_k_nconmax[] = "nconmax";
static const char __pyx_k_new_sim[] = "new_sim";
static const char __pyx_k_newmass[] = "newmass";
static const char __pyx_k_ntendon[] = "ntendon";
static const char __pyx_k_numbers[] = "numbers";
static const char __pyx_k_objtype[] = "objtype";
static const char __pyx_k_overlay[] = "overlay";
static const char __pyx_k_pbo_rgb[] = "pbo_rgb";
static const char __pyx_k_prepare[] = "__prepare__";
static const char __pyx_k_pyramid[] = "pyramid";
static const char __pyx_k_quatres[] = "quatres";
static const char __pyx_k_reshape[] = "reshape";
static const char __pyx_k_ret_img[] = "ret_img";
static const char __pyx_k_rgb_arr[] = "rgb_arr";
static const char __pyx_k_rgb_img[] = "rgb_img";
static const char __pyx_k_roompos[] = "roompos";
static const char __pyx_k_samples[] = "samples";
static const char __pyx_k_section[] = "section";
static const char __pyx_k_seg_ids[] = "seg_ids";
static const char __pyx_k_seg_img[] = "seg_img";
static const char __pyx_k_start_i[] = "start_i";
static const char __pyx_k_tagName[] = "tagName";
static const char __pyx_k_warning[] = "warning";
static const char __pyx_k_width_2[] = "_width";
static const char __pyx_k_wrapped[] = "wrapped";
static const char __pyx_k_xml_dom[] = "xml.dom";
static const char __pyx_k_xml_str[] = "xml_str";
static const char __pyx_k_Ellipsis[] = "Ellipsis";
static const char __pyx_k_GEOM_BOX[] = "GEOM_BOX";
static const char __pyx_k_MjViewer[] = "MjViewer";
static const char __pyx_k_PyMjData[] = "PyMjData";
static const char __pyx_k_Sequence[] = "Sequence";
static const char __pyx_k_bin_path[] = "bin_path";
static const char __pyx_k_deepcopy[] = "deepcopy";
static const char __pyx_k_distance[] = "distance";
static const char __pyx_k_error_sz[] = "error_sz";
static const char __pyx_k_feedback[] = "feedback";
static const char __pyx_k_filename[] = "filename";
static const char __pyx_k_filesize[] = "filesize";
static const char __pyx_k_flg_html[] = "flg_html";
static const char __pyx_k_flg_plus[] = "flg_plus";
static const char __pyx_k_geomtype[] = "geomtype";
static const char __pyx_k_get_xmat[] = "get_xmat";
static const char __pyx_k_get_xpos[] = "get_xpos";
static const char __pyx_k_getstate[] = "__getstate__";
static const char __pyx_k_height_2[] = "_height";
static const char __pyx_k_hfieldid[] = "hfieldid";
static const char __pyx_k_idx_qpos[] = "idx_qpos";
static const char __pyx_k_idx_qvel[] = "idx_qvel";
static const char __pyx_k_idx_time[] = "idx_time";
static const char __pyx_k_inertial[] = "inertial";
static const char __pyx_k_itemsize[] = "itemsize";
static const char __pyx_k_jacPoint[] = "jacPoint";
static const char __pyx_k_jnt_type[] = "jnt_type";
static const char __pyx_k_joint_id[] = "joint_id";
static const char __pyx_k_keyframe[] = "keyframe";
static const char __pyx_k_mj_Euler[] = "_mj_Euler";
static const char __pyx_k_mj_fullM[] = "_mj_fullM";
static const char __pyx_k_mj_mulM2[] = "_mj_mulM2";
static const char __pyx_k_mj_step1[] = "_mj_step1";
static const char __pyx_k_mj_step2[] = "_mj_step2";
static const char __pyx_k_mju_add3[] = "_mju_add3";
static const char __pyx_k_mju_copy[] = "_mju_copy";
static const char __pyx_k_mju_dot3[] = "_mju_dot3";
static const char __pyx_k_mju_eig3[] = "_mju_eig3";
static const char __pyx_k_mju_norm[] = "_mju_norm";
static const char __pyx_k_mju_scl3[] = "_mju_scl3";
static const char __pyx_k_mju_sign[] = "_mju_sign";
static const char __pyx_k_mju_sub3[] = "_mju_sub3";
static const char __pyx_k_mju_zero[] = "_mju_zero";
static const char __pyx_k_mjui_add[] = "_mjui_add";
static const char __pyx_k_mocap_id[] = "mocap_id";
static const char __pyx_k_modelpos[] = "modelpos";
static const char __pyx_k_overlay2[] = "overlay2";
static const char __pyx_k_platform[] = "platform";
static const char __pyx_k_pnt_view[] = "pnt_view";
static const char __pyx_k_property[] = "property";
static const char __pyx_k_pyx_type[] = "__pyx_type";
static const char __pyx_k_qualname[] = "__qualname__";
static const char __pyx_k_register[] = "register";
static const char __pyx_k_rgb_view[] = "rgb_view";
static const char __pyx_k_roomquat[] = "roomquat";
static const char __pyx_k_set_name[] = "__set_name__";
static const char __pyx_k_setpoint[] = "setpoint";
static const char __pyx_k_setstate[] = "__setstate__";
static const char __pyx_k_step_udd[] = "step_udd";
static const char __pyx_k_tempfile[] = "tempfile";
static const char __pyx_k_use_cuda[] = "use_cuda";
static const char __pyx_k_userdata[] = "userdata";
static const char __pyx_k_vec_view[] = "vec_view";
static const char __pyx_k_viewport[] = "viewport";
static const char __pyx_k_with_udd[] = "with_udd";
static const char __pyx_k_CAT_DECOR[] = "CAT_DECOR";
static const char __pyx_k_GlfwError[] = "GlfwError";
static const char __pyx_k_MjSim_ray[] = "MjSim.ray";
static const char __pyx_k_PyMjLROpt[] = "PyMjLROpt";
static const char __pyx_k_PyMjModel[] = "PyMjModel";
static const char __pyx_k_PyMjrRect[] = "PyMjrRect";
static const char __pyx_k_PyMjuiDef[] = "PyMjuiDef";
static const char __pyx_k_PyMjvGeom[] = "PyMjvGeom";
static const char __pyx_k_TypeError[] = "TypeError";
static const char __pyx_k_body_jacp[] = "body_jacp";
static const char __pyx_k_body_jacr[] = "body_jacr";
static const char __pyx_k_buffer_sz[] = "buffer_sz";
static const char __pyx_k_camera_id[] = "camera_id";
static const char __pyx_k_depth_arr[] = "depth_arr";
static const char __pyx_k_depth_img[] = "depth_img";
static const char __pyx_k_device_id[] = "device_id";
static const char __pyx_k_directory[] = "directory";
static const char __pyx_k_enumerate[] = "enumerate";
static const char __pyx_k_flg_color[] = "flg_color";
static const char __pyx_k_flg_depth[] = "flg_depth";
static const char __pyx_k_flg_force[] = "flg_force";
static const char __pyx_k_flg_local[] = "flg_local";
static const char __pyx_k_fontscale[] = "fontscale";
static const char __pyx_k_geom_jacp[] = "geom_jacp";
static const char __pyx_k_geom_jacr[] = "geom_jacr";
static const char __pyx_k_geom_xpos[] = "geom_xpos";
static const char __pyx_k_geomgroup[] = "geomgroup";
static const char __pyx_k_get_state[] = "get_state";
static const char __pyx_k_get_xaxis[] = "get_xaxis";
static const char __pyx_k_get_ximat[] = "get_ximat";
static const char __pyx_k_get_xipos[] = "get_xipos";
static const char __pyx_k_get_xquat[] = "get_xquat";
static const char __pyx_k_init_cuda[] = "_init_cuda";
static const char __pyx_k_init_glfw[] = "_init_glfw";
static const char __pyx_k_isenabled[] = "isenabled";
static const char __pyx_k_jacp_view[] = "jacp_view";
static const char __pyx_k_jacr_view[] = "jacr_view";
static const char __pyx_k_metaclass[] = "__metaclass__";
static const char __pyx_k_mj_comPos[] = "_mj_comPos";
static const char __pyx_k_mj_comVel[] = "_mj_comVel";
static const char __pyx_k_mj_isDual[] = "_mj_isDual";
static const char __pyx_k_mj_solveM[] = "_mj_solveM";
static const char __pyx_k_mj_tendon[] = "_mj_tendon";
static const char __pyx_k_mjb_bytes[] = "mjb_bytes";
static const char __pyx_k_mju_addTo[] = "_mju_addTo";
static const char __pyx_k_mju_copy3[] = "_mju_copy3";
static const char __pyx_k_mju_copy4[] = "_mju_copy4";
static const char __pyx_k_mju_cross[] = "_mju_cross";
static const char __pyx_k_mju_dist3[] = "_mju_dist3";
static const char __pyx_k_mju_error[] = "_mju_error";
static const char __pyx_k_mju_isBad[] = "_mju_isBad";
static const char __pyx_k_mju_norm3[] = "_mju_norm3";
static const char __pyx_k_mju_round[] = "_mju_round";
static const char __pyx_k_mju_unit4[] = "_mju_unit4";
static const char __pyx_k_mju_zero3[] = "_mju_zero3";
static const char __pyx_k_mju_zero4[] = "_mju_zero4";
static const char __pyx_k_mocap_pos[] = "mocap_pos";
static const char __pyx_k_model_mjb[] = "model.mjb";
static const char __pyx_k_model_xml[] = "model.xml";
static const char __pyx_k_modelquat[] = "modelquat";
static const char __pyx_k_mujoco_py[] = "mujoco_py";
static const char __pyx_k_new_model[] = "new_model";
static const char __pyx_k_new_width[] = "new_width";
static const char __pyx_k_nsubsteps[] = "nsubsteps";
static const char __pyx_k_nuserdata[] = "nuserdata";
static const char __pyx_k_offscreen[] = "offscreen";
static const char __pyx_k_pbo_depth[] = "pbo_depth";
static const char __pyx_k_pycuda_gl[] = "pycuda.gl";
static const char __pyx_k_pyx_state[] = "__pyx_state";
static const char __pyx_k_read_cuda[] = "_read_cuda";
static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
static const char __pyx_k_sameframe[] = "sameframe";
static const char __pyx_k_set_state[] = "set_state";
static const char __pyx_k_site_jacp[] = "site_jacp";
static const char __pyx_k_site_jacr[] = "site_jacr";
static const char __pyx_k_skipstage[] = "skipstage";
static const char __pyx_k_str_array[] = "str_array";
static const char __pyx_k_threading[] = "threading";
static const char __pyx_k_traceback[] = "traceback";
static const char __pyx_k_udd_state[] = "udd_state";
static const char __pyx_k_val_array[] = "val_array";
static const char __pyx_k_INIT_WIDTH[] = "_INIT_WIDTH";
static const char __pyx_k_IndexError[] = "IndexError";
static const char __pyx_k_MjSimState[] = "MjSimState";
static const char __pyx_k_MjSim_save[] = "MjSim.save";
static const char __pyx_k_MjSim_step[] = "MjSim.step";
static const char __pyx_k_PyMjOption[] = "PyMjOption";
static const char __pyx_k_PyMjVisual[] = "PyMjVisual";
static const char __pyx_k_PyMjuiItem[] = "PyMjuiItem";
static const char __pyx_k_PyMjvLight[] = "PyMjvLight";
static const char __pyx_k_PyMjvScene[] = "PyMjvScene";
static const char __pyx_k_ValueError[] = "ValueError";
static const char __pyx_k_add_marker[] = "add_marker";
static const char __pyx_k_batch_size[] = "batch_size";
static const char __pyx_k_childNodes[] = "childNodes";
static const char __pyx_k_depth_view[] = "depth_view";
static const char __pyx_k_dt_seconds[] = "dt_seconds";
static const char __pyx_k_error_code[] = "error_code";
static const char __pyx_k_fill_value[] = "fill_value";
static const char __pyx_k_fixedcamid[] = "fixedcamid";
static const char __pyx_k_flg_paused[] = "flg_paused";
static const char __pyx_k_flg_static[] = "flg_static";
static const char __pyx_k_get_sensor[] = "get_sensor";
static const char __pyx_k_image_view[] = "image_view";
static const char __pyx_k_init_width[] = "init_width";
static const char __pyx_k_jnt_dofadr[] = "jnt_dofadr";
static const char __pyx_k_joint_addr[] = "joint_addr";
static const char __pyx_k_joint_type[] = "joint_type";
static const char __pyx_k_mj_applyFT[] = "_mj_applyFT";
static const char __pyx_k_mj_factorM[] = "_mj_factorM";
static const char __pyx_k_mj_forward[] = "_mj_forward";
static const char __pyx_k_mj_inverse[] = "_mj_inverse";
static const char __pyx_k_mj_jacBody[] = "_mj_jacBody";
static const char __pyx_k_mj_jacGeom[] = "_mj_jacGeom";
static const char __pyx_k_mj_jacSite[] = "_mj_jacSite";
static const char __pyx_k_mj_loadXML[] = "_mj_loadXML";
static const char __pyx_k_mj_name2id[] = "_mj_name2id";
static const char __pyx_k_mj_passive[] = "_mj_passive";
static const char __pyx_k_mj_rayMesh[] = "_mj_rayMesh";
static const char __pyx_k_mj_solveM2[] = "_mj_solveM2";
static const char __pyx_k_mj_version[] = "_mj_version";
static const char __pyx_k_mj_warning[] = "_mj_warning";
static const char __pyx_k_mjr_addAux[] = "_mjr_addAux";
static const char __pyx_k_mjr_figure[] = "_mjr_figure";
static const char __pyx_k_mjr_finish[] = "_mjr_finish";
static const char __pyx_k_mjr_render[] = "_mjr_render";
static const char __pyx_k_mjr_setAux[] = "_mjr_setAux";
static const char __pyx_k_mju_Halton[] = "_mju_Halton";
static const char __pyx_k_mju_addScl[] = "_mju_addScl";
static const char __pyx_k_mju_addTo3[] = "_mju_addTo3";
static const char __pyx_k_mju_isZero[] = "_mju_isZero";
static const char __pyx_k_mjui_event[] = "_mjui_event";
static const char __pyx_k_mjv_select[] = "_mjv_select";
static const char __pyx_k_mocap_quat[] = "mocap_quat";
static const char __pyx_k_namedtuple[] = "namedtuple";
static const char __pyx_k_new_height[] = "new_height";
static const char __pyx_k_parentNode[] = "parentNode";
static const char __pyx_k_pyx_result[] = "__pyx_result";
static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
static const char __pyx_k_resolution[] = "resolution";
static const char __pyx_k_result_xml[] = "result_xml";
static const char __pyx_k_rotnew2old[] = "rotnew2old";
static const char __pyx_k_schema_val[] = "schema_val";
static const char __pyx_k_skipsensor[] = "skipsensor";
static const char __pyx_k_unregister[] = "unregister";
static const char __pyx_k_update_sim[] = "update_sim";
static const char __pyx_k_use_cuda_2[] = "_use_cuda";
static const char __pyx_k_CAMERA_FREE[] = "CAMERA_FREE";
static const char __pyx_k_GlfwContext[] = "GlfwContext";
static const char __pyx_k_INIT_HEIGHT[] = "_INIT_HEIGHT";
static const char __pyx_k_ImportError[] = "ImportError";
static const char __pyx_k_MemoryError[] = "MemoryError";
static const char __pyx_k_MjSim_reset[] = "MjSim.reset";
static const char __pyx_k_OBJ_UNKNOWN[] = "OBJ_UNKNOWN";
static const char __pyx_k_PickleError[] = "PickleError";
static const char __pyx_k_PyMjContact[] = "PyMjContact";
static const char __pyx_k_PyMjuiState[] = "PyMjuiState";
static const char __pyx_k_PyMjvCamera[] = "PyMjvCamera";
static const char __pyx_k_PyMjvFigure[] = "PyMjvFigure";
static const char __pyx_k_PyMjvOption[] = "PyMjvOption";
static const char __pyx_k_RND_IDCOLOR[] = "RND_IDCOLOR";
static const char __pyx_k_RND_SEGMENT[] = "RND_SEGMENT";
static const char __pyx_k_add_overlay[] = "add_overlay";
static const char __pyx_k_appendChild[] = "appendChild";
static const char __pyx_k_array_equal[] = "array_equal";
static const char __pyx_k_aspectratio[] = "aspectratio";
static const char __pyx_k_bodyexclude[] = "bodyexclude";
static const char __pyx_k_buffer_view[] = "buffer_view";
static const char __pyx_k_camera_name[] = "camera_name";
static const char __pyx_k_collections[] = "collections";
static const char __pyx_k_concatenate[] = "concatenate";
static const char __pyx_k_description[] = "description";
static const char __pyx_k_device_id_2[] = "_device_id";
static const char __pyx_k_draw_pixels[] = "draw_pixels";
static const char __pyx_k_framebuffer[] = "framebuffer";
static const char __pyx_k_from_device[] = "from_device";
static const char __pyx_k_get_xanchor[] = "get_xanchor";
static const char __pyx_k_init_camera[] = "_init_camera";
static const char __pyx_k_init_height[] = "init_height";
static const char __pyx_k_jnt_qposadr[] = "jnt_qposadr";
static const char __pyx_k_keyframe_el[] = "keyframe_el";
static const char __pyx_k_lengthrange[] = "lengthrange";
static const char __pyx_k_mj_activate[] = "_mj_activate";
static const char __pyx_k_mj_camlight[] = "_mj_camlight";
static const char __pyx_k_mj_checkAcc[] = "_mj_checkAcc";
static const char __pyx_k_mj_checkPos[] = "_mj_checkPos";
static const char __pyx_k_mj_checkVel[] = "_mj_checkVel";
static const char __pyx_k_mj_isSparse[] = "_mj_isSparse";
static const char __pyx_k_mj_setConst[] = "_mj_setConst";
static const char __pyx_k_mjr_blitAux[] = "_mjr_blitAux";
static const char __pyx_k_mjr_overlay[] = "_mjr_overlay";
static const char __pyx_k_mju_addScl3[] = "_mju_addScl3";
static const char __pyx_k_mju_error_i[] = "_mju_error_i";
static const char __pyx_k_mju_error_s[] = "_mju_error_s";
static const char __pyx_k_mju_mulPose[] = "_mju_mulPose";
static const char __pyx_k_mju_mulQuat[] = "_mju_mulQuat";
static const char __pyx_k_mju_negPose[] = "_mju_negPose";
static const char __pyx_k_mju_negQuat[] = "_mju_negQuat";
static const char __pyx_k_mju_rayGeom[] = "_mju_rayGeom";
static const char __pyx_k_mju_sigmoid[] = "_mju_sigmoid";
static const char __pyx_k_mju_subFrom[] = "_mju_subFrom";
static const char __pyx_k_mju_subQuat[] = "_mju_subQuat";
static const char __pyx_k_mju_warning[] = "_mju_warning";
static const char __pyx_k_mjui_render[] = "_mjui_render";
static const char __pyx_k_mjui_resize[] = "_mjui_resize";
static const char __pyx_k_mjui_update[] = "_mjui_update";
static const char __pyx_k_move_camera[] = "move_camera";
static const char __pyx_k_mro_entries[] = "__mro_entries__";
static const char __pyx_k_mujoco_node[] = "mujoco_node";
static const char __pyx_k_mujoco_path[] = "mujoco_path";
static const char __pyx_k_nsensordata[] = "nsensordata";
static const char __pyx_k_parseString[] = "parseString";
static const char __pyx_k_qfrc_target[] = "qfrc_target";
static const char __pyx_k_read_nocuda[] = "_read_nocuda";
static const char __pyx_k_read_pixels[] = "read_pixels";
static const char __pyx_k_removeChild[] = "removeChild";
static const char __pyx_k_state_tuple[] = "state_tuple";
static const char __pyx_k_toprettyxml[] = "toprettyxml";
static const char __pyx_k_window_hint[] = "window_hint";
static const char __pyx_k_CAMERA_FIXED[] = "CAMERA_FIXED";
static const char __pyx_k_DOUBLEBUFFER[] = "DOUBLEBUFFER";
static const char __pyx_k_MjSim_render[] = "MjSim.render";
static const char __pyx_k_PyMjrContext[] = "PyMjrContext";
static const char __pyx_k_PyMjvPerturb[] = "PyMjvPerturb";
static const char __pyx_k_RuntimeError[] = "RuntimeError";
static const char __pyx_k_SimStateBase[] = "SimStateBase";
static const char __pyx_k_batch_offset[] = "batch_offset";
static const char __pyx_k_batch_size_2[] = "_batch_size";
static const char __pyx_k_body_id2name[] = "body_id2name";
static const char __pyx_k_body_mocapid[] = "body_mocapid";
static const char __pyx_k_body_name2id[] = "body_name2id";
static const char __pyx_k_cuda_context[] = "_cuda_context";
static const char __pyx_k_cuda_rgb_pbo[] = "_cuda_rgb_pbo";
static const char __pyx_k_cuda_rgb_ptr[] = "_cuda_rgb_ptr";
static const char __pyx_k_err_callback[] = "err_callback";
static const char __pyx_k_exclude_body[] = "exclude_body";
static const char __pyx_k_flatten_dict[] = "_flatten_dict";
static const char __pyx_k_geom_id2name[] = "geom_id2name";
static const char __pyx_k_geom_name2id[] = "geom_name2id";
static const char __pyx_k_get_cam_xmat[] = "get_cam_xmat";
static const char __pyx_k_get_cam_xpos[] = "get_cam_xpos";
static const char __pyx_k_get_userdata[] = "get_userdata";
static const char __pyx_k_group_filter[] = "group_filter";
static const char __pyx_k_initializing[] = "_initializing";
static const char __pyx_k_is_coroutine[] = "_is_coroutine";
static const char __pyx_k_make_context[] = "make_context";
static const char __pyx_k_mesh_id2name[] = "mesh_id2name";
static const char __pyx_k_mesh_name2id[] = "mesh_name2id";
static const char __pyx_k_mj_collision[] = "_mj_collision";
static const char __pyx_k_mj_copyModel[] = "_mj_copyModel";
static const char __pyx_k_mj_deleteVFS[] = "_mj_deleteVFS";
static const char __pyx_k_mj_energyPos[] = "_mj_energyPos";
static const char __pyx_k_mj_energyVel[] = "_mj_energyVel";
static const char __pyx_k_mj_loadModel[] = "_mj_loadModel";
static const char __pyx_k_mj_mulJacVec[] = "_mj_mulJacVec";
static const char __pyx_k_mj_printData[] = "_mj_printData";
static const char __pyx_k_mj_rayHfield[] = "_mj_rayHfield";
static const char __pyx_k_mj_resetData[] = "_mj_resetData";
static const char __pyx_k_mj_sensorAcc[] = "_mj_sensorAcc";
static const char __pyx_k_mj_sensorPos[] = "_mj_sensorPos";
static const char __pyx_k_mj_sensorVel[] = "_mj_sensorVel";
static const char __pyx_k_mj_sizeModel[] = "_mj_sizeModel";
static const char __pyx_k_mjr_findRect[] = "_mjr_findRect";
static const char __pyx_k_mjr_getError[] = "_mjr_getError";
static const char __pyx_k_mju_addToScl[] = "_mju_addToScl";
static const char __pyx_k_mju_mat2Quat[] = "_mju_mat2Quat";
static const char __pyx_k_mju_printMat[] = "_mju_printMat";
static const char __pyx_k_mju_quat2Mat[] = "_mju_quat2Mat";
static const char __pyx_k_mju_quat2Vel[] = "_mju_quat2Vel";
static const char __pyx_k_mju_sqrMatTD[] = "_mju_sqrMatTD";
static const char __pyx_k_mju_str2Type[] = "_mju_str2Type";
static const char __pyx_k_mju_subFrom3[] = "_mju_subFrom3";
static const char __pyx_k_mju_writeLog[] = "_mju_writeLog";
static const char __pyx_k_mjv_addGeoms[] = "_mjv_addGeoms";
static const char __pyx_k_pyx_checksum[] = "__pyx_checksum";
static const char __pyx_k_refresh_rate[] = "refresh_rate";
static const char __pyx_k_segmentation[] = "segmentation";
static const char __pyx_k_setAttribute[] = "setAttribute";
static const char __pyx_k_site_id2name[] = "site_id2name";
static const char __pyx_k_site_name2id[] = "site_name2id";
static const char __pyx_k_staticmethod[] = "staticmethod";
static const char __pyx_k_stringsource[] = "<stringsource>";
static const char __pyx_k_swap_buffers[] = "swap_buffers";
static const char __pyx_k_target_width[] = "target_width";
static const char __pyx_k_udd_callback[] = "udd_callback";
static const char __pyx_k_version_info[] = "version_info";
static const char __pyx_k_FONTSCALE_150[] = "FONTSCALE_150";
static const char __pyx_k_MjSim_forward[] = "MjSim.forward";
static const char __pyx_k_OpenGLContext[] = "OpenGLContext";
static const char __pyx_k_OverflowError[] = "OverflowError";
static const char __pyx_k_PyMjStatistic[] = "PyMjStatistic";
static const char __pyx_k_PyMjTimerStat[] = "PyMjTimerStat";
static const char __pyx_k_PyMjuiSection[] = "PyMjuiSection";
static const char __pyx_k_PyMjvGLCamera[] = "PyMjvGLCamera";
static const char __pyx_k_class_getitem[] = "__class_getitem__";
static const char __pyx_k_createElement[] = "createElement";
static const char __pyx_k_create_window[] = "_create_window";
static const char __pyx_k_get_body_jacp[] = "get_body_jacp";
static const char __pyx_k_get_body_jacr[] = "get_body_jacr";
static const char __pyx_k_get_body_xmat[] = "get_body_xmat";
static const char __pyx_k_get_body_xpos[] = "get_body_xpos";
static const char __pyx_k_get_geom_jacp[] = "get_geom_jacp";
static const char __pyx_k_get_geom_jacr[] = "get_geom_jacr";
static const char __pyx_k_get_geom_xmat[] = "get_geom_xmat";
static const char __pyx_k_get_geom_xpos[] = "get_geom_xpos";
static const char __pyx_k_get_mocap_pos[] = "get_mocap_pos";
static const char __pyx_k_get_site_jacp[] = "get_site_jacp";
static const char __pyx_k_get_site_jacr[] = "get_site_jacr";
static const char __pyx_k_get_site_xmat[] = "get_site_xmat";
static const char __pyx_k_get_site_xpos[] = "get_site_xpos";
static const char __pyx_k_init_subclass[] = "__init_subclass__";
static const char __pyx_k_joint_id2name[] = "joint_id2name";
static const char __pyx_k_joint_name2id[] = "joint_name2id";
static const char __pyx_k_light_id2name[] = "light_id2name";
static const char __pyx_k_light_name2id[] = "light_name2id";
static const char __pyx_k_marker_params[] = "marker_params";
static const char __pyx_k_mj_RungeKutta[] = "_mj_RungeKutta";
static const char __pyx_k_mj_addContact[] = "_mj_addContact";
static const char __pyx_k_mj_addFileVFS[] = "_mj_addFileVFS";
static const char __pyx_k_mj_deactivate[] = "_mj_deactivate";
static const char __pyx_k_mj_defaultVFS[] = "_mj_defaultVFS";
static const char __pyx_k_mj_deleteData[] = "_mj_deleteData";
static const char __pyx_k_mj_jacBodyCom[] = "_mj_jacBodyCom";
static const char __pyx_k_mj_kinematics[] = "_mj_kinematics";
static const char __pyx_k_mj_mulJacTVec[] = "_mj_mulJacTVec";
static const char __pyx_k_mj_printModel[] = "_mj_printModel";
static const char __pyx_k_mj_subtreeVel[] = "_mj_subtreeVel";
static const char __pyx_k_mjr_setBuffer[] = "_mjr_setBuffer";
static const char __pyx_k_mju_addToScl3[] = "_mju_addToScl3";
static const char __pyx_k_mju_cholSolve[] = "_mju_cholSolve";
static const char __pyx_k_mju_derivQuat[] = "_mju_derivQuat";
static const char __pyx_k_mju_mulMatMat[] = "_mju_mulMatMat";
static const char __pyx_k_mju_mulMatVec[] = "_mju_mulMatVec";
static const char __pyx_k_mju_normalize[] = "_mju_normalize";
static const char __pyx_k_mju_quatZ2Vec[] = "_mju_quatZ2Vec";
static const char __pyx_k_mju_rotVecMat[] = "_mju_rotVecMat";
static const char __pyx_k_mju_transpose[] = "_mju_transpose";
static const char __pyx_k_mju_warning_i[] = "_mju_warning_i";
static const char __pyx_k_mju_warning_s[] = "_mju_warning_s";
static const char __pyx_k_mjv_freeScene[] = "_mjv_freeScene";
static const char __pyx_k_mjv_makeScene[] = "_mjv_makeScene";
static const char __pyx_k_mjv_moveModel[] = "_mjv_moveModel";
static const char __pyx_k_pycuda_driver[] = "pycuda.driver";
static const char __pyx_k_reduce_cython[] = "__reduce_cython__";
static const char __pyx_k_set_constants[] = "set_constants";
static const char __pyx_k_set_mocap_pos[] = "set_mocap_pos";
static const char __pyx_k_target_height[] = "target_height";
static const char __pyx_k_AssertionError[] = "AssertionError";
static const char __pyx_k_MjSim_step_udd[] = "MjSim.step_udd";
static const char __pyx_k_NotImplemented[] = "NotImplemented";
static const char __pyx_k_PyMjSolverStat[] = "PyMjSolverStat";
static const char __pyx_k_PyMjVisual_map[] = "PyMjVisual_map";
static const char __pyx_k_abstractmethod[] = "abstractmethod";
static const char __pyx_k_camera_id2name[] = "camera_id2name";
static const char __pyx_k_camera_name2id[] = "camera_name2id";
static const char __pyx_k_cuda_depth_pbo[] = "_cuda_depth_pbo";
static const char __pyx_k_cuda_depth_ptr[] = "_cuda_depth_ptr";
static const char __pyx_k_error_deadband[] = "error_deadband";
static const char __pyx_k_flat_udd_state[] = "flat_udd_state";
static const char __pyx_k_from_flattened[] = "from_flattened";
static const char __pyx_k_geomgroup_view[] = "geomgroup_view";
static const char __pyx_k_get_body_ximat[] = "get_body_ximat";
static const char __pyx_k_get_body_xipos[] = "get_body_xipos";
static const char __pyx_k_get_body_xquat[] = "get_body_xquat";
static const char __pyx_k_get_body_xvelp[] = "get_body_xvelp";
static const char __pyx_k_get_body_xvelr[] = "get_body_xvelr";
static const char __pyx_k_get_geom_xvelp[] = "get_geom_xvelp";
static const char __pyx_k_get_geom_xvelr[] = "get_geom_xvelr";
static const char __pyx_k_get_joint_qpos[] = "get_joint_qpos";
static const char __pyx_k_get_joint_qvel[] = "get_joint_qvel";
static const char __pyx_k_get_light_xdir[] = "get_light_xdir";
static const char __pyx_k_get_light_xpos[] = "get_light_xpos";
static const char __pyx_k_get_mocap_quat[] = "get_mocap_quat";
static const char __pyx_k_get_sensordata[] = "get_sensordata";
static const char __pyx_k_get_site_xvelp[] = "get_site_xvelp";
static const char __pyx_k_get_site_xvelr[] = "get_site_xvelr";
static const char __pyx_k_get_video_mode[] = "get_video_mode";
static const char __pyx_k_integral_error[] = "integral_error";
static const char __pyx_k_keep_inertials[] = "keep_inertials";
static const char __pyx_k_mj_deleteModel[] = "_mj_deleteModel";
static const char __pyx_k_mj_findFileVFS[] = "_mj_findFileVFS";
static const char __pyx_k_mj_forwardSkip[] = "_mj_forwardSkip";
static const char __pyx_k_mj_freeLastXML[] = "_mj_freeLastXML";
static const char __pyx_k_mj_fwdPosition[] = "_mj_fwdPosition";
static const char __pyx_k_mj_fwdVelocity[] = "_mj_fwdVelocity";
static const char __pyx_k_mj_invPosition[] = "_mj_invPosition";
static const char __pyx_k_mj_invVelocity[] = "_mj_invVelocity";
static const char __pyx_k_mj_inverseSkip[] = "_mj_inverseSkip";
static const char __pyx_k_mj_isPyramidal[] = "_mj_isPyramidal";
static const char __pyx_k_mj_printSchema[] = "_mj_printSchema";
static const char __pyx_k_mj_saveLastXML[] = "_mj_saveLastXML";
static const char __pyx_k_mjr_blitBuffer[] = "_mjr_blitBuffer";
static const char __pyx_k_mjr_changeFont[] = "_mjr_changeFont";
static const char __pyx_k_mjr_uploadMesh[] = "_mjr_uploadMesh";
static const char __pyx_k_mju_cholFactor[] = "_mju_cholFactor";
static const char __pyx_k_mju_cholUpdate[] = "_mju_cholUpdate";
static const char __pyx_k_mju_mulMatMatT[] = "_mju_mulMatMatT";
static const char __pyx_k_mju_mulMatTMat[] = "_mju_mulMatTMat";
static const char __pyx_k_mju_mulMatTVec[] = "_mju_mulMatTVec";
static const char __pyx_k_mju_muscleBias[] = "_mju_muscleBias";
static const char __pyx_k_mju_muscleGain[] = "_mju_muscleGain";
static const char __pyx_k_mju_normalize3[] = "_mju_normalize3";
static const char __pyx_k_mju_normalize4[] = "_mju_normalize4";
static const char __pyx_k_mju_rotVecMatT[] = "_mju_rotVecMatT";
static const char __pyx_k_mju_rotVecQuat[] = "_mju_rotVecQuat";
static const char __pyx_k_mju_trnVecPose[] = "_mju_trnVecPose";
static const char __pyx_k_mjv_makeLights[] = "_mjv_makeLights";
static const char __pyx_k_mjv_model2room[] = "_mjv_model2room";
static const char __pyx_k_mjv_moveCamera[] = "_mjv_moveCamera";
static const char __pyx_k_mjv_room2model[] = "_mjv_room2model";
static const char __pyx_k_mjv_updateSkin[] = "_mjv_updateSkin";
static const char __pyx_k_mujoco_py_cymj[] = "mujoco_py.cymj";
static const char __pyx_k_nuser_actuator[] = "nuser_actuator";
static const char __pyx_k_opengl_backend[] = "opengl_backend";
static const char __pyx_k_opengl_context[] = "opengl_context";
static const char __pyx_k_ray_fast_group[] = "ray_fast_group";
static const char __pyx_k_render_context[] = "render_context";
static const char __pyx_k_schema_example[] = "schema_example";
static const char __pyx_k_sensor_id2name[] = "sensor_id2name";
static const char __pyx_k_sensor_name2id[] = "sensor_name2id";
static const char __pyx_k_set_joint_qpos[] = "set_joint_qpos";
static const char __pyx_k_set_joint_qvel[] = "set_joint_qvel";
static const char __pyx_k_set_mocap_quat[] = "set_mocap_quat";
static const char __pyx_k_tendon_id2name[] = "tendon_id2name";
static const char __pyx_k_tendon_name2id[] = "tendon_name2id";
static const char __pyx_k_unflatten_dict[] = "_unflatten_dict";
static const char __pyx_k_upload_texture[] = "upload_texture";
static const char __pyx_k_userdata_names[] = "userdata_names";
static const char __pyx_k_MjBatchRenderer[] = "MjBatchRenderer";
static const char __pyx_k_MjRenderContext[] = "MjRenderContext";
static const char __pyx_k_MjSimState___eq[] = "MjSimState.__eq__";
static const char __pyx_k_MjSimState___ne[] = "MjSimState.__ne__";
static const char __pyx_k_MjSim_get_state[] = "MjSim.get_state";
static const char __pyx_k_MjSim_set_state[] = "MjSim.set_state";
static const char __pyx_k_PyMjVisual_rgba[] = "PyMjVisual_rgba";
static const char __pyx_k_PyMjWarningStat[] = "PyMjWarningStat";
static const char __pyx_k_View_MemoryView[] = "View.MemoryView";
static const char __pyx_k_allocate_buffer[] = "allocate_buffer";
static const char __pyx_k_collections_abc[] = "collections.abc";
static const char __pyx_k_create_window_2[] = "create_window";
static const char __pyx_k_discover_mujoco[] = "discover_mujoco";
static const char __pyx_k_dtype_is_object[] = "dtype_is_object";
static const char __pyx_k_flg_coneHessian[] = "flg_coneHessian";
static const char __pyx_k_get_buffer_size[] = "get_buffer_size";
static const char __pyx_k_get_camera_xmat[] = "get_camera_xmat";
static const char __pyx_k_get_camera_xpos[] = "get_camera_xpos";
static const char __pyx_k_get_joint_xaxis[] = "get_joint_xaxis";
static const char __pyx_k_mj_contactForce[] = "_mj_contactForce";
static const char __pyx_k_mj_defaultLROpt[] = "_mj_defaultLROpt";
static const char __pyx_k_mj_fwdActuation[] = "_mj_fwdActuation";
static const char __pyx_k_mj_getTotalmass[] = "_mj_getTotalmass";
static const char __pyx_k_mj_integratePos[] = "_mj_integratePos";
static const char __pyx_k_mj_jacPointAxis[] = "_mj_jacPointAxis";
static const char __pyx_k_mj_local2Global[] = "_mj_local2Global";
static const char __pyx_k_mj_setTotalmass[] = "_mj_setTotalmass";
static const char __pyx_k_mj_transmission[] = "_mj_transmission";
static const char __pyx_k_mjr_freeContext[] = "_mjr_freeContext";
static const char __pyx_k_mjr_makeContext[] = "_mjr_makeContext";
static const char __pyx_k_mju_mulQuatAxis[] = "_mju_mulQuatAxis";
static const char __pyx_k_mjv_initPerturb[] = "_mjv_initPerturb";
static const char __pyx_k_mjv_movePerturb[] = "_mjv_movePerturb";
static const char __pyx_k_mjv_updateScene[] = "_mjv_updateScene";
static const char __pyx_k_mujoco_py_utils[] = "mujoco_py.utils";
static const char __pyx_k_previous_errors[] = "previous_errors";
static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError";
static const char __pyx_k_render_callback[] = "render_callback";
static const char __pyx_k_render_contexts[] = "render_contexts";
static const char __pyx_k_set_buffer_size[] = "set_buffer_size";
static const char __pyx_k_set_pid_control[] = "set_pid_control";
static const char __pyx_k_set_window_size[] = "_set_window_size";
static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
static const char __pyx_k_PyMjVisual_scale[] = "PyMjVisual_scale";
static const char __pyx_k_PyMjuiThemeColor[] = "PyMjuiThemeColor";
static const char __pyx_k_RegisteredBuffer[] = "RegisteredBuffer";
static const char __pyx_k_actuator_id2name[] = "actuator_id2name";
static const char __pyx_k_actuator_name2id[] = "actuator_name2id";
static const char __pyx_k_cuda_rgb_mapping[] = "_cuda_rgb_mapping";
static const char __pyx_k_derivative_error[] = "derivative_error";
static const char __pyx_k_mj_compareFwdInv[] = "_mj_compareFwdInv";
static const char __pyx_k_mj_defaultOption[] = "_mj_defaultOption";
static const char __pyx_k_mj_defaultVisual[] = "_mj_defaultVisual";
static const char __pyx_k_mj_deleteFileVFS[] = "_mj_deleteFileVFS";
static const char __pyx_k_mj_fwdConstraint[] = "_mj_fwdConstraint";
static const char __pyx_k_mj_invConstraint[] = "_mj_invConstraint";
static const char __pyx_k_mj_loadXML_error[] = ". mj_loadXML error: ";
static const char __pyx_k_mj_normalizeQuat[] = "_mj_normalizeQuat";
static const char __pyx_k_mjr_uploadHField[] = "_mjr_uploadHField";
static const char __pyx_k_mju_springDamper[] = "_mju_springDamper";
static const char __pyx_k_mjv_cameraInRoom[] = "_mjv_cameraInRoom";
static const char __pyx_k_mjv_defaultScene[] = "_mjv_defaultScene";
static const char __pyx_k_mjv_updateCamera[] = "_mjv_updateCamera";
static const char __pyx_k_ray_fast_nogroup[] = "ray_fast_nogroup";
static const char __pyx_k_substep_callback[] = "substep_callback";
static const char __pyx_k_userdata_id2name[] = "userdata_id2name";
static const char __pyx_k_userdata_name2id[] = "userdata_name2id";
static const char __pyx_k_DYLD_LIBRARY_PATH[] = "DYLD_LIBRARY_PATH";
static const char __pyx_k_MjSim_render_lock[] = "_MjSim_render_lock";
static const char __pyx_k_No_body_with_name[] = "No \"body\" with name ";
static const char __pyx_k_No_geom_with_name[] = "No \"geom\" with name ";
static const char __pyx_k_No_mesh_with_name[] = "No \"mesh\" with name ";
static const char __pyx_k_No_site_with_name[] = "No \"site\" with name ";
static const char __pyx_k_PyMjData_get_xmat[] = "PyMjData.get_xmat";
static const char __pyx_k_PyMjData_get_xpos[] = "PyMjData.get_xpos";
static const char __pyx_k_PyMjModel_get_mjb[] = "PyMjModel.get_mjb";
static const char __pyx_k_PyMjModel_get_xml[] = "PyMjModel.get_xml";
static const char __pyx_k_PyMjVisual_global[] = "PyMjVisual_global_";
static const char __pyx_k_build_callback_fn[] = "build_callback_fn";
static const char __pyx_k_cuda_rgb_buf_size[] = "_cuda_rgb_buf_size";
static const char __pyx_k_get_joint_xanchor[] = "get_joint_xanchor";
static const char __pyx_k_mj_makeConstraint[] = "_mj_makeConstraint";
static const char __pyx_k_mj_objectVelocity[] = "_mj_objectVelocity";
static const char __pyx_k_mj_resetCallbacks[] = "_mj_resetCallbacks";
static const char __pyx_k_mj_setLengthRange[] = "_mj_setLengthRange";
static const char __pyx_k_mjr_restoreBuffer[] = "_mjr_restoreBuffer";
static const char __pyx_k_mjr_uploadTexture[] = "_mjr_uploadTexture";
static const char __pyx_k_mju_clearHandlers[] = "_mju_clearHandlers";
static const char __pyx_k_mju_decodePyramid[] = "_mju_decodePyramid";
static const char __pyx_k_mju_encodePyramid[] = "_mju_encodePyramid";
static const char __pyx_k_mju_insertionSort[] = "_mju_insertionSort";
static const char __pyx_k_mju_quatIntegrate[] = "_mju_quatIntegrate";
static const char __pyx_k_mjui_addToSection[] = "_mjui_addToSection";
static const char __pyx_k_mjv_alignToCamera[] = "_mjv_alignToCamera";
static const char __pyx_k_mjv_cameraInModel[] = "_mjv_cameraInModel";
static const char __pyx_k_mjv_defaultCamera[] = "_mjv_defaultCamera";
static const char __pyx_k_mjv_defaultFigure[] = "_mjv_defaultFigure";
static const char __pyx_k_mjv_defaultOption[] = "_mjv_defaultOption";
static const char __pyx_k_mjv_frustumHeight[] = "_mjv_frustumHeight";
static const char __pyx_k_mjv_makeConnector[] = "_mjv_makeConnector";
static const char __pyx_k_mujoco_py_builder[] = "mujoco_py.builder";
static const char __pyx_k_pyx_unpickle_Enum[] = "__pyx_unpickle_Enum";
static const char __pyx_k_read_pixels_depth[] = "read_pixels_depth";
static const char __pyx_k_set_window_size_2[] = "set_window_size";
static const char __pyx_k_Failed_to_save_XML[] = "Failed to save XML: {}";
static const char __pyx_k_GLFW_not_installed[] = "GLFW not installed";
static const char __pyx_k_GlfwContext___init[] = "GlfwContext.__init__";
static const char __pyx_k_MjSimState_flatten[] = "MjSimState.flatten";
static const char __pyx_k_NamedTemporaryFile[] = "NamedTemporaryFile";
static const char __pyx_k_No_joint_with_name[] = "No \"joint\" with name ";
static const char __pyx_k_No_light_with_name[] = "No \"light\" with name ";
static const char __pyx_k_PyMjData_get_xaxis[] = "PyMjData.get_xaxis";
static const char __pyx_k_PyMjData_get_ximat[] = "PyMjData.get_ximat";
static const char __pyx_k_PyMjData_get_xipos[] = "PyMjData.get_xipos";
static const char __pyx_k_PyMjData_get_xquat[] = "PyMjData.get_xquat";
static const char __pyx_k_PyMjVisual_quality[] = "PyMjVisual_quality";
static const char __pyx_k_PyMjuiThemeSpacing[] = "PyMjuiThemeSpacing";
static const char __pyx_k_TemporaryDirectory[] = "TemporaryDirectory";
static const char __pyx_k_add_render_context[] = "add_render_context";
static const char __pyx_k_asyncio_coroutines[] = "asyncio.coroutines";
static const char __pyx_k_bad_userdata_names[] = "bad userdata names";
static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
static const char __pyx_k_cuda_depth_mapping[] = "_cuda_depth_mapping";
static const char __pyx_k_get_error_callback[] = "get_error_callback";
static const char __pyx_k_integral_max_clamp[] = "integral_max_clamp";
static const char __pyx_k_mj_fwdAcceleration[] = "_mj_fwdAcceleration";
static const char __pyx_k_mj_makeData_failed[] = "mj_makeData failed!";
static const char __pyx_k_mjr_defaultContext[] = "_mjr_defaultContext";
static const char __pyx_k_mju_axisAngle2Quat[] = "_mju_axisAngle2Quat";
static const char __pyx_k_mju_muscleDynamics[] = "_mju_muscleDynamics";
static const char __pyx_k_mju_printMatSparse[] = "_mju_printMatSparse";
static const char __pyx_k_mju_standardNormal[] = "_mju_standardNormal";
static const char __pyx_k_mjv_defaultPerturb[] = "_mjv_defaultPerturb";
static const char __pyx_k_mujoco_py_cymj_pyx[] = "mujoco_py/cymj.pyx";
static const char __pyx_k_mujoco_py_mjviewer[] = "mujoco_py.mjviewer";
static const char __pyx_k_remove_empty_lines[] = "remove_empty_lines";
static const char __pyx_k_set_error_callback[] = "set_error_callback";
static const char __pyx_k_set_mujoco_buffers[] = "_set_mujoco_buffers";
static const char __pyx_k_set_userdata_names[] = "set_userdata_names";
static const char __pyx_k_strided_and_direct[] = "<strided and direct>";
static const char __pyx_k_CudaNotEnabledError[] = "CudaNotEnabledError";
static const char __pyx_k_GLFW_IS_INITIALIZED[] = "_GLFW_IS_INITIALIZED";
static const char __pyx_k_GLFW_error_code_d_s[] = "GLFW error (code %d): %s";
static const char __pyx_k_MjBatchRenderer_map[] = "MjBatchRenderer.map";
static const char __pyx_k_MjSim_set_constants[] = "MjSim.set_constants";
static const char __pyx_k_No_camera_with_name[] = "No \"camera\" with name ";
static const char __pyx_k_No_sensor_with_name[] = "No \"sensor\" with name ";
static const char __pyx_k_No_tendon_with_name[] = "No \"tendon\" with name ";
static const char __pyx_k_NotImplementedError[] = "NotImplementedError";
static const char __pyx_k_PyMjData_get_sensor[] = "PyMjData.get_sensor";
static const char __pyx_k_add_marker_to_scene[] = "_add_marker_to_scene";
static const char __pyx_k_cuda_depth_buf_size[] = "_cuda_depth_buf_size";
static const char __pyx_k_device_ptr_and_size[] = "device_ptr_and_size";
static const char __pyx_k_get_joint_qpos_addr[] = "get_joint_qpos_addr";
static const char __pyx_k_get_joint_qvel_addr[] = "get_joint_qvel_addr";
static const char __pyx_k_get_primary_monitor[] = "get_primary_monitor";
static const char __pyx_k_glfw_error_callback[] = "_glfw_error_callback";
static const char __pyx_k_integral_time_const[] = "integral_time_const";
static const char __pyx_k_load_model_from_mjb[] = "load_model_from_mjb";
static const char __pyx_k_load_model_from_xml[] = "load_model_from_xml";
static const char __pyx_k_mj_constraintUpdate[] = "_mj_constraintUpdate";
static const char __pyx_k_mj_defaultSolRefImp[] = "_mj_defaultSolRefImp";
static const char __pyx_k_mj_differentiatePos[] = "_mj_differentiatePos";
static const char __pyx_k_mj_makeEmptyFileVFS[] = "_mj_makeEmptyFileVFS";
static const char __pyx_k_mujoco_py_generated[] = "mujoco_py.generated";
static const char __pyx_k_mujoco_py_mjpid_pyx[] = "mujoco_py/mjpid.pyx";
static const char __pyx_k_mujoco_py_mjsim_pyx[] = "mujoco_py/mjsim.pyx";
static const char __pyx_k_window_should_close[] = "window_should_close";
static const char __pyx_k_wrap_mujoco_warning[] = "wrap_mujoco_warning";
static const char __pyx_k_CUDA_VISIBLE_DEVICES[] = "CUDA_VISIBLE_DEVICES";
static const char __pyx_k_Creating_window_glfw[] = "Creating window glfw";
static const char __pyx_k_MjBatchRenderer_read[] = "MjBatchRenderer.read";
static const char __pyx_k_MjSim_ray_fast_group[] = "MjSim.ray_fast_group";
static const char __pyx_k_PyMjData_get_xanchor[] = "PyMjData.get_xanchor";
static const char __pyx_k_PyMjVisual_headlight[] = "PyMjVisual_headlight";
static const char __pyx_k_current_batch_offset[] = "_current_batch_offset";
static const char __pyx_k_getElementsByTagName[] = "getElementsByTagName";
static const char __pyx_k_get_framebuffer_size[] = "get_framebuffer_size";
static const char __pyx_k_get_warning_callback[] = "get_warning_callback";
static const char __pyx_k_include_static_geoms[] = "include_static_geoms";
static const char __pyx_k_load_model_from_path[] = "load_model_from_path";
static const char __pyx_k_make_context_current[] = "make_context_current";
static const char __pyx_k_mj_projectConstraint[] = "_mj_projectConstraint";
static const char __pyx_k_mj_resetDataKeyframe[] = "_mj_resetDataKeyframe";
static const char __pyx_k_mj_rnePostConstraint[] = "_mj_rnePostConstraint";
static const char __pyx_k_mju_insertionSortInt[] = "_mju_insertionSortInt";
static const char __pyx_k_mju_transformSpatial[] = "_mju_transformSpatial";
static const char __pyx_k_mjv_applyPerturbPose[] = "_mjv_applyPerturbPose";
static const char __pyx_k_render_swap_callback[] = "render_swap_callback";
static const char __pyx_k_s_Failed_to_load_MJB[] = "%s\nFailed to load MJB";
static const char __pyx_k_set_substep_callback[] = "set_substep_callback";
static const char __pyx_k_set_warning_callback[] = "set_warning_callback";
static const char __pyx_k_setup_opengl_context[] = "_setup_opengl_context";
static const char __pyx_k_strided_and_indirect[] = "<strided and indirect>";
static const char __pyx_k_CudaBufferMappedError[] = "CudaBufferMappedError";
static const char __pyx_k_Invalid_shape_in_axis[] = "Invalid shape in axis ";
static const char __pyx_k_MjBatchRenderer___del[] = "MjBatchRenderer.__del__";
static const char __pyx_k_MjBatchRenderer_unmap[] = "MjBatchRenderer.unmap";
static const char __pyx_k_MjRenderContextWindow[] = "MjRenderContextWindow";
static const char __pyx_k_MjSim___reduce_cython[] = "MjSim.__reduce_cython__";
static const char __pyx_k_No_actuator_with_name[] = "No \"actuator\" with name ";
static const char __pyx_k_No_userdata_with_name[] = "No \"userdata\" with name ";
static const char __pyx_k_PyMjData_get_cam_xmat[] = "PyMjData.get_cam_xmat";
static const char __pyx_k_PyMjData_get_cam_xpos[] = "PyMjData.get_cam_xpos";
static const char __pyx_k_PyMjData_get_userdata[] = "PyMjData.get_userdata";
static const char __pyx_k_contiguous_and_direct[] = "<contiguous and direct>";
static const char __pyx_k_derivative_time_const[] = "derivative_time_const";
static const char __pyx_k_insufficient_userdata[] = "insufficient userdata";
static const char __pyx_k_mj_objectAcceleration[] = "_mj_objectAcceleration";
static const char __pyx_k_mjv_applyPerturbForce[] = "_mjv_applyPerturbForce";
static const char __pyx_k_old_dyld_library_path[] = "old_dyld_library_path";
static const char __pyx_k_save_locals_str_array[] = "save.<locals>.str_array";
static const char __pyx_k_update_offscreen_size[] = "update_offscreen_size";
static const char __pyx_k_Cannot_index_with_type[] = "Cannot index with type '";
static const char __pyx_k_GlfwContext__init_glfw[] = "GlfwContext._init_glfw";
static const char __pyx_k_MemoryView_of_r_object[] = "<MemoryView of %r object>";
static const char __pyx_k_MjBatchRenderer___init[] = "MjBatchRenderer.__init__";
static const char __pyx_k_MjBatchRenderer_render[] = "MjBatchRenderer.render";
static const char __pyx_k_MjRenderContext_render[] = "MjRenderContext.render";
static const char __pyx_k_MjSim_ray_fast_nogroup[] = "MjSim.ray_fast_nogroup";
static const char __pyx_k_MjSim_substep_callback[] = "MjSim.substep_callback";
static const char __pyx_k_OffscreenOpenGLContext[] = "OffscreenOpenGLContext";
static const char __pyx_k_PyMjData_get_body_jacp[] = "PyMjData.get_body_jacp";
static const char __pyx_k_PyMjData_get_body_jacr[] = "PyMjData.get_body_jacr";
static const char __pyx_k_PyMjData_get_body_xmat[] = "PyMjData.get_body_xmat";
static const char __pyx_k_PyMjData_get_body_xpos[] = "PyMjData.get_body_xpos";
static const char __pyx_k_PyMjData_get_geom_jacp[] = "PyMjData.get_geom_jacp";
static const char __pyx_k_PyMjData_get_geom_jacr[] = "PyMjData.get_geom_jacr";
static const char __pyx_k_PyMjData_get_geom_xmat[] = "PyMjData.get_geom_xmat";
static const char __pyx_k_PyMjData_get_geom_xpos[] = "PyMjData.get_geom_xpos";
static const char __pyx_k_PyMjData_get_mocap_pos[] = "PyMjData.get_mocap_pos";
static const char __pyx_k_PyMjData_get_site_jacp[] = "PyMjData.get_site_jacp";
static const char __pyx_k_PyMjData_get_site_jacr[] = "PyMjData.get_site_jacr";
static const char __pyx_k_PyMjData_get_site_xmat[] = "PyMjData.get_site_xmat";
static const char __pyx_k_PyMjData_get_site_xpos[] = "PyMjData.get_site_xpos";
static const char __pyx_k_PyMjData_set_mocap_pos[] = "PyMjData.set_mocap_pos";
static const char __pyx_k_PyMjModel_body_id2name[] = "PyMjModel.body_id2name";
static const char __pyx_k_PyMjModel_body_name2id[] = "PyMjModel.body_name2id";
static const char __pyx_k_PyMjModel_geom_id2name[] = "PyMjModel.geom_id2name";
static const char __pyx_k_PyMjModel_geom_name2id[] = "PyMjModel.geom_name2id";
static const char __pyx_k_PyMjModel_mesh_id2name[] = "PyMjModel.mesh_id2name";
static const char __pyx_k_PyMjModel_mesh_name2id[] = "PyMjModel.mesh_name2id";
static const char __pyx_k_PyMjModel_site_id2name[] = "PyMjModel.site_id2name";
static const char __pyx_k_PyMjModel_site_name2id[] = "PyMjModel.site_name2id";
static const char __pyx_k_PyMjUI___reduce_cython[] = "PyMjUI.__reduce_cython__";
static const char __pyx_k_mj_referenceConstraint[] = "_mj_referenceConstraint";
static const char __pyx_k_prepare_render_context[] = "prepare_render_context";
static const char __pyx_k_Creating_offscreen_glfw[] = "Creating offscreen glfw";
static const char __pyx_k_Failed_to_import_pycuda[] = "Failed to import pycuda.";
static const char __pyx_k_Failed_to_load_XML_file[] = "Failed to load XML file: ";
static const char __pyx_k_MemoryView_of_r_at_0x_x[] = "<MemoryView of %r at 0x%x>";
static const char __pyx_k_MjSim___setstate_cython[] = "MjSim.__setstate_cython__";
static const char __pyx_k_PyMjData_get_body_ximat[] = "PyMjData.get_body_ximat";
static const char __pyx_k_PyMjData_get_body_xipos[] = "PyMjData.get_body_xipos";
static const char __pyx_k_PyMjData_get_body_xquat[] = "PyMjData.get_body_xquat";
static const char __pyx_k_PyMjData_get_body_xvelp[] = "PyMjData.get_body_xvelp";
static const char __pyx_k_PyMjData_get_body_xvelr[] = "PyMjData.get_body_xvelr";
static const char __pyx_k_PyMjData_get_geom_xvelp[] = "PyMjData.get_geom_xvelp";
static const char __pyx_k_PyMjData_get_geom_xvelr[] = "PyMjData.get_geom_xvelr";
static const char __pyx_k_PyMjData_get_joint_qpos[] = "PyMjData.get_joint_qpos";
static const char __pyx_k_PyMjData_get_joint_qvel[] = "PyMjData.get_joint_qvel";
static const char __pyx_k_PyMjData_get_light_xdir[] = "PyMjData.get_light_xdir";
static const char __pyx_k_PyMjData_get_light_xpos[] = "PyMjData.get_light_xpos";
static const char __pyx_k_PyMjData_get_mocap_quat[] = "PyMjData.get_mocap_quat";
static const char __pyx_k_PyMjData_get_sensordata[] = "PyMjData.get_sensordata";
static const char __pyx_k_PyMjData_get_site_xvelp[] = "PyMjData.get_site_xvelp";
static const char __pyx_k_PyMjData_get_site_xvelr[] = "PyMjData.get_site_xvelr";
static const char __pyx_k_PyMjData_set_joint_qpos[] = "PyMjData.set_joint_qpos";
static const char __pyx_k_PyMjData_set_joint_qvel[] = "PyMjData.set_joint_qvel";
static const char __pyx_k_PyMjData_set_mocap_quat[] = "PyMjData.set_mocap_quat";
static const char __pyx_k_PyMjModel_joint_id2name[] = "PyMjModel.joint_id2name";
static const char __pyx_k_PyMjModel_joint_name2id[] = "PyMjModel.joint_name2id";
static const char __pyx_k_PyMjModel_light_id2name[] = "PyMjModel.light_id2name";
static const char __pyx_k_PyMjModel_light_name2id[] = "PyMjModel.light_name2id";
static const char __pyx_k_PyMjVFS___reduce_cython[] = "PyMjVFS.__reduce_cython__";
static const char __pyx_k_contiguous_and_indirect[] = "<contiguous and indirect>";
static const char __pyx_k_cuda_buffers_are_mapped[] = "_cuda_buffers_are_mapped";
static const char __pyx_k_cuda_rgb_buffer_pointer[] = "cuda_rgb_buffer_pointer";
static const char __pyx_k_CudaBufferNotMappedError[] = "CudaBufferNotMappedError";
static const char __pyx_k_MjBatchRendererException[] = "MjBatchRendererException";
static const char __pyx_k_MjRenderContextOffscreen[] = "MjRenderContextOffscreen";
static const char __pyx_k_MjSimState__flatten_dict[] = "MjSimState._flatten_dict";
static const char __pyx_k_MjSim_add_render_context[] = "MjSim.add_render_context";
static const char __pyx_k_No_body_with_id_d_exists[] = "No body with id %d exists.";
static const char __pyx_k_No_geom_with_id_d_exists[] = "No geom with id %d exists.";
static const char __pyx_k_No_mesh_with_id_d_exists[] = "No mesh with id %d exists.";
static const char __pyx_k_No_site_with_id_d_exists[] = "No site with id %d exists.";
static const char __pyx_k_PyMjData___reduce_cython[] = "PyMjData.__reduce_cython__";
static const char __pyx_k_PyMjData_get_camera_xmat[] = "PyMjData.get_camera_xmat";
static const char __pyx_k_PyMjData_get_camera_xpos[] = "PyMjData.get_camera_xpos";
static const char __pyx_k_PyMjData_get_joint_xaxis[] = "PyMjData.get_joint_xaxis";
static const char __pyx_k_PyMjModel_camera_id2name[] = "PyMjModel.camera_id2name";
static const char __pyx_k_PyMjModel_camera_name2id[] = "PyMjModel.camera_name2id";
static const char __pyx_k_PyMjModel_sensor_id2name[] = "PyMjModel.sensor_id2name";
static const char __pyx_k_PyMjModel_sensor_name2id[] = "PyMjModel.sensor_name2id";
static const char __pyx_k_PyMjModel_tendon_id2name[] = "PyMjModel.tendon_id2name";
static const char __pyx_k_PyMjModel_tendon_name2id[] = "PyMjModel.tendon_name2id";
static const char __pyx_k_PyMjUI___setstate_cython[] = "PyMjUI.__setstate_cython__";
static const char __pyx_k_mujoco_py_mjsimstate_pyx[] = "mujoco_py/mjsimstate.pyx";
static const char __pyx_k_set_state_from_flattened[] = "set_state_from_flattened";
static const char __pyx_k_Dimension_d_is_not_direct[] = "Dimension %d is not direct";
static const char __pyx_k_Failed_to_initialize_GLFW[] = "Failed to initialize GLFW";
static const char __pyx_k_Failed_to_set_buffer_size[] = "Failed to set buffer size";
static const char __pyx_k_MjSimState_from_flattened[] = "MjSimState.from_flattened";
static const char __pyx_k_No_joint_with_id_d_exists[] = "No joint with id %d exists.";
static const char __pyx_k_No_light_with_id_d_exists[] = "No light with id %d exists.";
static const char __pyx_k_PyMjLROpt___reduce_cython[] = "PyMjLROpt.__reduce_cython__";
static const char __pyx_k_PyMjModel___reduce_cython[] = "PyMjModel.__reduce_cython__";
static const char __pyx_k_PyMjVFS___setstate_cython[] = "PyMjVFS.__setstate_cython__";
static const char __pyx_k_PyMjrRect___reduce_cython[] = "PyMjrRect.__reduce_cython__";
static const char __pyx_k_PyMjuiDef___reduce_cython[] = "PyMjuiDef.__reduce_cython__";
static const char __pyx_k_PyMjvGeom___reduce_cython[] = "PyMjvGeom.__reduce_cython__";
static const char __pyx_k_Value_has_incorrect_shape[] = "Value has incorrect shape ";
static const char __pyx_k_batch_offset_out_of_range[] = "batch_offset out of range";
static const char __pyx_k_cuda_depth_buffer_pointer[] = "cuda_depth_buffer_pointer";
static const char __pyx_k_derivative_gain_smoothing[] = "derivative_gain_smoothing";
static const char __pyx_k_doesn_t_match_old_pointer[] = " doesn't match old pointer ";
static const char __pyx_k_names_must_all_be_strings[] = "names must all be strings";
static const char __pyx_k_GlfwContext__create_window[] = "GlfwContext._create_window";
static const char __pyx_k_Index_out_of_bounds_axis_d[] = "Index out of bounds (axis %d)";
static const char __pyx_k_MjBatchRenderer__init_cuda[] = "MjBatchRenderer._init_cuda";
static const char __pyx_k_MjBatchRenderer__read_cuda[] = "MjBatchRenderer._read_cuda";
static const char __pyx_k_MjRenderContext_add_marker[] = "MjRenderContext.add_marker";
static const char __pyx_k_MjRenderContext_update_sim[] = "MjRenderContext.update_sim";
static const char __pyx_k_MjSimState__unflatten_dict[] = "MjSimState._unflatten_dict";
static const char __pyx_k_MjSim_set_substep_callback[] = "MjSim.set_substep_callback";
static const char __pyx_k_No_camera_with_id_d_exists[] = "No camera with id %d exists.";
static const char __pyx_k_No_sensor_with_id_d_exists[] = "No sensor with id %d exists.";
static const char __pyx_k_No_tendon_with_id_d_exists[] = "No tendon with id %d exists.";
static const char __pyx_k_PyMjData___setstate_cython[] = "PyMjData.__setstate_cython__";
static const char __pyx_k_PyMjData_get_joint_xanchor[] = "PyMjData.get_joint_xanchor";
static const char __pyx_k_PyMjModel_actuator_id2name[] = "PyMjModel.actuator_id2name";
static const char __pyx_k_PyMjModel_actuator_name2id[] = "PyMjModel.actuator_name2id";
static const char __pyx_k_PyMjModel_userdata_id2name[] = "PyMjModel.userdata_id2name";
static const char __pyx_k_PyMjModel_userdata_name2id[] = "PyMjModel.userdata_name2id";
static const char __pyx_k_PyMjOption___reduce_cython[] = "PyMjOption.__reduce_cython__";
static const char __pyx_k_PyMjVisual___reduce_cython[] = "PyMjVisual.__reduce_cython__";
static const char __pyx_k_PyMjuiItem___reduce_cython[] = "PyMjuiItem.__reduce_cython__";
static const char __pyx_k_PyMjvLight___reduce_cython[] = "PyMjvLight.__reduce_cython__";
static const char __pyx_k_PyMjvScene___reduce_cython[] = "PyMjvScene.__reduce_cython__";
static const char __pyx_k_Ran_out_of_geoms_maxgeom_d[] = "Ran out of geoms. maxgeom: %d";
static const char __pyx_k_wrap_mujoco_warning___exit[] = "wrap_mujoco_warning.__exit__";
static const char __pyx_k_Failed_to_initialize_OpenGL[] = "Failed to initialize OpenGL";
static const char __pyx_k_GlfwContext_get_buffer_size[] = "GlfwContext.get_buffer_size";
static const char __pyx_k_GlfwContext_set_buffer_size[] = "GlfwContext.set_buffer_size";
static const char __pyx_k_MjBatchRendererNotSupported[] = "MjBatchRendererNotSupported";
static const char __pyx_k_MjRenderContext_add_overlay[] = "MjRenderContext.add_overlay";
static const char __pyx_k_MjRenderContext_draw_pixels[] = "MjRenderContext.draw_pixels";
static const char __pyx_k_MjRenderContext_move_camera[] = "MjRenderContext.move_camera";
static const char __pyx_k_MjRenderContext_read_pixels[] = "MjRenderContext.read_pixels";
static const char __pyx_k_PyMjContact___reduce_cython[] = "PyMjContact.__reduce_cython__";
static const char __pyx_k_PyMjLROpt___setstate_cython[] = "PyMjLROpt.__setstate_cython__";
static const char __pyx_k_PyMjModel___setstate_cython[] = "PyMjModel.__setstate_cython__";
static const char __pyx_k_PyMjrRect___setstate_cython[] = "PyMjrRect.__setstate_cython__";
static const char __pyx_k_PyMjuiDef___setstate_cython[] = "PyMjuiDef.__setstate_cython__";
static const char __pyx_k_PyMjuiState___reduce_cython[] = "PyMjuiState.__reduce_cython__";
static const char __pyx_k_PyMjvCamera___reduce_cython[] = "PyMjvCamera.__reduce_cython__";
static const char __pyx_k_PyMjvFigure___reduce_cython[] = "PyMjvFigure.__reduce_cython__";
static const char __pyx_k_PyMjvGeom___setstate_cython[] = "PyMjvGeom.__setstate_cython__";
static const char __pyx_k_PyMjvOption___reduce_cython[] = "PyMjvOption.__reduce_cython__";
static const char __pyx_k_Step_may_not_be_zero_axis_d[] = "Step may not be zero (axis %d)";
static const char __pyx_k_exists_Available_body_names[] = " exists. Available \"body\" names = ";
static const char __pyx_k_exists_Available_geom_names[] = " exists. Available \"geom\" names = ";
static const char __pyx_k_exists_Available_mesh_names[] = " exists. Available \"mesh\" names = ";
static const char __pyx_k_exists_Available_site_names[] = " exists. Available \"site\" names = ";
static const char __pyx_k_itemsize_0_for_cython_array[] = "itemsize <= 0 for cython.array";
static const char __pyx_k_wrap_mujoco_warning___enter[] = "wrap_mujoco_warning.__enter__";
static const char __pyx_k_Failed_to_create_GLFW_window[] = "Failed to create GLFW window";
static const char __pyx_k_GlfwContext__set_window_size[] = "GlfwContext._set_window_size";
static const char __pyx_k_MjBatchRenderer__read_nocuda[] = "MjBatchRenderer._read_nocuda";
static const char __pyx_k_MjRenderContextWindow___init[] = "MjRenderContextWindow.__init__";
static const char __pyx_k_MjRenderContextWindow_render[] = "MjRenderContextWindow.render";
static const char __pyx_k_MjRenderContextWindow_window[] = "MjRenderContextWindow.window";
static const char __pyx_k_MjRenderContext__init_camera[] = "MjRenderContext._init_camera";
static const char __pyx_k_No_actuator_with_id_d_exists[] = "No actuator with id %d exists.";
static const char __pyx_k_No_userdata_with_id_d_exists[] = "No userdata with id %d exists.";
static const char __pyx_k_OffscreenOpenGLContext_close[] = "OffscreenOpenGLContext.close";
static const char __pyx_k_PyMjModel_set_userdata_names[] = "PyMjModel.set_userdata_names";
static const char __pyx_k_PyMjOption___setstate_cython[] = "PyMjOption.__setstate_cython__";
static const char __pyx_k_PyMjVisual___setstate_cython[] = "PyMjVisual.__setstate_cython__";
static const char __pyx_k_PyMjrContext___reduce_cython[] = "PyMjrContext.__reduce_cython__";
static const char __pyx_k_PyMjuiItem___setstate_cython[] = "PyMjuiItem.__setstate_cython__";
static const char __pyx_k_PyMjvLight___setstate_cython[] = "PyMjvLight.__setstate_cython__";
static const char __pyx_k_PyMjvPerturb___reduce_cython[] = "PyMjvPerturb.__reduce_cython__";
static const char __pyx_k_PyMjvScene___setstate_cython[] = "PyMjvScene.__setstate_cython__";
static const char __pyx_k_exists_Available_joint_names[] = " exists. Available \"joint\" names = ";
static const char __pyx_k_exists_Available_light_names[] = " exists. Available \"light\" names = ";
static const char __pyx_k_mjvGeom_doesn_t_have_field_s[] = "mjvGeom doesn't have field %s";
static const char __pyx_k_mujoco_py_opengl_context_pyx[] = "mujoco_py/opengl_context.pyx";
static const char __pyx_k_time_qpos_qvel_act_udd_state[] = "time qpos qvel act udd_state";
static const char __pyx_k_OffscreenOpenGLContext___init[] = "OffscreenOpenGLContext.__init__";
static const char __pyx_k_OpenGLContext_set_buffer_size[] = "OpenGLContext.set_buffer_size";
static const char __pyx_k_PyMjContact___setstate_cython[] = "PyMjContact.__setstate_cython__";
static const char __pyx_k_PyMjModel_get_joint_qpos_addr[] = "PyMjModel.get_joint_qpos_addr";
static const char __pyx_k_PyMjModel_get_joint_qvel_addr[] = "PyMjModel.get_joint_qvel_addr";
static const char __pyx_k_PyMjStatistic___reduce_cython[] = "PyMjStatistic.__reduce_cython__";
static const char __pyx_k_PyMjTimerStat___reduce_cython[] = "PyMjTimerStat.__reduce_cython__";
static const char __pyx_k_PyMjuiSection___reduce_cython[] = "PyMjuiSection.__reduce_cython__";
static const char __pyx_k_PyMjuiState___setstate_cython[] = "PyMjuiState.__setstate_cython__";
static const char __pyx_k_PyMjvCamera___setstate_cython[] = "PyMjvCamera.__setstate_cython__";
static const char __pyx_k_PyMjvFigure___setstate_cython[] = "PyMjvFigure.__setstate_cython__";
static const char __pyx_k_PyMjvGLCamera___reduce_cython[] = "PyMjvGLCamera.__reduce_cython__";
static const char __pyx_k_PyMjvOption___setstate_cython[] = "PyMjvOption.__setstate_cython__";
static const char __pyx_k_exists_Available_camera_names[] = " exists. Available \"camera\" names = ";
static const char __pyx_k_exists_Available_sensor_names[] = " exists. Available \"sensor\" names = ";
static const char __pyx_k_exists_Available_tendon_names[] = " exists. Available \"tendon\" names = ";
static const char __pyx_k_mujoco_py_mjbatchrenderer_pyx[] = "mujoco_py/mjbatchrenderer.pyx";
static const char __pyx_k_mujoco_py_mjrendercontext_pyx[] = "mujoco_py/mjrendercontext.pyx";
static const char __pyx_k_unable_to_allocate_array_data[] = "unable to allocate array data.";
static const char __pyx_k_Failed_to_load_XML_from_string[] = "\nFailed to load XML from string. mj_loadXML error: ";
static const char __pyx_k_Mapped_CUDA_rgb_buffer_pointer[] = "Mapped CUDA rgb buffer pointer ";
static const char __pyx_k_MjRenderContext_upload_texture[] = "MjRenderContext.upload_texture";
static const char __pyx_k_MjSim_set_state_from_flattened[] = "MjSim.set_state_from_flattened";
static const char __pyx_k_PyMjSolverStat___reduce_cython[] = "PyMjSolverStat.__reduce_cython__";
static const char __pyx_k_PyMjVisual_map___reduce_cython[] = "PyMjVisual_map.__reduce_cython__";
static const char __pyx_k_PyMjrContext___setstate_cython[] = "PyMjrContext.__setstate_cython__";
static const char __pyx_k_PyMjvPerturb___setstate_cython[] = "PyMjvPerturb.__setstate_cython__";
static const char __pyx_k_Window_rendering_not_supported[] = "Window rendering not supported";
static const char __pyx_k_add_mujoco_bin_to_dyld_library[] = "_add_mujoco_bin_to_dyld_library_path";
static const char __pyx_k_strided_and_direct_or_indirect[] = "<strided and direct or indirect>";
static const char __pyx_k_Class_to_wrap_capturing_excepti[] = "\n    Class to wrap capturing exceptions raised during warning callbacks.\n    Use this to capture warnings in mujoco calls.  Example:\n        with wrap_mujoco_warning():\n            mj_somefunc()\n    ";
static const char __pyx_k_Keys_cannot_be_dropped_from_udd[] = "Keys cannot be dropped from udd_state between steps.";
static const char __pyx_k_MjBatchRenderer_cuda_rgb_buffer[] = "MjBatchRenderer.cuda_rgb_buffer_pointer";
static const char __pyx_k_MjRenderContext___reduce_cython[] = "MjRenderContext.__reduce_cython__";
static const char __pyx_k_Numpy_array_values_in_udd_state[] = "Numpy array values in udd_state must keep the same dimension across steps.";
static const char __pyx_k_PyMjStatistic___setstate_cython[] = "PyMjStatistic.__setstate_cython__";
static const char __pyx_k_PyMjTimerStat___setstate_cython[] = "PyMjTimerStat.__setstate_cython__";
static const char __pyx_k_PyMjVisual_headlight___setstate[] = "PyMjVisual_headlight.__setstate_cython__";
static const char __pyx_k_PyMjVisual_rgba___reduce_cython[] = "PyMjVisual_rgba.__reduce_cython__";
static const char __pyx_k_PyMjWarningStat___reduce_cython[] = "PyMjWarningStat.__reduce_cython__";
static const char __pyx_k_PyMjuiSection___setstate_cython[] = "PyMjuiSection.__setstate_cython__";
static const char __pyx_k_PyMjvGLCamera___setstate_cython[] = "PyMjvGLCamera.__setstate_cython__";
static const char __pyx_k_Utility_class_for_rendering_int[] = "\n    Utility class for rendering into OpenGL Pixel Buffer Objects (PBOs),\n    which allows for accessing multiple rendered images in batch.\n\n    If used with CUDA (i.e. initialized with use_cuda=True), you need\n    to call map/unmap when accessing CUDA buffer pointer. This is to\n    ensure that all OpenGL instructions have completed:\n\n        renderer = MjBatchRenderer(100, 100, use_cuda=True)\n        renderer.render(sim)\n\n        renderer.map()\n        image = renderer.read()\n        renderer.unmap()\n    ";
static const char __pyx_k_exists_Available_actuator_names[] = " exists. Available \"actuator\" names = ";
static const char __pyx_k_exists_Available_userdata_names[] = " exists. Available \"userdata\" names = ";
static const char __pyx_k_nuser_actuator_is_not_set_large[] = "nuser_actuator is not set large enough to store controller types";
static const char __pyx_k_self_ptr_cannot_be_converted_to[] = "self.ptr cannot be converted to a Python object for pickling";
static const char __pyx_k_All_dimensions_preceding_dimensi[] = "All dimensions preceding dimension %d must be indexed and not sliced";
static const char __pyx_k_Buffer_view_does_not_expose_stri[] = "Buffer view does not expose strides";
static const char __pyx_k_CUDA_buffers_must_be_mapped_befo[] = "CUDA buffers must be mapped before reading";
static const char __pyx_k_CUDA_buffers_must_be_unmapped_be[] = "CUDA buffers must be unmapped before calling render.";
static const char __pyx_k_Can_only_create_a_buffer_that_is[] = "Can only create a buffer that is contiguous in memory.";
static const char __pyx_k_Cannot_assign_to_read_only_memor[] = "Cannot assign to read-only memoryview";
static const char __pyx_k_Cannot_create_writable_memory_vi[] = "Cannot create writable memory view from read-only memoryview";
static const char __pyx_k_Cannot_transpose_memoryview_with[] = "Cannot transpose memoryview with indirect dimensions";
static const char __pyx_k_Depth_not_enabled_Use_depth_True[] = "Depth not enabled. Use depth=True on initialization.";
static const char __pyx_k_Empty_shape_tuple_for_cython_arr[] = "Empty shape tuple for cython.array";
static const char __pyx_k_Every_value_in_udd_state_must_be[] = "Every value in udd_state must be either a number or a numpy array";
static const char __pyx_k_GlfwContext__glfw_error_callback[] = "GlfwContext._glfw_error_callback";
static const char __pyx_k_GlfwContext_make_context_current[] = "GlfwContext.make_context_current";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0[] = "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))";
static const char __pyx_k_Indirect_dimensions_not_supporte[] = "Indirect dimensions not supported";
static const char __pyx_k_Invalid_mode_expected_c_or_fortr[] = "Invalid mode, expected 'c' or 'fortran', got ";
static const char __pyx_k_Keys_cannot_be_added_to_udd_stat[] = "Keys cannot be added to udd_state between steps.";
static const char __pyx_k_Mapped_CUDA_depth_buffer_pointer[] = "Mapped CUDA depth buffer pointer ";
static const char __pyx_k_MjBatchRenderer_cuda_depth_buffe[] = "MjBatchRenderer.cuda_depth_buffer_pointer";
static const char __pyx_k_MjBatchRenderer_currently_only_s[] = "MjBatchRenderer currently only supported with EGL-backedrendering context.";
static const char __pyx_k_MjBatchRenderer_prepare_render_c[] = "MjBatchRenderer.prepare_render_context";
static const char __pyx_k_MjRenderContextOffscreen___cinit[] = "MjRenderContextOffscreen.__cinit__";
static const char __pyx_k_MjRenderContext___setstate_cytho[] = "MjRenderContext.__setstate_cython__";
static const char __pyx_k_MjRenderContext__add_marker_to_s[] = "MjRenderContext._add_marker_to_scene";
static const char __pyx_k_MjRenderContext__set_mujoco_buff[] = "MjRenderContext._set_mujoco_buffers";
static const char __pyx_k_MjRenderContext__setup_opengl_co[] = "MjRenderContext._setup_opengl_context";
static const char __pyx_k_MjRenderContext_read_pixels_dept[] = "MjRenderContext.read_pixels_depth";
static const char __pyx_k_MjRenderContext_update_offscreen[] = "MjRenderContext.update_offscreen_size";
static const char __pyx_k_Mode_must_be_either_window_or_of[] = "Mode must be either 'window' or 'offscreen'.";
static const char __pyx_k_OffscreenOpenGLContext_make_cont[] = "OffscreenOpenGLContext.make_context_current";
static const char __pyx_k_OffscreenOpenGLContext_set_buffe[] = "OffscreenOpenGLContext.set_buffer_size";
static const char __pyx_k_Offscreen_rendering_not_supporte[] = "Offscreen rendering not supported";
static const char __pyx_k_Only_GlfwContext_supported_for_w[] = "Only GlfwContext supported for windowed rendering";
static const char __pyx_k_Only_label_is_a_string_in_mjvGeo[] = "Only label is a string in mjvGeom.";
static const char __pyx_k_OpenGLContext_make_context_curre[] = "OpenGLContext.make_context_current";
static const char __pyx_k_Out_of_bounds_on_buffer_access_a[] = "Out of bounds on buffer access (axis ";
static const char __pyx_k_PyMjModel__extract_mj_names_loca[] = "PyMjModel._extract_mj_names.<locals>.genexpr";
static const char __pyx_k_PyMjSolverStat___setstate_cython[] = "PyMjSolverStat.__setstate_cython__";
static const char __pyx_k_PyMjVisual_global____reduce_cyth[] = "PyMjVisual_global_.__reduce_cython__";
static const char __pyx_k_PyMjVisual_global____setstate_cy[] = "PyMjVisual_global_.__setstate_cython__";
static const char __pyx_k_PyMjVisual_headlight___reduce_cy[] = "PyMjVisual_headlight.__reduce_cython__";
static const char __pyx_k_PyMjVisual_map___setstate_cython[] = "PyMjVisual_map.__setstate_cython__";
static const char __pyx_k_PyMjVisual_quality___reduce_cyth[] = "PyMjVisual_quality.__reduce_cython__";
static const char __pyx_k_PyMjVisual_quality___setstate_cy[] = "PyMjVisual_quality.__setstate_cython__";
static const char __pyx_k_PyMjVisual_rgba___setstate_cytho[] = "PyMjVisual_rgba.__setstate_cython__";
static const char __pyx_k_PyMjVisual_scale___reduce_cython[] = "PyMjVisual_scale.__reduce_cython__";
static const char __pyx_k_PyMjVisual_scale___setstate_cyth[] = "PyMjVisual_scale.__setstate_cython__";
static const char __pyx_k_PyMjWarningStat___setstate_cytho[] = "PyMjWarningStat.__setstate_cython__";
static const char __pyx_k_PyMjuiThemeColor___reduce_cython[] = "PyMjuiThemeColor.__reduce_cython__";
static const char __pyx_k_PyMjuiThemeColor___setstate_cyth[] = "PyMjuiThemeColor.__setstate_cython__";
static const char __pyx_k_PyMjuiThemeSpacing___reduce_cyth[] = "PyMjuiThemeSpacing.__reduce_cython__";
static const char __pyx_k_PyMjuiThemeSpacing___setstate_cy[] = "PyMjuiThemeSpacing.__setstate_cython__";
static const char __pyx_k_Represents_a_snapshot_of_the_sim[] = "Represents a snapshot of the simulator's state.\n\n    This includes time, qpos, qvel, act, and udd_state.\n    ";
static const char __pyx_k_Unable_to_convert_item_to_object[] = "Unable to convert item to object";
static const char __pyx_k_Unrecognized_extension_for_s_Exp[] = "Unrecognized extension for %s. Expected .xml or .mjb";
static const char __pyx_k_Unsupported_format_Valid_ones_ar[] = "Unsupported format. Valid ones are 'xml' and 'mjb'";
static const char __pyx_k_active_contacts_efc_pos_should_b[] = "active_contacts_efc_pos should be used instead of efc_pos";
static const char __pyx_k_body_xmat_should_be_used_instead[] = "body_xmat should be used instead of xmat";
static const char __pyx_k_body_xpos_should_be_used_instead[] = "body_xpos should be used instead of xpos";
static const char __pyx_k_body_xquat_should_be_used_instea[] = "body_xquat should be used instead of xquat";
static const char __pyx_k_get_body_ximat_should_be_used_in[] = "get_body_ximat should be used instead of get_ximat";
static const char __pyx_k_get_body_xipos_should_be_used_in[] = "get_body_xipos should be used instead of get_xipos";
static const char __pyx_k_get_body_xmat_should_be_used_ins[] = "get_body_xmat should be used instead of get_xmat";
static const char __pyx_k_get_body_xpos_should_be_used_ins[] = "get_body_xpos should be used instead of get_xpos";
static const char __pyx_k_get_body_xquat_should_be_used_in[] = "get_body_xquat should be used instead of get_xquat";
static const char __pyx_k_get_camera_xmat_should_be_used_i[] = "get_camera_xmat should be used instead of get_cam_xmat";
static const char __pyx_k_get_camera_xpos_should_be_used_i[] = "get_camera_xpos should be used instead of get_cam_xpos";
static const char __pyx_k_get_joint_xanchor_should_be_used[] = "get_joint_xanchor should be used instead of get_xanchor";
static const char __pyx_k_get_joint_xaxis_should_be_used_i[] = "get_joint_xaxis should be used instead of get_xaxis";
static const char __pyx_k_get_sensor_should_be_used_instea[] = "get_sensor should be used instead of get_sensordata";
static const char __pyx_k_got_differing_extents_in_dimensi[] = "got differing extents in dimension ";
static const char __pyx_k_mjvGeom_has_attr_but_type_is_inv[] = "mjvGeom has attr {} but type {} is invalid";
static const char __pyx_k_mujoco_py_generated_wrappers_pxi[] = "mujoco_py/generated/wrappers.pxi";
static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__";
static const char __pyx_k_numpy__core_multiarray_failed_to[] = "numpy._core.multiarray failed to import";
static const char __pyx_k_numpy__core_umath_failed_to_impo[] = "numpy._core.umath failed to import";
static const char __pyx_k_nuserdata_is_not_set_large_enoug[] = "nuserdata is not set large enough to store PID internal states.";
static const char __pyx_k_unable_to_allocate_shape_and_str[] = "unable to allocate shape and strides.";
/* #### Code section: decls ### */
static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer); /* proto */
static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */
static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */
static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item); /* proto */
static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object); /* proto */
static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto */
static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto */
static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */
static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_4mode___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_4mode_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_11useexisting___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_11useexisting_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8uselimit___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8uselimit_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_5accel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_5accel_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8maxforce___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8maxforce_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_9timeconst___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_9timeconst_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8timestep___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8timestep_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8inttotal___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8inttotal_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_7inteval___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_7inteval_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8tolrange___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8tolrange_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_7PyMjVFS___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self); /* proto */
static void __pyx_pf_9mujoco_py_4cymj_7PyMjVFS_2__dealloc__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_7PyMjVFS_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_7PyMjVFS_5nfile___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_7PyMjVFS_5nfile_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_7PyMjVFS_8filesize___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_7PyMjVFS_8filename___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_7PyMjVFS_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_7PyMjVFS_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_8timestep___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8timestep_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_7apirate___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_7apirate_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_8impratio___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8impratio_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_9tolerance___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_9tolerance_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_16noslip_tolerance___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_16noslip_tolerance_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_13mpr_tolerance___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_13mpr_tolerance_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_7density___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_7density_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_9viscosity___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_9viscosity_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_8o_margin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8o_margin_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_10integrator___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_10integrator_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_9collision___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_9collision_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_4cone___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_4cone_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_8jacobian___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8jacobian_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_6solver___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_6solver_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_10iterations___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_10iterations_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_17noslip_iterations___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_17noslip_iterations_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_14mpr_iterations___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_14mpr_iterations_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_12disableflags___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_12disableflags_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_11enableflags___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_11enableflags_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_7gravity___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_4wind___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_8magnetic___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_8o_solref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_8o_solimp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjVisual___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_7global____get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_7quality___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_9headlight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_3map___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_5scale___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_4rgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global____cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__4fovy___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__4fovy_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__3ipd___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__3ipd_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__9linewidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__9linewidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__4glow___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__4glow_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__8offwidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__8offwidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__9offheight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__9offheight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_10shadowsize___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_10shadowsize_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_10offsamples___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_10offsamples_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_9numslices___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_9numslices_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_9numstacks___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_9numstacks_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_8numquads___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_8numquads_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_6active___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_6active_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_7ambient___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_7diffuse___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_8specular___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_9stiffness___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_9stiffness_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_12stiffnessrot___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_12stiffnessrot_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5force___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5force_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_6torque___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_6torque_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5alpha___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5alpha_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_8fogstart___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_8fogstart_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_6fogend___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_6fogend_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5znear___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5znear_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_4zfar___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_4zfar_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_4haze___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_4haze_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_10shadowclip___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_10shadowclip_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_11shadowscale___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_11shadowscale_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_14actuatortendon___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_14actuatortendon_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10forcewidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10forcewidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_12contactwidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_12contactwidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_13contactheight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_13contactheight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_7connect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_7connect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_3com___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_3com_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_6camera___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_6camera_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_5light___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_5light_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11selectpoint___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11selectpoint_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11jointlength___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11jointlength_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10jointwidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10jointwidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_14actuatorlength___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_14actuatorlength_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_13actuatorwidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_13actuatorwidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11framelength___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11framelength_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10framewidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10framewidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10constraint___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10constraint_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11slidercrank___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11slidercrank_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_3fog___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_4haze___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_5force___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_7inertia___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_5joint___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_8actuator___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_16actuatornegative___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_16actuatorpositive___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_3com___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_6camera___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_5light___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_11selectpoint___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_7connect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_12contactpoint___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_12contactforce___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_15contactfriction___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_13contacttorque___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_10contactgap___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_11rangefinder___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_10constraint___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_11slidercrank___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_11crankbroken___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_11meaninertia___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_11meaninertia_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_8meanmass___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_8meanmass_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_8meansize___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_8meansize_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_6extent___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_6extent_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_6center___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_body_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_2body_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_4joint_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_6joint_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8geom_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10geom_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12site_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14site_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16light_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_18light_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_20camera_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_22camera_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_24actuator_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_26actuator_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_28sensor_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_30sensor_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_32tendon_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_34tendon_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_36mesh_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_38mesh_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_40userdata_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_42userdata_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_extract_mj_names_genexpr(PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_44get_xml(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_46get_mjb(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_48set_userdata_names(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_userdata_names); /* proto */
static void __pyx_pf_9mujoco_py_4cymj_9PyMjModel_50__dealloc__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_52get_joint_qpos_addr(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_54get_joint_qvel_addr(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nq___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nq_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nv___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nv_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nu___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nu_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_2na___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2na_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nbody___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nbody_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_4njnt___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4njnt_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5ngeom___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5ngeom_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nsite___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nsite_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_4ncam___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4ncam_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nlight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nlight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nmesh___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nmesh_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nmeshvert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nmeshvert_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nmeshtexvert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nmeshtexvert_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nmeshface___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nmeshface_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nmeshgraph___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nmeshgraph_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nskin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nskin_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinvert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinvert_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nskintexvert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nskintexvert_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinface___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinface_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinbone___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinbone_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13nskinbonevert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13nskinbonevert_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nhfield___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nhfield_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11nhfielddata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11nhfielddata_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_4ntex___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4ntex_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8ntexdata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8ntexdata_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_4nmat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4nmat_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5npair___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5npair_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8nexclude___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8nexclude_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_3neq___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_3neq_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7ntendon___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7ntendon_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nwrap___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nwrap_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nsensor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nsensor_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8nnumeric___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8nnumeric_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nnumericdata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nnumericdata_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5ntext___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5ntext_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9ntextdata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9ntextdata_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_6ntuple___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6ntuple_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10ntupledata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10ntupledata_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_4nkey___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4nkey_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nmocap___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nmocap_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_body___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_body_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuser_jnt___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuser_jnt_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_geom___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_geom_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_site___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_site_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuser_cam___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuser_cam_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nuser_tendon___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nuser_tendon_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14nuser_actuator___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14nuser_actuator_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nuser_sensor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nuser_sensor_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nnames___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nnames_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nM___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nM_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nemax___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nemax_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5njmax___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5njmax_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nconmax___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nconmax_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nstack___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nstack_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuserdata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuserdata_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11nsensordata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11nsensordata_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nbuffer___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nbuffer_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_3opt___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_3vis___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_4stat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5qpos0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11qpos_spring___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13body_parentid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_rootid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_weldid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12body_mocapid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_jntnum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_jntadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_dofnum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_dofadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12body_geomnum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12body_geomadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_simple___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14body_sameframe___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8body_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9body_quat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9body_ipos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10body_iquat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9body_mass___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16body_subtreemass___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12body_inertia___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15body_invweight0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9body_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8jnt_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11jnt_qposadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10jnt_dofadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10jnt_bodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9jnt_group___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11jnt_limited___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10jnt_solref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10jnt_solimp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7jnt_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8jnt_axis___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13jnt_stiffness___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9jnt_range___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10jnt_margin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8jnt_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10dof_bodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9dof_jntid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12dof_parentid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8dof_Madr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13dof_simplenum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10dof_solref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10dof_solimp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16dof_frictionloss___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12dof_armature___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11dof_damping___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14dof_invweight0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_6dof_M0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9geom_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12geom_contype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16geom_conaffinity___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_condim___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_bodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_dataid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10geom_matid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10geom_group___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13geom_priority___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14geom_sameframe___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_solmix___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_solref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_solimp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9geom_size___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_rbound___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8geom_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9geom_quat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13geom_friction___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_margin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8geom_gap___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9geom_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9geom_rgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9site_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11site_bodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10site_matid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10site_group___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14site_sameframe___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9site_size___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8site_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9site_quat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9site_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9site_rgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_mode___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10cam_bodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16cam_targetbodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7cam_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_quat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11cam_poscom0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_pos0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_mat0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_fovy___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7cam_ipd___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10light_mode___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12light_bodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_18light_targetbodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17light_directional___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16light_castshadow___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12light_active___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9light_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9light_dir___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13light_poscom0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10light_pos0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10light_dir0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17light_attenuation___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12light_cutoff___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14light_exponent___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13light_ambient___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13light_diffuse___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14light_specular___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mesh_vertadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mesh_vertnum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16mesh_texcoordadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mesh_faceadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mesh_facenum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13mesh_graphadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9mesh_vert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11mesh_normal___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13mesh_texcoord___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9mesh_face___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10mesh_graph___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10skin_matid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9skin_rgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_inflate___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_vertadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_vertnum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16skin_texcoordadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_faceadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_facenum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_boneadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_bonenum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9skin_vert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13skin_texcoord___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9skin_face___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16skin_bonevertadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16skin_bonevertnum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16skin_bonebindpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17skin_bonebindquat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15skin_bonebodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15skin_bonevertid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_19skin_bonevertweight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11hfield_size___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11hfield_nrow___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11hfield_ncol___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10hfield_adr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11hfield_data___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8tex_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10tex_height___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9tex_width___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7tex_adr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7tex_rgb___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9mat_texid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14mat_texuniform___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13mat_texrepeat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mat_emission___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mat_specular___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13mat_shininess___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15mat_reflectance___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8mat_rgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8pair_dim___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10pair_geom1___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10pair_geom2___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14pair_signature___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11pair_solref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11pair_solimp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11pair_margin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8pair_gap___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13pair_friction___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17exclude_signature___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7eq_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9eq_obj1id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9eq_obj2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9eq_active___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9eq_solref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9eq_solimp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7eq_data___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10tendon_adr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10tendon_num___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tendon_matid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tendon_group___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14tendon_limited___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tendon_width___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17tendon_solref_lim___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17tendon_solimp_lim___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17tendon_solref_fri___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17tendon_solimp_fri___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tendon_range___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13tendon_margin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16tendon_stiffness___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14tendon_damping___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_19tendon_frictionloss___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_19tendon_lengthspring___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14tendon_length0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17tendon_invweight0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11tendon_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11tendon_rgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9wrap_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10wrap_objid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8wrap_prm___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16actuator_trntype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16actuator_dyntype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17actuator_gaintype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17actuator_biastype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14actuator_trnid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14actuator_group___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_20actuator_ctrllimited___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_21actuator_forcelimited___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15actuator_dynprm___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16actuator_gainprm___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16actuator_biasprm___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_18actuator_ctrlrange___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_19actuator_forcerange___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13actuator_gear___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_20actuator_cranklength___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13actuator_acc0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16actuator_length0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_20actuator_lengthrange___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13actuator_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11sensor_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15sensor_datatype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16sensor_needstage___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14sensor_objtype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12sensor_objid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10sensor_dim___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10sensor_adr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13sensor_cutoff___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12sensor_noise___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11sensor_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11numeric_adr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12numeric_size___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12numeric_data___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8text_adr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9text_size___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9text_data___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9tuple_adr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10tuple_size___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13tuple_objtype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11tuple_objid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tuple_objprm___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8key_time___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8key_qpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8key_qvel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7key_act___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8key_mpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9key_mquat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_bodyadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11name_jntadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_geomadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_siteadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11name_camadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13name_lightadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_meshadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_skinadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14name_hfieldadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11name_texadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11name_matadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_pairadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15name_excludeadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10name_eqadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14name_tendonadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16name_actuatoradr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14name_sensoradr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15name_numericadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_textadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13name_tupleadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11name_keyadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10body_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11joint_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10geom_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10site_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11light_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12camera_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14actuator_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12sensor_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tendon_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10mesh_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_body_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14_joint_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_geom_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_site_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14_light_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_camera_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_actuator_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_sensor_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_tendon_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_mesh_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_body_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14_joint_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_geom_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_site_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14_light_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_camera_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_actuator_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_sensor_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_tendon_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_mesh_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14userdata_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14userdata_names_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14userdata_names_4__del__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name_4__del__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id_4__del__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_56__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_58__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_4dist___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_4dist_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_13includemargin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_13includemargin_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_2mu___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_2mu_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_3dim___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_3dim_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_5geom1___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_5geom1_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_5geom2___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_5geom2_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_7exclude___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_7exclude_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_11efc_address___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_11efc_address_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_3pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_5frame___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_8friction___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_6solref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_6solimp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_1H___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_8lastinfo___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_8lastinfo_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_6number___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_6number_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_8duration___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_8duration_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_6number___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_6number_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_11improvement___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_11improvement_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_8gradient___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_8gradient_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_9lineslope___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_9lineslope_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nactive___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nactive_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nchange___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nchange_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_5neval___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_5neval_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nupdate___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nupdate_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9body_xpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10body_xquat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9body_xmat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_23active_contacts_efc_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static void __pyx_pf_9mujoco_py_4cymj_8PyMjData___dealloc__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_2get_body_xpos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4get_xpos(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6get_body_xquat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8get_xquat(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10get_body_xmat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12get_xmat(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_14get_body_xipos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_16get_xipos(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_18get_body_ximat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_20get_ximat(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_22get_body_jacp(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_jacp); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_24get_body_jacr(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_jacr); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_26get_body_xvelp(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_28get_body_xvelr(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_30get_joint_xanchor(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_32get_xanchor(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_34get_joint_xaxis(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_36get_xaxis(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_38get_geom_xpos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_40get_geom_xmat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_42get_geom_jacp(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_jacp); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_44get_geom_jacr(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_jacr); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_46get_geom_xvelp(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_48get_geom_xvelr(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_50get_site_xpos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_52get_site_xmat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_54get_site_jacp(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_jacp); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_56get_site_jacr(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_jacr); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_58get_site_xvelp(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_60get_site_xvelr(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_62get_camera_xpos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_64get_cam_xpos(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_66get_camera_xmat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_68get_cam_xmat(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_70get_light_xpos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_72get_light_xdir(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_74get_sensor(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_76get_sensordata(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_78get_userdata(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_80get_mocap_pos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_82set_mocap_pos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_84get_mocap_quat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_86set_mocap_quat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_88get_joint_qpos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_90set_joint_qpos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_92get_joint_qvel(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_94set_joint_qvel(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6nstack___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_6nstack_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7nbuffer___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_7nbuffer_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6pstack___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_6pstack_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12maxuse_stack___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_12maxuse_stack_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10maxuse_con___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_10maxuse_con_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10maxuse_efc___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_10maxuse_efc_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_11solver_iter___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_11solver_iter_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10solver_nnz___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_10solver_nnz_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_2ne___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_2ne_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_2nf___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_2nf_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4nefc___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_4nefc_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4ncon___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_4ncon_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4time___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_4time_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4qpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4qvel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_3act___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_14qacc_warmstart___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4ctrl___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12qfrc_applied___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12xfrc_applied___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4qacc___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7act_dot___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9mocap_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10mocap_quat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8userdata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10sensordata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4xpos___get__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5xquat___get__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4xmat___get__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5xipos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5ximat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7xanchor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5xaxis___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9geom_xpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9geom_xmat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9site_xpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9site_xmat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8cam_xpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8cam_xmat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10light_xpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10light_xdir___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_11subtree_com___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4cdof___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6cinert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_11ten_wrapadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_11ten_wrapnum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12ten_J_rownnz___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12ten_J_rowadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12ten_J_colind___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10ten_length___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5ten_J___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8wrap_obj___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9wrap_xpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_15actuator_length___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_15actuator_moment___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_3crb___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_2qM___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_3qLD___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9qLDiagInv___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13qLDiagSqrtInv___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7contact___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8efc_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6efc_id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12efc_J_rownnz___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12efc_J_rowadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_14efc_J_rowsuper___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12efc_J_colind___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_JT_rownnz___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_JT_rowadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_15efc_JT_rowsuper___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_JT_colind___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5efc_J___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6efc_JT___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7efc_pos___get__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10efc_margin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_16efc_frictionloss___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_14efc_diagApprox___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8efc_KBIP___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5efc_D___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5efc_R___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_AR_rownnz___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_AR_rowadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_AR_colind___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6efc_AR___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12ten_velocity___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_17actuator_velocity___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4cvel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8cdof_dot___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9qfrc_bias___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12qfrc_passive___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7efc_vel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8efc_aref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_14subtree_linvel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_14subtree_angmom___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_14actuator_force___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13qfrc_actuator___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8qfrc_unc___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8qacc_unc___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5efc_b___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9efc_force___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9efc_state___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_15qfrc_constraint___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12qfrc_inverse___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4cacc___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8cfrc_int___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8cfrc_ext___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7warning___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5timer___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6solver___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13solver_fwdinv___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6energy___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9body_jacp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9body_jacr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10body_xvelp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10body_xvelr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9geom_jacp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9geom_jacr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10geom_xvelp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10geom_xvelr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9site_jacp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9site_jacr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10site_xvelp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10site_xvelr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_96__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_98__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_6select___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_6select_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_10skinselect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_10skinselect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_6active___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_6active_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_7active2___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_7active2_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_5scale___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_5scale_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_6refpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_7refquat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_8localpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_4type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_4type_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_10fixedcamid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_10fixedcamid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_11trackbodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_11trackbodyid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_8distance___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_8distance_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_7azimuth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_7azimuth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_9elevation___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_9elevation_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, mjtNum __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_6lookat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_center___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_center_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_bottom___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_bottom_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_top___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_top_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_12frustum_near___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_12frustum_near_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_far___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_far_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_3pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_7forward___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_2up___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_4type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_4type_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_6dataid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_6dataid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_7objtype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_7objtype_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5objid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5objid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8category___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8category_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5texid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5texid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_10texuniform___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_10texuniform_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8texcoord___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8texcoord_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5segid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5segid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8emission___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8emission_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8specular___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8specular_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_9shininess___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_9shininess_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11reflectance___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11reflectance_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_7camdist___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_7camdist_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11modelrbound___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11modelrbound_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11transparent___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11transparent_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, mjtByte __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_9texrepeat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_4size___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_3pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_3mat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_4rgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5label___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjvLight___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_6cutoff___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_6cutoff_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_8exponent___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_8exponent_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_9headlight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_9headlight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self, mjtByte __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_11directional___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_11directional_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self, mjtByte __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_10castshadow___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_10castshadow_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self, mjtByte __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_3pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_3dir___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_11attenuation___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_7ambient___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_7diffuse___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_8specular___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvOption___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_5label___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_5label_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_5frame___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_5frame_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_9geomgroup___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_9sitegroup___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_10jointgroup___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_11tendongroup___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_13actuatorgroup___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_5flags___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_7maxgeom___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_7maxgeom_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5ngeom___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5ngeom_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5nskin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5nskin_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6nlight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6nlight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_15enabletransform___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_15enabletransform_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, mjtByte __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5scale___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5scale_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6stereo___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6stereo_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_10framewidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_10framewidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6lights___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6camera___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_9translate___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6rotate___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5flags___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_8framergb___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10flg_legend___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10flg_legend_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10flg_extend___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10flg_extend_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_11flg_barplot___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_11flg_barplot_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_13flg_selection___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_13flg_selection_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_13flg_symmetric___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_13flg_symmetric_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9linewidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9linewidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9gridwidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9gridwidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_12legendoffset___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_12legendoffset_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7subplot___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7subplot_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_11highlightid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_11highlightid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9selection___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9selection_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_13flg_ticklabel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_8gridsize___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7gridrgb___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10figurergba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_8panergba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10legendrgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7textrgb___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7xformat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7yformat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_8minwidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_5title___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_6xlabel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9highlight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7linepnt___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10xaxispixel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10yaxispixel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9xaxisdata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9yaxisdata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7linergb___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_5range___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_8linename___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_8linedata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjrRect___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self); /* proto */
static void __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_2__dealloc__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjrRect_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjrRect_4left___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_4left_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjrRect_6bottom___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_6bottom_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjrRect_5width___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_5width_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjrRect_6height___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_6height_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjrRect_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjrRect_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9lineWidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9lineWidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10shadowClip___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10shadowClip_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11shadowScale___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11shadowScale_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8fogStart___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8fogStart_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_6fogEnd___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_6fogEnd_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10shadowSize___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10shadowSize_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offWidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offWidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9offHeight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9offHeight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10offSamples___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10offSamples_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9fontScale___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9fontScale_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_6offFBO___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_6offFBO_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offFBO_r___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offFBO_r_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offColor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offColor_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10offColor_r___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10offColor_r_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15offDepthStencil___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15offDepthStencil_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_17offDepthStencil_r___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_17offDepthStencil_r_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9shadowFBO___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9shadowFBO_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9shadowTex___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9shadowTex_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8ntexture___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8ntexture_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9basePlane___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9basePlane_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8baseMesh___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8baseMesh_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10baseHField___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10baseHField_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11baseBuiltin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11baseBuiltin_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_14baseFontNormal___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_14baseFontNormal_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_14baseFontShadow___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_14baseFontShadow_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11baseFontBig___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11baseFontBig_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10rangePlane___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10rangePlane_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9rangeMesh___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9rangeMesh_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11rangeHField___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11rangeHField_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_12rangeBuiltin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_12rangeBuiltin_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9rangeFont___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9rangeFont_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_5nskin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_5nskin_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10charHeight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10charHeight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13charHeightBig___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13charHeightBig_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15glewInitialized___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15glewInitialized_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15windowAvailable___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15windowAvailable_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13windowSamples___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13windowSamples_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_12windowStereo___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_12windowStereo_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_18windowDoublebuffer___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_18windowDoublebuffer_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13currentBuffer___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13currentBuffer_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_7fogRGBA___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8auxWidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9auxHeight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10auxSamples___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_6auxFBO___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8auxFBO_r___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8auxColor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10auxColor_r___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11textureType___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_7texture___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9charWidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_12charWidthBig___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5nrect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5nrect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4type_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4left___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4left_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5right___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5right_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_6middle___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_6middle_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_11doubleclick___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_11doubleclick_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_6button___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_6button_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_7control___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_7control_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5shift___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5shift_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_3alt___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_3alt_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_3key___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_3key_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_9mouserect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_9mouserect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_8dragrect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_8dragrect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_10dragbutton___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_10dragbutton_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4rect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5total___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5total_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_6scroll___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_6scroll_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5label___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5label_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7section___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7section_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_8itemside___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_8itemside_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemmid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemmid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemver___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemver_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7texthor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7texthor_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7textver___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7textver_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_10linescroll___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_10linescroll_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7samples___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7samples_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_6master___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_5thumb___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_9secttitle___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_8sectfont___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_10sectsymbol___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_8sectpane___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_8shortcut___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_10fontactive___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_12fontinactive___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_13decorinactive___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_14decorinactive2___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_6button___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_5check___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_5radio___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_6select___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_7select2___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_6slider___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_7slider2___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_4edit___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_5edit2___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_6cursor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_4type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_4type_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_5state___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_5state_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_9sectionid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_9sectionid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_6itemid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_6itemid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_4rect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_4name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_5state___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_5state_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_8modifier___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_8modifier_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_8shortcut___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_8shortcut_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_5nitem___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_5nitem_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_6rtitle___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_8rcontent___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_4name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_4item___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_7spacing___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_5color___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_6rectid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_6rectid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_5auxid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_5auxid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_8radiocol___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_8radiocol_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_5width___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_5width_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_6height___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_6height_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_9maxheight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9maxheight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_6scroll___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_6scroll_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mousesect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mousesect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mouseitem___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mouseitem_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mousehelp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mousehelp_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_8editsect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_8editsect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_8edititem___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_8edititem_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_10editcursor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_10editcursor_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_10editscroll___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_10editscroll_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_5nsect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_5nsect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_8edittext___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_4sect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_4type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_4type_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_5state___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_5state_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self, int __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_4name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_5other___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj__mj_activate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_filename); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_2_mj_deactivate(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_4_mj_defaultVFS(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_6_mj_addFileVFS(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs, PyObject *__pyx_v_directory, PyObject *__pyx_v_filename); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_8_mj_makeEmptyFileVFS(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs, PyObject *__pyx_v_filename, int __pyx_v_filesize); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10_mj_findFileVFS(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs, PyObject *__pyx_v_filename); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_12_mj_deleteFileVFS(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs, PyObject *__pyx_v_filename); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_14_mj_deleteVFS(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_16_mj_loadXML(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_filename, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs, PyObject *__pyx_v_error, int __pyx_v_error_sz); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_18_mj_saveLastXML(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_filename, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, PyObject *__pyx_v_error, int __pyx_v_error_sz); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_20_mj_freeLastXML(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_22_mj_printSchema(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_buffer, int __pyx_v_buffer_sz, int __pyx_v_flg_html, int __pyx_v_flg_pad); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_24_mj_step(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_26_mj_step1(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_28_mj_step2(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_30_mj_forward(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_32_mj_inverse(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_34_mj_forwardSkip(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_skipstage, int __pyx_v_skipsensor); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_36_mj_inverseSkip(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_skipstage, int __pyx_v_skipsensor); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_38_mj_defaultLROpt(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_opt); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_40_mj_defaultSolRefImp(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_solref, PyArrayObject *__pyx_v_solimp); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_42_mj_defaultOption(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_opt); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_44_mj_defaultVisual(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_vis); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_46_mj_copyModel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_dest, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_src); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_48_mj_loadModel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_filename, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_50_mj_deleteModel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_52_mj_sizeModel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_54_mj_resetData(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_56_mj_resetDataKeyframe(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_key); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_58_mj_deleteData(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_60_mj_resetCallbacks(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_62_mj_setConst(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_64_mj_setLengthRange(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_index, struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_opt, PyObject *__pyx_v_error, int __pyx_v_error_sz); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_66_mj_printModel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, PyObject *__pyx_v_filename); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_68_mj_printData(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyObject *__pyx_v_filename); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_70_mju_printMat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_mat, int __pyx_v_nr, int __pyx_v_nc); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_72_mju_printMatSparse(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_mat, int __pyx_v_nr, uintptr_t __pyx_v_rownnz, uintptr_t __pyx_v_rowadr, uintptr_t __pyx_v_colind); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_74_mj_fwdPosition(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_76_mj_fwdVelocity(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_78_mj_fwdActuation(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_80_mj_fwdAcceleration(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_82_mj_fwdConstraint(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_84_mj_Euler(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_86_mj_RungeKutta(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_N); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_88_mj_invPosition(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_90_mj_invVelocity(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_92_mj_invConstraint(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_94_mj_compareFwdInv(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_96_mj_sensorPos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_98_mj_sensorVel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_100_mj_sensorAcc(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_102_mj_energyPos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_104_mj_energyVel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_106_mj_checkPos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_108_mj_checkVel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_110_mj_checkAcc(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_112_mj_kinematics(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_114_mj_comPos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_116_mj_camlight(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_118_mj_tendon(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_120_mj_transmission(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_122_mj_crb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_124_mj_factorM(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_126_mj_solveM(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_y, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_128_mj_solveM2(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_y, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_130_mj_comVel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_132_mj_passive(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_134_mj_subtreeVel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_136_mj_rne(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_flg_acc, PyArrayObject *__pyx_v_result); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_138_mj_rnePostConstraint(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_140_mj_collision(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_142_mj_makeConstraint(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_144_mj_projectConstraint(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_146_mj_referenceConstraint(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_148_mj_constraintUpdate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_jar, PyArrayObject *__pyx_v_cost, int __pyx_v_flg_coneHessian); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_150_mj_addContact(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_152_mj_isPyramidal(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_154_mj_isSparse(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_156_mj_isDual(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_158_mj_mulJacVec(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_160_mj_mulJacTVec(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_162_mj_jac(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_jacp, PyArrayObject *__pyx_v_jacr, PyArrayObject *__pyx_v_point, int __pyx_v_body); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_164_mj_jacBody(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_jacp, PyArrayObject *__pyx_v_jacr, int __pyx_v_body); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_166_mj_jacBodyCom(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_jacp, PyArrayObject *__pyx_v_jacr, int __pyx_v_body); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_168_mj_jacGeom(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_jacp, PyArrayObject *__pyx_v_jacr, int __pyx_v_geom); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_170_mj_jacSite(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_jacp, PyArrayObject *__pyx_v_jacr, int __pyx_v_site); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_172_mj_jacPointAxis(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_jacPoint, PyArrayObject *__pyx_v_jacAxis, PyArrayObject *__pyx_v_point, PyArrayObject *__pyx_v_axis, int __pyx_v_body); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_174_mj_name2id(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, int __pyx_v_type, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_176_mj_fullM(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, PyArrayObject *__pyx_v_dst, PyArrayObject *__pyx_v_M); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_178_mj_mulM(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_180_mj_mulM2(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_182_mj_addM(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_dst, uintptr_t __pyx_v_rownnz, uintptr_t __pyx_v_rowadr, uintptr_t __pyx_v_colind); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_184_mj_applyFT(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_force, PyArrayObject *__pyx_v_torque, PyArrayObject *__pyx_v_point, int __pyx_v_body, PyArrayObject *__pyx_v_qfrc_target); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_186_mj_objectVelocity(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_objtype, int __pyx_v_objid, PyArrayObject *__pyx_v_res, int __pyx_v_flg_local); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_188_mj_objectAcceleration(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_objtype, int __pyx_v_objid, PyArrayObject *__pyx_v_res, int __pyx_v_flg_local); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_190_mj_contactForce(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_id, PyArrayObject *__pyx_v_result); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_192_mj_differentiatePos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, PyArrayObject *__pyx_v_qvel, float __pyx_v_dt, PyArrayObject *__pyx_v_qpos1, PyArrayObject *__pyx_v_qpos2); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_194_mj_integratePos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, PyArrayObject *__pyx_v_qpos, PyArrayObject *__pyx_v_qvel, float __pyx_v_dt); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_196_mj_normalizeQuat(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, PyArrayObject *__pyx_v_qpos); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_198_mj_local2Global(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_xpos, PyArrayObject *__pyx_v_xmat, PyArrayObject *__pyx_v_pos, PyArrayObject *__pyx_v_quat, int __pyx_v_body, int __pyx_v_sameframe); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_200_mj_getTotalmass(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_202_mj_setTotalmass(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, float __pyx_v_newmass); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_204_mj_version(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_206_mj_ray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_pnt, PyArrayObject *__pyx_v_vec, PyArrayObject *__pyx_v_geomgroup, int __pyx_v_flg_static, int __pyx_v_bodyexclude, uintptr_t __pyx_v_geomid); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_208_mj_rayHfield(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_geomid, PyArrayObject *__pyx_v_pnt, PyArrayObject *__pyx_v_vec); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_210_mj_rayMesh(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_geomid, PyArrayObject *__pyx_v_pnt, PyArrayObject *__pyx_v_vec); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_212_mju_rayGeom(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_pos, PyArrayObject *__pyx_v_mat, PyArrayObject *__pyx_v_size, PyArrayObject *__pyx_v_pnt, PyArrayObject *__pyx_v_vec, int __pyx_v_geomtype); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_214_mjv_defaultCamera(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_cam); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_216_mjv_defaultPerturb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_218_mjv_room2model(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_modelpos, PyArrayObject *__pyx_v_modelquat, PyArrayObject *__pyx_v_roompos, PyArrayObject *__pyx_v_roomquat, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_220_mjv_model2room(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_roompos, PyArrayObject *__pyx_v_roomquat, PyArrayObject *__pyx_v_modelpos, PyArrayObject *__pyx_v_modelquat, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_222_mjv_cameraInModel(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_headpos, PyArrayObject *__pyx_v_forward, PyArrayObject *__pyx_v_up, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_224_mjv_cameraInRoom(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_headpos, PyArrayObject *__pyx_v_forward, PyArrayObject *__pyx_v_up, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_226_mjv_frustumHeight(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_228_mjv_alignToCamera(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, PyArrayObject *__pyx_v_forward); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_230_mjv_moveCamera(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, int __pyx_v_action, float __pyx_v_reldx, float __pyx_v_reldy, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn, struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_cam); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_232_mjv_movePerturb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_action, float __pyx_v_reldx, float __pyx_v_reldy, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn, struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_234_mjv_moveModel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, int __pyx_v_action, float __pyx_v_reldx, float __pyx_v_reldy, PyArrayObject *__pyx_v_roomup, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_236_mjv_initPerturb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn, struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_238_mjv_applyPerturbPose(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert, int __pyx_v_flg_paused); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_240_mjv_applyPerturbForce(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_242_mjv_select(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_vopt, float __pyx_v_aspectratio, float __pyx_v_relx, float __pyx_v_rely, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn, PyArrayObject *__pyx_v_selpnt, uintptr_t __pyx_v_geomid, uintptr_t __pyx_v_skinid); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_244_mjv_defaultOption(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_opt); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_246_mjv_defaultFigure(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_fig); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_248_mjv_makeConnector(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_geom, int __pyx_v_type, float __pyx_v_width, float __pyx_v_a0, float __pyx_v_a1, float __pyx_v_a2, float __pyx_v_b0, float __pyx_v_b1, float __pyx_v_b2); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_250_mjv_defaultScene(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_252_mjv_makeScene(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn, int __pyx_v_maxgeom); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_254_mjv_freeScene(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_256_mjv_updateScene(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_opt, struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert, struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_cam, int __pyx_v_catmask, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_258_mjv_addGeoms(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_opt, struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert, int __pyx_v_catmask, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_260_mjv_makeLights(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_262_mjv_updateCamera(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_cam, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_264_mjv_updateSkin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_266_mjr_defaultContext(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_268_mjr_makeContext(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con, int __pyx_v_fontscale); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_270_mjr_changeFont(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_fontscale, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_272_mjr_addAux(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_index, int __pyx_v_width, int __pyx_v_height, int __pyx_v_samples, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_274_mjr_freeContext(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_276_mjr_uploadTexture(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con, int __pyx_v_texid); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_278_mjr_uploadMesh(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con, int __pyx_v_meshid); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_280_mjr_uploadHField(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con, int __pyx_v_hfieldid); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_282_mjr_restoreBuffer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_284_mjr_setBuffer(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_framebuffer, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_286_mjr_blitBuffer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_src, struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_dst, int __pyx_v_flg_color, int __pyx_v_flg_depth, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_288_mjr_setAux(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_index, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_290_mjr_blitAux(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_index, struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_src, int __pyx_v_left, int __pyx_v_bottom, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_292_mjr_overlay(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_font, int __pyx_v_gridpos, struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_viewport, PyObject *__pyx_v_overlay, PyObject *__pyx_v_overlay2, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_294_mjr_figure(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_viewport, struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_fig, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_296_mjr_render(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_viewport, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_298_mjr_finish(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_300_mjr_getError(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_302_mjr_findRect(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_x, int __pyx_v_y, int __pyx_v_nrect, struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_rect); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_304_mjui_add(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui, struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v__def); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_306_mjui_addToSection(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui, int __pyx_v_sect, struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v__def); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_308_mjui_resize(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_310_mjui_update(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_section, int __pyx_v_item, struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui, struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_state, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_312_mjui_event(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui, struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_state, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_314_mjui_render(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui, struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_state, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_316_mju_error(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_msg); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_318_mju_error_i(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_msg, int __pyx_v_i); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_320_mju_error_s(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_msg, PyObject *__pyx_v_text); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_322_mju_warning(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_msg); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_324_mju_warning_i(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_msg, int __pyx_v_i); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_326_mju_warning_s(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_msg, PyObject *__pyx_v_text); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_328_mju_clearHandlers(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_330_mj_warning(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_warning, int __pyx_v_info); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_332_mju_writeLog(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_type, PyObject *__pyx_v_msg); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_334_mju_zero3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_336_mju_copy3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_data); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_338_mju_scl3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, float __pyx_v_scl); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_340_mju_add3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_342_mju_sub3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_344_mju_addTo3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_346_mju_subFrom3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_348_mju_addToScl3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, float __pyx_v_scl); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_350_mju_addScl3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2, float __pyx_v_scl); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_352_mju_normalize3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_354_mju_norm3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_vec); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_356_mju_dot3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_358_mju_dist3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_pos1, PyArrayObject *__pyx_v_pos2); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_360_mju_rotVecMat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, PyArrayObject *__pyx_v_mat); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_362_mju_rotVecMatT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, PyArrayObject *__pyx_v_mat); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_364_mju_cross(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_b); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_366_mju_zero4(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_368_mju_unit4(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_370_mju_copy4(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_data); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_372_mju_normalize4(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_374_mju_zero(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_376_mju_copy(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_data, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_378_mju_sum(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_vec, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_380_mju_L1(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_vec, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_382_mju_scl(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, float __pyx_v_scl, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_384_mju_add(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_386_mju_sub(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_388_mju_addTo(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_390_mju_subFrom(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_392_mju_addToScl(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, float __pyx_v_scl, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_394_mju_addScl(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2, float __pyx_v_scl, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_396_mju_normalize(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_398_mju_norm(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_400_mju_dot(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_402_mju_mulMatVec(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat, PyArrayObject *__pyx_v_vec, int __pyx_v_nr, int __pyx_v_nc); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_404_mju_mulMatTVec(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat, PyArrayObject *__pyx_v_vec, int __pyx_v_nr, int __pyx_v_nc); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_406_mju_transpose(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat, int __pyx_v_nr, int __pyx_v_nc); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_408_mju_mulMatMat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat1, PyArrayObject *__pyx_v_mat2, int __pyx_v_r1, int __pyx_v_c1, int __pyx_v_c2); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_410_mju_mulMatMatT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat1, PyArrayObject *__pyx_v_mat2, int __pyx_v_r1, int __pyx_v_c1, int __pyx_v_r2); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_412_mju_mulMatTMat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat1, PyArrayObject *__pyx_v_mat2, int __pyx_v_r1, int __pyx_v_c1, int __pyx_v_c2); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_414_mju_sqrMatTD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat, PyArrayObject *__pyx_v_diag, int __pyx_v_nr, int __pyx_v_nc); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_416_mju_transformSpatial(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, int __pyx_v_flg_force, PyArrayObject *__pyx_v_newpos, PyArrayObject *__pyx_v_oldpos, PyArrayObject *__pyx_v_rotnew2old); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_418_mju_rotVecQuat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, PyArrayObject *__pyx_v_quat); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_420_mju_negQuat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_quat); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_422_mju_mulQuat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_quat1, PyArrayObject *__pyx_v_quat2); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_424_mju_mulQuatAxis(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_quat, PyArrayObject *__pyx_v_axis); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_426_mju_axisAngle2Quat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_axis, float __pyx_v_angle); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_428_mju_quat2Vel(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_quat, float __pyx_v_dt); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_430_mju_subQuat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_qa, PyArrayObject *__pyx_v_qb); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_432_mju_quat2Mat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_quat); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_434_mju_mat2Quat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_quat, PyArrayObject *__pyx_v_mat); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_436_mju_derivQuat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_quat, PyArrayObject *__pyx_v_vel); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_438_mju_quatIntegrate(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_quat, PyArrayObject *__pyx_v_vel, float __pyx_v_scale); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_440_mju_quatZ2Vec(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_quat, PyArrayObject *__pyx_v_vec); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_442_mju_mulPose(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_posres, PyArrayObject *__pyx_v_quatres, PyArrayObject *__pyx_v_pos1, PyArrayObject *__pyx_v_quat1, PyArrayObject *__pyx_v_pos2, PyArrayObject *__pyx_v_quat2); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_444_mju_negPose(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_posres, PyArrayObject *__pyx_v_quatres, PyArrayObject *__pyx_v_pos, PyArrayObject *__pyx_v_quat); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_446_mju_trnVecPose(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_pos, PyArrayObject *__pyx_v_quat, PyArrayObject *__pyx_v_vec); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_448_mju_cholFactor(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_mat, int __pyx_v_n, float __pyx_v_mindiag); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_450_mju_cholSolve(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat, PyArrayObject *__pyx_v_vec, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_452_mju_cholUpdate(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_mat, PyArrayObject *__pyx_v_x, int __pyx_v_n, int __pyx_v_flg_plus); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_454_mju_eig3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_eigval, PyArrayObject *__pyx_v_eigvec, PyArrayObject *__pyx_v_quat, PyArrayObject *__pyx_v_mat); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_456_mju_muscleGain(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_len, float __pyx_v_vel, PyArrayObject *__pyx_v_lengthrange, float __pyx_v_acc0, PyArrayObject *__pyx_v_prm); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_458_mju_muscleBias(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_len, PyArrayObject *__pyx_v_lengthrange, float __pyx_v_acc0, PyArrayObject *__pyx_v_prm); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_460_mju_muscleDynamics(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_ctrl, float __pyx_v_act, PyArrayObject *__pyx_v_prm); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_462_mju_encodePyramid(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_pyramid, PyArrayObject *__pyx_v_force, PyArrayObject *__pyx_v_mu, int __pyx_v_dim); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_464_mju_decodePyramid(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_force, PyArrayObject *__pyx_v_pyramid, PyArrayObject *__pyx_v_mu, int __pyx_v_dim); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_466_mju_springDamper(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_pos0, float __pyx_v_vel0, float __pyx_v_Kp, float __pyx_v_Kv, float __pyx_v_dt); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_468_mju_min(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_a, float __pyx_v_b); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_470_mju_max(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_a, float __pyx_v_b); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_472_mju_sign(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_474_mju_round(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_476_mju_str2Type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_str); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_478_mju_isBad(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_480_mju_isZero(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_vec, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_482_mju_standardNormal(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_num2); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_484_mju_insertionSort(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_list, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_486_mju_insertionSortInt(CYTHON_UNUSED PyObject *__pyx_self, uintptr_t __pyx_v_list, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_488_mju_Halton(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_index, int __pyx_v_base); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_490_mju_sigmoid(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_x); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_492_add_mujoco_bin_to_dyld_library_path(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13OpenGLContext_make_context_current(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_13OpenGLContext_2set_buffer_size(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_width, CYTHON_UNUSED PyObject *__pyx_v_height); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_offscreen, PyObject *__pyx_v_quiet); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext_2_init_glfw(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext_4make_context_current(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext_6set_buffer_size(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_height); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext_8_create_window(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_offscreen, PyObject *__pyx_v_quiet); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext_10get_buffer_size(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext_12_set_window_size(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_target_width, PyObject *__pyx_v_target_height); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext_14_glfw_error_callback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_error_code, PyObject *__pyx_v_description); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_22OffscreenOpenGLContext___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_device_id); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_22OffscreenOpenGLContext_2close(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_22OffscreenOpenGLContext_4make_context_current(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_22OffscreenOpenGLContext_6set_buffer_size(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, int __pyx_v_width, int __pyx_v_height); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_5MjSim___cinit__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_model, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_data, int __pyx_v_nsubsteps, PyObject *__pyx_v_udd_callback, PyObject *__pyx_v_substep_callback, PyObject *__pyx_v_userdata_names, PyObject *__pyx_v_render_callback); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_2reset(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_4forward(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_6set_constants(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_8step(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_with_udd); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_10render(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_height, PyObject *__pyx_v_camera_name, PyObject *__pyx_v_depth, PyObject *__pyx_v_mode, PyObject *__pyx_v_device_id, PyObject *__pyx_v_segmentation); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_12add_render_context(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_render_context); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_12udd_callback___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_5MjSim_12udd_callback_2__set__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_14substep_callback(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_16set_substep_callback(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_substep_callback, PyObject *__pyx_v_userdata_names); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_18step_udd(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_20get_state(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_22set_state(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_24set_state_from_flattened(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_4save_str_array(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_arr); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_26save(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_file, PyObject *__pyx_v_format, PyObject *__pyx_v_keep_inertials); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_28ray(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_pnt, PyObject *__pyx_v_vec, PyObject *__pyx_v_include_static_geoms, PyObject *__pyx_v_exclude_body, PyObject *__pyx_v_group_filter); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_30ray_fast_group(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyArrayObject *__pyx_v_pnt, PyArrayObject *__pyx_v_vec, PyArrayObject *__pyx_v_geomgroup, mjtByte __pyx_v_flg_static, int __pyx_v_bodyexclude); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_32ray_fast_nogroup(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyArrayObject *__pyx_v_pnt, PyArrayObject *__pyx_v_vec, mjtByte __pyx_v_flg_static, int __pyx_v_bodyexclude); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_15render_contexts___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_22_render_context_window___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_25_render_context_offscreen___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_5model___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_4data___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_9nsubsteps___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_5MjSim_9nsubsteps_2__set__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_9udd_state___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_5MjSim_9udd_state_2__set__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_5MjSim_9udd_state_4__del__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_13_udd_callback___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_6extras___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_20substep_callback_ptr___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_15render_callback___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_5MjSim_15render_callback_2__set__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_5MjSim_15render_callback_4__del__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_34__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_36__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10MjSimState___eq__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10MjSimState_2__ne__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10MjSimState_4flatten(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10MjSimState_6_flatten_dict(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10MjSimState_8from_flattened(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_array, PyObject *__pyx_v_sim); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_10MjSimState_10_unflatten_dict(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_a, PyObject *__pyx_v_schema_example); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_15MjRenderContext___cinit__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_2__init__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_sim, int __pyx_v_offscreen, int __pyx_v_device_id, PyObject *__pyx_v_opengl_backend, PyObject *__pyx_v_quiet); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_4update_sim(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_new_sim); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_6_set_mujoco_buffers(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_8_setup_opengl_context(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_offscreen, PyObject *__pyx_v_device_id, PyObject *__pyx_v_opengl_backend, PyObject *__pyx_v_quiet); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_10_init_camera(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_sim); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_12update_offscreen_size(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_height); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_14render(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_height, PyObject *__pyx_v_camera_id, PyObject *__pyx_v_segmentation); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_16read_pixels(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_height, PyObject *__pyx_v_depth, PyObject *__pyx_v_segmentation); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_18read_pixels_depth(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyArrayObject *__pyx_v_buffer); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_20upload_texture(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, int __pyx_v_tex_id); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_22draw_pixels(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyArrayObject *__pyx_v_image, int __pyx_v_left, int __pyx_v_bottom); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_24move_camera(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, int __pyx_v_action, double __pyx_v_reldx, double __pyx_v_reldy); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_26add_overlay(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, int __pyx_v_gridpos, PyObject *__pyx_v_text1, PyObject *__pyx_v_text2); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_28add_marker(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_marker_params); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_30_add_marker_to_scene(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_marker_params); /* proto */
static void __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_32__dealloc__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3scn___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3cam___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_4vopt___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_4pert___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3con___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_14opengl_context___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_8_visible___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_8_markers___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_8_overlay___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_9offscreen___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3sim___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3sim_2__set__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3sim_4__del__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_34__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_36__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_24MjRenderContextOffscreen___cinit__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_sim, int __pyx_v_device_id); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_21MjRenderContextWindow___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_sim); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_21MjRenderContextWindow_2window(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_21MjRenderContextWindow_4render(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_height, PyObject *__pyx_v_batch_size, PyObject *__pyx_v_device_id, PyObject *__pyx_v_depth, PyObject *__pyx_v_use_cuda); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_2_init_cuda(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_4map(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_6unmap(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_8prepare_render_context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_sim); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_10render(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_sim, PyObject *__pyx_v_camera_id, PyObject *__pyx_v_batch_offset); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_12read(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_14_read_cuda(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_16_read_nocuda(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_18cuda_rgb_buffer_pointer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_20cuda_depth_buffer_pointer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_22__del__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_494set_pid_control(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_m, PyObject *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_496set_warning_callback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_warn); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_498get_warning_callback(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_500set_error_callback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_err_callback); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_502get_error_callback(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_19wrap_mujoco_warning___enter__(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_19wrap_mujoco_warning_2__exit__(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_type, CYTHON_UNUSED PyObject *__pyx_v_value, CYTHON_UNUSED PyObject *__pyx_v_traceback); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_504load_model_from_path(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_506load_model_from_xml(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_xml_str); /* proto */
static PyObject *__pyx_pf_9mujoco_py_4cymj_508load_model_from_mjb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_mjb_bytes); /* proto */
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjLROpt(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVFS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjOption(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_global_(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_quality(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_headlight(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_map(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_scale(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_rgba(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjStatistic(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjModel(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjContact(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjWarningStat(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjTimerStat(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjSolverStat(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjData(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvPerturb(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvCamera(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvGLCamera(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvGeom(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvLight(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvOption(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvScene(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvFigure(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjrRect(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjrContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjuiState(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjuiThemeSpacing(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjuiThemeColor(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjuiItem(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjuiSection(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjUI(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjuiDef(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_MjSim(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj_MjRenderContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_keys = {0, 0, 0, 0, 0};
static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values = {0, 0, 0, 0, 0};
static __Pyx_CachedCFunction __pyx_umethod_PyList_Type_pop = {0, 0, 0, 0, 0};
/* #### Code section: late_includes ### */
/* #### Code section: module_state ### */
typedef struct {
  PyObject *__pyx_d;
  PyObject *__pyx_b;
  PyObject *__pyx_cython_runtime;
  PyObject *__pyx_empty_tuple;
  PyObject *__pyx_empty_bytes;
  PyObject *__pyx_empty_unicode;
  #ifdef __Pyx_CyFunction_USED
  PyTypeObject *__pyx_CyFunctionType;
  #endif
  #ifdef __Pyx_FusedFunction_USED
  PyTypeObject *__pyx_FusedFunctionType;
  #endif
  #ifdef __Pyx_Generator_USED
  PyTypeObject *__pyx_GeneratorType;
  #endif
  #ifdef __Pyx_IterableCoroutine_USED
  PyTypeObject *__pyx_IterableCoroutineType;
  #endif
  #ifdef __Pyx_Coroutine_USED
  PyTypeObject *__pyx_CoroutineAwaitType;
  #endif
  #ifdef __Pyx_Coroutine_USED
  PyTypeObject *__pyx_CoroutineType;
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  PyTypeObject *__pyx_ptype_7cpython_4type_type;
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  PyTypeObject *__pyx_ptype_5numpy_dtype;
  PyTypeObject *__pyx_ptype_5numpy_flatiter;
  PyTypeObject *__pyx_ptype_5numpy_broadcast;
  PyTypeObject *__pyx_ptype_5numpy_ndarray;
  PyTypeObject *__pyx_ptype_5numpy_generic;
  PyTypeObject *__pyx_ptype_5numpy_number;
  PyTypeObject *__pyx_ptype_5numpy_integer;
  PyTypeObject *__pyx_ptype_5numpy_signedinteger;
  PyTypeObject *__pyx_ptype_5numpy_unsignedinteger;
  PyTypeObject *__pyx_ptype_5numpy_inexact;
  PyTypeObject *__pyx_ptype_5numpy_floating;
  PyTypeObject *__pyx_ptype_5numpy_complexfloating;
  PyTypeObject *__pyx_ptype_5numpy_flexible;
  PyTypeObject *__pyx_ptype_5numpy_character;
  PyTypeObject *__pyx_ptype_5numpy_ufunc;
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjLROpt;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjVFS;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjOption;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjVisual;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjVisual_global_;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjVisual_quality;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjVisual_headlight;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjVisual_map;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjVisual_scale;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjVisual_rgba;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjStatistic;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjModel;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjContact;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjWarningStat;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjTimerStat;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjSolverStat;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjData;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjvPerturb;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjvCamera;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjvGLCamera;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjvGeom;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjvLight;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjvOption;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjvScene;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjvFigure;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjrRect;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjrContext;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjuiState;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjuiThemeSpacing;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjuiThemeColor;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjuiItem;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjuiSection;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjUI;
  PyObject *__pyx_type_9mujoco_py_4cymj_PyMjuiDef;
  PyObject *__pyx_type_9mujoco_py_4cymj_MjSim;
  PyObject *__pyx_type_9mujoco_py_4cymj_MjRenderContext;
  PyObject *__pyx_type_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names;
  PyObject *__pyx_type_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr;
  PyObject *__pyx_type___pyx_array;
  PyObject *__pyx_type___pyx_MemviewEnum;
  PyObject *__pyx_type___pyx_memoryview;
  PyObject *__pyx_type___pyx_memoryviewslice;
  #endif
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjLROpt;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjVFS;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjOption;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjVisual;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjStatistic;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjModel;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjContact;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjData;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjvCamera;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjvGeom;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjvLight;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjvOption;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjvScene;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjvFigure;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjrRect;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjrContext;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjuiState;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjuiItem;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjuiSection;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjUI;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_PyMjuiDef;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_MjSim;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj_MjRenderContext;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names;
  PyTypeObject *__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr;
  PyTypeObject *__pyx_array_type;
  PyTypeObject *__pyx_MemviewEnum_type;
  PyTypeObject *__pyx_memoryview_type;
  PyTypeObject *__pyx_memoryviewslice_type;
  PyObject *__pyx_kp_u_;
  PyObject *__pyx_n_s_ABCMeta;
  PyObject *__pyx_n_s_ASCII;
  PyObject *__pyx_kp_s_All_dimensions_preceding_dimensi;
  PyObject *__pyx_n_s_AssertionError;
  PyObject *__pyx_kp_s_Buffer_view_does_not_expose_stri;
  PyObject *__pyx_n_s_CAMERA_FIXED;
  PyObject *__pyx_n_s_CAMERA_FREE;
  PyObject *__pyx_n_s_CAT_DECOR;
  PyObject *__pyx_n_u_CUDA_VISIBLE_DEVICES;
  PyObject *__pyx_kp_u_CUDA_buffers_must_be_mapped_befo;
  PyObject *__pyx_kp_u_CUDA_buffers_must_be_unmapped_be;
  PyObject *__pyx_kp_s_Can_only_create_a_buffer_that_is;
  PyObject *__pyx_kp_s_Cannot_assign_to_read_only_memor;
  PyObject *__pyx_kp_s_Cannot_create_writable_memory_vi;
  PyObject *__pyx_kp_u_Cannot_index_with_type;
  PyObject *__pyx_kp_s_Cannot_transpose_memoryview_with;
  PyObject *__pyx_kp_s_Class_to_wrap_capturing_excepti;
  PyObject *__pyx_n_s_Context;
  PyObject *__pyx_kp_u_Creating_offscreen_glfw;
  PyObject *__pyx_kp_u_Creating_window_glfw;
  PyObject *__pyx_n_s_CudaBufferMappedError;
  PyObject *__pyx_n_s_CudaBufferNotMappedError;
  PyObject *__pyx_n_s_CudaNotEnabledError;
  PyObject *__pyx_n_s_DOUBLEBUFFER;
  PyObject *__pyx_n_u_DYLD_LIBRARY_PATH;
  PyObject *__pyx_kp_u_Depth_not_enabled_Use_depth_True;
  PyObject *__pyx_n_s_Device;
  PyObject *__pyx_kp_s_Dimension_d_is_not_direct;
  PyObject *__pyx_n_s_Ellipsis;
  PyObject *__pyx_kp_s_Empty_shape_tuple_for_cython_arr;
  PyObject *__pyx_kp_u_Every_value_in_udd_state_must_be;
  PyObject *__pyx_n_s_FONTSCALE_150;
  PyObject *__pyx_kp_u_Failed_to_create_GLFW_window;
  PyObject *__pyx_kp_u_Failed_to_import_pycuda;
  PyObject *__pyx_kp_u_Failed_to_initialize_GLFW;
  PyObject *__pyx_kp_u_Failed_to_initialize_OpenGL;
  PyObject *__pyx_kp_u_Failed_to_load_XML_file;
  PyObject *__pyx_kp_u_Failed_to_load_XML_from_string;
  PyObject *__pyx_kp_u_Failed_to_save_XML;
  PyObject *__pyx_kp_u_Failed_to_set_buffer_size;
  PyObject *__pyx_n_s_GEOM_BOX;
  PyObject *__pyx_n_s_GLFW_IS_INITIALIZED;
  PyObject *__pyx_kp_u_GLFW_error_code_d_s;
  PyObject *__pyx_kp_u_GLFW_not_installed;
  PyObject *__pyx_n_u_GPUS;
  PyObject *__pyx_n_s_GlfwContext;
  PyObject *__pyx_n_s_GlfwContext___init;
  PyObject *__pyx_n_s_GlfwContext__create_window;
  PyObject *__pyx_n_s_GlfwContext__glfw_error_callback;
  PyObject *__pyx_n_s_GlfwContext__init_glfw;
  PyObject *__pyx_n_s_GlfwContext__set_window_size;
  PyObject *__pyx_n_s_GlfwContext_get_buffer_size;
  PyObject *__pyx_n_s_GlfwContext_make_context_current;
  PyObject *__pyx_n_s_GlfwContext_set_buffer_size;
  PyObject *__pyx_n_s_GlfwError;
  PyObject *__pyx_n_s_INIT_HEIGHT;
  PyObject *__pyx_n_s_INIT_WIDTH;
  PyObject *__pyx_n_s_ImportError;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0;
  PyObject *__pyx_n_s_IndexError;
  PyObject *__pyx_kp_s_Index_out_of_bounds_axis_d;
  PyObject *__pyx_kp_s_Indirect_dimensions_not_supporte;
  PyObject *__pyx_kp_u_Invalid_mode_expected_c_or_fortr;
  PyObject *__pyx_kp_u_Invalid_shape_in_axis;
  PyObject *__pyx_kp_u_Keys_cannot_be_added_to_udd_stat;
  PyObject *__pyx_kp_u_Keys_cannot_be_dropped_from_udd;
  PyObject *__pyx_n_s_Kp;
  PyObject *__pyx_n_s_Kv;
  PyObject *__pyx_n_s_Lock;
  PyObject *__pyx_n_s_M;
  PyObject *__pyx_kp_u_Mapped_CUDA_depth_buffer_pointer;
  PyObject *__pyx_kp_u_Mapped_CUDA_rgb_buffer_pointer;
  PyObject *__pyx_n_s_MemoryError;
  PyObject *__pyx_kp_s_MemoryView_of_r_at_0x_x;
  PyObject *__pyx_kp_s_MemoryView_of_r_object;
  PyObject *__pyx_n_s_MjBatchRenderer;
  PyObject *__pyx_n_s_MjBatchRendererException;
  PyObject *__pyx_n_s_MjBatchRendererNotSupported;
  PyObject *__pyx_n_s_MjBatchRenderer___del;
  PyObject *__pyx_n_s_MjBatchRenderer___init;
  PyObject *__pyx_n_s_MjBatchRenderer__init_cuda;
  PyObject *__pyx_n_s_MjBatchRenderer__read_cuda;
  PyObject *__pyx_n_s_MjBatchRenderer__read_nocuda;
  PyObject *__pyx_n_s_MjBatchRenderer_cuda_depth_buffe;
  PyObject *__pyx_n_s_MjBatchRenderer_cuda_rgb_buffer;
  PyObject *__pyx_kp_u_MjBatchRenderer_currently_only_s;
  PyObject *__pyx_n_s_MjBatchRenderer_map;
  PyObject *__pyx_n_s_MjBatchRenderer_prepare_render_c;
  PyObject *__pyx_n_s_MjBatchRenderer_read;
  PyObject *__pyx_n_s_MjBatchRenderer_render;
  PyObject *__pyx_n_s_MjBatchRenderer_unmap;
  PyObject *__pyx_n_s_MjRenderContext;
  PyObject *__pyx_n_s_MjRenderContextOffscreen;
  PyObject *__pyx_n_s_MjRenderContextOffscreen___cinit;
  PyObject *__pyx_n_s_MjRenderContextWindow;
  PyObject *__pyx_n_s_MjRenderContextWindow___init;
  PyObject *__pyx_n_s_MjRenderContextWindow_render;
  PyObject *__pyx_n_s_MjRenderContextWindow_window;
  PyObject *__pyx_n_s_MjRenderContext___reduce_cython;
  PyObject *__pyx_n_s_MjRenderContext___setstate_cytho;
  PyObject *__pyx_n_s_MjRenderContext__add_marker_to_s;
  PyObject *__pyx_n_s_MjRenderContext__init_camera;
  PyObject *__pyx_n_s_MjRenderContext__set_mujoco_buff;
  PyObject *__pyx_n_s_MjRenderContext__setup_opengl_co;
  PyObject *__pyx_n_s_MjRenderContext_add_marker;
  PyObject *__pyx_n_s_MjRenderContext_add_overlay;
  PyObject *__pyx_n_s_MjRenderContext_draw_pixels;
  PyObject *__pyx_n_s_MjRenderContext_move_camera;
  PyObject *__pyx_n_s_MjRenderContext_read_pixels;
  PyObject *__pyx_n_s_MjRenderContext_read_pixels_dept;
  PyObject *__pyx_n_s_MjRenderContext_render;
  PyObject *__pyx_n_s_MjRenderContext_update_offscreen;
  PyObject *__pyx_n_s_MjRenderContext_update_sim;
  PyObject *__pyx_n_s_MjRenderContext_upload_texture;
  PyObject *__pyx_n_s_MjSim;
  PyObject *__pyx_n_s_MjSimState;
  PyObject *__pyx_n_s_MjSimState___eq;
  PyObject *__pyx_n_s_MjSimState___ne;
  PyObject *__pyx_n_s_MjSimState__flatten_dict;
  PyObject *__pyx_n_s_MjSimState__unflatten_dict;
  PyObject *__pyx_n_s_MjSimState_flatten;
  PyObject *__pyx_n_s_MjSimState_from_flattened;
  PyObject *__pyx_n_s_MjSim___reduce_cython;
  PyObject *__pyx_n_s_MjSim___setstate_cython;
  PyObject *__pyx_n_s_MjSim_add_render_context;
  PyObject *__pyx_n_s_MjSim_forward;
  PyObject *__pyx_n_s_MjSim_get_state;
  PyObject *__pyx_n_s_MjSim_ray;
  PyObject *__pyx_n_s_MjSim_ray_fast_group;
  PyObject *__pyx_n_s_MjSim_ray_fast_nogroup;
  PyObject *__pyx_n_s_MjSim_render;
  PyObject *__pyx_n_s_MjSim_render_lock;
  PyObject *__pyx_n_s_MjSim_reset;
  PyObject *__pyx_n_s_MjSim_save;
  PyObject *__pyx_n_s_MjSim_set_constants;
  PyObject *__pyx_n_s_MjSim_set_state;
  PyObject *__pyx_n_s_MjSim_set_state_from_flattened;
  PyObject *__pyx_n_s_MjSim_set_substep_callback;
  PyObject *__pyx_n_s_MjSim_step;
  PyObject *__pyx_n_s_MjSim_step_udd;
  PyObject *__pyx_n_s_MjSim_substep_callback;
  PyObject *__pyx_n_s_MjViewer;
  PyObject *__pyx_kp_u_Mode_must_be_either_window_or_of;
  PyObject *__pyx_n_s_N;
  PyObject *__pyx_n_s_NGAIN;
  PyObject *__pyx_n_s_NamedTemporaryFile;
  PyObject *__pyx_kp_u_No_actuator_with_id_d_exists;
  PyObject *__pyx_kp_u_No_actuator_with_name;
  PyObject *__pyx_kp_u_No_body_with_id_d_exists;
  PyObject *__pyx_kp_u_No_body_with_name;
  PyObject *__pyx_kp_u_No_camera_with_id_d_exists;
  PyObject *__pyx_kp_u_No_camera_with_name;
  PyObject *__pyx_kp_u_No_geom_with_id_d_exists;
  PyObject *__pyx_kp_u_No_geom_with_name;
  PyObject *__pyx_kp_u_No_joint_with_id_d_exists;
  PyObject *__pyx_kp_u_No_joint_with_name;
  PyObject *__pyx_kp_u_No_light_with_id_d_exists;
  PyObject *__pyx_kp_u_No_light_with_name;
  PyObject *__pyx_kp_u_No_mesh_with_id_d_exists;
  PyObject *__pyx_kp_u_No_mesh_with_name;
  PyObject *__pyx_kp_u_No_sensor_with_id_d_exists;
  PyObject *__pyx_kp_u_No_sensor_with_name;
  PyObject *__pyx_kp_u_No_site_with_id_d_exists;
  PyObject *__pyx_kp_u_No_site_with_name;
  PyObject *__pyx_kp_u_No_tendon_with_id_d_exists;
  PyObject *__pyx_kp_u_No_tendon_with_name;
  PyObject *__pyx_kp_u_No_userdata_with_id_d_exists;
  PyObject *__pyx_kp_u_No_userdata_with_name;
  PyObject *__pyx_kp_u_None;
  PyObject *__pyx_n_s_NotImplemented;
  PyObject *__pyx_n_s_NotImplementedError;
  PyObject *__pyx_n_s_Number;
  PyObject *__pyx_kp_u_Numpy_array_values_in_udd_state;
  PyObject *__pyx_n_b_O;
  PyObject *__pyx_n_s_OBJ_UNKNOWN;
  PyObject *__pyx_n_s_OffscreenOpenGLContext;
  PyObject *__pyx_n_s_OffscreenOpenGLContext___init;
  PyObject *__pyx_n_s_OffscreenOpenGLContext_close;
  PyObject *__pyx_n_s_OffscreenOpenGLContext_make_cont;
  PyObject *__pyx_n_s_OffscreenOpenGLContext_set_buffe;
  PyObject *__pyx_kp_u_Offscreen_rendering_not_supporte;
  PyObject *__pyx_kp_u_Only_GlfwContext_supported_for_w;
  PyObject *__pyx_kp_u_Only_label_is_a_string_in_mjvGeo;
  PyObject *__pyx_n_s_OpenGLContext;
  PyObject *__pyx_n_s_OpenGLContext_make_context_curre;
  PyObject *__pyx_n_s_OpenGLContext_set_buffer_size;
  PyObject *__pyx_kp_u_Out_of_bounds_on_buffer_access_a;
  PyObject *__pyx_n_s_OverflowError;
  PyObject *__pyx_n_s_PickleError;
  PyObject *__pyx_n_s_PyMjContact;
  PyObject *__pyx_n_s_PyMjContact___reduce_cython;
  PyObject *__pyx_n_s_PyMjContact___setstate_cython;
  PyObject *__pyx_n_s_PyMjData;
  PyObject *__pyx_n_s_PyMjData___reduce_cython;
  PyObject *__pyx_n_s_PyMjData___setstate_cython;
  PyObject *__pyx_n_s_PyMjData_get_body_jacp;
  PyObject *__pyx_n_s_PyMjData_get_body_jacr;
  PyObject *__pyx_n_s_PyMjData_get_body_ximat;
  PyObject *__pyx_n_s_PyMjData_get_body_xipos;
  PyObject *__pyx_n_s_PyMjData_get_body_xmat;
  PyObject *__pyx_n_s_PyMjData_get_body_xpos;
  PyObject *__pyx_n_s_PyMjData_get_body_xquat;
  PyObject *__pyx_n_s_PyMjData_get_body_xvelp;
  PyObject *__pyx_n_s_PyMjData_get_body_xvelr;
  PyObject *__pyx_n_s_PyMjData_get_cam_xmat;
  PyObject *__pyx_n_s_PyMjData_get_cam_xpos;
  PyObject *__pyx_n_s_PyMjData_get_camera_xmat;
  PyObject *__pyx_n_s_PyMjData_get_camera_xpos;
  PyObject *__pyx_n_s_PyMjData_get_geom_jacp;
  PyObject *__pyx_n_s_PyMjData_get_geom_jacr;
  PyObject *__pyx_n_s_PyMjData_get_geom_xmat;
  PyObject *__pyx_n_s_PyMjData_get_geom_xpos;
  PyObject *__pyx_n_s_PyMjData_get_geom_xvelp;
  PyObject *__pyx_n_s_PyMjData_get_geom_xvelr;
  PyObject *__pyx_n_s_PyMjData_get_joint_qpos;
  PyObject *__pyx_n_s_PyMjData_get_joint_qvel;
  PyObject *__pyx_n_s_PyMjData_get_joint_xanchor;
  PyObject *__pyx_n_s_PyMjData_get_joint_xaxis;
  PyObject *__pyx_n_s_PyMjData_get_light_xdir;
  PyObject *__pyx_n_s_PyMjData_get_light_xpos;
  PyObject *__pyx_n_s_PyMjData_get_mocap_pos;
  PyObject *__pyx_n_s_PyMjData_get_mocap_quat;
  PyObject *__pyx_n_s_PyMjData_get_sensor;
  PyObject *__pyx_n_s_PyMjData_get_sensordata;
  PyObject *__pyx_n_s_PyMjData_get_site_jacp;
  PyObject *__pyx_n_s_PyMjData_get_site_jacr;
  PyObject *__pyx_n_s_PyMjData_get_site_xmat;
  PyObject *__pyx_n_s_PyMjData_get_site_xpos;
  PyObject *__pyx_n_s_PyMjData_get_site_xvelp;
  PyObject *__pyx_n_s_PyMjData_get_site_xvelr;
  PyObject *__pyx_n_s_PyMjData_get_userdata;
  PyObject *__pyx_n_s_PyMjData_get_xanchor;
  PyObject *__pyx_n_s_PyMjData_get_xaxis;
  PyObject *__pyx_n_s_PyMjData_get_ximat;
  PyObject *__pyx_n_s_PyMjData_get_xipos;
  PyObject *__pyx_n_s_PyMjData_get_xmat;
  PyObject *__pyx_n_s_PyMjData_get_xpos;
  PyObject *__pyx_n_s_PyMjData_get_xquat;
  PyObject *__pyx_n_s_PyMjData_set_joint_qpos;
  PyObject *__pyx_n_s_PyMjData_set_joint_qvel;
  PyObject *__pyx_n_s_PyMjData_set_mocap_pos;
  PyObject *__pyx_n_s_PyMjData_set_mocap_quat;
  PyObject *__pyx_n_s_PyMjLROpt;
  PyObject *__pyx_n_s_PyMjLROpt___reduce_cython;
  PyObject *__pyx_n_s_PyMjLROpt___setstate_cython;
  PyObject *__pyx_n_s_PyMjModel;
  PyObject *__pyx_n_s_PyMjModel___reduce_cython;
  PyObject *__pyx_n_s_PyMjModel___setstate_cython;
  PyObject *__pyx_n_s_PyMjModel__extract_mj_names_loca;
  PyObject *__pyx_n_s_PyMjModel_actuator_id2name;
  PyObject *__pyx_n_s_PyMjModel_actuator_name2id;
  PyObject *__pyx_n_s_PyMjModel_body_id2name;
  PyObject *__pyx_n_s_PyMjModel_body_name2id;
  PyObject *__pyx_n_s_PyMjModel_camera_id2name;
  PyObject *__pyx_n_s_PyMjModel_camera_name2id;
  PyObject *__pyx_n_s_PyMjModel_geom_id2name;
  PyObject *__pyx_n_s_PyMjModel_geom_name2id;
  PyObject *__pyx_n_s_PyMjModel_get_joint_qpos_addr;
  PyObject *__pyx_n_s_PyMjModel_get_joint_qvel_addr;
  PyObject *__pyx_n_s_PyMjModel_get_mjb;
  PyObject *__pyx_n_s_PyMjModel_get_xml;
  PyObject *__pyx_n_s_PyMjModel_joint_id2name;
  PyObject *__pyx_n_s_PyMjModel_joint_name2id;
  PyObject *__pyx_n_s_PyMjModel_light_id2name;
  PyObject *__pyx_n_s_PyMjModel_light_name2id;
  PyObject *__pyx_n_s_PyMjModel_mesh_id2name;
  PyObject *__pyx_n_s_PyMjModel_mesh_name2id;
  PyObject *__pyx_n_s_PyMjModel_sensor_id2name;
  PyObject *__pyx_n_s_PyMjModel_sensor_name2id;
  PyObject *__pyx_n_s_PyMjModel_set_userdata_names;
  PyObject *__pyx_n_s_PyMjModel_site_id2name;
  PyObject *__pyx_n_s_PyMjModel_site_name2id;
  PyObject *__pyx_n_s_PyMjModel_tendon_id2name;
  PyObject *__pyx_n_s_PyMjModel_tendon_name2id;
  PyObject *__pyx_n_s_PyMjModel_userdata_id2name;
  PyObject *__pyx_n_s_PyMjModel_userdata_name2id;
  PyObject *__pyx_n_s_PyMjOption;
  PyObject *__pyx_n_s_PyMjOption___reduce_cython;
  PyObject *__pyx_n_s_PyMjOption___setstate_cython;
  PyObject *__pyx_n_s_PyMjSolverStat;
  PyObject *__pyx_n_s_PyMjSolverStat___reduce_cython;
  PyObject *__pyx_n_s_PyMjSolverStat___setstate_cython;
  PyObject *__pyx_n_s_PyMjStatistic;
  PyObject *__pyx_n_s_PyMjStatistic___reduce_cython;
  PyObject *__pyx_n_s_PyMjStatistic___setstate_cython;
  PyObject *__pyx_n_s_PyMjTimerStat;
  PyObject *__pyx_n_s_PyMjTimerStat___reduce_cython;
  PyObject *__pyx_n_s_PyMjTimerStat___setstate_cython;
  PyObject *__pyx_n_s_PyMjUI;
  PyObject *__pyx_n_s_PyMjUI___reduce_cython;
  PyObject *__pyx_n_s_PyMjUI___setstate_cython;
  PyObject *__pyx_n_s_PyMjVFS;
  PyObject *__pyx_n_s_PyMjVFS___reduce_cython;
  PyObject *__pyx_n_s_PyMjVFS___setstate_cython;
  PyObject *__pyx_n_s_PyMjVisual;
  PyObject *__pyx_n_s_PyMjVisual___reduce_cython;
  PyObject *__pyx_n_s_PyMjVisual___setstate_cython;
  PyObject *__pyx_n_s_PyMjVisual_global;
  PyObject *__pyx_n_s_PyMjVisual_global____reduce_cyth;
  PyObject *__pyx_n_s_PyMjVisual_global____setstate_cy;
  PyObject *__pyx_n_s_PyMjVisual_headlight;
  PyObject *__pyx_n_s_PyMjVisual_headlight___reduce_cy;
  PyObject *__pyx_n_s_PyMjVisual_headlight___setstate;
  PyObject *__pyx_n_s_PyMjVisual_map;
  PyObject *__pyx_n_s_PyMjVisual_map___reduce_cython;
  PyObject *__pyx_n_s_PyMjVisual_map___setstate_cython;
  PyObject *__pyx_n_s_PyMjVisual_quality;
  PyObject *__pyx_n_s_PyMjVisual_quality___reduce_cyth;
  PyObject *__pyx_n_s_PyMjVisual_quality___setstate_cy;
  PyObject *__pyx_n_s_PyMjVisual_rgba;
  PyObject *__pyx_n_s_PyMjVisual_rgba___reduce_cython;
  PyObject *__pyx_n_s_PyMjVisual_rgba___setstate_cytho;
  PyObject *__pyx_n_s_PyMjVisual_scale;
  PyObject *__pyx_n_s_PyMjVisual_scale___reduce_cython;
  PyObject *__pyx_n_s_PyMjVisual_scale___setstate_cyth;
  PyObject *__pyx_n_s_PyMjWarningStat;
  PyObject *__pyx_n_s_PyMjWarningStat___reduce_cython;
  PyObject *__pyx_n_s_PyMjWarningStat___setstate_cytho;
  PyObject *__pyx_n_s_PyMjrContext;
  PyObject *__pyx_n_s_PyMjrContext___reduce_cython;
  PyObject *__pyx_n_s_PyMjrContext___setstate_cython;
  PyObject *__pyx_n_s_PyMjrRect;
  PyObject *__pyx_n_s_PyMjrRect___reduce_cython;
  PyObject *__pyx_n_s_PyMjrRect___setstate_cython;
  PyObject *__pyx_n_s_PyMjuiDef;
  PyObject *__pyx_n_s_PyMjuiDef___reduce_cython;
  PyObject *__pyx_n_s_PyMjuiDef___setstate_cython;
  PyObject *__pyx_n_s_PyMjuiItem;
  PyObject *__pyx_n_s_PyMjuiItem___reduce_cython;
  PyObject *__pyx_n_s_PyMjuiItem___setstate_cython;
  PyObject *__pyx_n_s_PyMjuiSection;
  PyObject *__pyx_n_s_PyMjuiSection___reduce_cython;
  PyObject *__pyx_n_s_PyMjuiSection___setstate_cython;
  PyObject *__pyx_n_s_PyMjuiState;
  PyObject *__pyx_n_s_PyMjuiState___reduce_cython;
  PyObject *__pyx_n_s_PyMjuiState___setstate_cython;
  PyObject *__pyx_n_s_PyMjuiThemeColor;
  PyObject *__pyx_n_s_PyMjuiThemeColor___reduce_cython;
  PyObject *__pyx_n_s_PyMjuiThemeColor___setstate_cyth;
  PyObject *__pyx_n_s_PyMjuiThemeSpacing;
  PyObject *__pyx_n_s_PyMjuiThemeSpacing___reduce_cyth;
  PyObject *__pyx_n_s_PyMjuiThemeSpacing___setstate_cy;
  PyObject *__pyx_n_s_PyMjvCamera;
  PyObject *__pyx_n_s_PyMjvCamera___reduce_cython;
  PyObject *__pyx_n_s_PyMjvCamera___setstate_cython;
  PyObject *__pyx_n_s_PyMjvFigure;
  PyObject *__pyx_n_s_PyMjvFigure___reduce_cython;
  PyObject *__pyx_n_s_PyMjvFigure___setstate_cython;
  PyObject *__pyx_n_s_PyMjvGLCamera;
  PyObject *__pyx_n_s_PyMjvGLCamera___reduce_cython;
  PyObject *__pyx_n_s_PyMjvGLCamera___setstate_cython;
  PyObject *__pyx_n_s_PyMjvGeom;
  PyObject *__pyx_n_s_PyMjvGeom___reduce_cython;
  PyObject *__pyx_n_s_PyMjvGeom___setstate_cython;
  PyObject *__pyx_n_s_PyMjvLight;
  PyObject *__pyx_n_s_PyMjvLight___reduce_cython;
  PyObject *__pyx_n_s_PyMjvLight___setstate_cython;
  PyObject *__pyx_n_s_PyMjvOption;
  PyObject *__pyx_n_s_PyMjvOption___reduce_cython;
  PyObject *__pyx_n_s_PyMjvOption___setstate_cython;
  PyObject *__pyx_n_s_PyMjvPerturb;
  PyObject *__pyx_n_s_PyMjvPerturb___reduce_cython;
  PyObject *__pyx_n_s_PyMjvPerturb___setstate_cython;
  PyObject *__pyx_n_s_PyMjvScene;
  PyObject *__pyx_n_s_PyMjvScene___reduce_cython;
  PyObject *__pyx_n_s_PyMjvScene___setstate_cython;
  PyObject *__pyx_n_s_RND_IDCOLOR;
  PyObject *__pyx_n_s_RND_SEGMENT;
  PyObject *__pyx_kp_u_Ran_out_of_geoms_maxgeom_d;
  PyObject *__pyx_n_s_RegisteredBuffer;
  PyObject *__pyx_kp_s_Represents_a_snapshot_of_the_sim;
  PyObject *__pyx_n_s_RuntimeError;
  PyObject *__pyx_n_s_SAMPLES;
  PyObject *__pyx_n_s_Sequence;
  PyObject *__pyx_n_u_SimStateBase;
  PyObject *__pyx_kp_s_Step_may_not_be_zero_axis_d;
  PyObject *__pyx_kp_b_T;
  PyObject *__pyx_n_s_TemporaryDirectory;
  PyObject *__pyx_n_s_TypeError;
  PyObject *__pyx_kp_s_Unable_to_convert_item_to_object;
  PyObject *__pyx_kp_u_Unrecognized_extension_for_s_Exp;
  PyObject *__pyx_kp_u_Unsupported_format_Valid_ones_ar;
  PyObject *__pyx_kp_s_Utility_class_for_rendering_int;
  PyObject *__pyx_n_s_VISIBLE;
  PyObject *__pyx_n_s_ValueError;
  PyObject *__pyx_kp_u_Value_has_incorrect_shape;
  PyObject *__pyx_n_s_View_MemoryView;
  PyObject *__pyx_kp_u_Window_rendering_not_supported;
  PyObject *__pyx_kp_b__10;
  PyObject *__pyx_kp_u__10;
  PyObject *__pyx_kp_b__11;
  PyObject *__pyx_kp_b__12;
  PyObject *__pyx_kp_u__13;
  PyObject *__pyx_kp_u__14;
  PyObject *__pyx_kp_u__2;
  PyObject *__pyx_n_s__3;
  PyObject *__pyx_kp_u__34;
  PyObject *__pyx_kp_u__41;
  PyObject *__pyx_kp_u__44;
  PyObject *__pyx_kp_u__52;
  PyObject *__pyx_kp_u__6;
  PyObject *__pyx_n_s__637;
  PyObject *__pyx_kp_u__7;
  PyObject *__pyx_n_s__778;
  PyObject *__pyx_kp_b__9;
  PyObject *__pyx_n_s_a;
  PyObject *__pyx_n_s_a0;
  PyObject *__pyx_n_s_a1;
  PyObject *__pyx_n_s_a2;
  PyObject *__pyx_n_s_abc;
  PyObject *__pyx_n_s_abstractmethod;
  PyObject *__pyx_n_s_acc0;
  PyObject *__pyx_n_s_act;
  PyObject *__pyx_n_u_act;
  PyObject *__pyx_n_s_action;
  PyObject *__pyx_kp_u_active_contacts_efc_pos_should_b;
  PyObject *__pyx_n_s_actuator_id2name;
  PyObject *__pyx_n_s_actuator_name2id;
  PyObject *__pyx_n_s_add_marker;
  PyObject *__pyx_n_s_add_marker_to_scene;
  PyObject *__pyx_n_s_add_mujoco_bin_to_dyld_library;
  PyObject *__pyx_n_s_add_overlay;
  PyObject *__pyx_n_s_add_render_context;
  PyObject *__pyx_n_s_addr;
  PyObject *__pyx_n_s_allocate_buffer;
  PyObject *__pyx_kp_u_and;
  PyObject *__pyx_n_s_angle;
  PyObject *__pyx_n_s_appendChild;
  PyObject *__pyx_n_s_args;
  PyObject *__pyx_n_s_arr;
  PyObject *__pyx_n_s_array;
  PyObject *__pyx_n_s_array_equal;
  PyObject *__pyx_n_s_asarray;
  PyObject *__pyx_n_s_aspectratio;
  PyObject *__pyx_n_s_asyncio_coroutines;
  PyObject *__pyx_n_s_attr;
  PyObject *__pyx_n_s_axis;
  PyObject *__pyx_n_s_b;
  PyObject *__pyx_n_s_b0;
  PyObject *__pyx_n_s_b1;
  PyObject *__pyx_n_s_b2;
  PyObject *__pyx_kp_u_bad_userdata_names;
  PyObject *__pyx_n_s_base;
  PyObject *__pyx_n_s_batch_offset;
  PyObject *__pyx_kp_u_batch_offset_out_of_range;
  PyObject *__pyx_n_s_batch_size;
  PyObject *__pyx_n_s_batch_size_2;
  PyObject *__pyx_n_u_bin;
  PyObject *__pyx_n_s_bin_path;
  PyObject *__pyx_n_s_body;
  PyObject *__pyx_n_s_body_id;
  PyObject *__pyx_n_s_body_id2name;
  PyObject *__pyx_n_s_body_jacp;
  PyObject *__pyx_n_s_body_jacr;
  PyObject *__pyx_n_s_body_mocapid;
  PyObject *__pyx_n_s_body_name2id;
  PyObject *__pyx_kp_u_body_xmat_should_be_used_instead;
  PyObject *__pyx_kp_u_body_xpos_should_be_used_instead;
  PyObject *__pyx_kp_u_body_xquat_should_be_used_instea;
  PyObject *__pyx_n_s_bodyexclude;
  PyObject *__pyx_n_s_bottom;
  PyObject *__pyx_n_s_buffer;
  PyObject *__pyx_n_s_buffer_sz;
  PyObject *__pyx_n_s_buffer_view;
  PyObject *__pyx_n_s_build_callback_fn;
  PyObject *__pyx_n_s_c;
  PyObject *__pyx_n_u_c;
  PyObject *__pyx_n_s_c1;
  PyObject *__pyx_n_s_c2;
  PyObject *__pyx_n_s_cam;
  PyObject *__pyx_n_s_camera_id;
  PyObject *__pyx_n_s_camera_id2name;
  PyObject *__pyx_n_s_camera_name;
  PyObject *__pyx_n_s_camera_name2id;
  PyObject *__pyx_n_s_catmask;
  PyObject *__pyx_n_s_childNodes;
  PyObject *__pyx_n_s_cinit;
  PyObject *__pyx_n_s_class;
  PyObject *__pyx_n_s_class_getitem;
  PyObject *__pyx_n_s_cline_in_traceback;
  PyObject *__pyx_n_s_close;
  PyObject *__pyx_n_s_colind;
  PyObject *__pyx_n_s_collections;
  PyObject *__pyx_kp_s_collections_abc;
  PyObject *__pyx_n_s_con;
  PyObject *__pyx_n_s_concatenate;
  PyObject *__pyx_n_s_const;
  PyObject *__pyx_kp_s_contiguous_and_direct;
  PyObject *__pyx_kp_s_contiguous_and_indirect;
  PyObject *__pyx_n_s_copy;
  PyObject *__pyx_n_s_cost;
  PyObject *__pyx_n_s_count;
  PyObject *__pyx_n_s_createElement;
  PyObject *__pyx_n_s_create_window;
  PyObject *__pyx_n_s_create_window_2;
  PyObject *__pyx_n_s_ctrl;
  PyObject *__pyx_n_s_cuda_buffers_are_mapped;
  PyObject *__pyx_n_s_cuda_context;
  PyObject *__pyx_n_s_cuda_depth_buf_size;
  PyObject *__pyx_n_s_cuda_depth_buffer_pointer;
  PyObject *__pyx_n_s_cuda_depth_mapping;
  PyObject *__pyx_n_s_cuda_depth_pbo;
  PyObject *__pyx_n_s_cuda_depth_ptr;
  PyObject *__pyx_n_s_cuda_rgb_buf_size;
  PyObject *__pyx_n_s_cuda_rgb_buffer_pointer;
  PyObject *__pyx_n_s_cuda_rgb_mapping;
  PyObject *__pyx_n_s_cuda_rgb_pbo;
  PyObject *__pyx_n_s_cuda_rgb_ptr;
  PyObject *__pyx_n_s_current_batch_offset;
  PyObject *__pyx_n_s_d;
  PyObject *__pyx_n_u_d;
  PyObject *__pyx_n_u_darwin;
  PyObject *__pyx_n_s_data;
  PyObject *__pyx_n_s_deepcopy;
  PyObject *__pyx_n_s_def;
  PyObject *__pyx_n_s_del;
  PyObject *__pyx_n_s_delete;
  PyObject *__pyx_n_s_depth;
  PyObject *__pyx_n_s_depth_2;
  PyObject *__pyx_n_s_depth_arr;
  PyObject *__pyx_n_s_depth_img;
  PyObject *__pyx_n_s_depth_view;
  PyObject *__pyx_n_s_derivative_error;
  PyObject *__pyx_n_s_derivative_gain_smoothing;
  PyObject *__pyx_n_s_derivative_time_const;
  PyObject *__pyx_n_s_description;
  PyObject *__pyx_n_s_dest;
  PyObject *__pyx_n_s_detach;
  PyObject *__pyx_n_s_device;
  PyObject *__pyx_n_s_device_id;
  PyObject *__pyx_n_s_device_id_2;
  PyObject *__pyx_n_s_device_ptr_and_size;
  PyObject *__pyx_n_s_diag;
  PyObject *__pyx_n_s_dict;
  PyObject *__pyx_n_s_dim;
  PyObject *__pyx_n_s_directory;
  PyObject *__pyx_kp_u_disable;
  PyObject *__pyx_n_s_discover_mujoco;
  PyObject *__pyx_n_s_distance;
  PyObject *__pyx_n_s_doc;
  PyObject *__pyx_kp_u_doesn_t_match_old_pointer;
  PyObject *__pyx_n_s_dom;
  PyObject *__pyx_n_s_dot;
  PyObject *__pyx_n_s_draw_pixels;
  PyObject *__pyx_n_s_driver;
  PyObject *__pyx_n_s_drv;
  PyObject *__pyx_n_s_dst;
  PyObject *__pyx_n_s_dt;
  PyObject *__pyx_n_s_dt_seconds;
  PyObject *__pyx_n_s_dtype;
  PyObject *__pyx_n_s_dtype_is_object;
  PyObject *__pyx_n_s_eigval;
  PyObject *__pyx_n_s_eigvec;
  PyObject *__pyx_n_s_element;
  PyObject *__pyx_n_s_empty;
  PyObject *__pyx_kp_u_enable;
  PyObject *__pyx_n_s_encode;
  PyObject *__pyx_n_s_end_i;
  PyObject *__pyx_n_s_enter;
  PyObject *__pyx_n_s_enumerate;
  PyObject *__pyx_n_s_environ;
  PyObject *__pyx_n_s_eq;
  PyObject *__pyx_n_s_err_callback;
  PyObject *__pyx_n_s_error;
  PyObject *__pyx_n_s_error_code;
  PyObject *__pyx_n_s_error_deadband;
  PyObject *__pyx_n_s_error_sz;
  PyObject *__pyx_n_s_errors;
  PyObject *__pyx_n_s_errstr;
  PyObject *__pyx_n_s_exclude_body;
  PyObject *__pyx_kp_u_exists_Available_actuator_names;
  PyObject *__pyx_kp_u_exists_Available_body_names;
  PyObject *__pyx_kp_u_exists_Available_camera_names;
  PyObject *__pyx_kp_u_exists_Available_geom_names;
  PyObject *__pyx_kp_u_exists_Available_joint_names;
  PyObject *__pyx_kp_u_exists_Available_light_names;
  PyObject *__pyx_kp_u_exists_Available_mesh_names;
  PyObject *__pyx_kp_u_exists_Available_sensor_names;
  PyObject *__pyx_kp_u_exists_Available_site_names;
  PyObject *__pyx_kp_u_exists_Available_tendon_names;
  PyObject *__pyx_kp_u_exists_Available_userdata_names;
  PyObject *__pyx_n_s_exit;
  PyObject *__pyx_n_s_extent;
  PyObject *__pyx_n_s_eye;
  PyObject *__pyx_n_s_f;
  PyObject *__pyx_n_s_feedback;
  PyObject *__pyx_n_s_fig;
  PyObject *__pyx_n_s_file;
  PyObject *__pyx_n_s_filename;
  PyObject *__pyx_n_s_filesize;
  PyObject *__pyx_n_s_fill_value;
  PyObject *__pyx_n_s_fixedcamid;
  PyObject *__pyx_n_s_flags;
  PyObject *__pyx_n_s_flat_udd_state;
  PyObject *__pyx_n_s_flatten;
  PyObject *__pyx_n_s_flatten_dict;
  PyObject *__pyx_n_s_flg_acc;
  PyObject *__pyx_n_s_flg_color;
  PyObject *__pyx_n_s_flg_coneHessian;
  PyObject *__pyx_n_s_flg_depth;
  PyObject *__pyx_n_s_flg_force;
  PyObject *__pyx_n_s_flg_html;
  PyObject *__pyx_n_s_flg_local;
  PyObject *__pyx_n_s_flg_pad;
  PyObject *__pyx_n_s_flg_paused;
  PyObject *__pyx_n_s_flg_plus;
  PyObject *__pyx_n_s_flg_static;
  PyObject *__pyx_n_s_float32;
  PyObject *__pyx_n_s_float64;
  PyObject *__pyx_n_s_flush;
  PyObject *__pyx_n_s_font;
  PyObject *__pyx_n_s_fontscale;
  PyObject *__pyx_n_s_force;
  PyObject *__pyx_n_s_format;
  PyObject *__pyx_n_s_fortran;
  PyObject *__pyx_n_u_fortran;
  PyObject *__pyx_n_s_forward;
  PyObject *__pyx_n_s_fp;
  PyObject *__pyx_n_s_framebuffer;
  PyObject *__pyx_n_s_from_device;
  PyObject *__pyx_n_s_from_flattened;
  PyObject *__pyx_n_s_full;
  PyObject *__pyx_n_s_g;
  PyObject *__pyx_kp_u_gc;
  PyObject *__pyx_n_s_genexpr;
  PyObject *__pyx_n_s_geom;
  PyObject *__pyx_n_s_geom_id2name;
  PyObject *__pyx_n_s_geom_jacp;
  PyObject *__pyx_n_s_geom_jacr;
  PyObject *__pyx_n_s_geom_name2id;
  PyObject *__pyx_n_s_geom_xpos;
  PyObject *__pyx_n_s_geomgroup;
  PyObject *__pyx_n_s_geomgroup_view;
  PyObject *__pyx_n_s_geomid;
  PyObject *__pyx_n_s_geomtype;
  PyObject *__pyx_n_s_getElementsByTagName;
  PyObject *__pyx_n_s_get_body_jacp;
  PyObject *__pyx_n_s_get_body_jacr;
  PyObject *__pyx_n_s_get_body_ximat;
  PyObject *__pyx_kp_u_get_body_ximat_should_be_used_in;
  PyObject *__pyx_n_s_get_body_xipos;
  PyObject *__pyx_kp_u_get_body_xipos_should_be_used_in;
  PyObject *__pyx_n_s_get_body_xmat;
  PyObject *__pyx_kp_u_get_body_xmat_should_be_used_ins;
  PyObject *__pyx_n_s_get_body_xpos;
  PyObject *__pyx_kp_u_get_body_xpos_should_be_used_ins;
  PyObject *__pyx_n_s_get_body_xquat;
  PyObject *__pyx_kp_u_get_body_xquat_should_be_used_in;
  PyObject *__pyx_n_s_get_body_xvelp;
  PyObject *__pyx_n_s_get_body_xvelr;
  PyObject *__pyx_n_s_get_buffer_size;
  PyObject *__pyx_n_s_get_cam_xmat;
  PyObject *__pyx_n_s_get_cam_xpos;
  PyObject *__pyx_n_s_get_camera_xmat;
  PyObject *__pyx_kp_u_get_camera_xmat_should_be_used_i;
  PyObject *__pyx_n_s_get_camera_xpos;
  PyObject *__pyx_kp_u_get_camera_xpos_should_be_used_i;
  PyObject *__pyx_n_s_get_error_callback;
  PyObject *__pyx_n_s_get_framebuffer_size;
  PyObject *__pyx_n_s_get_geom_jacp;
  PyObject *__pyx_n_s_get_geom_jacr;
  PyObject *__pyx_n_s_get_geom_xmat;
  PyObject *__pyx_n_s_get_geom_xpos;
  PyObject *__pyx_n_s_get_geom_xvelp;
  PyObject *__pyx_n_s_get_geom_xvelr;
  PyObject *__pyx_n_s_get_joint_qpos;
  PyObject *__pyx_n_s_get_joint_qpos_addr;
  PyObject *__pyx_n_s_get_joint_qvel;
  PyObject *__pyx_n_s_get_joint_qvel_addr;
  PyObject *__pyx_n_s_get_joint_xanchor;
  PyObject *__pyx_kp_u_get_joint_xanchor_should_be_used;
  PyObject *__pyx_n_s_get_joint_xaxis;
  PyObject *__pyx_kp_u_get_joint_xaxis_should_be_used_i;
  PyObject *__pyx_n_s_get_light_xdir;
  PyObject *__pyx_n_s_get_light_xpos;
  PyObject *__pyx_n_s_get_mjb;
  PyObject *__pyx_n_s_get_mocap_pos;
  PyObject *__pyx_n_s_get_mocap_quat;
  PyObject *__pyx_n_s_get_primary_monitor;
  PyObject *__pyx_n_s_get_sensor;
  PyObject *__pyx_kp_u_get_sensor_should_be_used_instea;
  PyObject *__pyx_n_s_get_sensordata;
  PyObject *__pyx_n_s_get_site_jacp;
  PyObject *__pyx_n_s_get_site_jacr;
  PyObject *__pyx_n_s_get_site_xmat;
  PyObject *__pyx_n_s_get_site_xpos;
  PyObject *__pyx_n_s_get_site_xvelp;
  PyObject *__pyx_n_s_get_site_xvelr;
  PyObject *__pyx_n_s_get_state;
  PyObject *__pyx_n_s_get_userdata;
  PyObject *__pyx_n_s_get_video_mode;
  PyObject *__pyx_n_s_get_warning_callback;
  PyObject *__pyx_n_s_get_xanchor;
  PyObject *__pyx_n_s_get_xaxis;
  PyObject *__pyx_n_s_get_ximat;
  PyObject *__pyx_n_s_get_xipos;
  PyObject *__pyx_n_s_get_xmat;
  PyObject *__pyx_n_s_get_xml;
  PyObject *__pyx_n_s_get_xpos;
  PyObject *__pyx_n_s_get_xquat;
  PyObject *__pyx_n_s_getenv;
  PyObject *__pyx_n_s_getstate;
  PyObject *__pyx_n_s_glfw;
  PyObject *__pyx_n_u_glfw;
  PyObject *__pyx_n_s_glfw_error_callback;
  PyObject *__pyx_kp_u_got;
  PyObject *__pyx_kp_u_got_differing_extents_in_dimensi;
  PyObject *__pyx_n_s_gridpos;
  PyObject *__pyx_n_s_group_filter;
  PyObject *__pyx_n_s_headpos;
  PyObject *__pyx_n_s_height;
  PyObject *__pyx_n_s_height_2;
  PyObject *__pyx_n_s_hfieldid;
  PyObject *__pyx_n_s_i;
  PyObject *__pyx_n_s_id;
  PyObject *__pyx_n_s_idx;
  PyObject *__pyx_n_s_idx_act;
  PyObject *__pyx_n_s_idx_qpos;
  PyObject *__pyx_n_s_idx_qvel;
  PyObject *__pyx_n_s_idx_time;
  PyObject *__pyx_n_s_idx_udd;
  PyObject *__pyx_n_s_image;
  PyObject *__pyx_n_s_image_view;
  PyObject *__pyx_n_s_import;
  PyObject *__pyx_n_s_include_static_geoms;
  PyObject *__pyx_n_s_indent;
  PyObject *__pyx_n_s_index;
  PyObject *__pyx_n_u_inertial;
  PyObject *__pyx_n_s_info;
  PyObject *__pyx_n_s_init;
  PyObject *__pyx_n_s_init_2;
  PyObject *__pyx_n_s_init_camera;
  PyObject *__pyx_n_s_init_cuda;
  PyObject *__pyx_n_s_init_glfw;
  PyObject *__pyx_n_s_init_height;
  PyObject *__pyx_n_s_init_subclass;
  PyObject *__pyx_n_s_init_width;
  PyObject *__pyx_n_s_initializing;
  PyObject *__pyx_kp_u_insufficient_userdata;
  PyObject *__pyx_n_s_int32;
  PyObject *__pyx_n_s_int64;
  PyObject *__pyx_n_s_integral_error;
  PyObject *__pyx_n_s_integral_max_clamp;
  PyObject *__pyx_n_s_integral_time_const;
  PyObject *__pyx_kp_u_invalid;
  PyObject *__pyx_n_s_is_coroutine;
  PyObject *__pyx_kp_u_isenabled;
  PyObject *__pyx_n_s_item;
  PyObject *__pyx_n_s_items;
  PyObject *__pyx_n_s_itemsize;
  PyObject *__pyx_kp_s_itemsize_0_for_cython_array;
  PyObject *__pyx_n_s_jacAxis;
  PyObject *__pyx_n_s_jacPoint;
  PyObject *__pyx_n_s_jacp;
  PyObject *__pyx_n_s_jacp_view;
  PyObject *__pyx_n_s_jacr;
  PyObject *__pyx_n_s_jacr_view;
  PyObject *__pyx_n_s_jar;
  PyObject *__pyx_n_s_jnt_dofadr;
  PyObject *__pyx_n_s_jnt_qposadr;
  PyObject *__pyx_n_s_jnt_type;
  PyObject *__pyx_n_s_join;
  PyObject *__pyx_n_s_joint_addr;
  PyObject *__pyx_n_s_joint_id;
  PyObject *__pyx_n_s_joint_id2name;
  PyObject *__pyx_n_s_joint_name2id;
  PyObject *__pyx_n_s_joint_type;
  PyObject *__pyx_n_s_k;
  PyObject *__pyx_n_s_keep_inertials;
  PyObject *__pyx_n_s_key;
  PyObject *__pyx_n_u_key;
  PyObject *__pyx_n_s_key_el;
  PyObject *__pyx_n_u_keyframe;
  PyObject *__pyx_n_s_keyframe_el;
  PyObject *__pyx_n_s_keys;
  PyObject *__pyx_n_u_label;
  PyObject *__pyx_n_s_left;
  PyObject *__pyx_n_s_len;
  PyObject *__pyx_n_s_lengthrange;
  PyObject *__pyx_n_s_light_id2name;
  PyObject *__pyx_n_s_light_name2id;
  PyObject *__pyx_n_s_list;
  PyObject *__pyx_n_s_load_model_from_mjb;
  PyObject *__pyx_n_s_load_model_from_path;
  PyObject *__pyx_n_s_load_model_from_xml;
  PyObject *__pyx_n_s_logging;
  PyObject *__pyx_n_s_lookat;
  PyObject *__pyx_n_s_lower;
  PyObject *__pyx_n_s_m;
  PyObject *__pyx_n_s_main;
  PyObject *__pyx_n_s_make_context;
  PyObject *__pyx_n_s_make_context_current;
  PyObject *__pyx_n_s_map;
  PyObject *__pyx_n_s_marker_params;
  PyObject *__pyx_n_s_mat;
  PyObject *__pyx_n_s_mat1;
  PyObject *__pyx_n_s_mat2;
  PyObject *__pyx_n_s_maxgeom;
  PyObject *__pyx_n_s_median;
  PyObject *__pyx_n_s_memview;
  PyObject *__pyx_n_s_mesh_id2name;
  PyObject *__pyx_n_s_mesh_name2id;
  PyObject *__pyx_n_s_meshid;
  PyObject *__pyx_n_s_metaclass;
  PyObject *__pyx_n_s_mindiag;
  PyObject *__pyx_n_s_minidom;
  PyObject *__pyx_n_s_mj_Euler;
  PyObject *__pyx_n_s_mj_RungeKutta;
  PyObject *__pyx_n_s_mj_activate;
  PyObject *__pyx_n_s_mj_addContact;
  PyObject *__pyx_n_s_mj_addFileVFS;
  PyObject *__pyx_n_s_mj_addM;
  PyObject *__pyx_n_s_mj_applyFT;
  PyObject *__pyx_n_s_mj_camlight;
  PyObject *__pyx_n_s_mj_checkAcc;
  PyObject *__pyx_n_s_mj_checkPos;
  PyObject *__pyx_n_s_mj_checkVel;
  PyObject *__pyx_n_s_mj_collision;
  PyObject *__pyx_n_s_mj_comPos;
  PyObject *__pyx_n_s_mj_comVel;
  PyObject *__pyx_n_s_mj_compareFwdInv;
  PyObject *__pyx_n_s_mj_constraintUpdate;
  PyObject *__pyx_n_s_mj_contactForce;
  PyObject *__pyx_n_s_mj_copyModel;
  PyObject *__pyx_n_s_mj_crb;
  PyObject *__pyx_n_s_mj_deactivate;
  PyObject *__pyx_n_s_mj_defaultLROpt;
  PyObject *__pyx_n_s_mj_defaultOption;
  PyObject *__pyx_n_s_mj_defaultSolRefImp;
  PyObject *__pyx_n_s_mj_defaultVFS;
  PyObject *__pyx_n_s_mj_defaultVisual;
  PyObject *__pyx_n_s_mj_deleteData;
  PyObject *__pyx_n_s_mj_deleteFileVFS;
  PyObject *__pyx_n_s_mj_deleteModel;
  PyObject *__pyx_n_s_mj_deleteVFS;
  PyObject *__pyx_n_s_mj_differentiatePos;
  PyObject *__pyx_n_s_mj_energyPos;
  PyObject *__pyx_n_s_mj_energyVel;
  PyObject *__pyx_n_s_mj_factorM;
  PyObject *__pyx_n_s_mj_findFileVFS;
  PyObject *__pyx_n_s_mj_forward;
  PyObject *__pyx_n_s_mj_forwardSkip;
  PyObject *__pyx_n_s_mj_freeLastXML;
  PyObject *__pyx_n_s_mj_fullM;
  PyObject *__pyx_n_s_mj_fwdAcceleration;
  PyObject *__pyx_n_s_mj_fwdActuation;
  PyObject *__pyx_n_s_mj_fwdConstraint;
  PyObject *__pyx_n_s_mj_fwdPosition;
  PyObject *__pyx_n_s_mj_fwdVelocity;
  PyObject *__pyx_n_s_mj_getTotalmass;
  PyObject *__pyx_n_s_mj_integratePos;
  PyObject *__pyx_n_s_mj_invConstraint;
  PyObject *__pyx_n_s_mj_invPosition;
  PyObject *__pyx_n_s_mj_invVelocity;
  PyObject *__pyx_n_s_mj_inverse;
  PyObject *__pyx_n_s_mj_inverseSkip;
  PyObject *__pyx_n_s_mj_isDual;
  PyObject *__pyx_n_s_mj_isPyramidal;
  PyObject *__pyx_n_s_mj_isSparse;
  PyObject *__pyx_n_s_mj_jac;
  PyObject *__pyx_n_s_mj_jacBody;
  PyObject *__pyx_n_s_mj_jacBodyCom;
  PyObject *__pyx_n_s_mj_jacGeom;
  PyObject *__pyx_n_s_mj_jacPointAxis;
  PyObject *__pyx_n_s_mj_jacSite;
  PyObject *__pyx_n_s_mj_kinematics;
  PyObject *__pyx_n_s_mj_loadModel;
  PyObject *__pyx_n_s_mj_loadXML;
  PyObject *__pyx_kp_u_mj_loadXML_error;
  PyObject *__pyx_n_s_mj_local2Global;
  PyObject *__pyx_n_s_mj_makeConstraint;
  PyObject *__pyx_kp_u_mj_makeData_failed;
  PyObject *__pyx_n_s_mj_makeEmptyFileVFS;
  PyObject *__pyx_n_s_mj_mulJacTVec;
  PyObject *__pyx_n_s_mj_mulJacVec;
  PyObject *__pyx_n_s_mj_mulM;
  PyObject *__pyx_n_s_mj_mulM2;
  PyObject *__pyx_n_s_mj_name2id;
  PyObject *__pyx_n_s_mj_normalizeQuat;
  PyObject *__pyx_n_s_mj_objectAcceleration;
  PyObject *__pyx_n_s_mj_objectVelocity;
  PyObject *__pyx_n_s_mj_passive;
  PyObject *__pyx_n_s_mj_printData;
  PyObject *__pyx_n_s_mj_printModel;
  PyObject *__pyx_n_s_mj_printSchema;
  PyObject *__pyx_n_s_mj_projectConstraint;
  PyObject *__pyx_n_s_mj_ray;
  PyObject *__pyx_n_s_mj_rayHfield;
  PyObject *__pyx_n_s_mj_rayMesh;
  PyObject *__pyx_n_s_mj_referenceConstraint;
  PyObject *__pyx_n_s_mj_resetCallbacks;
  PyObject *__pyx_n_s_mj_resetData;
  PyObject *__pyx_n_s_mj_resetDataKeyframe;
  PyObject *__pyx_n_s_mj_rne;
  PyObject *__pyx_n_s_mj_rnePostConstraint;
  PyObject *__pyx_n_s_mj_saveLastXML;
  PyObject *__pyx_n_s_mj_sensorAcc;
  PyObject *__pyx_n_s_mj_sensorPos;
  PyObject *__pyx_n_s_mj_sensorVel;
  PyObject *__pyx_n_s_mj_setConst;
  PyObject *__pyx_n_s_mj_setLengthRange;
  PyObject *__pyx_n_s_mj_setTotalmass;
  PyObject *__pyx_n_s_mj_sizeModel;
  PyObject *__pyx_n_s_mj_solveM;
  PyObject *__pyx_n_s_mj_solveM2;
  PyObject *__pyx_n_s_mj_step;
  PyObject *__pyx_n_s_mj_step1;
  PyObject *__pyx_n_s_mj_step2;
  PyObject *__pyx_n_s_mj_subtreeVel;
  PyObject *__pyx_n_s_mj_tendon;
  PyObject *__pyx_n_s_mj_transmission;
  PyObject *__pyx_n_s_mj_version;
  PyObject *__pyx_n_s_mj_warning;
  PyObject *__pyx_n_u_mjb;
  PyObject *__pyx_kp_u_mjb_2;
  PyObject *__pyx_n_s_mjb_bytes;
  PyObject *__pyx_n_s_mjr_addAux;
  PyObject *__pyx_n_s_mjr_blitAux;
  PyObject *__pyx_n_s_mjr_blitBuffer;
  PyObject *__pyx_n_s_mjr_changeFont;
  PyObject *__pyx_n_s_mjr_defaultContext;
  PyObject *__pyx_n_s_mjr_figure;
  PyObject *__pyx_n_s_mjr_findRect;
  PyObject *__pyx_n_s_mjr_finish;
  PyObject *__pyx_n_s_mjr_freeContext;
  PyObject *__pyx_n_s_mjr_getError;
  PyObject *__pyx_n_s_mjr_makeContext;
  PyObject *__pyx_n_s_mjr_overlay;
  PyObject *__pyx_n_s_mjr_render;
  PyObject *__pyx_n_s_mjr_restoreBuffer;
  PyObject *__pyx_n_s_mjr_setAux;
  PyObject *__pyx_n_s_mjr_setBuffer;
  PyObject *__pyx_n_s_mjr_uploadHField;
  PyObject *__pyx_n_s_mjr_uploadMesh;
  PyObject *__pyx_n_s_mjr_uploadTexture;
  PyObject *__pyx_n_s_mju_Halton;
  PyObject *__pyx_n_s_mju_L1;
  PyObject *__pyx_n_s_mju_add;
  PyObject *__pyx_n_s_mju_add3;
  PyObject *__pyx_n_s_mju_addScl;
  PyObject *__pyx_n_s_mju_addScl3;
  PyObject *__pyx_n_s_mju_addTo;
  PyObject *__pyx_n_s_mju_addTo3;
  PyObject *__pyx_n_s_mju_addToScl;
  PyObject *__pyx_n_s_mju_addToScl3;
  PyObject *__pyx_n_s_mju_axisAngle2Quat;
  PyObject *__pyx_n_s_mju_cholFactor;
  PyObject *__pyx_n_s_mju_cholSolve;
  PyObject *__pyx_n_s_mju_cholUpdate;
  PyObject *__pyx_n_s_mju_clearHandlers;
  PyObject *__pyx_n_s_mju_copy;
  PyObject *__pyx_n_s_mju_copy3;
  PyObject *__pyx_n_s_mju_copy4;
  PyObject *__pyx_n_s_mju_cross;
  PyObject *__pyx_n_s_mju_decodePyramid;
  PyObject *__pyx_n_s_mju_derivQuat;
  PyObject *__pyx_n_s_mju_dist3;
  PyObject *__pyx_n_s_mju_dot;
  PyObject *__pyx_n_s_mju_dot3;
  PyObject *__pyx_n_s_mju_eig3;
  PyObject *__pyx_n_s_mju_encodePyramid;
  PyObject *__pyx_n_s_mju_error;
  PyObject *__pyx_n_s_mju_error_i;
  PyObject *__pyx_n_s_mju_error_s;
  PyObject *__pyx_n_s_mju_insertionSort;
  PyObject *__pyx_n_s_mju_insertionSortInt;
  PyObject *__pyx_n_s_mju_isBad;
  PyObject *__pyx_n_s_mju_isZero;
  PyObject *__pyx_n_s_mju_mat2Quat;
  PyObject *__pyx_n_s_mju_max;
  PyObject *__pyx_n_s_mju_min;
  PyObject *__pyx_n_s_mju_mulMatMat;
  PyObject *__pyx_n_s_mju_mulMatMatT;
  PyObject *__pyx_n_s_mju_mulMatTMat;
  PyObject *__pyx_n_s_mju_mulMatTVec;
  PyObject *__pyx_n_s_mju_mulMatVec;
  PyObject *__pyx_n_s_mju_mulPose;
  PyObject *__pyx_n_s_mju_mulQuat;
  PyObject *__pyx_n_s_mju_mulQuatAxis;
  PyObject *__pyx_n_s_mju_muscleBias;
  PyObject *__pyx_n_s_mju_muscleDynamics;
  PyObject *__pyx_n_s_mju_muscleGain;
  PyObject *__pyx_n_s_mju_negPose;
  PyObject *__pyx_n_s_mju_negQuat;
  PyObject *__pyx_n_s_mju_norm;
  PyObject *__pyx_n_s_mju_norm3;
  PyObject *__pyx_n_s_mju_normalize;
  PyObject *__pyx_n_s_mju_normalize3;
  PyObject *__pyx_n_s_mju_normalize4;
  PyObject *__pyx_n_s_mju_printMat;
  PyObject *__pyx_n_s_mju_printMatSparse;
  PyObject *__pyx_n_s_mju_quat2Mat;
  PyObject *__pyx_n_s_mju_quat2Vel;
  PyObject *__pyx_n_s_mju_quatIntegrate;
  PyObject *__pyx_n_s_mju_quatZ2Vec;
  PyObject *__pyx_n_s_mju_rayGeom;
  PyObject *__pyx_n_s_mju_rotVecMat;
  PyObject *__pyx_n_s_mju_rotVecMatT;
  PyObject *__pyx_n_s_mju_rotVecQuat;
  PyObject *__pyx_n_s_mju_round;
  PyObject *__pyx_n_s_mju_scl;
  PyObject *__pyx_n_s_mju_scl3;
  PyObject *__pyx_n_s_mju_sigmoid;
  PyObject *__pyx_n_s_mju_sign;
  PyObject *__pyx_n_s_mju_springDamper;
  PyObject *__pyx_n_s_mju_sqrMatTD;
  PyObject *__pyx_n_s_mju_standardNormal;
  PyObject *__pyx_n_s_mju_str2Type;
  PyObject *__pyx_n_s_mju_sub;
  PyObject *__pyx_n_s_mju_sub3;
  PyObject *__pyx_n_s_mju_subFrom;
  PyObject *__pyx_n_s_mju_subFrom3;
  PyObject *__pyx_n_s_mju_subQuat;
  PyObject *__pyx_n_s_mju_sum;
  PyObject *__pyx_n_s_mju_transformSpatial;
  PyObject *__pyx_n_s_mju_transpose;
  PyObject *__pyx_n_s_mju_trnVecPose;
  PyObject *__pyx_n_s_mju_unit4;
  PyObject *__pyx_n_s_mju_warning;
  PyObject *__pyx_n_s_mju_warning_i;
  PyObject *__pyx_n_s_mju_warning_s;
  PyObject *__pyx_n_s_mju_writeLog;
  PyObject *__pyx_n_s_mju_zero;
  PyObject *__pyx_n_s_mju_zero3;
  PyObject *__pyx_n_s_mju_zero4;
  PyObject *__pyx_n_s_mjui_add;
  PyObject *__pyx_n_s_mjui_addToSection;
  PyObject *__pyx_n_s_mjui_event;
  PyObject *__pyx_n_s_mjui_render;
  PyObject *__pyx_n_s_mjui_resize;
  PyObject *__pyx_n_s_mjui_update;
  PyObject *__pyx_kp_u_mjvGeom_doesn_t_have_field_s;
  PyObject *__pyx_kp_u_mjvGeom_has_attr_but_type_is_inv;
  PyObject *__pyx_n_s_mjv_addGeoms;
  PyObject *__pyx_n_s_mjv_alignToCamera;
  PyObject *__pyx_n_s_mjv_applyPerturbForce;
  PyObject *__pyx_n_s_mjv_applyPerturbPose;
  PyObject *__pyx_n_s_mjv_cameraInModel;
  PyObject *__pyx_n_s_mjv_cameraInRoom;
  PyObject *__pyx_n_s_mjv_defaultCamera;
  PyObject *__pyx_n_s_mjv_defaultFigure;
  PyObject *__pyx_n_s_mjv_defaultOption;
  PyObject *__pyx_n_s_mjv_defaultPerturb;
  PyObject *__pyx_n_s_mjv_defaultScene;
  PyObject *__pyx_n_s_mjv_freeScene;
  PyObject *__pyx_n_s_mjv_frustumHeight;
  PyObject *__pyx_n_s_mjv_initPerturb;
  PyObject *__pyx_n_s_mjv_makeConnector;
  PyObject *__pyx_n_s_mjv_makeLights;
  PyObject *__pyx_n_s_mjv_makeScene;
  PyObject *__pyx_n_s_mjv_model2room;
  PyObject *__pyx_n_s_mjv_moveCamera;
  PyObject *__pyx_n_s_mjv_moveModel;
  PyObject *__pyx_n_s_mjv_movePerturb;
  PyObject *__pyx_n_s_mjv_room2model;
  PyObject *__pyx_n_s_mjv_select;
  PyObject *__pyx_n_s_mjv_updateCamera;
  PyObject *__pyx_n_s_mjv_updateScene;
  PyObject *__pyx_n_s_mjv_updateSkin;
  PyObject *__pyx_n_s_mocap_id;
  PyObject *__pyx_n_s_mocap_pos;
  PyObject *__pyx_n_s_mocap_quat;
  PyObject *__pyx_n_s_mode;
  PyObject *__pyx_n_s_model;
  PyObject *__pyx_kp_u_model_mjb;
  PyObject *__pyx_kp_u_model_xml;
  PyObject *__pyx_n_s_modelpos;
  PyObject *__pyx_n_s_modelquat;
  PyObject *__pyx_n_s_module;
  PyObject *__pyx_n_s_move_camera;
  PyObject *__pyx_n_s_mro_entries;
  PyObject *__pyx_n_s_msg;
  PyObject *__pyx_n_s_mu;
  PyObject *__pyx_n_u_mujoco;
  PyObject *__pyx_n_s_mujoco_node;
  PyObject *__pyx_n_s_mujoco_path;
  PyObject *__pyx_n_u_mujoco_py;
  PyObject *__pyx_n_s_mujoco_py_builder;
  PyObject *__pyx_n_s_mujoco_py_cymj;
  PyObject *__pyx_kp_s_mujoco_py_cymj_pyx;
  PyObject *__pyx_n_s_mujoco_py_generated;
  PyObject *__pyx_kp_s_mujoco_py_generated_wrappers_pxi;
  PyObject *__pyx_kp_s_mujoco_py_mjbatchrenderer_pyx;
  PyObject *__pyx_kp_s_mujoco_py_mjpid_pyx;
  PyObject *__pyx_kp_s_mujoco_py_mjrendercontext_pyx;
  PyObject *__pyx_kp_s_mujoco_py_mjsim_pyx;
  PyObject *__pyx_kp_s_mujoco_py_mjsimstate_pyx;
  PyObject *__pyx_n_s_mujoco_py_mjviewer;
  PyObject *__pyx_kp_s_mujoco_py_opengl_context_pyx;
  PyObject *__pyx_n_s_mujoco_py_utils;
  PyObject *__pyx_n_s_n;
  PyObject *__pyx_n_s_nM;
  PyObject *__pyx_n_s_na;
  PyObject *__pyx_n_s_name;
  PyObject *__pyx_n_s_name_2;
  PyObject *__pyx_n_s_namedtuple;
  PyObject *__pyx_kp_u_names_must_all_be_strings;
  PyObject *__pyx_n_s_nbody;
  PyObject *__pyx_n_s_nc;
  PyObject *__pyx_n_s_ncam;
  PyObject *__pyx_n_s_nconmax;
  PyObject *__pyx_n_s_ndim;
  PyObject *__pyx_n_s_ne;
  PyObject *__pyx_n_s_ne_2;
  PyObject *__pyx_n_s_nefc;
  PyObject *__pyx_n_s_new;
  PyObject *__pyx_n_s_new_height;
  PyObject *__pyx_n_s_new_model;
  PyObject *__pyx_n_s_new_sim;
  PyObject *__pyx_n_s_new_width;
  PyObject *__pyx_n_s_newmass;
  PyObject *__pyx_n_s_newpos;
  PyObject *__pyx_n_s_ngeom;
  PyObject *__pyx_n_s_njmax;
  PyObject *__pyx_n_s_njnt;
  PyObject *__pyx_n_s_nlight;
  PyObject *__pyx_n_s_nmocap;
  PyObject *__pyx_kp_s_no_default___reduce___due_to_non;
  PyObject *__pyx_n_s_np;
  PyObject *__pyx_n_s_nq;
  PyObject *__pyx_n_s_nr;
  PyObject *__pyx_n_s_nrect;
  PyObject *__pyx_n_s_nsensordata;
  PyObject *__pyx_n_s_nsite;
  PyObject *__pyx_n_s_nsubsteps;
  PyObject *__pyx_n_s_ntendon;
  PyObject *__pyx_n_s_nu;
  PyObject *__pyx_n_s_num2;
  PyObject *__pyx_n_s_numbers;
  PyObject *__pyx_n_s_numpy;
  PyObject *__pyx_kp_u_numpy__core_multiarray_failed_to;
  PyObject *__pyx_kp_u_numpy__core_umath_failed_to_impo;
  PyObject *__pyx_n_s_nuser_actuator;
  PyObject *__pyx_kp_u_nuser_actuator_is_not_set_large;
  PyObject *__pyx_n_s_nuserdata;
  PyObject *__pyx_kp_u_nuserdata_is_not_set_large_enoug;
  PyObject *__pyx_n_s_nv;
  PyObject *__pyx_n_s_nwrap;
  PyObject *__pyx_n_s_obj;
  PyObject *__pyx_n_s_object;
  PyObject *__pyx_n_s_objid;
  PyObject *__pyx_n_s_objtype;
  PyObject *__pyx_n_s_offscreen;
  PyObject *__pyx_n_u_offscreen;
  PyObject *__pyx_n_s_old_dyld_library_path;
  PyObject *__pyx_n_s_oldpos;
  PyObject *__pyx_n_s_ones;
  PyObject *__pyx_n_s_open;
  PyObject *__pyx_n_s_opengl_backend;
  PyObject *__pyx_n_s_opengl_context;
  PyObject *__pyx_n_s_opt;
  PyObject *__pyx_n_s_os;
  PyObject *__pyx_n_s_other;
  PyObject *__pyx_n_s_output;
  PyObject *__pyx_n_s_overlay;
  PyObject *__pyx_n_s_overlay2;
  PyObject *__pyx_n_s_pack;
  PyObject *__pyx_n_s_parentNode;
  PyObject *__pyx_n_s_parseString;
  PyObject *__pyx_n_s_path;
  PyObject *__pyx_n_s_pbo_depth;
  PyObject *__pyx_n_s_pbo_rgb;
  PyObject *__pyx_n_s_pert;
  PyObject *__pyx_n_s_pickle;
  PyObject *__pyx_n_s_platform;
  PyObject *__pyx_n_s_pnt;
  PyObject *__pyx_n_s_pnt_view;
  PyObject *__pyx_n_s_point;
  PyObject *__pyx_n_s_pop;
  PyObject *__pyx_n_s_pos;
  PyObject *__pyx_n_s_pos0;
  PyObject *__pyx_n_s_pos1;
  PyObject *__pyx_n_s_pos2;
  PyObject *__pyx_n_s_posres;
  PyObject *__pyx_n_s_prepare;
  PyObject *__pyx_n_s_prepare_render_context;
  PyObject *__pyx_n_s_previous_errors;
  PyObject *__pyx_n_s_print;
  PyObject *__pyx_n_s_prm;
  PyObject *__pyx_n_s_property;
  PyObject *__pyx_n_s_ptr;
  PyObject *__pyx_n_s_push;
  PyObject *__pyx_n_s_pycuda;
  PyObject *__pyx_n_s_pycuda_driver;
  PyObject *__pyx_n_s_pycuda_gl;
  PyObject *__pyx_n_s_pyramid;
  PyObject *__pyx_n_s_pyx_PickleError;
  PyObject *__pyx_n_s_pyx_checksum;
  PyObject *__pyx_n_s_pyx_result;
  PyObject *__pyx_n_s_pyx_state;
  PyObject *__pyx_n_s_pyx_type;
  PyObject *__pyx_n_s_pyx_unpickle_Enum;
  PyObject *__pyx_n_s_pyx_vtable;
  PyObject *__pyx_n_s_qa;
  PyObject *__pyx_n_s_qb;
  PyObject *__pyx_n_s_qfrc_target;
  PyObject *__pyx_n_s_qpos;
  PyObject *__pyx_n_u_qpos;
  PyObject *__pyx_n_s_qpos1;
  PyObject *__pyx_n_s_qpos2;
  PyObject *__pyx_n_s_qualname;
  PyObject *__pyx_n_s_quat;
  PyObject *__pyx_n_s_quat1;
  PyObject *__pyx_n_s_quat2;
  PyObject *__pyx_n_s_quatres;
  PyObject *__pyx_n_s_quiet;
  PyObject *__pyx_n_s_qvel;
  PyObject *__pyx_n_u_qvel;
  PyObject *__pyx_n_s_r1;
  PyObject *__pyx_n_s_r2;
  PyObject *__pyx_n_s_range;
  PyObject *__pyx_n_s_ravel;
  PyObject *__pyx_n_s_ray;
  PyObject *__pyx_n_s_ray_fast_group;
  PyObject *__pyx_n_s_ray_fast_nogroup;
  PyObject *__pyx_n_u_rb;
  PyObject *__pyx_n_s_read;
  PyObject *__pyx_n_s_read_cuda;
  PyObject *__pyx_n_s_read_nocuda;
  PyObject *__pyx_n_s_read_pixels;
  PyObject *__pyx_n_s_read_pixels_depth;
  PyObject *__pyx_n_s_rect;
  PyObject *__pyx_n_s_reduce;
  PyObject *__pyx_n_s_reduce_cython;
  PyObject *__pyx_n_s_reduce_ex;
  PyObject *__pyx_n_s_refresh_rate;
  PyObject *__pyx_n_s_register;
  PyObject *__pyx_n_s_reldx;
  PyObject *__pyx_n_s_reldy;
  PyObject *__pyx_n_s_relx;
  PyObject *__pyx_n_s_rely;
  PyObject *__pyx_n_s_removeChild;
  PyObject *__pyx_n_s_remove_empty_lines;
  PyObject *__pyx_n_s_render;
  PyObject *__pyx_n_s_render_callback;
  PyObject *__pyx_n_s_render_context;
  PyObject *__pyx_n_s_render_contexts;
  PyObject *__pyx_n_s_render_swap_callback;
  PyObject *__pyx_n_s_res;
  PyObject *__pyx_n_s_reset;
  PyObject *__pyx_n_s_reshape;
  PyObject *__pyx_n_s_resolution;
  PyObject *__pyx_n_s_result;
  PyObject *__pyx_n_s_result_xml;
  PyObject *__pyx_n_s_ret;
  PyObject *__pyx_n_s_ret_img;
  PyObject *__pyx_n_s_rgb_arr;
  PyObject *__pyx_n_s_rgb_img;
  PyObject *__pyx_n_s_rgb_view;
  PyObject *__pyx_n_s_roompos;
  PyObject *__pyx_n_s_roomquat;
  PyObject *__pyx_n_s_roomup;
  PyObject *__pyx_n_s_rotnew2old;
  PyObject *__pyx_n_s_rowadr;
  PyObject *__pyx_n_s_rownnz;
  PyObject *__pyx_kp_u_s_Failed_to_load_MJB;
  PyObject *__pyx_n_s_sameframe;
  PyObject *__pyx_n_s_samples;
  PyObject *__pyx_n_s_save;
  PyObject *__pyx_n_s_save_locals_str_array;
  PyObject *__pyx_n_s_scale;
  PyObject *__pyx_n_s_schema_example;
  PyObject *__pyx_n_s_schema_val;
  PyObject *__pyx_n_s_scl;
  PyObject *__pyx_n_s_scn;
  PyObject *__pyx_n_s_sect;
  PyObject *__pyx_n_s_section;
  PyObject *__pyx_n_s_seg_ids;
  PyObject *__pyx_n_s_seg_img;
  PyObject *__pyx_n_s_segmentation;
  PyObject *__pyx_n_s_self;
  PyObject *__pyx_kp_s_self_ptr_cannot_be_converted_to;
  PyObject *__pyx_n_s_selpnt;
  PyObject *__pyx_n_s_send;
  PyObject *__pyx_n_s_sensor_id2name;
  PyObject *__pyx_n_s_sensor_name2id;
  PyObject *__pyx_n_s_setAttribute;
  PyObject *__pyx_n_s_set_buffer_size;
  PyObject *__pyx_n_s_set_constants;
  PyObject *__pyx_n_s_set_error_callback;
  PyObject *__pyx_n_s_set_joint_qpos;
  PyObject *__pyx_n_s_set_joint_qvel;
  PyObject *__pyx_n_s_set_mocap_pos;
  PyObject *__pyx_n_s_set_mocap_quat;
  PyObject *__pyx_n_s_set_mujoco_buffers;
  PyObject *__pyx_n_s_set_name;
  PyObject *__pyx_n_s_set_pid_control;
  PyObject *__pyx_n_s_set_state;
  PyObject *__pyx_n_s_set_state_from_flattened;
  PyObject *__pyx_n_s_set_substep_callback;
  PyObject *__pyx_n_s_set_userdata_names;
  PyObject *__pyx_n_s_set_warning_callback;
  PyObject *__pyx_n_s_set_window_size;
  PyObject *__pyx_n_s_set_window_size_2;
  PyObject *__pyx_n_s_setpoint;
  PyObject *__pyx_n_s_setstate;
  PyObject *__pyx_n_s_setstate_cython;
  PyObject *__pyx_n_s_setup_opengl_context;
  PyObject *__pyx_n_s_shape;
  PyObject *__pyx_n_s_sim;
  PyObject *__pyx_n_s_site;
  PyObject *__pyx_n_s_site_id2name;
  PyObject *__pyx_n_s_site_jacp;
  PyObject *__pyx_n_s_site_jacr;
  PyObject *__pyx_n_s_site_name2id;
  PyObject *__pyx_n_s_size;
  PyObject *__pyx_n_s_skinid;
  PyObject *__pyx_n_s_skipsensor;
  PyObject *__pyx_n_s_skipstage;
  PyObject *__pyx_n_s_slots;
  PyObject *__pyx_n_s_solimp;
  PyObject *__pyx_n_s_solref;
  PyObject *__pyx_n_s_spec;
  PyObject *__pyx_n_s_split;
  PyObject *__pyx_n_s_src;
  PyObject *__pyx_n_s_start;
  PyObject *__pyx_n_s_start_i;
  PyObject *__pyx_n_s_stat;
  PyObject *__pyx_n_s_state;
  PyObject *__pyx_n_s_state_tuple;
  PyObject *__pyx_n_s_staticmethod;
  PyObject *__pyx_n_s_step;
  PyObject *__pyx_n_s_step_udd;
  PyObject *__pyx_n_s_stop;
  PyObject *__pyx_n_s_str;
  PyObject *__pyx_n_s_str_array;
  PyObject *__pyx_kp_s_strided_and_direct;
  PyObject *__pyx_kp_s_strided_and_direct_or_indirect;
  PyObject *__pyx_kp_s_strided_and_indirect;
  PyObject *__pyx_kp_s_stringsource;
  PyObject *__pyx_n_s_struct;
  PyObject *__pyx_n_s_substep_callback;
  PyObject *__pyx_n_s_suffix;
  PyObject *__pyx_n_s_super;
  PyObject *__pyx_n_s_swap_buffers;
  PyObject *__pyx_n_s_sys;
  PyObject *__pyx_n_s_tagName;
  PyObject *__pyx_n_s_target_height;
  PyObject *__pyx_n_s_target_width;
  PyObject *__pyx_n_s_td;
  PyObject *__pyx_n_s_tempfile;
  PyObject *__pyx_n_s_tendon_id2name;
  PyObject *__pyx_n_s_tendon_name2id;
  PyObject *__pyx_n_s_test;
  PyObject *__pyx_n_s_tex_id;
  PyObject *__pyx_n_s_texid;
  PyObject *__pyx_n_s_text;
  PyObject *__pyx_n_s_text1;
  PyObject *__pyx_n_s_text2;
  PyObject *__pyx_n_s_threading;
  PyObject *__pyx_n_s_throw;
  PyObject *__pyx_n_s_time;
  PyObject *__pyx_n_u_time;
  PyObject *__pyx_kp_u_time_qpos_qvel_act_udd_state;
  PyObject *__pyx_n_s_toprettyxml;
  PyObject *__pyx_n_s_torque;
  PyObject *__pyx_n_s_traceback;
  PyObject *__pyx_n_s_type;
  PyObject *__pyx_n_s_udd_callback;
  PyObject *__pyx_n_s_udd_state;
  PyObject *__pyx_n_s_ui;
  PyObject *__pyx_n_s_uint16;
  PyObject *__pyx_n_s_uint8;
  PyObject *__pyx_kp_s_unable_to_allocate_array_data;
  PyObject *__pyx_kp_s_unable_to_allocate_shape_and_str;
  PyObject *__pyx_n_s_unflatten_dict;
  PyObject *__pyx_n_s_unmap;
  PyObject *__pyx_n_s_unpack;
  PyObject *__pyx_n_s_unregister;
  PyObject *__pyx_n_s_up;
  PyObject *__pyx_n_s_update;
  PyObject *__pyx_n_s_update_offscreen_size;
  PyObject *__pyx_n_s_update_sim;
  PyObject *__pyx_n_s_upload_texture;
  PyObject *__pyx_n_s_use_cuda;
  PyObject *__pyx_n_s_use_cuda_2;
  PyObject *__pyx_n_s_userdata;
  PyObject *__pyx_n_s_userdata_id2name;
  PyObject *__pyx_n_s_userdata_name2id;
  PyObject *__pyx_n_s_userdata_names;
  PyObject *__pyx_n_s_v;
  PyObject *__pyx_n_s_val;
  PyObject *__pyx_n_s_val_array;
  PyObject *__pyx_n_s_value;
  PyObject *__pyx_n_s_values;
  PyObject *__pyx_n_s_vec;
  PyObject *__pyx_n_s_vec1;
  PyObject *__pyx_n_s_vec2;
  PyObject *__pyx_n_s_vec_view;
  PyObject *__pyx_n_s_vel;
  PyObject *__pyx_n_s_vel0;
  PyObject *__pyx_n_s_version_info;
  PyObject *__pyx_n_s_vfs;
  PyObject *__pyx_n_s_viewport;
  PyObject *__pyx_n_s_vis;
  PyObject *__pyx_n_s_vopt;
  PyObject *__pyx_n_s_warn;
  PyObject *__pyx_n_s_warning;
  PyObject *__pyx_n_u_wb;
  PyObject *__pyx_n_s_width;
  PyObject *__pyx_n_s_width_2;
  PyObject *__pyx_n_s_window;
  PyObject *__pyx_n_u_window;
  PyObject *__pyx_n_s_window_hint;
  PyObject *__pyx_n_s_window_should_close;
  PyObject *__pyx_n_s_with_udd;
  PyObject *__pyx_n_s_wrap_mujoco_warning;
  PyObject *__pyx_n_s_wrap_mujoco_warning___enter;
  PyObject *__pyx_n_s_wrap_mujoco_warning___exit;
  PyObject *__pyx_n_s_wrapped;
  PyObject *__pyx_n_s_write;
  PyObject *__pyx_n_s_x;
  PyObject *__pyx_n_s_xmat;
  PyObject *__pyx_n_u_xml;
  PyObject *__pyx_kp_u_xml_2;
  PyObject *__pyx_n_s_xml_dom;
  PyObject *__pyx_n_s_xml_str;
  PyObject *__pyx_n_s_xpos;
  PyObject *__pyx_n_s_xvelp;
  PyObject *__pyx_n_s_xvelr;
  PyObject *__pyx_n_s_y;
  PyObject *__pyx_n_s_zeros;
  PyObject *__pyx_float_0_0;
  PyObject *__pyx_float_0_1;
  PyObject *__pyx_int_0;
  PyObject *__pyx_int_1;
  PyObject *__pyx_int_2;
  PyObject *__pyx_int_3;
  PyObject *__pyx_int_4;
  PyObject *__pyx_int_6;
  PyObject *__pyx_int_7;
  PyObject *__pyx_int_256;
  PyObject *__pyx_int_1000;
  PyObject *__pyx_int_65536;
  PyObject *__pyx_int_112105877;
  PyObject *__pyx_int_136983863;
  PyObject *__pyx_int_184977713;
  PyObject *__pyx_int_neg_1;
  PyObject *__pyx_slice__5;
  PyObject *__pyx_tuple__4;
  PyObject *__pyx_tuple__8;
  PyObject *__pyx_tuple__15;
  PyObject *__pyx_tuple__16;
  PyObject *__pyx_tuple__17;
  PyObject *__pyx_tuple__18;
  PyObject *__pyx_tuple__19;
  PyObject *__pyx_tuple__20;
  PyObject *__pyx_tuple__21;
  PyObject *__pyx_tuple__22;
  PyObject *__pyx_tuple__23;
  PyObject *__pyx_tuple__24;
  PyObject *__pyx_tuple__25;
  PyObject *__pyx_tuple__26;
  PyObject *__pyx_tuple__27;
  PyObject *__pyx_tuple__28;
  PyObject *__pyx_tuple__29;
  PyObject *__pyx_tuple__30;
  PyObject *__pyx_tuple__31;
  PyObject *__pyx_tuple__32;
  PyObject *__pyx_tuple__33;
  PyObject *__pyx_tuple__35;
  PyObject *__pyx_tuple__36;
  PyObject *__pyx_tuple__37;
  PyObject *__pyx_tuple__38;
  PyObject *__pyx_tuple__39;
  PyObject *__pyx_tuple__40;
  PyObject *__pyx_tuple__42;
  PyObject *__pyx_tuple__45;
  PyObject *__pyx_tuple__46;
  PyObject *__pyx_tuple__47;
  PyObject *__pyx_tuple__48;
  PyObject *__pyx_tuple__49;
  PyObject *__pyx_tuple__50;
  PyObject *__pyx_tuple__51;
  PyObject *__pyx_tuple__53;
  PyObject *__pyx_tuple__54;
  PyObject *__pyx_tuple__55;
  PyObject *__pyx_tuple__56;
  PyObject *__pyx_tuple__57;
  PyObject *__pyx_tuple__58;
  PyObject *__pyx_tuple__59;
  PyObject *__pyx_tuple__60;
  PyObject *__pyx_tuple__61;
  PyObject *__pyx_tuple__62;
  PyObject *__pyx_tuple__63;
  PyObject *__pyx_tuple__64;
  PyObject *__pyx_tuple__65;
  PyObject *__pyx_tuple__66;
  PyObject *__pyx_tuple__67;
  PyObject *__pyx_tuple__69;
  PyObject *__pyx_tuple__71;
  PyObject *__pyx_tuple__93;
  PyObject *__pyx_tuple__95;
  PyObject *__pyx_tuple__117;
  PyObject *__pyx_tuple__119;
  PyObject *__pyx_tuple__121;
  PyObject *__pyx_tuple__123;
  PyObject *__pyx_tuple__136;
  PyObject *__pyx_tuple__147;
  PyObject *__pyx_tuple__149;
  PyObject *__pyx_tuple__150;
  PyObject *__pyx_tuple__152;
  PyObject *__pyx_tuple__154;
  PyObject *__pyx_tuple__181;
  PyObject *__pyx_tuple__183;
  PyObject *__pyx_tuple__187;
  PyObject *__pyx_tuple__189;
  PyObject *__pyx_tuple__229;
  PyObject *__pyx_tuple__232;
  PyObject *__pyx_tuple__234;
  PyObject *__pyx_tuple__236;
  PyObject *__pyx_tuple__238;
  PyObject *__pyx_tuple__242;
  PyObject *__pyx_tuple__244;
  PyObject *__pyx_tuple__247;
  PyObject *__pyx_tuple__249;
  PyObject *__pyx_tuple__255;
  PyObject *__pyx_tuple__258;
  PyObject *__pyx_tuple__260;
  PyObject *__pyx_tuple__263;
  PyObject *__pyx_tuple__265;
  PyObject *__pyx_tuple__267;
  PyObject *__pyx_tuple__269;
  PyObject *__pyx_tuple__273;
  PyObject *__pyx_tuple__275;
  PyObject *__pyx_tuple__279;
  PyObject *__pyx_tuple__281;
  PyObject *__pyx_tuple__283;
  PyObject *__pyx_tuple__285;
  PyObject *__pyx_tuple__287;
  PyObject *__pyx_tuple__295;
  PyObject *__pyx_tuple__316;
  PyObject *__pyx_tuple__322;
  PyObject *__pyx_tuple__329;
  PyObject *__pyx_tuple__331;
  PyObject *__pyx_tuple__336;
  PyObject *__pyx_tuple__339;
  PyObject *__pyx_tuple__341;
  PyObject *__pyx_tuple__344;
  PyObject *__pyx_tuple__346;
  PyObject *__pyx_tuple__348;
  PyObject *__pyx_tuple__350;
  PyObject *__pyx_tuple__352;
  PyObject *__pyx_tuple__356;
  PyObject *__pyx_tuple__358;
  PyObject *__pyx_tuple__360;
  PyObject *__pyx_tuple__363;
  PyObject *__pyx_tuple__365;
  PyObject *__pyx_tuple__367;
  PyObject *__pyx_tuple__369;
  PyObject *__pyx_tuple__371;
  PyObject *__pyx_tuple__374;
  PyObject *__pyx_tuple__377;
  PyObject *__pyx_tuple__379;
  PyObject *__pyx_tuple__382;
  PyObject *__pyx_tuple__384;
  PyObject *__pyx_tuple__386;
  PyObject *__pyx_tuple__388;
  PyObject *__pyx_tuple__390;
  PyObject *__pyx_tuple__392;
  PyObject *__pyx_tuple__395;
  PyObject *__pyx_tuple__397;
  PyObject *__pyx_tuple__399;
  PyObject *__pyx_tuple__401;
  PyObject *__pyx_tuple__403;
  PyObject *__pyx_tuple__405;
  PyObject *__pyx_tuple__407;
  PyObject *__pyx_tuple__409;
  PyObject *__pyx_tuple__411;
  PyObject *__pyx_tuple__414;
  PyObject *__pyx_tuple__416;
  PyObject *__pyx_tuple__419;
  PyObject *__pyx_tuple__422;
  PyObject *__pyx_tuple__424;
  PyObject *__pyx_tuple__426;
  PyObject *__pyx_tuple__428;
  PyObject *__pyx_tuple__431;
  PyObject *__pyx_tuple__433;
  PyObject *__pyx_tuple__435;
  PyObject *__pyx_tuple__437;
  PyObject *__pyx_tuple__440;
  PyObject *__pyx_tuple__442;
  PyObject *__pyx_tuple__444;
  PyObject *__pyx_tuple__447;
  PyObject *__pyx_tuple__449;
  PyObject *__pyx_tuple__451;
  PyObject *__pyx_tuple__453;
  PyObject *__pyx_tuple__455;
  PyObject *__pyx_tuple__457;
  PyObject *__pyx_tuple__459;
  PyObject *__pyx_tuple__463;
  PyObject *__pyx_tuple__465;
  PyObject *__pyx_tuple__467;
  PyObject *__pyx_tuple__469;
  PyObject *__pyx_tuple__471;
  PyObject *__pyx_tuple__473;
  PyObject *__pyx_tuple__476;
  PyObject *__pyx_tuple__478;
  PyObject *__pyx_tuple__480;
  PyObject *__pyx_tuple__486;
  PyObject *__pyx_tuple__488;
  PyObject *__pyx_tuple__490;
  PyObject *__pyx_tuple__492;
  PyObject *__pyx_tuple__494;
  PyObject *__pyx_tuple__496;
  PyObject *__pyx_tuple__499;
  PyObject *__pyx_tuple__503;
  PyObject *__pyx_tuple__506;
  PyObject *__pyx_tuple__508;
  PyObject *__pyx_tuple__510;
  PyObject *__pyx_tuple__512;
  PyObject *__pyx_tuple__515;
  PyObject *__pyx_tuple__521;
  PyObject *__pyx_tuple__523;
  PyObject *__pyx_tuple__525;
  PyObject *__pyx_tuple__528;
  PyObject *__pyx_tuple__530;
  PyObject *__pyx_tuple__533;
  PyObject *__pyx_tuple__537;
  PyObject *__pyx_tuple__541;
  PyObject *__pyx_tuple__543;
  PyObject *__pyx_tuple__546;
  PyObject *__pyx_tuple__548;
  PyObject *__pyx_tuple__550;
  PyObject *__pyx_tuple__553;
  PyObject *__pyx_tuple__555;
  PyObject *__pyx_tuple__557;
  PyObject *__pyx_tuple__559;
  PyObject *__pyx_tuple__561;
  PyObject *__pyx_tuple__563;
  PyObject *__pyx_tuple__565;
  PyObject *__pyx_tuple__567;
  PyObject *__pyx_tuple__569;
  PyObject *__pyx_tuple__572;
  PyObject *__pyx_tuple__574;
  PyObject *__pyx_tuple__576;
  PyObject *__pyx_tuple__578;
  PyObject *__pyx_tuple__580;
  PyObject *__pyx_tuple__582;
  PyObject *__pyx_tuple__584;
  PyObject *__pyx_tuple__586;
  PyObject *__pyx_tuple__588;
  PyObject *__pyx_tuple__590;
  PyObject *__pyx_tuple__592;
  PyObject *__pyx_tuple__594;
  PyObject *__pyx_tuple__596;
  PyObject *__pyx_tuple__598;
  PyObject *__pyx_tuple__600;
  PyObject *__pyx_tuple__602;
  PyObject *__pyx_tuple__604;
  PyObject *__pyx_tuple__606;
  PyObject *__pyx_tuple__609;
  PyObject *__pyx_tuple__612;
  PyObject *__pyx_tuple__616;
  PyObject *__pyx_tuple__618;
  PyObject *__pyx_tuple__621;
  PyObject *__pyx_tuple__624;
  PyObject *__pyx_tuple__627;
  PyObject *__pyx_tuple__629;
  PyObject *__pyx_tuple__630;
  PyObject *__pyx_tuple__631;
  PyObject *__pyx_tuple__633;
  PyObject *__pyx_tuple__638;
  PyObject *__pyx_tuple__640;
  PyObject *__pyx_tuple__642;
  PyObject *__pyx_tuple__644;
  PyObject *__pyx_tuple__646;
  PyObject *__pyx_tuple__650;
  PyObject *__pyx_tuple__655;
  PyObject *__pyx_tuple__657;
  PyObject *__pyx_tuple__658;
  PyObject *__pyx_tuple__660;
  PyObject *__pyx_tuple__661;
  PyObject *__pyx_tuple__664;
  PyObject *__pyx_tuple__666;
  PyObject *__pyx_tuple__668;
  PyObject *__pyx_tuple__670;
  PyObject *__pyx_tuple__672;
  PyObject *__pyx_tuple__674;
  PyObject *__pyx_tuple__676;
  PyObject *__pyx_tuple__677;
  PyObject *__pyx_tuple__679;
  PyObject *__pyx_tuple__680;
  PyObject *__pyx_tuple__682;
  PyObject *__pyx_tuple__683;
  PyObject *__pyx_tuple__687;
  PyObject *__pyx_tuple__688;
  PyObject *__pyx_tuple__690;
  PyObject *__pyx_tuple__692;
  PyObject *__pyx_tuple__694;
  PyObject *__pyx_tuple__696;
  PyObject *__pyx_tuple__698;
  PyObject *__pyx_tuple__700;
  PyObject *__pyx_tuple__703;
  PyObject *__pyx_tuple__705;
  PyObject *__pyx_tuple__708;
  PyObject *__pyx_tuple__710;
  PyObject *__pyx_tuple__711;
  PyObject *__pyx_tuple__713;
  PyObject *__pyx_tuple__714;
  PyObject *__pyx_tuple__716;
  PyObject *__pyx_tuple__718;
  PyObject *__pyx_tuple__720;
  PyObject *__pyx_tuple__722;
  PyObject *__pyx_tuple__724;
  PyObject *__pyx_tuple__726;
  PyObject *__pyx_tuple__730;
  PyObject *__pyx_tuple__732;
  PyObject *__pyx_tuple__736;
  PyObject *__pyx_tuple__737;
  PyObject *__pyx_tuple__738;
  PyObject *__pyx_tuple__739;
  PyObject *__pyx_tuple__741;
  PyObject *__pyx_tuple__742;
  PyObject *__pyx_tuple__744;
  PyObject *__pyx_tuple__747;
  PyObject *__pyx_tuple__749;
  PyObject *__pyx_tuple__752;
  PyObject *__pyx_tuple__754;
  PyObject *__pyx_tuple__759;
  PyObject *__pyx_tuple__761;
  PyObject *__pyx_tuple__764;
  PyObject *__pyx_tuple__767;
  PyObject *__pyx_tuple__768;
  PyObject *__pyx_tuple__770;
  PyObject *__pyx_tuple__772;
  PyObject *__pyx_tuple__774;
  PyObject *__pyx_tuple__776;
  PyObject *__pyx_codeobj__43;
  PyObject *__pyx_codeobj__68;
  PyObject *__pyx_codeobj__70;
  PyObject *__pyx_codeobj__72;
  PyObject *__pyx_codeobj__73;
  PyObject *__pyx_codeobj__74;
  PyObject *__pyx_codeobj__75;
  PyObject *__pyx_codeobj__76;
  PyObject *__pyx_codeobj__77;
  PyObject *__pyx_codeobj__78;
  PyObject *__pyx_codeobj__79;
  PyObject *__pyx_codeobj__80;
  PyObject *__pyx_codeobj__81;
  PyObject *__pyx_codeobj__82;
  PyObject *__pyx_codeobj__83;
  PyObject *__pyx_codeobj__84;
  PyObject *__pyx_codeobj__85;
  PyObject *__pyx_codeobj__86;
  PyObject *__pyx_codeobj__87;
  PyObject *__pyx_codeobj__88;
  PyObject *__pyx_codeobj__89;
  PyObject *__pyx_codeobj__90;
  PyObject *__pyx_codeobj__91;
  PyObject *__pyx_codeobj__92;
  PyObject *__pyx_codeobj__94;
  PyObject *__pyx_codeobj__96;
  PyObject *__pyx_codeobj__97;
  PyObject *__pyx_codeobj__98;
  PyObject *__pyx_codeobj__99;
  PyObject *__pyx_codeobj__100;
  PyObject *__pyx_codeobj__101;
  PyObject *__pyx_codeobj__102;
  PyObject *__pyx_codeobj__103;
  PyObject *__pyx_codeobj__104;
  PyObject *__pyx_codeobj__105;
  PyObject *__pyx_codeobj__106;
  PyObject *__pyx_codeobj__107;
  PyObject *__pyx_codeobj__108;
  PyObject *__pyx_codeobj__109;
  PyObject *__pyx_codeobj__110;
  PyObject *__pyx_codeobj__111;
  PyObject *__pyx_codeobj__112;
  PyObject *__pyx_codeobj__113;
  PyObject *__pyx_codeobj__114;
  PyObject *__pyx_codeobj__115;
  PyObject *__pyx_codeobj__116;
  PyObject *__pyx_codeobj__118;
  PyObject *__pyx_codeobj__120;
  PyObject *__pyx_codeobj__122;
  PyObject *__pyx_codeobj__124;
  PyObject *__pyx_codeobj__125;
  PyObject *__pyx_codeobj__126;
  PyObject *__pyx_codeobj__127;
  PyObject *__pyx_codeobj__128;
  PyObject *__pyx_codeobj__129;
  PyObject *__pyx_codeobj__130;
  PyObject *__pyx_codeobj__131;
  PyObject *__pyx_codeobj__132;
  PyObject *__pyx_codeobj__133;
  PyObject *__pyx_codeobj__134;
  PyObject *__pyx_codeobj__135;
  PyObject *__pyx_codeobj__137;
  PyObject *__pyx_codeobj__138;
  PyObject *__pyx_codeobj__139;
  PyObject *__pyx_codeobj__140;
  PyObject *__pyx_codeobj__141;
  PyObject *__pyx_codeobj__142;
  PyObject *__pyx_codeobj__143;
  PyObject *__pyx_codeobj__144;
  PyObject *__pyx_codeobj__145;
  PyObject *__pyx_codeobj__146;
  PyObject *__pyx_codeobj__148;
  PyObject *__pyx_codeobj__151;
  PyObject *__pyx_codeobj__153;
  PyObject *__pyx_codeobj__155;
  PyObject *__pyx_codeobj__156;
  PyObject *__pyx_codeobj__157;
  PyObject *__pyx_codeobj__158;
  PyObject *__pyx_codeobj__159;
  PyObject *__pyx_codeobj__160;
  PyObject *__pyx_codeobj__161;
  PyObject *__pyx_codeobj__162;
  PyObject *__pyx_codeobj__163;
  PyObject *__pyx_codeobj__164;
  PyObject *__pyx_codeobj__165;
  PyObject *__pyx_codeobj__166;
  PyObject *__pyx_codeobj__167;
  PyObject *__pyx_codeobj__168;
  PyObject *__pyx_codeobj__169;
  PyObject *__pyx_codeobj__170;
  PyObject *__pyx_codeobj__171;
  PyObject *__pyx_codeobj__172;
  PyObject *__pyx_codeobj__173;
  PyObject *__pyx_codeobj__174;
  PyObject *__pyx_codeobj__175;
  PyObject *__pyx_codeobj__176;
  PyObject *__pyx_codeobj__177;
  PyObject *__pyx_codeobj__178;
  PyObject *__pyx_codeobj__179;
  PyObject *__pyx_codeobj__180;
  PyObject *__pyx_codeobj__182;
  PyObject *__pyx_codeobj__184;
  PyObject *__pyx_codeobj__185;
  PyObject *__pyx_codeobj__186;
  PyObject *__pyx_codeobj__188;
  PyObject *__pyx_codeobj__190;
  PyObject *__pyx_codeobj__191;
  PyObject *__pyx_codeobj__192;
  PyObject *__pyx_codeobj__193;
  PyObject *__pyx_codeobj__194;
  PyObject *__pyx_codeobj__195;
  PyObject *__pyx_codeobj__196;
  PyObject *__pyx_codeobj__197;
  PyObject *__pyx_codeobj__198;
  PyObject *__pyx_codeobj__199;
  PyObject *__pyx_codeobj__200;
  PyObject *__pyx_codeobj__201;
  PyObject *__pyx_codeobj__202;
  PyObject *__pyx_codeobj__203;
  PyObject *__pyx_codeobj__204;
  PyObject *__pyx_codeobj__205;
  PyObject *__pyx_codeobj__206;
  PyObject *__pyx_codeobj__207;
  PyObject *__pyx_codeobj__208;
  PyObject *__pyx_codeobj__209;
  PyObject *__pyx_codeobj__210;
  PyObject *__pyx_codeobj__211;
  PyObject *__pyx_codeobj__212;
  PyObject *__pyx_codeobj__213;
  PyObject *__pyx_codeobj__214;
  PyObject *__pyx_codeobj__215;
  PyObject *__pyx_codeobj__216;
  PyObject *__pyx_codeobj__217;
  PyObject *__pyx_codeobj__218;
  PyObject *__pyx_codeobj__219;
  PyObject *__pyx_codeobj__220;
  PyObject *__pyx_codeobj__221;
  PyObject *__pyx_codeobj__222;
  PyObject *__pyx_codeobj__223;
  PyObject *__pyx_codeobj__224;
  PyObject *__pyx_codeobj__225;
  PyObject *__pyx_codeobj__226;
  PyObject *__pyx_codeobj__227;
  PyObject *__pyx_codeobj__228;
  PyObject *__pyx_codeobj__230;
  PyObject *__pyx_codeobj__231;
  PyObject *__pyx_codeobj__233;
  PyObject *__pyx_codeobj__235;
  PyObject *__pyx_codeobj__237;
  PyObject *__pyx_codeobj__239;
  PyObject *__pyx_codeobj__240;
  PyObject *__pyx_codeobj__241;
  PyObject *__pyx_codeobj__243;
  PyObject *__pyx_codeobj__245;
  PyObject *__pyx_codeobj__246;
  PyObject *__pyx_codeobj__248;
  PyObject *__pyx_codeobj__250;
  PyObject *__pyx_codeobj__251;
  PyObject *__pyx_codeobj__252;
  PyObject *__pyx_codeobj__253;
  PyObject *__pyx_codeobj__254;
  PyObject *__pyx_codeobj__256;
  PyObject *__pyx_codeobj__257;
  PyObject *__pyx_codeobj__259;
  PyObject *__pyx_codeobj__261;
  PyObject *__pyx_codeobj__262;
  PyObject *__pyx_codeobj__264;
  PyObject *__pyx_codeobj__266;
  PyObject *__pyx_codeobj__268;
  PyObject *__pyx_codeobj__270;
  PyObject *__pyx_codeobj__271;
  PyObject *__pyx_codeobj__272;
  PyObject *__pyx_codeobj__274;
  PyObject *__pyx_codeobj__276;
  PyObject *__pyx_codeobj__277;
  PyObject *__pyx_codeobj__278;
  PyObject *__pyx_codeobj__280;
  PyObject *__pyx_codeobj__282;
  PyObject *__pyx_codeobj__284;
  PyObject *__pyx_codeobj__286;
  PyObject *__pyx_codeobj__288;
  PyObject *__pyx_codeobj__289;
  PyObject *__pyx_codeobj__290;
  PyObject *__pyx_codeobj__291;
  PyObject *__pyx_codeobj__292;
  PyObject *__pyx_codeobj__293;
  PyObject *__pyx_codeobj__294;
  PyObject *__pyx_codeobj__296;
  PyObject *__pyx_codeobj__297;
  PyObject *__pyx_codeobj__298;
  PyObject *__pyx_codeobj__299;
  PyObject *__pyx_codeobj__300;
  PyObject *__pyx_codeobj__301;
  PyObject *__pyx_codeobj__302;
  PyObject *__pyx_codeobj__303;
  PyObject *__pyx_codeobj__304;
  PyObject *__pyx_codeobj__305;
  PyObject *__pyx_codeobj__306;
  PyObject *__pyx_codeobj__307;
  PyObject *__pyx_codeobj__308;
  PyObject *__pyx_codeobj__309;
  PyObject *__pyx_codeobj__310;
  PyObject *__pyx_codeobj__311;
  PyObject *__pyx_codeobj__312;
  PyObject *__pyx_codeobj__313;
  PyObject *__pyx_codeobj__314;
  PyObject *__pyx_codeobj__315;
  PyObject *__pyx_codeobj__317;
  PyObject *__pyx_codeobj__318;
  PyObject *__pyx_codeobj__319;
  PyObject *__pyx_codeobj__320;
  PyObject *__pyx_codeobj__321;
  PyObject *__pyx_codeobj__323;
  PyObject *__pyx_codeobj__324;
  PyObject *__pyx_codeobj__325;
  PyObject *__pyx_codeobj__326;
  PyObject *__pyx_codeobj__327;
  PyObject *__pyx_codeobj__328;
  PyObject *__pyx_codeobj__330;
  PyObject *__pyx_codeobj__332;
  PyObject *__pyx_codeobj__333;
  PyObject *__pyx_codeobj__334;
  PyObject *__pyx_codeobj__335;
  PyObject *__pyx_codeobj__337;
  PyObject *__pyx_codeobj__338;
  PyObject *__pyx_codeobj__340;
  PyObject *__pyx_codeobj__342;
  PyObject *__pyx_codeobj__343;
  PyObject *__pyx_codeobj__345;
  PyObject *__pyx_codeobj__347;
  PyObject *__pyx_codeobj__349;
  PyObject *__pyx_codeobj__351;
  PyObject *__pyx_codeobj__353;
  PyObject *__pyx_codeobj__354;
  PyObject *__pyx_codeobj__355;
  PyObject *__pyx_codeobj__357;
  PyObject *__pyx_codeobj__359;
  PyObject *__pyx_codeobj__361;
  PyObject *__pyx_codeobj__362;
  PyObject *__pyx_codeobj__364;
  PyObject *__pyx_codeobj__366;
  PyObject *__pyx_codeobj__368;
  PyObject *__pyx_codeobj__370;
  PyObject *__pyx_codeobj__372;
  PyObject *__pyx_codeobj__373;
  PyObject *__pyx_codeobj__375;
  PyObject *__pyx_codeobj__376;
  PyObject *__pyx_codeobj__378;
  PyObject *__pyx_codeobj__380;
  PyObject *__pyx_codeobj__381;
  PyObject *__pyx_codeobj__383;
  PyObject *__pyx_codeobj__385;
  PyObject *__pyx_codeobj__387;
  PyObject *__pyx_codeobj__389;
  PyObject *__pyx_codeobj__391;
  PyObject *__pyx_codeobj__393;
  PyObject *__pyx_codeobj__394;
  PyObject *__pyx_codeobj__396;
  PyObject *__pyx_codeobj__398;
  PyObject *__pyx_codeobj__400;
  PyObject *__pyx_codeobj__402;
  PyObject *__pyx_codeobj__404;
  PyObject *__pyx_codeobj__406;
  PyObject *__pyx_codeobj__408;
  PyObject *__pyx_codeobj__410;
  PyObject *__pyx_codeobj__412;
  PyObject *__pyx_codeobj__413;
  PyObject *__pyx_codeobj__415;
  PyObject *__pyx_codeobj__417;
  PyObject *__pyx_codeobj__418;
  PyObject *__pyx_codeobj__420;
  PyObject *__pyx_codeobj__421;
  PyObject *__pyx_codeobj__423;
  PyObject *__pyx_codeobj__425;
  PyObject *__pyx_codeobj__427;
  PyObject *__pyx_codeobj__429;
  PyObject *__pyx_codeobj__430;
  PyObject *__pyx_codeobj__432;
  PyObject *__pyx_codeobj__434;
  PyObject *__pyx_codeobj__436;
  PyObject *__pyx_codeobj__438;
  PyObject *__pyx_codeobj__439;
  PyObject *__pyx_codeobj__441;
  PyObject *__pyx_codeobj__443;
  PyObject *__pyx_codeobj__445;
  PyObject *__pyx_codeobj__446;
  PyObject *__pyx_codeobj__448;
  PyObject *__pyx_codeobj__450;
  PyObject *__pyx_codeobj__452;
  PyObject *__pyx_codeobj__454;
  PyObject *__pyx_codeobj__456;
  PyObject *__pyx_codeobj__458;
  PyObject *__pyx_codeobj__460;
  PyObject *__pyx_codeobj__461;
  PyObject *__pyx_codeobj__462;
  PyObject *__pyx_codeobj__464;
  PyObject *__pyx_codeobj__466;
  PyObject *__pyx_codeobj__468;
  PyObject *__pyx_codeobj__470;
  PyObject *__pyx_codeobj__472;
  PyObject *__pyx_codeobj__474;
  PyObject *__pyx_codeobj__475;
  PyObject *__pyx_codeobj__477;
  PyObject *__pyx_codeobj__479;
  PyObject *__pyx_codeobj__481;
  PyObject *__pyx_codeobj__482;
  PyObject *__pyx_codeobj__483;
  PyObject *__pyx_codeobj__484;
  PyObject *__pyx_codeobj__485;
  PyObject *__pyx_codeobj__487;
  PyObject *__pyx_codeobj__489;
  PyObject *__pyx_codeobj__491;
  PyObject *__pyx_codeobj__493;
  PyObject *__pyx_codeobj__495;
  PyObject *__pyx_codeobj__497;
  PyObject *__pyx_codeobj__498;
  PyObject *__pyx_codeobj__500;
  PyObject *__pyx_codeobj__501;
  PyObject *__pyx_codeobj__502;
  PyObject *__pyx_codeobj__504;
  PyObject *__pyx_codeobj__505;
  PyObject *__pyx_codeobj__507;
  PyObject *__pyx_codeobj__509;
  PyObject *__pyx_codeobj__511;
  PyObject *__pyx_codeobj__513;
  PyObject *__pyx_codeobj__514;
  PyObject *__pyx_codeobj__516;
  PyObject *__pyx_codeobj__517;
  PyObject *__pyx_codeobj__518;
  PyObject *__pyx_codeobj__519;
  PyObject *__pyx_codeobj__520;
  PyObject *__pyx_codeobj__522;
  PyObject *__pyx_codeobj__524;
  PyObject *__pyx_codeobj__526;
  PyObject *__pyx_codeobj__527;
  PyObject *__pyx_codeobj__529;
  PyObject *__pyx_codeobj__531;
  PyObject *__pyx_codeobj__532;
  PyObject *__pyx_codeobj__534;
  PyObject *__pyx_codeobj__535;
  PyObject *__pyx_codeobj__536;
  PyObject *__pyx_codeobj__538;
  PyObject *__pyx_codeobj__539;
  PyObject *__pyx_codeobj__540;
  PyObject *__pyx_codeobj__542;
  PyObject *__pyx_codeobj__544;
  PyObject *__pyx_codeobj__545;
  PyObject *__pyx_codeobj__547;
  PyObject *__pyx_codeobj__549;
  PyObject *__pyx_codeobj__551;
  PyObject *__pyx_codeobj__552;
  PyObject *__pyx_codeobj__554;
  PyObject *__pyx_codeobj__556;
  PyObject *__pyx_codeobj__558;
  PyObject *__pyx_codeobj__560;
  PyObject *__pyx_codeobj__562;
  PyObject *__pyx_codeobj__564;
  PyObject *__pyx_codeobj__566;
  PyObject *__pyx_codeobj__568;
  PyObject *__pyx_codeobj__570;
  PyObject *__pyx_codeobj__571;
  PyObject *__pyx_codeobj__573;
  PyObject *__pyx_codeobj__575;
  PyObject *__pyx_codeobj__577;
  PyObject *__pyx_codeobj__579;
  PyObject *__pyx_codeobj__581;
  PyObject *__pyx_codeobj__583;
  PyObject *__pyx_codeobj__585;
  PyObject *__pyx_codeobj__587;
  PyObject *__pyx_codeobj__589;
  PyObject *__pyx_codeobj__591;
  PyObject *__pyx_codeobj__593;
  PyObject *__pyx_codeobj__595;
  PyObject *__pyx_codeobj__597;
  PyObject *__pyx_codeobj__599;
  PyObject *__pyx_codeobj__601;
  PyObject *__pyx_codeobj__603;
  PyObject *__pyx_codeobj__605;
  PyObject *__pyx_codeobj__607;
  PyObject *__pyx_codeobj__608;
  PyObject *__pyx_codeobj__610;
  PyObject *__pyx_codeobj__611;
  PyObject *__pyx_codeobj__613;
  PyObject *__pyx_codeobj__614;
  PyObject *__pyx_codeobj__615;
  PyObject *__pyx_codeobj__617;
  PyObject *__pyx_codeobj__619;
  PyObject *__pyx_codeobj__620;
  PyObject *__pyx_codeobj__622;
  PyObject *__pyx_codeobj__623;
  PyObject *__pyx_codeobj__625;
  PyObject *__pyx_codeobj__626;
  PyObject *__pyx_codeobj__628;
  PyObject *__pyx_codeobj__632;
  PyObject *__pyx_codeobj__634;
  PyObject *__pyx_codeobj__635;
  PyObject *__pyx_codeobj__636;
  PyObject *__pyx_codeobj__639;
  PyObject *__pyx_codeobj__641;
  PyObject *__pyx_codeobj__643;
  PyObject *__pyx_codeobj__645;
  PyObject *__pyx_codeobj__647;
  PyObject *__pyx_codeobj__648;
  PyObject *__pyx_codeobj__649;
  PyObject *__pyx_codeobj__651;
  PyObject *__pyx_codeobj__652;
  PyObject *__pyx_codeobj__653;
  PyObject *__pyx_codeobj__654;
  PyObject *__pyx_codeobj__656;
  PyObject *__pyx_codeobj__659;
  PyObject *__pyx_codeobj__662;
  PyObject *__pyx_codeobj__663;
  PyObject *__pyx_codeobj__665;
  PyObject *__pyx_codeobj__667;
  PyObject *__pyx_codeobj__669;
  PyObject *__pyx_codeobj__671;
  PyObject *__pyx_codeobj__673;
  PyObject *__pyx_codeobj__675;
  PyObject *__pyx_codeobj__678;
  PyObject *__pyx_codeobj__681;
  PyObject *__pyx_codeobj__684;
  PyObject *__pyx_codeobj__685;
  PyObject *__pyx_codeobj__686;
  PyObject *__pyx_codeobj__689;
  PyObject *__pyx_codeobj__691;
  PyObject *__pyx_codeobj__693;
  PyObject *__pyx_codeobj__695;
  PyObject *__pyx_codeobj__697;
  PyObject *__pyx_codeobj__699;
  PyObject *__pyx_codeobj__701;
  PyObject *__pyx_codeobj__702;
  PyObject *__pyx_codeobj__704;
  PyObject *__pyx_codeobj__706;
  PyObject *__pyx_codeobj__707;
  PyObject *__pyx_codeobj__709;
  PyObject *__pyx_codeobj__712;
  PyObject *__pyx_codeobj__715;
  PyObject *__pyx_codeobj__717;
  PyObject *__pyx_codeobj__719;
  PyObject *__pyx_codeobj__721;
  PyObject *__pyx_codeobj__723;
  PyObject *__pyx_codeobj__725;
  PyObject *__pyx_codeobj__727;
  PyObject *__pyx_codeobj__728;
  PyObject *__pyx_codeobj__729;
  PyObject *__pyx_codeobj__731;
  PyObject *__pyx_codeobj__733;
  PyObject *__pyx_codeobj__734;
  PyObject *__pyx_codeobj__735;
  PyObject *__pyx_codeobj__740;
  PyObject *__pyx_codeobj__743;
  PyObject *__pyx_codeobj__745;
  PyObject *__pyx_codeobj__746;
  PyObject *__pyx_codeobj__748;
  PyObject *__pyx_codeobj__750;
  PyObject *__pyx_codeobj__751;
  PyObject *__pyx_codeobj__753;
  PyObject *__pyx_codeobj__755;
  PyObject *__pyx_codeobj__756;
  PyObject *__pyx_codeobj__757;
  PyObject *__pyx_codeobj__758;
  PyObject *__pyx_codeobj__760;
  PyObject *__pyx_codeobj__762;
  PyObject *__pyx_codeobj__763;
  PyObject *__pyx_codeobj__765;
  PyObject *__pyx_codeobj__766;
  PyObject *__pyx_codeobj__769;
  PyObject *__pyx_codeobj__771;
  PyObject *__pyx_codeobj__773;
  PyObject *__pyx_codeobj__775;
  PyObject *__pyx_codeobj__777;
} __pyx_mstate;

#if CYTHON_USE_MODULE_STATE
#ifdef __cplusplus
namespace {
  extern struct PyModuleDef __pyx_moduledef;
} /* anonymous namespace */
#else
static struct PyModuleDef __pyx_moduledef;
#endif

#define __pyx_mstate(o) ((__pyx_mstate *)__Pyx_PyModule_GetState(o))

#define __pyx_mstate_global (__pyx_mstate(PyState_FindModule(&__pyx_moduledef)))

#define __pyx_m (PyState_FindModule(&__pyx_moduledef))
#else
static __pyx_mstate __pyx_mstate_global_static =
#ifdef __cplusplus
    {};
#else
    {0};
#endif
static __pyx_mstate *__pyx_mstate_global = &__pyx_mstate_global_static;
#endif
/* #### Code section: module_state_clear ### */
#if CYTHON_USE_MODULE_STATE
static int __pyx_m_clear(PyObject *m) {
  __pyx_mstate *clear_module_state = __pyx_mstate(m);
  if (!clear_module_state) return 0;
  Py_CLEAR(clear_module_state->__pyx_d);
  Py_CLEAR(clear_module_state->__pyx_b);
  Py_CLEAR(clear_module_state->__pyx_cython_runtime);
  Py_CLEAR(clear_module_state->__pyx_empty_tuple);
  Py_CLEAR(clear_module_state->__pyx_empty_bytes);
  Py_CLEAR(clear_module_state->__pyx_empty_unicode);
  #ifdef __Pyx_CyFunction_USED
  Py_CLEAR(clear_module_state->__pyx_CyFunctionType);
  #endif
  #ifdef __Pyx_FusedFunction_USED
  Py_CLEAR(clear_module_state->__pyx_FusedFunctionType);
  #endif
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_dtype);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flatiter);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_broadcast);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ndarray);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_generic);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_number);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_integer);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_signedinteger);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_unsignedinteger);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_inexact);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_floating);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_complexfloating);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flexible);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_character);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ufunc);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjLROpt);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjLROpt);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVFS);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVFS);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjOption);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjOption);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVisual);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVisual_global_);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVisual_quality);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVisual_headlight);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVisual_map);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVisual_scale);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVisual_rgba);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjStatistic);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjStatistic);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjModel);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjModel);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjContact);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjContact);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjWarningStat);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjTimerStat);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjSolverStat);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjData);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjData);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvPerturb);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvCamera);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvCamera);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvGLCamera);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvGeom);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvGeom);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvLight);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvLight);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvOption);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvOption);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvScene);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvScene);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvFigure);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvFigure);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjrRect);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjrRect);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjrContext);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjrContext);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjuiState);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjuiState);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjuiThemeSpacing);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjuiThemeColor);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjuiItem);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjuiItem);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjuiSection);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjuiSection);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjUI);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjUI);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjuiDef);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_PyMjuiDef);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_MjSim);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_MjSim);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj_MjRenderContext);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names);
  Py_CLEAR(clear_module_state->__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr);
  Py_CLEAR(clear_module_state->__pyx_array_type);
  Py_CLEAR(clear_module_state->__pyx_type___pyx_array);
  Py_CLEAR(clear_module_state->__pyx_MemviewEnum_type);
  Py_CLEAR(clear_module_state->__pyx_type___pyx_MemviewEnum);
  Py_CLEAR(clear_module_state->__pyx_memoryview_type);
  Py_CLEAR(clear_module_state->__pyx_type___pyx_memoryview);
  Py_CLEAR(clear_module_state->__pyx_memoryviewslice_type);
  Py_CLEAR(clear_module_state->__pyx_type___pyx_memoryviewslice);
  Py_CLEAR(clear_module_state->__pyx_kp_u_);
  Py_CLEAR(clear_module_state->__pyx_n_s_ABCMeta);
  Py_CLEAR(clear_module_state->__pyx_n_s_ASCII);
  Py_CLEAR(clear_module_state->__pyx_kp_s_All_dimensions_preceding_dimensi);
  Py_CLEAR(clear_module_state->__pyx_n_s_AssertionError);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Buffer_view_does_not_expose_stri);
  Py_CLEAR(clear_module_state->__pyx_n_s_CAMERA_FIXED);
  Py_CLEAR(clear_module_state->__pyx_n_s_CAMERA_FREE);
  Py_CLEAR(clear_module_state->__pyx_n_s_CAT_DECOR);
  Py_CLEAR(clear_module_state->__pyx_n_u_CUDA_VISIBLE_DEVICES);
  Py_CLEAR(clear_module_state->__pyx_kp_u_CUDA_buffers_must_be_mapped_befo);
  Py_CLEAR(clear_module_state->__pyx_kp_u_CUDA_buffers_must_be_unmapped_be);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Can_only_create_a_buffer_that_is);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Cannot_assign_to_read_only_memor);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Cannot_create_writable_memory_vi);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Cannot_index_with_type);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Cannot_transpose_memoryview_with);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Class_to_wrap_capturing_excepti);
  Py_CLEAR(clear_module_state->__pyx_n_s_Context);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Creating_offscreen_glfw);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Creating_window_glfw);
  Py_CLEAR(clear_module_state->__pyx_n_s_CudaBufferMappedError);
  Py_CLEAR(clear_module_state->__pyx_n_s_CudaBufferNotMappedError);
  Py_CLEAR(clear_module_state->__pyx_n_s_CudaNotEnabledError);
  Py_CLEAR(clear_module_state->__pyx_n_s_DOUBLEBUFFER);
  Py_CLEAR(clear_module_state->__pyx_n_u_DYLD_LIBRARY_PATH);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Depth_not_enabled_Use_depth_True);
  Py_CLEAR(clear_module_state->__pyx_n_s_Device);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Dimension_d_is_not_direct);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ellipsis);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Empty_shape_tuple_for_cython_arr);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Every_value_in_udd_state_must_be);
  Py_CLEAR(clear_module_state->__pyx_n_s_FONTSCALE_150);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Failed_to_create_GLFW_window);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Failed_to_import_pycuda);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Failed_to_initialize_GLFW);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Failed_to_initialize_OpenGL);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Failed_to_load_XML_file);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Failed_to_load_XML_from_string);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Failed_to_save_XML);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Failed_to_set_buffer_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_GEOM_BOX);
  Py_CLEAR(clear_module_state->__pyx_n_s_GLFW_IS_INITIALIZED);
  Py_CLEAR(clear_module_state->__pyx_kp_u_GLFW_error_code_d_s);
  Py_CLEAR(clear_module_state->__pyx_kp_u_GLFW_not_installed);
  Py_CLEAR(clear_module_state->__pyx_n_u_GPUS);
  Py_CLEAR(clear_module_state->__pyx_n_s_GlfwContext);
  Py_CLEAR(clear_module_state->__pyx_n_s_GlfwContext___init);
  Py_CLEAR(clear_module_state->__pyx_n_s_GlfwContext__create_window);
  Py_CLEAR(clear_module_state->__pyx_n_s_GlfwContext__glfw_error_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_GlfwContext__init_glfw);
  Py_CLEAR(clear_module_state->__pyx_n_s_GlfwContext__set_window_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_GlfwContext_get_buffer_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_GlfwContext_make_context_current);
  Py_CLEAR(clear_module_state->__pyx_n_s_GlfwContext_set_buffer_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_GlfwError);
  Py_CLEAR(clear_module_state->__pyx_n_s_INIT_HEIGHT);
  Py_CLEAR(clear_module_state->__pyx_n_s_INIT_WIDTH);
  Py_CLEAR(clear_module_state->__pyx_n_s_ImportError);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0);
  Py_CLEAR(clear_module_state->__pyx_n_s_IndexError);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Index_out_of_bounds_axis_d);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Indirect_dimensions_not_supporte);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Invalid_mode_expected_c_or_fortr);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Invalid_shape_in_axis);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Keys_cannot_be_added_to_udd_stat);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Keys_cannot_be_dropped_from_udd);
  Py_CLEAR(clear_module_state->__pyx_n_s_Kp);
  Py_CLEAR(clear_module_state->__pyx_n_s_Kv);
  Py_CLEAR(clear_module_state->__pyx_n_s_Lock);
  Py_CLEAR(clear_module_state->__pyx_n_s_M);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Mapped_CUDA_depth_buffer_pointer);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Mapped_CUDA_rgb_buffer_pointer);
  Py_CLEAR(clear_module_state->__pyx_n_s_MemoryError);
  Py_CLEAR(clear_module_state->__pyx_kp_s_MemoryView_of_r_at_0x_x);
  Py_CLEAR(clear_module_state->__pyx_kp_s_MemoryView_of_r_object);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjBatchRenderer);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjBatchRendererException);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjBatchRendererNotSupported);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjBatchRenderer___del);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjBatchRenderer___init);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjBatchRenderer__init_cuda);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjBatchRenderer__read_cuda);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjBatchRenderer__read_nocuda);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjBatchRenderer_cuda_depth_buffe);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjBatchRenderer_cuda_rgb_buffer);
  Py_CLEAR(clear_module_state->__pyx_kp_u_MjBatchRenderer_currently_only_s);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjBatchRenderer_map);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjBatchRenderer_prepare_render_c);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjBatchRenderer_read);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjBatchRenderer_render);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjBatchRenderer_unmap);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContextOffscreen);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContextOffscreen___cinit);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContextWindow);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContextWindow___init);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContextWindow_render);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContextWindow_window);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext___setstate_cytho);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext__add_marker_to_s);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext__init_camera);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext__set_mujoco_buff);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext__setup_opengl_co);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext_add_marker);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext_add_overlay);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext_draw_pixels);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext_move_camera);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext_read_pixels);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext_read_pixels_dept);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext_render);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext_update_offscreen);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext_update_sim);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjRenderContext_upload_texture);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSimState);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSimState___eq);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSimState___ne);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSimState__flatten_dict);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSimState__unflatten_dict);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSimState_flatten);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSimState_from_flattened);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_add_render_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_forward);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_get_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_ray);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_ray_fast_group);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_ray_fast_nogroup);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_render);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_render_lock);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_reset);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_save);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_set_constants);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_set_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_set_state_from_flattened);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_set_substep_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_step);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_step_udd);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjSim_substep_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_MjViewer);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Mode_must_be_either_window_or_of);
  Py_CLEAR(clear_module_state->__pyx_n_s_N);
  Py_CLEAR(clear_module_state->__pyx_n_s_NGAIN);
  Py_CLEAR(clear_module_state->__pyx_n_s_NamedTemporaryFile);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_actuator_with_id_d_exists);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_actuator_with_name);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_body_with_id_d_exists);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_body_with_name);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_camera_with_id_d_exists);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_camera_with_name);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_geom_with_id_d_exists);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_geom_with_name);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_joint_with_id_d_exists);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_joint_with_name);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_light_with_id_d_exists);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_light_with_name);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_mesh_with_id_d_exists);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_mesh_with_name);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_sensor_with_id_d_exists);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_sensor_with_name);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_site_with_id_d_exists);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_site_with_name);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_tendon_with_id_d_exists);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_tendon_with_name);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_userdata_with_id_d_exists);
  Py_CLEAR(clear_module_state->__pyx_kp_u_No_userdata_with_name);
  Py_CLEAR(clear_module_state->__pyx_kp_u_None);
  Py_CLEAR(clear_module_state->__pyx_n_s_NotImplemented);
  Py_CLEAR(clear_module_state->__pyx_n_s_NotImplementedError);
  Py_CLEAR(clear_module_state->__pyx_n_s_Number);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Numpy_array_values_in_udd_state);
  Py_CLEAR(clear_module_state->__pyx_n_b_O);
  Py_CLEAR(clear_module_state->__pyx_n_s_OBJ_UNKNOWN);
  Py_CLEAR(clear_module_state->__pyx_n_s_OffscreenOpenGLContext);
  Py_CLEAR(clear_module_state->__pyx_n_s_OffscreenOpenGLContext___init);
  Py_CLEAR(clear_module_state->__pyx_n_s_OffscreenOpenGLContext_close);
  Py_CLEAR(clear_module_state->__pyx_n_s_OffscreenOpenGLContext_make_cont);
  Py_CLEAR(clear_module_state->__pyx_n_s_OffscreenOpenGLContext_set_buffe);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Offscreen_rendering_not_supporte);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Only_GlfwContext_supported_for_w);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Only_label_is_a_string_in_mjvGeo);
  Py_CLEAR(clear_module_state->__pyx_n_s_OpenGLContext);
  Py_CLEAR(clear_module_state->__pyx_n_s_OpenGLContext_make_context_curre);
  Py_CLEAR(clear_module_state->__pyx_n_s_OpenGLContext_set_buffer_size);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
  Py_CLEAR(clear_module_state->__pyx_n_s_OverflowError);
  Py_CLEAR(clear_module_state->__pyx_n_s_PickleError);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjContact);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjContact___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjContact___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_body_jacp);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_body_jacr);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_body_ximat);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_body_xipos);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_body_xmat);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_body_xpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_body_xquat);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_body_xvelp);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_body_xvelr);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_cam_xmat);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_cam_xpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_camera_xmat);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_camera_xpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_geom_jacp);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_geom_jacr);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_geom_xmat);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_geom_xpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_geom_xvelp);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_geom_xvelr);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_joint_qpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_joint_qvel);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_joint_xanchor);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_joint_xaxis);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_light_xdir);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_light_xpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_mocap_pos);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_mocap_quat);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_sensor);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_sensordata);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_site_jacp);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_site_jacr);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_site_xmat);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_site_xpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_site_xvelp);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_site_xvelr);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_userdata);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_xanchor);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_xaxis);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_ximat);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_xipos);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_xmat);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_xpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_get_xquat);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_set_joint_qpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_set_joint_qvel);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_set_mocap_pos);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjData_set_mocap_quat);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjLROpt);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjLROpt___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjLROpt___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel__extract_mj_names_loca);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_actuator_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_actuator_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_body_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_body_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_camera_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_camera_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_geom_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_geom_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_get_joint_qpos_addr);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_get_joint_qvel_addr);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_get_mjb);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_get_xml);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_joint_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_joint_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_light_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_light_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_mesh_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_mesh_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_sensor_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_sensor_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_set_userdata_names);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_site_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_site_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_tendon_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_tendon_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_userdata_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjModel_userdata_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjOption);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjOption___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjOption___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjSolverStat);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjSolverStat___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjSolverStat___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjStatistic);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjStatistic___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjStatistic___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjTimerStat);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjTimerStat___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjTimerStat___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjUI);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjUI___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjUI___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVFS);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVFS___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVFS___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_global);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_global____reduce_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_global____setstate_cy);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_headlight);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_headlight___reduce_cy);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_headlight___setstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_map);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_map___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_map___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_quality);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_quality___reduce_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_quality___setstate_cy);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_rgba);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_rgba___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_rgba___setstate_cytho);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_scale);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_scale___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjVisual_scale___setstate_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjWarningStat);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjWarningStat___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjWarningStat___setstate_cytho);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjrContext);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjrContext___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjrContext___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjrRect);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjrRect___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjrRect___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiDef);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiDef___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiDef___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiItem);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiItem___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiItem___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiSection);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiSection___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiSection___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiState);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiState___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiState___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiThemeColor);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiThemeColor___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiThemeColor___setstate_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiThemeSpacing);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiThemeSpacing___reduce_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjuiThemeSpacing___setstate_cy);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvCamera);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvCamera___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvCamera___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvFigure);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvFigure___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvFigure___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvGLCamera);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvGLCamera___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvGLCamera___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvGeom);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvGeom___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvGeom___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvLight);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvLight___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvLight___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvOption);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvOption___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvOption___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvPerturb);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvPerturb___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvPerturb___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvScene);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvScene___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PyMjvScene___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_RND_IDCOLOR);
  Py_CLEAR(clear_module_state->__pyx_n_s_RND_SEGMENT);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Ran_out_of_geoms_maxgeom_d);
  Py_CLEAR(clear_module_state->__pyx_n_s_RegisteredBuffer);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Represents_a_snapshot_of_the_sim);
  Py_CLEAR(clear_module_state->__pyx_n_s_RuntimeError);
  Py_CLEAR(clear_module_state->__pyx_n_s_SAMPLES);
  Py_CLEAR(clear_module_state->__pyx_n_s_Sequence);
  Py_CLEAR(clear_module_state->__pyx_n_u_SimStateBase);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Step_may_not_be_zero_axis_d);
  Py_CLEAR(clear_module_state->__pyx_kp_b_T);
  Py_CLEAR(clear_module_state->__pyx_n_s_TemporaryDirectory);
  Py_CLEAR(clear_module_state->__pyx_n_s_TypeError);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Unable_to_convert_item_to_object);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Unrecognized_extension_for_s_Exp);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Unsupported_format_Valid_ones_ar);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Utility_class_for_rendering_int);
  Py_CLEAR(clear_module_state->__pyx_n_s_VISIBLE);
  Py_CLEAR(clear_module_state->__pyx_n_s_ValueError);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Value_has_incorrect_shape);
  Py_CLEAR(clear_module_state->__pyx_n_s_View_MemoryView);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Window_rendering_not_supported);
  Py_CLEAR(clear_module_state->__pyx_kp_b__10);
  Py_CLEAR(clear_module_state->__pyx_kp_u__10);
  Py_CLEAR(clear_module_state->__pyx_kp_b__11);
  Py_CLEAR(clear_module_state->__pyx_kp_b__12);
  Py_CLEAR(clear_module_state->__pyx_kp_u__13);
  Py_CLEAR(clear_module_state->__pyx_kp_u__14);
  Py_CLEAR(clear_module_state->__pyx_kp_u__2);
  Py_CLEAR(clear_module_state->__pyx_n_s__3);
  Py_CLEAR(clear_module_state->__pyx_kp_u__34);
  Py_CLEAR(clear_module_state->__pyx_kp_u__41);
  Py_CLEAR(clear_module_state->__pyx_kp_u__44);
  Py_CLEAR(clear_module_state->__pyx_kp_u__52);
  Py_CLEAR(clear_module_state->__pyx_kp_u__6);
  Py_CLEAR(clear_module_state->__pyx_n_s__637);
  Py_CLEAR(clear_module_state->__pyx_kp_u__7);
  Py_CLEAR(clear_module_state->__pyx_n_s__778);
  Py_CLEAR(clear_module_state->__pyx_kp_b__9);
  Py_CLEAR(clear_module_state->__pyx_n_s_a);
  Py_CLEAR(clear_module_state->__pyx_n_s_a0);
  Py_CLEAR(clear_module_state->__pyx_n_s_a1);
  Py_CLEAR(clear_module_state->__pyx_n_s_a2);
  Py_CLEAR(clear_module_state->__pyx_n_s_abc);
  Py_CLEAR(clear_module_state->__pyx_n_s_abstractmethod);
  Py_CLEAR(clear_module_state->__pyx_n_s_acc0);
  Py_CLEAR(clear_module_state->__pyx_n_s_act);
  Py_CLEAR(clear_module_state->__pyx_n_u_act);
  Py_CLEAR(clear_module_state->__pyx_n_s_action);
  Py_CLEAR(clear_module_state->__pyx_kp_u_active_contacts_efc_pos_should_b);
  Py_CLEAR(clear_module_state->__pyx_n_s_actuator_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_actuator_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_add_marker);
  Py_CLEAR(clear_module_state->__pyx_n_s_add_marker_to_scene);
  Py_CLEAR(clear_module_state->__pyx_n_s_add_mujoco_bin_to_dyld_library);
  Py_CLEAR(clear_module_state->__pyx_n_s_add_overlay);
  Py_CLEAR(clear_module_state->__pyx_n_s_add_render_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_addr);
  Py_CLEAR(clear_module_state->__pyx_n_s_allocate_buffer);
  Py_CLEAR(clear_module_state->__pyx_kp_u_and);
  Py_CLEAR(clear_module_state->__pyx_n_s_angle);
  Py_CLEAR(clear_module_state->__pyx_n_s_appendChild);
  Py_CLEAR(clear_module_state->__pyx_n_s_args);
  Py_CLEAR(clear_module_state->__pyx_n_s_arr);
  Py_CLEAR(clear_module_state->__pyx_n_s_array);
  Py_CLEAR(clear_module_state->__pyx_n_s_array_equal);
  Py_CLEAR(clear_module_state->__pyx_n_s_asarray);
  Py_CLEAR(clear_module_state->__pyx_n_s_aspectratio);
  Py_CLEAR(clear_module_state->__pyx_n_s_asyncio_coroutines);
  Py_CLEAR(clear_module_state->__pyx_n_s_attr);
  Py_CLEAR(clear_module_state->__pyx_n_s_axis);
  Py_CLEAR(clear_module_state->__pyx_n_s_b);
  Py_CLEAR(clear_module_state->__pyx_n_s_b0);
  Py_CLEAR(clear_module_state->__pyx_n_s_b1);
  Py_CLEAR(clear_module_state->__pyx_n_s_b2);
  Py_CLEAR(clear_module_state->__pyx_kp_u_bad_userdata_names);
  Py_CLEAR(clear_module_state->__pyx_n_s_base);
  Py_CLEAR(clear_module_state->__pyx_n_s_batch_offset);
  Py_CLEAR(clear_module_state->__pyx_kp_u_batch_offset_out_of_range);
  Py_CLEAR(clear_module_state->__pyx_n_s_batch_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_batch_size_2);
  Py_CLEAR(clear_module_state->__pyx_n_u_bin);
  Py_CLEAR(clear_module_state->__pyx_n_s_bin_path);
  Py_CLEAR(clear_module_state->__pyx_n_s_body);
  Py_CLEAR(clear_module_state->__pyx_n_s_body_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_body_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_body_jacp);
  Py_CLEAR(clear_module_state->__pyx_n_s_body_jacr);
  Py_CLEAR(clear_module_state->__pyx_n_s_body_mocapid);
  Py_CLEAR(clear_module_state->__pyx_n_s_body_name2id);
  Py_CLEAR(clear_module_state->__pyx_kp_u_body_xmat_should_be_used_instead);
  Py_CLEAR(clear_module_state->__pyx_kp_u_body_xpos_should_be_used_instead);
  Py_CLEAR(clear_module_state->__pyx_kp_u_body_xquat_should_be_used_instea);
  Py_CLEAR(clear_module_state->__pyx_n_s_bodyexclude);
  Py_CLEAR(clear_module_state->__pyx_n_s_bottom);
  Py_CLEAR(clear_module_state->__pyx_n_s_buffer);
  Py_CLEAR(clear_module_state->__pyx_n_s_buffer_sz);
  Py_CLEAR(clear_module_state->__pyx_n_s_buffer_view);
  Py_CLEAR(clear_module_state->__pyx_n_s_build_callback_fn);
  Py_CLEAR(clear_module_state->__pyx_n_s_c);
  Py_CLEAR(clear_module_state->__pyx_n_u_c);
  Py_CLEAR(clear_module_state->__pyx_n_s_c1);
  Py_CLEAR(clear_module_state->__pyx_n_s_c2);
  Py_CLEAR(clear_module_state->__pyx_n_s_cam);
  Py_CLEAR(clear_module_state->__pyx_n_s_camera_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_camera_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_camera_name);
  Py_CLEAR(clear_module_state->__pyx_n_s_camera_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_catmask);
  Py_CLEAR(clear_module_state->__pyx_n_s_childNodes);
  Py_CLEAR(clear_module_state->__pyx_n_s_cinit);
  Py_CLEAR(clear_module_state->__pyx_n_s_class);
  Py_CLEAR(clear_module_state->__pyx_n_s_class_getitem);
  Py_CLEAR(clear_module_state->__pyx_n_s_cline_in_traceback);
  Py_CLEAR(clear_module_state->__pyx_n_s_close);
  Py_CLEAR(clear_module_state->__pyx_n_s_colind);
  Py_CLEAR(clear_module_state->__pyx_n_s_collections);
  Py_CLEAR(clear_module_state->__pyx_kp_s_collections_abc);
  Py_CLEAR(clear_module_state->__pyx_n_s_con);
  Py_CLEAR(clear_module_state->__pyx_n_s_concatenate);
  Py_CLEAR(clear_module_state->__pyx_n_s_const);
  Py_CLEAR(clear_module_state->__pyx_kp_s_contiguous_and_direct);
  Py_CLEAR(clear_module_state->__pyx_kp_s_contiguous_and_indirect);
  Py_CLEAR(clear_module_state->__pyx_n_s_copy);
  Py_CLEAR(clear_module_state->__pyx_n_s_cost);
  Py_CLEAR(clear_module_state->__pyx_n_s_count);
  Py_CLEAR(clear_module_state->__pyx_n_s_createElement);
  Py_CLEAR(clear_module_state->__pyx_n_s_create_window);
  Py_CLEAR(clear_module_state->__pyx_n_s_create_window_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_ctrl);
  Py_CLEAR(clear_module_state->__pyx_n_s_cuda_buffers_are_mapped);
  Py_CLEAR(clear_module_state->__pyx_n_s_cuda_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_cuda_depth_buf_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_cuda_depth_buffer_pointer);
  Py_CLEAR(clear_module_state->__pyx_n_s_cuda_depth_mapping);
  Py_CLEAR(clear_module_state->__pyx_n_s_cuda_depth_pbo);
  Py_CLEAR(clear_module_state->__pyx_n_s_cuda_depth_ptr);
  Py_CLEAR(clear_module_state->__pyx_n_s_cuda_rgb_buf_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_cuda_rgb_buffer_pointer);
  Py_CLEAR(clear_module_state->__pyx_n_s_cuda_rgb_mapping);
  Py_CLEAR(clear_module_state->__pyx_n_s_cuda_rgb_pbo);
  Py_CLEAR(clear_module_state->__pyx_n_s_cuda_rgb_ptr);
  Py_CLEAR(clear_module_state->__pyx_n_s_current_batch_offset);
  Py_CLEAR(clear_module_state->__pyx_n_s_d);
  Py_CLEAR(clear_module_state->__pyx_n_u_d);
  Py_CLEAR(clear_module_state->__pyx_n_u_darwin);
  Py_CLEAR(clear_module_state->__pyx_n_s_data);
  Py_CLEAR(clear_module_state->__pyx_n_s_deepcopy);
  Py_CLEAR(clear_module_state->__pyx_n_s_def);
  Py_CLEAR(clear_module_state->__pyx_n_s_del);
  Py_CLEAR(clear_module_state->__pyx_n_s_delete);
  Py_CLEAR(clear_module_state->__pyx_n_s_depth);
  Py_CLEAR(clear_module_state->__pyx_n_s_depth_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_depth_arr);
  Py_CLEAR(clear_module_state->__pyx_n_s_depth_img);
  Py_CLEAR(clear_module_state->__pyx_n_s_depth_view);
  Py_CLEAR(clear_module_state->__pyx_n_s_derivative_error);
  Py_CLEAR(clear_module_state->__pyx_n_s_derivative_gain_smoothing);
  Py_CLEAR(clear_module_state->__pyx_n_s_derivative_time_const);
  Py_CLEAR(clear_module_state->__pyx_n_s_description);
  Py_CLEAR(clear_module_state->__pyx_n_s_dest);
  Py_CLEAR(clear_module_state->__pyx_n_s_detach);
  Py_CLEAR(clear_module_state->__pyx_n_s_device);
  Py_CLEAR(clear_module_state->__pyx_n_s_device_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_device_id_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_device_ptr_and_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_diag);
  Py_CLEAR(clear_module_state->__pyx_n_s_dict);
  Py_CLEAR(clear_module_state->__pyx_n_s_dim);
  Py_CLEAR(clear_module_state->__pyx_n_s_directory);
  Py_CLEAR(clear_module_state->__pyx_kp_u_disable);
  Py_CLEAR(clear_module_state->__pyx_n_s_discover_mujoco);
  Py_CLEAR(clear_module_state->__pyx_n_s_distance);
  Py_CLEAR(clear_module_state->__pyx_n_s_doc);
  Py_CLEAR(clear_module_state->__pyx_kp_u_doesn_t_match_old_pointer);
  Py_CLEAR(clear_module_state->__pyx_n_s_dom);
  Py_CLEAR(clear_module_state->__pyx_n_s_dot);
  Py_CLEAR(clear_module_state->__pyx_n_s_draw_pixels);
  Py_CLEAR(clear_module_state->__pyx_n_s_driver);
  Py_CLEAR(clear_module_state->__pyx_n_s_drv);
  Py_CLEAR(clear_module_state->__pyx_n_s_dst);
  Py_CLEAR(clear_module_state->__pyx_n_s_dt);
  Py_CLEAR(clear_module_state->__pyx_n_s_dt_seconds);
  Py_CLEAR(clear_module_state->__pyx_n_s_dtype);
  Py_CLEAR(clear_module_state->__pyx_n_s_dtype_is_object);
  Py_CLEAR(clear_module_state->__pyx_n_s_eigval);
  Py_CLEAR(clear_module_state->__pyx_n_s_eigvec);
  Py_CLEAR(clear_module_state->__pyx_n_s_element);
  Py_CLEAR(clear_module_state->__pyx_n_s_empty);
  Py_CLEAR(clear_module_state->__pyx_kp_u_enable);
  Py_CLEAR(clear_module_state->__pyx_n_s_encode);
  Py_CLEAR(clear_module_state->__pyx_n_s_end_i);
  Py_CLEAR(clear_module_state->__pyx_n_s_enter);
  Py_CLEAR(clear_module_state->__pyx_n_s_enumerate);
  Py_CLEAR(clear_module_state->__pyx_n_s_environ);
  Py_CLEAR(clear_module_state->__pyx_n_s_eq);
  Py_CLEAR(clear_module_state->__pyx_n_s_err_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_error);
  Py_CLEAR(clear_module_state->__pyx_n_s_error_code);
  Py_CLEAR(clear_module_state->__pyx_n_s_error_deadband);
  Py_CLEAR(clear_module_state->__pyx_n_s_error_sz);
  Py_CLEAR(clear_module_state->__pyx_n_s_errors);
  Py_CLEAR(clear_module_state->__pyx_n_s_errstr);
  Py_CLEAR(clear_module_state->__pyx_n_s_exclude_body);
  Py_CLEAR(clear_module_state->__pyx_kp_u_exists_Available_actuator_names);
  Py_CLEAR(clear_module_state->__pyx_kp_u_exists_Available_body_names);
  Py_CLEAR(clear_module_state->__pyx_kp_u_exists_Available_camera_names);
  Py_CLEAR(clear_module_state->__pyx_kp_u_exists_Available_geom_names);
  Py_CLEAR(clear_module_state->__pyx_kp_u_exists_Available_joint_names);
  Py_CLEAR(clear_module_state->__pyx_kp_u_exists_Available_light_names);
  Py_CLEAR(clear_module_state->__pyx_kp_u_exists_Available_mesh_names);
  Py_CLEAR(clear_module_state->__pyx_kp_u_exists_Available_sensor_names);
  Py_CLEAR(clear_module_state->__pyx_kp_u_exists_Available_site_names);
  Py_CLEAR(clear_module_state->__pyx_kp_u_exists_Available_tendon_names);
  Py_CLEAR(clear_module_state->__pyx_kp_u_exists_Available_userdata_names);
  Py_CLEAR(clear_module_state->__pyx_n_s_exit);
  Py_CLEAR(clear_module_state->__pyx_n_s_extent);
  Py_CLEAR(clear_module_state->__pyx_n_s_eye);
  Py_CLEAR(clear_module_state->__pyx_n_s_f);
  Py_CLEAR(clear_module_state->__pyx_n_s_feedback);
  Py_CLEAR(clear_module_state->__pyx_n_s_fig);
  Py_CLEAR(clear_module_state->__pyx_n_s_file);
  Py_CLEAR(clear_module_state->__pyx_n_s_filename);
  Py_CLEAR(clear_module_state->__pyx_n_s_filesize);
  Py_CLEAR(clear_module_state->__pyx_n_s_fill_value);
  Py_CLEAR(clear_module_state->__pyx_n_s_fixedcamid);
  Py_CLEAR(clear_module_state->__pyx_n_s_flags);
  Py_CLEAR(clear_module_state->__pyx_n_s_flat_udd_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_flatten);
  Py_CLEAR(clear_module_state->__pyx_n_s_flatten_dict);
  Py_CLEAR(clear_module_state->__pyx_n_s_flg_acc);
  Py_CLEAR(clear_module_state->__pyx_n_s_flg_color);
  Py_CLEAR(clear_module_state->__pyx_n_s_flg_coneHessian);
  Py_CLEAR(clear_module_state->__pyx_n_s_flg_depth);
  Py_CLEAR(clear_module_state->__pyx_n_s_flg_force);
  Py_CLEAR(clear_module_state->__pyx_n_s_flg_html);
  Py_CLEAR(clear_module_state->__pyx_n_s_flg_local);
  Py_CLEAR(clear_module_state->__pyx_n_s_flg_pad);
  Py_CLEAR(clear_module_state->__pyx_n_s_flg_paused);
  Py_CLEAR(clear_module_state->__pyx_n_s_flg_plus);
  Py_CLEAR(clear_module_state->__pyx_n_s_flg_static);
  Py_CLEAR(clear_module_state->__pyx_n_s_float32);
  Py_CLEAR(clear_module_state->__pyx_n_s_float64);
  Py_CLEAR(clear_module_state->__pyx_n_s_flush);
  Py_CLEAR(clear_module_state->__pyx_n_s_font);
  Py_CLEAR(clear_module_state->__pyx_n_s_fontscale);
  Py_CLEAR(clear_module_state->__pyx_n_s_force);
  Py_CLEAR(clear_module_state->__pyx_n_s_format);
  Py_CLEAR(clear_module_state->__pyx_n_s_fortran);
  Py_CLEAR(clear_module_state->__pyx_n_u_fortran);
  Py_CLEAR(clear_module_state->__pyx_n_s_forward);
  Py_CLEAR(clear_module_state->__pyx_n_s_fp);
  Py_CLEAR(clear_module_state->__pyx_n_s_framebuffer);
  Py_CLEAR(clear_module_state->__pyx_n_s_from_device);
  Py_CLEAR(clear_module_state->__pyx_n_s_from_flattened);
  Py_CLEAR(clear_module_state->__pyx_n_s_full);
  Py_CLEAR(clear_module_state->__pyx_n_s_g);
  Py_CLEAR(clear_module_state->__pyx_kp_u_gc);
  Py_CLEAR(clear_module_state->__pyx_n_s_genexpr);
  Py_CLEAR(clear_module_state->__pyx_n_s_geom);
  Py_CLEAR(clear_module_state->__pyx_n_s_geom_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_geom_jacp);
  Py_CLEAR(clear_module_state->__pyx_n_s_geom_jacr);
  Py_CLEAR(clear_module_state->__pyx_n_s_geom_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_geom_xpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_geomgroup);
  Py_CLEAR(clear_module_state->__pyx_n_s_geomgroup_view);
  Py_CLEAR(clear_module_state->__pyx_n_s_geomid);
  Py_CLEAR(clear_module_state->__pyx_n_s_geomtype);
  Py_CLEAR(clear_module_state->__pyx_n_s_getElementsByTagName);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_body_jacp);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_body_jacr);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_body_ximat);
  Py_CLEAR(clear_module_state->__pyx_kp_u_get_body_ximat_should_be_used_in);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_body_xipos);
  Py_CLEAR(clear_module_state->__pyx_kp_u_get_body_xipos_should_be_used_in);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_body_xmat);
  Py_CLEAR(clear_module_state->__pyx_kp_u_get_body_xmat_should_be_used_ins);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_body_xpos);
  Py_CLEAR(clear_module_state->__pyx_kp_u_get_body_xpos_should_be_used_ins);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_body_xquat);
  Py_CLEAR(clear_module_state->__pyx_kp_u_get_body_xquat_should_be_used_in);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_body_xvelp);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_body_xvelr);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_buffer_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_cam_xmat);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_cam_xpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_camera_xmat);
  Py_CLEAR(clear_module_state->__pyx_kp_u_get_camera_xmat_should_be_used_i);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_camera_xpos);
  Py_CLEAR(clear_module_state->__pyx_kp_u_get_camera_xpos_should_be_used_i);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_error_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_framebuffer_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_geom_jacp);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_geom_jacr);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_geom_xmat);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_geom_xpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_geom_xvelp);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_geom_xvelr);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_joint_qpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_joint_qpos_addr);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_joint_qvel);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_joint_qvel_addr);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_joint_xanchor);
  Py_CLEAR(clear_module_state->__pyx_kp_u_get_joint_xanchor_should_be_used);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_joint_xaxis);
  Py_CLEAR(clear_module_state->__pyx_kp_u_get_joint_xaxis_should_be_used_i);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_light_xdir);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_light_xpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_mjb);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_mocap_pos);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_mocap_quat);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_primary_monitor);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_sensor);
  Py_CLEAR(clear_module_state->__pyx_kp_u_get_sensor_should_be_used_instea);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_sensordata);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_site_jacp);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_site_jacr);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_site_xmat);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_site_xpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_site_xvelp);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_site_xvelr);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_userdata);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_video_mode);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_warning_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_xanchor);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_xaxis);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_ximat);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_xipos);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_xmat);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_xml);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_xpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_get_xquat);
  Py_CLEAR(clear_module_state->__pyx_n_s_getenv);
  Py_CLEAR(clear_module_state->__pyx_n_s_getstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_glfw);
  Py_CLEAR(clear_module_state->__pyx_n_u_glfw);
  Py_CLEAR(clear_module_state->__pyx_n_s_glfw_error_callback);
  Py_CLEAR(clear_module_state->__pyx_kp_u_got);
  Py_CLEAR(clear_module_state->__pyx_kp_u_got_differing_extents_in_dimensi);
  Py_CLEAR(clear_module_state->__pyx_n_s_gridpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_group_filter);
  Py_CLEAR(clear_module_state->__pyx_n_s_headpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_height);
  Py_CLEAR(clear_module_state->__pyx_n_s_height_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_hfieldid);
  Py_CLEAR(clear_module_state->__pyx_n_s_i);
  Py_CLEAR(clear_module_state->__pyx_n_s_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_idx);
  Py_CLEAR(clear_module_state->__pyx_n_s_idx_act);
  Py_CLEAR(clear_module_state->__pyx_n_s_idx_qpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_idx_qvel);
  Py_CLEAR(clear_module_state->__pyx_n_s_idx_time);
  Py_CLEAR(clear_module_state->__pyx_n_s_idx_udd);
  Py_CLEAR(clear_module_state->__pyx_n_s_image);
  Py_CLEAR(clear_module_state->__pyx_n_s_image_view);
  Py_CLEAR(clear_module_state->__pyx_n_s_import);
  Py_CLEAR(clear_module_state->__pyx_n_s_include_static_geoms);
  Py_CLEAR(clear_module_state->__pyx_n_s_indent);
  Py_CLEAR(clear_module_state->__pyx_n_s_index);
  Py_CLEAR(clear_module_state->__pyx_n_u_inertial);
  Py_CLEAR(clear_module_state->__pyx_n_s_info);
  Py_CLEAR(clear_module_state->__pyx_n_s_init);
  Py_CLEAR(clear_module_state->__pyx_n_s_init_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_init_camera);
  Py_CLEAR(clear_module_state->__pyx_n_s_init_cuda);
  Py_CLEAR(clear_module_state->__pyx_n_s_init_glfw);
  Py_CLEAR(clear_module_state->__pyx_n_s_init_height);
  Py_CLEAR(clear_module_state->__pyx_n_s_init_subclass);
  Py_CLEAR(clear_module_state->__pyx_n_s_init_width);
  Py_CLEAR(clear_module_state->__pyx_n_s_initializing);
  Py_CLEAR(clear_module_state->__pyx_kp_u_insufficient_userdata);
  Py_CLEAR(clear_module_state->__pyx_n_s_int32);
  Py_CLEAR(clear_module_state->__pyx_n_s_int64);
  Py_CLEAR(clear_module_state->__pyx_n_s_integral_error);
  Py_CLEAR(clear_module_state->__pyx_n_s_integral_max_clamp);
  Py_CLEAR(clear_module_state->__pyx_n_s_integral_time_const);
  Py_CLEAR(clear_module_state->__pyx_kp_u_invalid);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_coroutine);
  Py_CLEAR(clear_module_state->__pyx_kp_u_isenabled);
  Py_CLEAR(clear_module_state->__pyx_n_s_item);
  Py_CLEAR(clear_module_state->__pyx_n_s_items);
  Py_CLEAR(clear_module_state->__pyx_n_s_itemsize);
  Py_CLEAR(clear_module_state->__pyx_kp_s_itemsize_0_for_cython_array);
  Py_CLEAR(clear_module_state->__pyx_n_s_jacAxis);
  Py_CLEAR(clear_module_state->__pyx_n_s_jacPoint);
  Py_CLEAR(clear_module_state->__pyx_n_s_jacp);
  Py_CLEAR(clear_module_state->__pyx_n_s_jacp_view);
  Py_CLEAR(clear_module_state->__pyx_n_s_jacr);
  Py_CLEAR(clear_module_state->__pyx_n_s_jacr_view);
  Py_CLEAR(clear_module_state->__pyx_n_s_jar);
  Py_CLEAR(clear_module_state->__pyx_n_s_jnt_dofadr);
  Py_CLEAR(clear_module_state->__pyx_n_s_jnt_qposadr);
  Py_CLEAR(clear_module_state->__pyx_n_s_jnt_type);
  Py_CLEAR(clear_module_state->__pyx_n_s_join);
  Py_CLEAR(clear_module_state->__pyx_n_s_joint_addr);
  Py_CLEAR(clear_module_state->__pyx_n_s_joint_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_joint_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_joint_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_joint_type);
  Py_CLEAR(clear_module_state->__pyx_n_s_k);
  Py_CLEAR(clear_module_state->__pyx_n_s_keep_inertials);
  Py_CLEAR(clear_module_state->__pyx_n_s_key);
  Py_CLEAR(clear_module_state->__pyx_n_u_key);
  Py_CLEAR(clear_module_state->__pyx_n_s_key_el);
  Py_CLEAR(clear_module_state->__pyx_n_u_keyframe);
  Py_CLEAR(clear_module_state->__pyx_n_s_keyframe_el);
  Py_CLEAR(clear_module_state->__pyx_n_s_keys);
  Py_CLEAR(clear_module_state->__pyx_n_u_label);
  Py_CLEAR(clear_module_state->__pyx_n_s_left);
  Py_CLEAR(clear_module_state->__pyx_n_s_len);
  Py_CLEAR(clear_module_state->__pyx_n_s_lengthrange);
  Py_CLEAR(clear_module_state->__pyx_n_s_light_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_light_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_list);
  Py_CLEAR(clear_module_state->__pyx_n_s_load_model_from_mjb);
  Py_CLEAR(clear_module_state->__pyx_n_s_load_model_from_path);
  Py_CLEAR(clear_module_state->__pyx_n_s_load_model_from_xml);
  Py_CLEAR(clear_module_state->__pyx_n_s_logging);
  Py_CLEAR(clear_module_state->__pyx_n_s_lookat);
  Py_CLEAR(clear_module_state->__pyx_n_s_lower);
  Py_CLEAR(clear_module_state->__pyx_n_s_m);
  Py_CLEAR(clear_module_state->__pyx_n_s_main);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_context_current);
  Py_CLEAR(clear_module_state->__pyx_n_s_map);
  Py_CLEAR(clear_module_state->__pyx_n_s_marker_params);
  Py_CLEAR(clear_module_state->__pyx_n_s_mat);
  Py_CLEAR(clear_module_state->__pyx_n_s_mat1);
  Py_CLEAR(clear_module_state->__pyx_n_s_mat2);
  Py_CLEAR(clear_module_state->__pyx_n_s_maxgeom);
  Py_CLEAR(clear_module_state->__pyx_n_s_median);
  Py_CLEAR(clear_module_state->__pyx_n_s_memview);
  Py_CLEAR(clear_module_state->__pyx_n_s_mesh_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_mesh_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_meshid);
  Py_CLEAR(clear_module_state->__pyx_n_s_metaclass);
  Py_CLEAR(clear_module_state->__pyx_n_s_mindiag);
  Py_CLEAR(clear_module_state->__pyx_n_s_minidom);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_Euler);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_RungeKutta);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_activate);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_addContact);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_addFileVFS);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_addM);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_applyFT);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_camlight);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_checkAcc);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_checkPos);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_checkVel);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_collision);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_comPos);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_comVel);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_compareFwdInv);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_constraintUpdate);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_contactForce);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_copyModel);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_crb);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_deactivate);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_defaultLROpt);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_defaultOption);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_defaultSolRefImp);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_defaultVFS);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_defaultVisual);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_deleteData);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_deleteFileVFS);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_deleteModel);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_deleteVFS);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_differentiatePos);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_energyPos);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_energyVel);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_factorM);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_findFileVFS);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_forward);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_forwardSkip);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_freeLastXML);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_fullM);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_fwdAcceleration);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_fwdActuation);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_fwdConstraint);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_fwdPosition);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_fwdVelocity);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_getTotalmass);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_integratePos);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_invConstraint);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_invPosition);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_invVelocity);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_inverse);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_inverseSkip);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_isDual);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_isPyramidal);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_isSparse);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_jac);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_jacBody);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_jacBodyCom);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_jacGeom);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_jacPointAxis);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_jacSite);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_kinematics);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_loadModel);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_loadXML);
  Py_CLEAR(clear_module_state->__pyx_kp_u_mj_loadXML_error);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_local2Global);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_makeConstraint);
  Py_CLEAR(clear_module_state->__pyx_kp_u_mj_makeData_failed);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_makeEmptyFileVFS);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_mulJacTVec);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_mulJacVec);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_mulM);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_mulM2);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_normalizeQuat);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_objectAcceleration);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_objectVelocity);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_passive);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_printData);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_printModel);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_printSchema);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_projectConstraint);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_ray);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_rayHfield);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_rayMesh);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_referenceConstraint);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_resetCallbacks);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_resetData);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_resetDataKeyframe);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_rne);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_rnePostConstraint);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_saveLastXML);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_sensorAcc);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_sensorPos);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_sensorVel);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_setConst);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_setLengthRange);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_setTotalmass);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_sizeModel);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_solveM);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_solveM2);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_step);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_step1);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_step2);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_subtreeVel);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_tendon);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_transmission);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_version);
  Py_CLEAR(clear_module_state->__pyx_n_s_mj_warning);
  Py_CLEAR(clear_module_state->__pyx_n_u_mjb);
  Py_CLEAR(clear_module_state->__pyx_kp_u_mjb_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjb_bytes);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_addAux);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_blitAux);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_blitBuffer);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_changeFont);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_defaultContext);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_figure);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_findRect);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_finish);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_freeContext);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_getError);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_makeContext);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_overlay);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_render);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_restoreBuffer);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_setAux);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_setBuffer);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_uploadHField);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_uploadMesh);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjr_uploadTexture);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_Halton);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_L1);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_add);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_add3);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_addScl);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_addScl3);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_addTo);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_addTo3);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_addToScl);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_addToScl3);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_axisAngle2Quat);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_cholFactor);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_cholSolve);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_cholUpdate);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_clearHandlers);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_copy);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_copy3);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_copy4);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_cross);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_decodePyramid);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_derivQuat);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_dist3);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_dot);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_dot3);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_eig3);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_encodePyramid);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_error);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_error_i);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_error_s);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_insertionSort);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_insertionSortInt);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_isBad);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_isZero);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_mat2Quat);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_max);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_min);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_mulMatMat);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_mulMatMatT);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_mulMatTMat);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_mulMatTVec);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_mulMatVec);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_mulPose);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_mulQuat);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_mulQuatAxis);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_muscleBias);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_muscleDynamics);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_muscleGain);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_negPose);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_negQuat);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_norm);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_norm3);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_normalize);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_normalize3);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_normalize4);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_printMat);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_printMatSparse);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_quat2Mat);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_quat2Vel);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_quatIntegrate);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_quatZ2Vec);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_rayGeom);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_rotVecMat);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_rotVecMatT);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_rotVecQuat);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_round);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_scl);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_scl3);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_sigmoid);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_sign);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_springDamper);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_sqrMatTD);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_standardNormal);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_str2Type);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_sub);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_sub3);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_subFrom);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_subFrom3);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_subQuat);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_sum);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_transformSpatial);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_transpose);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_trnVecPose);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_unit4);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_warning);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_warning_i);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_warning_s);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_writeLog);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_zero);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_zero3);
  Py_CLEAR(clear_module_state->__pyx_n_s_mju_zero4);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjui_add);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjui_addToSection);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjui_event);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjui_render);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjui_resize);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjui_update);
  Py_CLEAR(clear_module_state->__pyx_kp_u_mjvGeom_doesn_t_have_field_s);
  Py_CLEAR(clear_module_state->__pyx_kp_u_mjvGeom_has_attr_but_type_is_inv);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_addGeoms);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_alignToCamera);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_applyPerturbForce);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_applyPerturbPose);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_cameraInModel);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_cameraInRoom);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_defaultCamera);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_defaultFigure);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_defaultOption);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_defaultPerturb);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_defaultScene);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_freeScene);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_frustumHeight);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_initPerturb);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_makeConnector);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_makeLights);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_makeScene);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_model2room);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_moveCamera);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_moveModel);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_movePerturb);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_room2model);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_select);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_updateCamera);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_updateScene);
  Py_CLEAR(clear_module_state->__pyx_n_s_mjv_updateSkin);
  Py_CLEAR(clear_module_state->__pyx_n_s_mocap_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_mocap_pos);
  Py_CLEAR(clear_module_state->__pyx_n_s_mocap_quat);
  Py_CLEAR(clear_module_state->__pyx_n_s_mode);
  Py_CLEAR(clear_module_state->__pyx_n_s_model);
  Py_CLEAR(clear_module_state->__pyx_kp_u_model_mjb);
  Py_CLEAR(clear_module_state->__pyx_kp_u_model_xml);
  Py_CLEAR(clear_module_state->__pyx_n_s_modelpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_modelquat);
  Py_CLEAR(clear_module_state->__pyx_n_s_module);
  Py_CLEAR(clear_module_state->__pyx_n_s_move_camera);
  Py_CLEAR(clear_module_state->__pyx_n_s_mro_entries);
  Py_CLEAR(clear_module_state->__pyx_n_s_msg);
  Py_CLEAR(clear_module_state->__pyx_n_s_mu);
  Py_CLEAR(clear_module_state->__pyx_n_u_mujoco);
  Py_CLEAR(clear_module_state->__pyx_n_s_mujoco_node);
  Py_CLEAR(clear_module_state->__pyx_n_s_mujoco_path);
  Py_CLEAR(clear_module_state->__pyx_n_u_mujoco_py);
  Py_CLEAR(clear_module_state->__pyx_n_s_mujoco_py_builder);
  Py_CLEAR(clear_module_state->__pyx_n_s_mujoco_py_cymj);
  Py_CLEAR(clear_module_state->__pyx_kp_s_mujoco_py_cymj_pyx);
  Py_CLEAR(clear_module_state->__pyx_n_s_mujoco_py_generated);
  Py_CLEAR(clear_module_state->__pyx_kp_s_mujoco_py_generated_wrappers_pxi);
  Py_CLEAR(clear_module_state->__pyx_kp_s_mujoco_py_mjbatchrenderer_pyx);
  Py_CLEAR(clear_module_state->__pyx_kp_s_mujoco_py_mjpid_pyx);
  Py_CLEAR(clear_module_state->__pyx_kp_s_mujoco_py_mjrendercontext_pyx);
  Py_CLEAR(clear_module_state->__pyx_kp_s_mujoco_py_mjsim_pyx);
  Py_CLEAR(clear_module_state->__pyx_kp_s_mujoco_py_mjsimstate_pyx);
  Py_CLEAR(clear_module_state->__pyx_n_s_mujoco_py_mjviewer);
  Py_CLEAR(clear_module_state->__pyx_kp_s_mujoco_py_opengl_context_pyx);
  Py_CLEAR(clear_module_state->__pyx_n_s_mujoco_py_utils);
  Py_CLEAR(clear_module_state->__pyx_n_s_n);
  Py_CLEAR(clear_module_state->__pyx_n_s_nM);
  Py_CLEAR(clear_module_state->__pyx_n_s_na);
  Py_CLEAR(clear_module_state->__pyx_n_s_name);
  Py_CLEAR(clear_module_state->__pyx_n_s_name_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_namedtuple);
  Py_CLEAR(clear_module_state->__pyx_kp_u_names_must_all_be_strings);
  Py_CLEAR(clear_module_state->__pyx_n_s_nbody);
  Py_CLEAR(clear_module_state->__pyx_n_s_nc);
  Py_CLEAR(clear_module_state->__pyx_n_s_ncam);
  Py_CLEAR(clear_module_state->__pyx_n_s_nconmax);
  Py_CLEAR(clear_module_state->__pyx_n_s_ndim);
  Py_CLEAR(clear_module_state->__pyx_n_s_ne);
  Py_CLEAR(clear_module_state->__pyx_n_s_ne_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_nefc);
  Py_CLEAR(clear_module_state->__pyx_n_s_new);
  Py_CLEAR(clear_module_state->__pyx_n_s_new_height);
  Py_CLEAR(clear_module_state->__pyx_n_s_new_model);
  Py_CLEAR(clear_module_state->__pyx_n_s_new_sim);
  Py_CLEAR(clear_module_state->__pyx_n_s_new_width);
  Py_CLEAR(clear_module_state->__pyx_n_s_newmass);
  Py_CLEAR(clear_module_state->__pyx_n_s_newpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_ngeom);
  Py_CLEAR(clear_module_state->__pyx_n_s_njmax);
  Py_CLEAR(clear_module_state->__pyx_n_s_njnt);
  Py_CLEAR(clear_module_state->__pyx_n_s_nlight);
  Py_CLEAR(clear_module_state->__pyx_n_s_nmocap);
  Py_CLEAR(clear_module_state->__pyx_kp_s_no_default___reduce___due_to_non);
  Py_CLEAR(clear_module_state->__pyx_n_s_np);
  Py_CLEAR(clear_module_state->__pyx_n_s_nq);
  Py_CLEAR(clear_module_state->__pyx_n_s_nr);
  Py_CLEAR(clear_module_state->__pyx_n_s_nrect);
  Py_CLEAR(clear_module_state->__pyx_n_s_nsensordata);
  Py_CLEAR(clear_module_state->__pyx_n_s_nsite);
  Py_CLEAR(clear_module_state->__pyx_n_s_nsubsteps);
  Py_CLEAR(clear_module_state->__pyx_n_s_ntendon);
  Py_CLEAR(clear_module_state->__pyx_n_s_nu);
  Py_CLEAR(clear_module_state->__pyx_n_s_num2);
  Py_CLEAR(clear_module_state->__pyx_n_s_numbers);
  Py_CLEAR(clear_module_state->__pyx_n_s_numpy);
  Py_CLEAR(clear_module_state->__pyx_kp_u_numpy__core_multiarray_failed_to);
  Py_CLEAR(clear_module_state->__pyx_kp_u_numpy__core_umath_failed_to_impo);
  Py_CLEAR(clear_module_state->__pyx_n_s_nuser_actuator);
  Py_CLEAR(clear_module_state->__pyx_kp_u_nuser_actuator_is_not_set_large);
  Py_CLEAR(clear_module_state->__pyx_n_s_nuserdata);
  Py_CLEAR(clear_module_state->__pyx_kp_u_nuserdata_is_not_set_large_enoug);
  Py_CLEAR(clear_module_state->__pyx_n_s_nv);
  Py_CLEAR(clear_module_state->__pyx_n_s_nwrap);
  Py_CLEAR(clear_module_state->__pyx_n_s_obj);
  Py_CLEAR(clear_module_state->__pyx_n_s_object);
  Py_CLEAR(clear_module_state->__pyx_n_s_objid);
  Py_CLEAR(clear_module_state->__pyx_n_s_objtype);
  Py_CLEAR(clear_module_state->__pyx_n_s_offscreen);
  Py_CLEAR(clear_module_state->__pyx_n_u_offscreen);
  Py_CLEAR(clear_module_state->__pyx_n_s_old_dyld_library_path);
  Py_CLEAR(clear_module_state->__pyx_n_s_oldpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_ones);
  Py_CLEAR(clear_module_state->__pyx_n_s_open);
  Py_CLEAR(clear_module_state->__pyx_n_s_opengl_backend);
  Py_CLEAR(clear_module_state->__pyx_n_s_opengl_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_opt);
  Py_CLEAR(clear_module_state->__pyx_n_s_os);
  Py_CLEAR(clear_module_state->__pyx_n_s_other);
  Py_CLEAR(clear_module_state->__pyx_n_s_output);
  Py_CLEAR(clear_module_state->__pyx_n_s_overlay);
  Py_CLEAR(clear_module_state->__pyx_n_s_overlay2);
  Py_CLEAR(clear_module_state->__pyx_n_s_pack);
  Py_CLEAR(clear_module_state->__pyx_n_s_parentNode);
  Py_CLEAR(clear_module_state->__pyx_n_s_parseString);
  Py_CLEAR(clear_module_state->__pyx_n_s_path);
  Py_CLEAR(clear_module_state->__pyx_n_s_pbo_depth);
  Py_CLEAR(clear_module_state->__pyx_n_s_pbo_rgb);
  Py_CLEAR(clear_module_state->__pyx_n_s_pert);
  Py_CLEAR(clear_module_state->__pyx_n_s_pickle);
  Py_CLEAR(clear_module_state->__pyx_n_s_platform);
  Py_CLEAR(clear_module_state->__pyx_n_s_pnt);
  Py_CLEAR(clear_module_state->__pyx_n_s_pnt_view);
  Py_CLEAR(clear_module_state->__pyx_n_s_point);
  Py_CLEAR(clear_module_state->__pyx_n_s_pop);
  Py_CLEAR(clear_module_state->__pyx_n_s_pos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pos0);
  Py_CLEAR(clear_module_state->__pyx_n_s_pos1);
  Py_CLEAR(clear_module_state->__pyx_n_s_pos2);
  Py_CLEAR(clear_module_state->__pyx_n_s_posres);
  Py_CLEAR(clear_module_state->__pyx_n_s_prepare);
  Py_CLEAR(clear_module_state->__pyx_n_s_prepare_render_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_previous_errors);
  Py_CLEAR(clear_module_state->__pyx_n_s_print);
  Py_CLEAR(clear_module_state->__pyx_n_s_prm);
  Py_CLEAR(clear_module_state->__pyx_n_s_property);
  Py_CLEAR(clear_module_state->__pyx_n_s_ptr);
  Py_CLEAR(clear_module_state->__pyx_n_s_push);
  Py_CLEAR(clear_module_state->__pyx_n_s_pycuda);
  Py_CLEAR(clear_module_state->__pyx_n_s_pycuda_driver);
  Py_CLEAR(clear_module_state->__pyx_n_s_pycuda_gl);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyramid);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_PickleError);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_checksum);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_result);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_type);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Enum);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_vtable);
  Py_CLEAR(clear_module_state->__pyx_n_s_qa);
  Py_CLEAR(clear_module_state->__pyx_n_s_qb);
  Py_CLEAR(clear_module_state->__pyx_n_s_qfrc_target);
  Py_CLEAR(clear_module_state->__pyx_n_s_qpos);
  Py_CLEAR(clear_module_state->__pyx_n_u_qpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_qpos1);
  Py_CLEAR(clear_module_state->__pyx_n_s_qpos2);
  Py_CLEAR(clear_module_state->__pyx_n_s_qualname);
  Py_CLEAR(clear_module_state->__pyx_n_s_quat);
  Py_CLEAR(clear_module_state->__pyx_n_s_quat1);
  Py_CLEAR(clear_module_state->__pyx_n_s_quat2);
  Py_CLEAR(clear_module_state->__pyx_n_s_quatres);
  Py_CLEAR(clear_module_state->__pyx_n_s_quiet);
  Py_CLEAR(clear_module_state->__pyx_n_s_qvel);
  Py_CLEAR(clear_module_state->__pyx_n_u_qvel);
  Py_CLEAR(clear_module_state->__pyx_n_s_r1);
  Py_CLEAR(clear_module_state->__pyx_n_s_r2);
  Py_CLEAR(clear_module_state->__pyx_n_s_range);
  Py_CLEAR(clear_module_state->__pyx_n_s_ravel);
  Py_CLEAR(clear_module_state->__pyx_n_s_ray);
  Py_CLEAR(clear_module_state->__pyx_n_s_ray_fast_group);
  Py_CLEAR(clear_module_state->__pyx_n_s_ray_fast_nogroup);
  Py_CLEAR(clear_module_state->__pyx_n_u_rb);
  Py_CLEAR(clear_module_state->__pyx_n_s_read);
  Py_CLEAR(clear_module_state->__pyx_n_s_read_cuda);
  Py_CLEAR(clear_module_state->__pyx_n_s_read_nocuda);
  Py_CLEAR(clear_module_state->__pyx_n_s_read_pixels);
  Py_CLEAR(clear_module_state->__pyx_n_s_read_pixels_depth);
  Py_CLEAR(clear_module_state->__pyx_n_s_rect);
  Py_CLEAR(clear_module_state->__pyx_n_s_reduce);
  Py_CLEAR(clear_module_state->__pyx_n_s_reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_reduce_ex);
  Py_CLEAR(clear_module_state->__pyx_n_s_refresh_rate);
  Py_CLEAR(clear_module_state->__pyx_n_s_register);
  Py_CLEAR(clear_module_state->__pyx_n_s_reldx);
  Py_CLEAR(clear_module_state->__pyx_n_s_reldy);
  Py_CLEAR(clear_module_state->__pyx_n_s_relx);
  Py_CLEAR(clear_module_state->__pyx_n_s_rely);
  Py_CLEAR(clear_module_state->__pyx_n_s_removeChild);
  Py_CLEAR(clear_module_state->__pyx_n_s_remove_empty_lines);
  Py_CLEAR(clear_module_state->__pyx_n_s_render);
  Py_CLEAR(clear_module_state->__pyx_n_s_render_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_render_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_render_contexts);
  Py_CLEAR(clear_module_state->__pyx_n_s_render_swap_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_res);
  Py_CLEAR(clear_module_state->__pyx_n_s_reset);
  Py_CLEAR(clear_module_state->__pyx_n_s_reshape);
  Py_CLEAR(clear_module_state->__pyx_n_s_resolution);
  Py_CLEAR(clear_module_state->__pyx_n_s_result);
  Py_CLEAR(clear_module_state->__pyx_n_s_result_xml);
  Py_CLEAR(clear_module_state->__pyx_n_s_ret);
  Py_CLEAR(clear_module_state->__pyx_n_s_ret_img);
  Py_CLEAR(clear_module_state->__pyx_n_s_rgb_arr);
  Py_CLEAR(clear_module_state->__pyx_n_s_rgb_img);
  Py_CLEAR(clear_module_state->__pyx_n_s_rgb_view);
  Py_CLEAR(clear_module_state->__pyx_n_s_roompos);
  Py_CLEAR(clear_module_state->__pyx_n_s_roomquat);
  Py_CLEAR(clear_module_state->__pyx_n_s_roomup);
  Py_CLEAR(clear_module_state->__pyx_n_s_rotnew2old);
  Py_CLEAR(clear_module_state->__pyx_n_s_rowadr);
  Py_CLEAR(clear_module_state->__pyx_n_s_rownnz);
  Py_CLEAR(clear_module_state->__pyx_kp_u_s_Failed_to_load_MJB);
  Py_CLEAR(clear_module_state->__pyx_n_s_sameframe);
  Py_CLEAR(clear_module_state->__pyx_n_s_samples);
  Py_CLEAR(clear_module_state->__pyx_n_s_save);
  Py_CLEAR(clear_module_state->__pyx_n_s_save_locals_str_array);
  Py_CLEAR(clear_module_state->__pyx_n_s_scale);
  Py_CLEAR(clear_module_state->__pyx_n_s_schema_example);
  Py_CLEAR(clear_module_state->__pyx_n_s_schema_val);
  Py_CLEAR(clear_module_state->__pyx_n_s_scl);
  Py_CLEAR(clear_module_state->__pyx_n_s_scn);
  Py_CLEAR(clear_module_state->__pyx_n_s_sect);
  Py_CLEAR(clear_module_state->__pyx_n_s_section);
  Py_CLEAR(clear_module_state->__pyx_n_s_seg_ids);
  Py_CLEAR(clear_module_state->__pyx_n_s_seg_img);
  Py_CLEAR(clear_module_state->__pyx_n_s_segmentation);
  Py_CLEAR(clear_module_state->__pyx_n_s_self);
  Py_CLEAR(clear_module_state->__pyx_kp_s_self_ptr_cannot_be_converted_to);
  Py_CLEAR(clear_module_state->__pyx_n_s_selpnt);
  Py_CLEAR(clear_module_state->__pyx_n_s_send);
  Py_CLEAR(clear_module_state->__pyx_n_s_sensor_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_sensor_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_setAttribute);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_buffer_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_constants);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_error_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_joint_qpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_joint_qvel);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_mocap_pos);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_mocap_quat);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_mujoco_buffers);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_name);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_pid_control);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_state_from_flattened);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_substep_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_userdata_names);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_warning_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_window_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_set_window_size_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_setpoint);
  Py_CLEAR(clear_module_state->__pyx_n_s_setstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_setup_opengl_context);
  Py_CLEAR(clear_module_state->__pyx_n_s_shape);
  Py_CLEAR(clear_module_state->__pyx_n_s_sim);
  Py_CLEAR(clear_module_state->__pyx_n_s_site);
  Py_CLEAR(clear_module_state->__pyx_n_s_site_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_site_jacp);
  Py_CLEAR(clear_module_state->__pyx_n_s_site_jacr);
  Py_CLEAR(clear_module_state->__pyx_n_s_site_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_skinid);
  Py_CLEAR(clear_module_state->__pyx_n_s_skipsensor);
  Py_CLEAR(clear_module_state->__pyx_n_s_skipstage);
  Py_CLEAR(clear_module_state->__pyx_n_s_slots);
  Py_CLEAR(clear_module_state->__pyx_n_s_solimp);
  Py_CLEAR(clear_module_state->__pyx_n_s_solref);
  Py_CLEAR(clear_module_state->__pyx_n_s_spec);
  Py_CLEAR(clear_module_state->__pyx_n_s_split);
  Py_CLEAR(clear_module_state->__pyx_n_s_src);
  Py_CLEAR(clear_module_state->__pyx_n_s_start);
  Py_CLEAR(clear_module_state->__pyx_n_s_start_i);
  Py_CLEAR(clear_module_state->__pyx_n_s_stat);
  Py_CLEAR(clear_module_state->__pyx_n_s_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_state_tuple);
  Py_CLEAR(clear_module_state->__pyx_n_s_staticmethod);
  Py_CLEAR(clear_module_state->__pyx_n_s_step);
  Py_CLEAR(clear_module_state->__pyx_n_s_step_udd);
  Py_CLEAR(clear_module_state->__pyx_n_s_stop);
  Py_CLEAR(clear_module_state->__pyx_n_s_str);
  Py_CLEAR(clear_module_state->__pyx_n_s_str_array);
  Py_CLEAR(clear_module_state->__pyx_kp_s_strided_and_direct);
  Py_CLEAR(clear_module_state->__pyx_kp_s_strided_and_direct_or_indirect);
  Py_CLEAR(clear_module_state->__pyx_kp_s_strided_and_indirect);
  Py_CLEAR(clear_module_state->__pyx_kp_s_stringsource);
  Py_CLEAR(clear_module_state->__pyx_n_s_struct);
  Py_CLEAR(clear_module_state->__pyx_n_s_substep_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_suffix);
  Py_CLEAR(clear_module_state->__pyx_n_s_super);
  Py_CLEAR(clear_module_state->__pyx_n_s_swap_buffers);
  Py_CLEAR(clear_module_state->__pyx_n_s_sys);
  Py_CLEAR(clear_module_state->__pyx_n_s_tagName);
  Py_CLEAR(clear_module_state->__pyx_n_s_target_height);
  Py_CLEAR(clear_module_state->__pyx_n_s_target_width);
  Py_CLEAR(clear_module_state->__pyx_n_s_td);
  Py_CLEAR(clear_module_state->__pyx_n_s_tempfile);
  Py_CLEAR(clear_module_state->__pyx_n_s_tendon_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_tendon_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_test);
  Py_CLEAR(clear_module_state->__pyx_n_s_tex_id);
  Py_CLEAR(clear_module_state->__pyx_n_s_texid);
  Py_CLEAR(clear_module_state->__pyx_n_s_text);
  Py_CLEAR(clear_module_state->__pyx_n_s_text1);
  Py_CLEAR(clear_module_state->__pyx_n_s_text2);
  Py_CLEAR(clear_module_state->__pyx_n_s_threading);
  Py_CLEAR(clear_module_state->__pyx_n_s_throw);
  Py_CLEAR(clear_module_state->__pyx_n_s_time);
  Py_CLEAR(clear_module_state->__pyx_n_u_time);
  Py_CLEAR(clear_module_state->__pyx_kp_u_time_qpos_qvel_act_udd_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_toprettyxml);
  Py_CLEAR(clear_module_state->__pyx_n_s_torque);
  Py_CLEAR(clear_module_state->__pyx_n_s_traceback);
  Py_CLEAR(clear_module_state->__pyx_n_s_type);
  Py_CLEAR(clear_module_state->__pyx_n_s_udd_callback);
  Py_CLEAR(clear_module_state->__pyx_n_s_udd_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_ui);
  Py_CLEAR(clear_module_state->__pyx_n_s_uint16);
  Py_CLEAR(clear_module_state->__pyx_n_s_uint8);
  Py_CLEAR(clear_module_state->__pyx_kp_s_unable_to_allocate_array_data);
  Py_CLEAR(clear_module_state->__pyx_kp_s_unable_to_allocate_shape_and_str);
  Py_CLEAR(clear_module_state->__pyx_n_s_unflatten_dict);
  Py_CLEAR(clear_module_state->__pyx_n_s_unmap);
  Py_CLEAR(clear_module_state->__pyx_n_s_unpack);
  Py_CLEAR(clear_module_state->__pyx_n_s_unregister);
  Py_CLEAR(clear_module_state->__pyx_n_s_up);
  Py_CLEAR(clear_module_state->__pyx_n_s_update);
  Py_CLEAR(clear_module_state->__pyx_n_s_update_offscreen_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_update_sim);
  Py_CLEAR(clear_module_state->__pyx_n_s_upload_texture);
  Py_CLEAR(clear_module_state->__pyx_n_s_use_cuda);
  Py_CLEAR(clear_module_state->__pyx_n_s_use_cuda_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_userdata);
  Py_CLEAR(clear_module_state->__pyx_n_s_userdata_id2name);
  Py_CLEAR(clear_module_state->__pyx_n_s_userdata_name2id);
  Py_CLEAR(clear_module_state->__pyx_n_s_userdata_names);
  Py_CLEAR(clear_module_state->__pyx_n_s_v);
  Py_CLEAR(clear_module_state->__pyx_n_s_val);
  Py_CLEAR(clear_module_state->__pyx_n_s_val_array);
  Py_CLEAR(clear_module_state->__pyx_n_s_value);
  Py_CLEAR(clear_module_state->__pyx_n_s_values);
  Py_CLEAR(clear_module_state->__pyx_n_s_vec);
  Py_CLEAR(clear_module_state->__pyx_n_s_vec1);
  Py_CLEAR(clear_module_state->__pyx_n_s_vec2);
  Py_CLEAR(clear_module_state->__pyx_n_s_vec_view);
  Py_CLEAR(clear_module_state->__pyx_n_s_vel);
  Py_CLEAR(clear_module_state->__pyx_n_s_vel0);
  Py_CLEAR(clear_module_state->__pyx_n_s_version_info);
  Py_CLEAR(clear_module_state->__pyx_n_s_vfs);
  Py_CLEAR(clear_module_state->__pyx_n_s_viewport);
  Py_CLEAR(clear_module_state->__pyx_n_s_vis);
  Py_CLEAR(clear_module_state->__pyx_n_s_vopt);
  Py_CLEAR(clear_module_state->__pyx_n_s_warn);
  Py_CLEAR(clear_module_state->__pyx_n_s_warning);
  Py_CLEAR(clear_module_state->__pyx_n_u_wb);
  Py_CLEAR(clear_module_state->__pyx_n_s_width);
  Py_CLEAR(clear_module_state->__pyx_n_s_width_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_window);
  Py_CLEAR(clear_module_state->__pyx_n_u_window);
  Py_CLEAR(clear_module_state->__pyx_n_s_window_hint);
  Py_CLEAR(clear_module_state->__pyx_n_s_window_should_close);
  Py_CLEAR(clear_module_state->__pyx_n_s_with_udd);
  Py_CLEAR(clear_module_state->__pyx_n_s_wrap_mujoco_warning);
  Py_CLEAR(clear_module_state->__pyx_n_s_wrap_mujoco_warning___enter);
  Py_CLEAR(clear_module_state->__pyx_n_s_wrap_mujoco_warning___exit);
  Py_CLEAR(clear_module_state->__pyx_n_s_wrapped);
  Py_CLEAR(clear_module_state->__pyx_n_s_write);
  Py_CLEAR(clear_module_state->__pyx_n_s_x);
  Py_CLEAR(clear_module_state->__pyx_n_s_xmat);
  Py_CLEAR(clear_module_state->__pyx_n_u_xml);
  Py_CLEAR(clear_module_state->__pyx_kp_u_xml_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_xml_dom);
  Py_CLEAR(clear_module_state->__pyx_n_s_xml_str);
  Py_CLEAR(clear_module_state->__pyx_n_s_xpos);
  Py_CLEAR(clear_module_state->__pyx_n_s_xvelp);
  Py_CLEAR(clear_module_state->__pyx_n_s_xvelr);
  Py_CLEAR(clear_module_state->__pyx_n_s_y);
  Py_CLEAR(clear_module_state->__pyx_n_s_zeros);
  Py_CLEAR(clear_module_state->__pyx_float_0_0);
  Py_CLEAR(clear_module_state->__pyx_float_0_1);
  Py_CLEAR(clear_module_state->__pyx_int_0);
  Py_CLEAR(clear_module_state->__pyx_int_1);
  Py_CLEAR(clear_module_state->__pyx_int_2);
  Py_CLEAR(clear_module_state->__pyx_int_3);
  Py_CLEAR(clear_module_state->__pyx_int_4);
  Py_CLEAR(clear_module_state->__pyx_int_6);
  Py_CLEAR(clear_module_state->__pyx_int_7);
  Py_CLEAR(clear_module_state->__pyx_int_256);
  Py_CLEAR(clear_module_state->__pyx_int_1000);
  Py_CLEAR(clear_module_state->__pyx_int_65536);
  Py_CLEAR(clear_module_state->__pyx_int_112105877);
  Py_CLEAR(clear_module_state->__pyx_int_136983863);
  Py_CLEAR(clear_module_state->__pyx_int_184977713);
  Py_CLEAR(clear_module_state->__pyx_int_neg_1);
  Py_CLEAR(clear_module_state->__pyx_slice__5);
  Py_CLEAR(clear_module_state->__pyx_tuple__4);
  Py_CLEAR(clear_module_state->__pyx_tuple__8);
  Py_CLEAR(clear_module_state->__pyx_tuple__15);
  Py_CLEAR(clear_module_state->__pyx_tuple__16);
  Py_CLEAR(clear_module_state->__pyx_tuple__17);
  Py_CLEAR(clear_module_state->__pyx_tuple__18);
  Py_CLEAR(clear_module_state->__pyx_tuple__19);
  Py_CLEAR(clear_module_state->__pyx_tuple__20);
  Py_CLEAR(clear_module_state->__pyx_tuple__21);
  Py_CLEAR(clear_module_state->__pyx_tuple__22);
  Py_CLEAR(clear_module_state->__pyx_tuple__23);
  Py_CLEAR(clear_module_state->__pyx_tuple__24);
  Py_CLEAR(clear_module_state->__pyx_tuple__25);
  Py_CLEAR(clear_module_state->__pyx_tuple__26);
  Py_CLEAR(clear_module_state->__pyx_tuple__27);
  Py_CLEAR(clear_module_state->__pyx_tuple__28);
  Py_CLEAR(clear_module_state->__pyx_tuple__29);
  Py_CLEAR(clear_module_state->__pyx_tuple__30);
  Py_CLEAR(clear_module_state->__pyx_tuple__31);
  Py_CLEAR(clear_module_state->__pyx_tuple__32);
  Py_CLEAR(clear_module_state->__pyx_tuple__33);
  Py_CLEAR(clear_module_state->__pyx_tuple__35);
  Py_CLEAR(clear_module_state->__pyx_tuple__36);
  Py_CLEAR(clear_module_state->__pyx_tuple__37);
  Py_CLEAR(clear_module_state->__pyx_tuple__38);
  Py_CLEAR(clear_module_state->__pyx_tuple__39);
  Py_CLEAR(clear_module_state->__pyx_tuple__40);
  Py_CLEAR(clear_module_state->__pyx_tuple__42);
  Py_CLEAR(clear_module_state->__pyx_tuple__45);
  Py_CLEAR(clear_module_state->__pyx_tuple__46);
  Py_CLEAR(clear_module_state->__pyx_tuple__47);
  Py_CLEAR(clear_module_state->__pyx_tuple__48);
  Py_CLEAR(clear_module_state->__pyx_tuple__49);
  Py_CLEAR(clear_module_state->__pyx_tuple__50);
  Py_CLEAR(clear_module_state->__pyx_tuple__51);
  Py_CLEAR(clear_module_state->__pyx_tuple__53);
  Py_CLEAR(clear_module_state->__pyx_tuple__54);
  Py_CLEAR(clear_module_state->__pyx_tuple__55);
  Py_CLEAR(clear_module_state->__pyx_tuple__56);
  Py_CLEAR(clear_module_state->__pyx_tuple__57);
  Py_CLEAR(clear_module_state->__pyx_tuple__58);
  Py_CLEAR(clear_module_state->__pyx_tuple__59);
  Py_CLEAR(clear_module_state->__pyx_tuple__60);
  Py_CLEAR(clear_module_state->__pyx_tuple__61);
  Py_CLEAR(clear_module_state->__pyx_tuple__62);
  Py_CLEAR(clear_module_state->__pyx_tuple__63);
  Py_CLEAR(clear_module_state->__pyx_tuple__64);
  Py_CLEAR(clear_module_state->__pyx_tuple__65);
  Py_CLEAR(clear_module_state->__pyx_tuple__66);
  Py_CLEAR(clear_module_state->__pyx_tuple__67);
  Py_CLEAR(clear_module_state->__pyx_tuple__69);
  Py_CLEAR(clear_module_state->__pyx_tuple__71);
  Py_CLEAR(clear_module_state->__pyx_tuple__93);
  Py_CLEAR(clear_module_state->__pyx_tuple__95);
  Py_CLEAR(clear_module_state->__pyx_tuple__117);
  Py_CLEAR(clear_module_state->__pyx_tuple__119);
  Py_CLEAR(clear_module_state->__pyx_tuple__121);
  Py_CLEAR(clear_module_state->__pyx_tuple__123);
  Py_CLEAR(clear_module_state->__pyx_tuple__136);
  Py_CLEAR(clear_module_state->__pyx_tuple__147);
  Py_CLEAR(clear_module_state->__pyx_tuple__149);
  Py_CLEAR(clear_module_state->__pyx_tuple__150);
  Py_CLEAR(clear_module_state->__pyx_tuple__152);
  Py_CLEAR(clear_module_state->__pyx_tuple__154);
  Py_CLEAR(clear_module_state->__pyx_tuple__181);
  Py_CLEAR(clear_module_state->__pyx_tuple__183);
  Py_CLEAR(clear_module_state->__pyx_tuple__187);
  Py_CLEAR(clear_module_state->__pyx_tuple__189);
  Py_CLEAR(clear_module_state->__pyx_tuple__229);
  Py_CLEAR(clear_module_state->__pyx_tuple__232);
  Py_CLEAR(clear_module_state->__pyx_tuple__234);
  Py_CLEAR(clear_module_state->__pyx_tuple__236);
  Py_CLEAR(clear_module_state->__pyx_tuple__238);
  Py_CLEAR(clear_module_state->__pyx_tuple__242);
  Py_CLEAR(clear_module_state->__pyx_tuple__244);
  Py_CLEAR(clear_module_state->__pyx_tuple__247);
  Py_CLEAR(clear_module_state->__pyx_tuple__249);
  Py_CLEAR(clear_module_state->__pyx_tuple__255);
  Py_CLEAR(clear_module_state->__pyx_tuple__258);
  Py_CLEAR(clear_module_state->__pyx_tuple__260);
  Py_CLEAR(clear_module_state->__pyx_tuple__263);
  Py_CLEAR(clear_module_state->__pyx_tuple__265);
  Py_CLEAR(clear_module_state->__pyx_tuple__267);
  Py_CLEAR(clear_module_state->__pyx_tuple__269);
  Py_CLEAR(clear_module_state->__pyx_tuple__273);
  Py_CLEAR(clear_module_state->__pyx_tuple__275);
  Py_CLEAR(clear_module_state->__pyx_tuple__279);
  Py_CLEAR(clear_module_state->__pyx_tuple__281);
  Py_CLEAR(clear_module_state->__pyx_tuple__283);
  Py_CLEAR(clear_module_state->__pyx_tuple__285);
  Py_CLEAR(clear_module_state->__pyx_tuple__287);
  Py_CLEAR(clear_module_state->__pyx_tuple__295);
  Py_CLEAR(clear_module_state->__pyx_tuple__316);
  Py_CLEAR(clear_module_state->__pyx_tuple__322);
  Py_CLEAR(clear_module_state->__pyx_tuple__329);
  Py_CLEAR(clear_module_state->__pyx_tuple__331);
  Py_CLEAR(clear_module_state->__pyx_tuple__336);
  Py_CLEAR(clear_module_state->__pyx_tuple__339);
  Py_CLEAR(clear_module_state->__pyx_tuple__341);
  Py_CLEAR(clear_module_state->__pyx_tuple__344);
  Py_CLEAR(clear_module_state->__pyx_tuple__346);
  Py_CLEAR(clear_module_state->__pyx_tuple__348);
  Py_CLEAR(clear_module_state->__pyx_tuple__350);
  Py_CLEAR(clear_module_state->__pyx_tuple__352);
  Py_CLEAR(clear_module_state->__pyx_tuple__356);
  Py_CLEAR(clear_module_state->__pyx_tuple__358);
  Py_CLEAR(clear_module_state->__pyx_tuple__360);
  Py_CLEAR(clear_module_state->__pyx_tuple__363);
  Py_CLEAR(clear_module_state->__pyx_tuple__365);
  Py_CLEAR(clear_module_state->__pyx_tuple__367);
  Py_CLEAR(clear_module_state->__pyx_tuple__369);
  Py_CLEAR(clear_module_state->__pyx_tuple__371);
  Py_CLEAR(clear_module_state->__pyx_tuple__374);
  Py_CLEAR(clear_module_state->__pyx_tuple__377);
  Py_CLEAR(clear_module_state->__pyx_tuple__379);
  Py_CLEAR(clear_module_state->__pyx_tuple__382);
  Py_CLEAR(clear_module_state->__pyx_tuple__384);
  Py_CLEAR(clear_module_state->__pyx_tuple__386);
  Py_CLEAR(clear_module_state->__pyx_tuple__388);
  Py_CLEAR(clear_module_state->__pyx_tuple__390);
  Py_CLEAR(clear_module_state->__pyx_tuple__392);
  Py_CLEAR(clear_module_state->__pyx_tuple__395);
  Py_CLEAR(clear_module_state->__pyx_tuple__397);
  Py_CLEAR(clear_module_state->__pyx_tuple__399);
  Py_CLEAR(clear_module_state->__pyx_tuple__401);
  Py_CLEAR(clear_module_state->__pyx_tuple__403);
  Py_CLEAR(clear_module_state->__pyx_tuple__405);
  Py_CLEAR(clear_module_state->__pyx_tuple__407);
  Py_CLEAR(clear_module_state->__pyx_tuple__409);
  Py_CLEAR(clear_module_state->__pyx_tuple__411);
  Py_CLEAR(clear_module_state->__pyx_tuple__414);
  Py_CLEAR(clear_module_state->__pyx_tuple__416);
  Py_CLEAR(clear_module_state->__pyx_tuple__419);
  Py_CLEAR(clear_module_state->__pyx_tuple__422);
  Py_CLEAR(clear_module_state->__pyx_tuple__424);
  Py_CLEAR(clear_module_state->__pyx_tuple__426);
  Py_CLEAR(clear_module_state->__pyx_tuple__428);
  Py_CLEAR(clear_module_state->__pyx_tuple__431);
  Py_CLEAR(clear_module_state->__pyx_tuple__433);
  Py_CLEAR(clear_module_state->__pyx_tuple__435);
  Py_CLEAR(clear_module_state->__pyx_tuple__437);
  Py_CLEAR(clear_module_state->__pyx_tuple__440);
  Py_CLEAR(clear_module_state->__pyx_tuple__442);
  Py_CLEAR(clear_module_state->__pyx_tuple__444);
  Py_CLEAR(clear_module_state->__pyx_tuple__447);
  Py_CLEAR(clear_module_state->__pyx_tuple__449);
  Py_CLEAR(clear_module_state->__pyx_tuple__451);
  Py_CLEAR(clear_module_state->__pyx_tuple__453);
  Py_CLEAR(clear_module_state->__pyx_tuple__455);
  Py_CLEAR(clear_module_state->__pyx_tuple__457);
  Py_CLEAR(clear_module_state->__pyx_tuple__459);
  Py_CLEAR(clear_module_state->__pyx_tuple__463);
  Py_CLEAR(clear_module_state->__pyx_tuple__465);
  Py_CLEAR(clear_module_state->__pyx_tuple__467);
  Py_CLEAR(clear_module_state->__pyx_tuple__469);
  Py_CLEAR(clear_module_state->__pyx_tuple__471);
  Py_CLEAR(clear_module_state->__pyx_tuple__473);
  Py_CLEAR(clear_module_state->__pyx_tuple__476);
  Py_CLEAR(clear_module_state->__pyx_tuple__478);
  Py_CLEAR(clear_module_state->__pyx_tuple__480);
  Py_CLEAR(clear_module_state->__pyx_tuple__486);
  Py_CLEAR(clear_module_state->__pyx_tuple__488);
  Py_CLEAR(clear_module_state->__pyx_tuple__490);
  Py_CLEAR(clear_module_state->__pyx_tuple__492);
  Py_CLEAR(clear_module_state->__pyx_tuple__494);
  Py_CLEAR(clear_module_state->__pyx_tuple__496);
  Py_CLEAR(clear_module_state->__pyx_tuple__499);
  Py_CLEAR(clear_module_state->__pyx_tuple__503);
  Py_CLEAR(clear_module_state->__pyx_tuple__506);
  Py_CLEAR(clear_module_state->__pyx_tuple__508);
  Py_CLEAR(clear_module_state->__pyx_tuple__510);
  Py_CLEAR(clear_module_state->__pyx_tuple__512);
  Py_CLEAR(clear_module_state->__pyx_tuple__515);
  Py_CLEAR(clear_module_state->__pyx_tuple__521);
  Py_CLEAR(clear_module_state->__pyx_tuple__523);
  Py_CLEAR(clear_module_state->__pyx_tuple__525);
  Py_CLEAR(clear_module_state->__pyx_tuple__528);
  Py_CLEAR(clear_module_state->__pyx_tuple__530);
  Py_CLEAR(clear_module_state->__pyx_tuple__533);
  Py_CLEAR(clear_module_state->__pyx_tuple__537);
  Py_CLEAR(clear_module_state->__pyx_tuple__541);
  Py_CLEAR(clear_module_state->__pyx_tuple__543);
  Py_CLEAR(clear_module_state->__pyx_tuple__546);
  Py_CLEAR(clear_module_state->__pyx_tuple__548);
  Py_CLEAR(clear_module_state->__pyx_tuple__550);
  Py_CLEAR(clear_module_state->__pyx_tuple__553);
  Py_CLEAR(clear_module_state->__pyx_tuple__555);
  Py_CLEAR(clear_module_state->__pyx_tuple__557);
  Py_CLEAR(clear_module_state->__pyx_tuple__559);
  Py_CLEAR(clear_module_state->__pyx_tuple__561);
  Py_CLEAR(clear_module_state->__pyx_tuple__563);
  Py_CLEAR(clear_module_state->__pyx_tuple__565);
  Py_CLEAR(clear_module_state->__pyx_tuple__567);
  Py_CLEAR(clear_module_state->__pyx_tuple__569);
  Py_CLEAR(clear_module_state->__pyx_tuple__572);
  Py_CLEAR(clear_module_state->__pyx_tuple__574);
  Py_CLEAR(clear_module_state->__pyx_tuple__576);
  Py_CLEAR(clear_module_state->__pyx_tuple__578);
  Py_CLEAR(clear_module_state->__pyx_tuple__580);
  Py_CLEAR(clear_module_state->__pyx_tuple__582);
  Py_CLEAR(clear_module_state->__pyx_tuple__584);
  Py_CLEAR(clear_module_state->__pyx_tuple__586);
  Py_CLEAR(clear_module_state->__pyx_tuple__588);
  Py_CLEAR(clear_module_state->__pyx_tuple__590);
  Py_CLEAR(clear_module_state->__pyx_tuple__592);
  Py_CLEAR(clear_module_state->__pyx_tuple__594);
  Py_CLEAR(clear_module_state->__pyx_tuple__596);
  Py_CLEAR(clear_module_state->__pyx_tuple__598);
  Py_CLEAR(clear_module_state->__pyx_tuple__600);
  Py_CLEAR(clear_module_state->__pyx_tuple__602);
  Py_CLEAR(clear_module_state->__pyx_tuple__604);
  Py_CLEAR(clear_module_state->__pyx_tuple__606);
  Py_CLEAR(clear_module_state->__pyx_tuple__609);
  Py_CLEAR(clear_module_state->__pyx_tuple__612);
  Py_CLEAR(clear_module_state->__pyx_tuple__616);
  Py_CLEAR(clear_module_state->__pyx_tuple__618);
  Py_CLEAR(clear_module_state->__pyx_tuple__621);
  Py_CLEAR(clear_module_state->__pyx_tuple__624);
  Py_CLEAR(clear_module_state->__pyx_tuple__627);
  Py_CLEAR(clear_module_state->__pyx_tuple__629);
  Py_CLEAR(clear_module_state->__pyx_tuple__630);
  Py_CLEAR(clear_module_state->__pyx_tuple__631);
  Py_CLEAR(clear_module_state->__pyx_tuple__633);
  Py_CLEAR(clear_module_state->__pyx_tuple__638);
  Py_CLEAR(clear_module_state->__pyx_tuple__640);
  Py_CLEAR(clear_module_state->__pyx_tuple__642);
  Py_CLEAR(clear_module_state->__pyx_tuple__644);
  Py_CLEAR(clear_module_state->__pyx_tuple__646);
  Py_CLEAR(clear_module_state->__pyx_tuple__650);
  Py_CLEAR(clear_module_state->__pyx_tuple__655);
  Py_CLEAR(clear_module_state->__pyx_tuple__657);
  Py_CLEAR(clear_module_state->__pyx_tuple__658);
  Py_CLEAR(clear_module_state->__pyx_tuple__660);
  Py_CLEAR(clear_module_state->__pyx_tuple__661);
  Py_CLEAR(clear_module_state->__pyx_tuple__664);
  Py_CLEAR(clear_module_state->__pyx_tuple__666);
  Py_CLEAR(clear_module_state->__pyx_tuple__668);
  Py_CLEAR(clear_module_state->__pyx_tuple__670);
  Py_CLEAR(clear_module_state->__pyx_tuple__672);
  Py_CLEAR(clear_module_state->__pyx_tuple__674);
  Py_CLEAR(clear_module_state->__pyx_tuple__676);
  Py_CLEAR(clear_module_state->__pyx_tuple__677);
  Py_CLEAR(clear_module_state->__pyx_tuple__679);
  Py_CLEAR(clear_module_state->__pyx_tuple__680);
  Py_CLEAR(clear_module_state->__pyx_tuple__682);
  Py_CLEAR(clear_module_state->__pyx_tuple__683);
  Py_CLEAR(clear_module_state->__pyx_tuple__687);
  Py_CLEAR(clear_module_state->__pyx_tuple__688);
  Py_CLEAR(clear_module_state->__pyx_tuple__690);
  Py_CLEAR(clear_module_state->__pyx_tuple__692);
  Py_CLEAR(clear_module_state->__pyx_tuple__694);
  Py_CLEAR(clear_module_state->__pyx_tuple__696);
  Py_CLEAR(clear_module_state->__pyx_tuple__698);
  Py_CLEAR(clear_module_state->__pyx_tuple__700);
  Py_CLEAR(clear_module_state->__pyx_tuple__703);
  Py_CLEAR(clear_module_state->__pyx_tuple__705);
  Py_CLEAR(clear_module_state->__pyx_tuple__708);
  Py_CLEAR(clear_module_state->__pyx_tuple__710);
  Py_CLEAR(clear_module_state->__pyx_tuple__711);
  Py_CLEAR(clear_module_state->__pyx_tuple__713);
  Py_CLEAR(clear_module_state->__pyx_tuple__714);
  Py_CLEAR(clear_module_state->__pyx_tuple__716);
  Py_CLEAR(clear_module_state->__pyx_tuple__718);
  Py_CLEAR(clear_module_state->__pyx_tuple__720);
  Py_CLEAR(clear_module_state->__pyx_tuple__722);
  Py_CLEAR(clear_module_state->__pyx_tuple__724);
  Py_CLEAR(clear_module_state->__pyx_tuple__726);
  Py_CLEAR(clear_module_state->__pyx_tuple__730);
  Py_CLEAR(clear_module_state->__pyx_tuple__732);
  Py_CLEAR(clear_module_state->__pyx_tuple__736);
  Py_CLEAR(clear_module_state->__pyx_tuple__737);
  Py_CLEAR(clear_module_state->__pyx_tuple__738);
  Py_CLEAR(clear_module_state->__pyx_tuple__739);
  Py_CLEAR(clear_module_state->__pyx_tuple__741);
  Py_CLEAR(clear_module_state->__pyx_tuple__742);
  Py_CLEAR(clear_module_state->__pyx_tuple__744);
  Py_CLEAR(clear_module_state->__pyx_tuple__747);
  Py_CLEAR(clear_module_state->__pyx_tuple__749);
  Py_CLEAR(clear_module_state->__pyx_tuple__752);
  Py_CLEAR(clear_module_state->__pyx_tuple__754);
  Py_CLEAR(clear_module_state->__pyx_tuple__759);
  Py_CLEAR(clear_module_state->__pyx_tuple__761);
  Py_CLEAR(clear_module_state->__pyx_tuple__764);
  Py_CLEAR(clear_module_state->__pyx_tuple__767);
  Py_CLEAR(clear_module_state->__pyx_tuple__768);
  Py_CLEAR(clear_module_state->__pyx_tuple__770);
  Py_CLEAR(clear_module_state->__pyx_tuple__772);
  Py_CLEAR(clear_module_state->__pyx_tuple__774);
  Py_CLEAR(clear_module_state->__pyx_tuple__776);
  Py_CLEAR(clear_module_state->__pyx_codeobj__43);
  Py_CLEAR(clear_module_state->__pyx_codeobj__68);
  Py_CLEAR(clear_module_state->__pyx_codeobj__70);
  Py_CLEAR(clear_module_state->__pyx_codeobj__72);
  Py_CLEAR(clear_module_state->__pyx_codeobj__73);
  Py_CLEAR(clear_module_state->__pyx_codeobj__74);
  Py_CLEAR(clear_module_state->__pyx_codeobj__75);
  Py_CLEAR(clear_module_state->__pyx_codeobj__76);
  Py_CLEAR(clear_module_state->__pyx_codeobj__77);
  Py_CLEAR(clear_module_state->__pyx_codeobj__78);
  Py_CLEAR(clear_module_state->__pyx_codeobj__79);
  Py_CLEAR(clear_module_state->__pyx_codeobj__80);
  Py_CLEAR(clear_module_state->__pyx_codeobj__81);
  Py_CLEAR(clear_module_state->__pyx_codeobj__82);
  Py_CLEAR(clear_module_state->__pyx_codeobj__83);
  Py_CLEAR(clear_module_state->__pyx_codeobj__84);
  Py_CLEAR(clear_module_state->__pyx_codeobj__85);
  Py_CLEAR(clear_module_state->__pyx_codeobj__86);
  Py_CLEAR(clear_module_state->__pyx_codeobj__87);
  Py_CLEAR(clear_module_state->__pyx_codeobj__88);
  Py_CLEAR(clear_module_state->__pyx_codeobj__89);
  Py_CLEAR(clear_module_state->__pyx_codeobj__90);
  Py_CLEAR(clear_module_state->__pyx_codeobj__91);
  Py_CLEAR(clear_module_state->__pyx_codeobj__92);
  Py_CLEAR(clear_module_state->__pyx_codeobj__94);
  Py_CLEAR(clear_module_state->__pyx_codeobj__96);
  Py_CLEAR(clear_module_state->__pyx_codeobj__97);
  Py_CLEAR(clear_module_state->__pyx_codeobj__98);
  Py_CLEAR(clear_module_state->__pyx_codeobj__99);
  Py_CLEAR(clear_module_state->__pyx_codeobj__100);
  Py_CLEAR(clear_module_state->__pyx_codeobj__101);
  Py_CLEAR(clear_module_state->__pyx_codeobj__102);
  Py_CLEAR(clear_module_state->__pyx_codeobj__103);
  Py_CLEAR(clear_module_state->__pyx_codeobj__104);
  Py_CLEAR(clear_module_state->__pyx_codeobj__105);
  Py_CLEAR(clear_module_state->__pyx_codeobj__106);
  Py_CLEAR(clear_module_state->__pyx_codeobj__107);
  Py_CLEAR(clear_module_state->__pyx_codeobj__108);
  Py_CLEAR(clear_module_state->__pyx_codeobj__109);
  Py_CLEAR(clear_module_state->__pyx_codeobj__110);
  Py_CLEAR(clear_module_state->__pyx_codeobj__111);
  Py_CLEAR(clear_module_state->__pyx_codeobj__112);
  Py_CLEAR(clear_module_state->__pyx_codeobj__113);
  Py_CLEAR(clear_module_state->__pyx_codeobj__114);
  Py_CLEAR(clear_module_state->__pyx_codeobj__115);
  Py_CLEAR(clear_module_state->__pyx_codeobj__116);
  Py_CLEAR(clear_module_state->__pyx_codeobj__118);
  Py_CLEAR(clear_module_state->__pyx_codeobj__120);
  Py_CLEAR(clear_module_state->__pyx_codeobj__122);
  Py_CLEAR(clear_module_state->__pyx_codeobj__124);
  Py_CLEAR(clear_module_state->__pyx_codeobj__125);
  Py_CLEAR(clear_module_state->__pyx_codeobj__126);
  Py_CLEAR(clear_module_state->__pyx_codeobj__127);
  Py_CLEAR(clear_module_state->__pyx_codeobj__128);
  Py_CLEAR(clear_module_state->__pyx_codeobj__129);
  Py_CLEAR(clear_module_state->__pyx_codeobj__130);
  Py_CLEAR(clear_module_state->__pyx_codeobj__131);
  Py_CLEAR(clear_module_state->__pyx_codeobj__132);
  Py_CLEAR(clear_module_state->__pyx_codeobj__133);
  Py_CLEAR(clear_module_state->__pyx_codeobj__134);
  Py_CLEAR(clear_module_state->__pyx_codeobj__135);
  Py_CLEAR(clear_module_state->__pyx_codeobj__137);
  Py_CLEAR(clear_module_state->__pyx_codeobj__138);
  Py_CLEAR(clear_module_state->__pyx_codeobj__139);
  Py_CLEAR(clear_module_state->__pyx_codeobj__140);
  Py_CLEAR(clear_module_state->__pyx_codeobj__141);
  Py_CLEAR(clear_module_state->__pyx_codeobj__142);
  Py_CLEAR(clear_module_state->__pyx_codeobj__143);
  Py_CLEAR(clear_module_state->__pyx_codeobj__144);
  Py_CLEAR(clear_module_state->__pyx_codeobj__145);
  Py_CLEAR(clear_module_state->__pyx_codeobj__146);
  Py_CLEAR(clear_module_state->__pyx_codeobj__148);
  Py_CLEAR(clear_module_state->__pyx_codeobj__151);
  Py_CLEAR(clear_module_state->__pyx_codeobj__153);
  Py_CLEAR(clear_module_state->__pyx_codeobj__155);
  Py_CLEAR(clear_module_state->__pyx_codeobj__156);
  Py_CLEAR(clear_module_state->__pyx_codeobj__157);
  Py_CLEAR(clear_module_state->__pyx_codeobj__158);
  Py_CLEAR(clear_module_state->__pyx_codeobj__159);
  Py_CLEAR(clear_module_state->__pyx_codeobj__160);
  Py_CLEAR(clear_module_state->__pyx_codeobj__161);
  Py_CLEAR(clear_module_state->__pyx_codeobj__162);
  Py_CLEAR(clear_module_state->__pyx_codeobj__163);
  Py_CLEAR(clear_module_state->__pyx_codeobj__164);
  Py_CLEAR(clear_module_state->__pyx_codeobj__165);
  Py_CLEAR(clear_module_state->__pyx_codeobj__166);
  Py_CLEAR(clear_module_state->__pyx_codeobj__167);
  Py_CLEAR(clear_module_state->__pyx_codeobj__168);
  Py_CLEAR(clear_module_state->__pyx_codeobj__169);
  Py_CLEAR(clear_module_state->__pyx_codeobj__170);
  Py_CLEAR(clear_module_state->__pyx_codeobj__171);
  Py_CLEAR(clear_module_state->__pyx_codeobj__172);
  Py_CLEAR(clear_module_state->__pyx_codeobj__173);
  Py_CLEAR(clear_module_state->__pyx_codeobj__174);
  Py_CLEAR(clear_module_state->__pyx_codeobj__175);
  Py_CLEAR(clear_module_state->__pyx_codeobj__176);
  Py_CLEAR(clear_module_state->__pyx_codeobj__177);
  Py_CLEAR(clear_module_state->__pyx_codeobj__178);
  Py_CLEAR(clear_module_state->__pyx_codeobj__179);
  Py_CLEAR(clear_module_state->__pyx_codeobj__180);
  Py_CLEAR(clear_module_state->__pyx_codeobj__182);
  Py_CLEAR(clear_module_state->__pyx_codeobj__184);
  Py_CLEAR(clear_module_state->__pyx_codeobj__185);
  Py_CLEAR(clear_module_state->__pyx_codeobj__186);
  Py_CLEAR(clear_module_state->__pyx_codeobj__188);
  Py_CLEAR(clear_module_state->__pyx_codeobj__190);
  Py_CLEAR(clear_module_state->__pyx_codeobj__191);
  Py_CLEAR(clear_module_state->__pyx_codeobj__192);
  Py_CLEAR(clear_module_state->__pyx_codeobj__193);
  Py_CLEAR(clear_module_state->__pyx_codeobj__194);
  Py_CLEAR(clear_module_state->__pyx_codeobj__195);
  Py_CLEAR(clear_module_state->__pyx_codeobj__196);
  Py_CLEAR(clear_module_state->__pyx_codeobj__197);
  Py_CLEAR(clear_module_state->__pyx_codeobj__198);
  Py_CLEAR(clear_module_state->__pyx_codeobj__199);
  Py_CLEAR(clear_module_state->__pyx_codeobj__200);
  Py_CLEAR(clear_module_state->__pyx_codeobj__201);
  Py_CLEAR(clear_module_state->__pyx_codeobj__202);
  Py_CLEAR(clear_module_state->__pyx_codeobj__203);
  Py_CLEAR(clear_module_state->__pyx_codeobj__204);
  Py_CLEAR(clear_module_state->__pyx_codeobj__205);
  Py_CLEAR(clear_module_state->__pyx_codeobj__206);
  Py_CLEAR(clear_module_state->__pyx_codeobj__207);
  Py_CLEAR(clear_module_state->__pyx_codeobj__208);
  Py_CLEAR(clear_module_state->__pyx_codeobj__209);
  Py_CLEAR(clear_module_state->__pyx_codeobj__210);
  Py_CLEAR(clear_module_state->__pyx_codeobj__211);
  Py_CLEAR(clear_module_state->__pyx_codeobj__212);
  Py_CLEAR(clear_module_state->__pyx_codeobj__213);
  Py_CLEAR(clear_module_state->__pyx_codeobj__214);
  Py_CLEAR(clear_module_state->__pyx_codeobj__215);
  Py_CLEAR(clear_module_state->__pyx_codeobj__216);
  Py_CLEAR(clear_module_state->__pyx_codeobj__217);
  Py_CLEAR(clear_module_state->__pyx_codeobj__218);
  Py_CLEAR(clear_module_state->__pyx_codeobj__219);
  Py_CLEAR(clear_module_state->__pyx_codeobj__220);
  Py_CLEAR(clear_module_state->__pyx_codeobj__221);
  Py_CLEAR(clear_module_state->__pyx_codeobj__222);
  Py_CLEAR(clear_module_state->__pyx_codeobj__223);
  Py_CLEAR(clear_module_state->__pyx_codeobj__224);
  Py_CLEAR(clear_module_state->__pyx_codeobj__225);
  Py_CLEAR(clear_module_state->__pyx_codeobj__226);
  Py_CLEAR(clear_module_state->__pyx_codeobj__227);
  Py_CLEAR(clear_module_state->__pyx_codeobj__228);
  Py_CLEAR(clear_module_state->__pyx_codeobj__230);
  Py_CLEAR(clear_module_state->__pyx_codeobj__231);
  Py_CLEAR(clear_module_state->__pyx_codeobj__233);
  Py_CLEAR(clear_module_state->__pyx_codeobj__235);
  Py_CLEAR(clear_module_state->__pyx_codeobj__237);
  Py_CLEAR(clear_module_state->__pyx_codeobj__239);
  Py_CLEAR(clear_module_state->__pyx_codeobj__240);
  Py_CLEAR(clear_module_state->__pyx_codeobj__241);
  Py_CLEAR(clear_module_state->__pyx_codeobj__243);
  Py_CLEAR(clear_module_state->__pyx_codeobj__245);
  Py_CLEAR(clear_module_state->__pyx_codeobj__246);
  Py_CLEAR(clear_module_state->__pyx_codeobj__248);
  Py_CLEAR(clear_module_state->__pyx_codeobj__250);
  Py_CLEAR(clear_module_state->__pyx_codeobj__251);
  Py_CLEAR(clear_module_state->__pyx_codeobj__252);
  Py_CLEAR(clear_module_state->__pyx_codeobj__253);
  Py_CLEAR(clear_module_state->__pyx_codeobj__254);
  Py_CLEAR(clear_module_state->__pyx_codeobj__256);
  Py_CLEAR(clear_module_state->__pyx_codeobj__257);
  Py_CLEAR(clear_module_state->__pyx_codeobj__259);
  Py_CLEAR(clear_module_state->__pyx_codeobj__261);
  Py_CLEAR(clear_module_state->__pyx_codeobj__262);
  Py_CLEAR(clear_module_state->__pyx_codeobj__264);
  Py_CLEAR(clear_module_state->__pyx_codeobj__266);
  Py_CLEAR(clear_module_state->__pyx_codeobj__268);
  Py_CLEAR(clear_module_state->__pyx_codeobj__270);
  Py_CLEAR(clear_module_state->__pyx_codeobj__271);
  Py_CLEAR(clear_module_state->__pyx_codeobj__272);
  Py_CLEAR(clear_module_state->__pyx_codeobj__274);
  Py_CLEAR(clear_module_state->__pyx_codeobj__276);
  Py_CLEAR(clear_module_state->__pyx_codeobj__277);
  Py_CLEAR(clear_module_state->__pyx_codeobj__278);
  Py_CLEAR(clear_module_state->__pyx_codeobj__280);
  Py_CLEAR(clear_module_state->__pyx_codeobj__282);
  Py_CLEAR(clear_module_state->__pyx_codeobj__284);
  Py_CLEAR(clear_module_state->__pyx_codeobj__286);
  Py_CLEAR(clear_module_state->__pyx_codeobj__288);
  Py_CLEAR(clear_module_state->__pyx_codeobj__289);
  Py_CLEAR(clear_module_state->__pyx_codeobj__290);
  Py_CLEAR(clear_module_state->__pyx_codeobj__291);
  Py_CLEAR(clear_module_state->__pyx_codeobj__292);
  Py_CLEAR(clear_module_state->__pyx_codeobj__293);
  Py_CLEAR(clear_module_state->__pyx_codeobj__294);
  Py_CLEAR(clear_module_state->__pyx_codeobj__296);
  Py_CLEAR(clear_module_state->__pyx_codeobj__297);
  Py_CLEAR(clear_module_state->__pyx_codeobj__298);
  Py_CLEAR(clear_module_state->__pyx_codeobj__299);
  Py_CLEAR(clear_module_state->__pyx_codeobj__300);
  Py_CLEAR(clear_module_state->__pyx_codeobj__301);
  Py_CLEAR(clear_module_state->__pyx_codeobj__302);
  Py_CLEAR(clear_module_state->__pyx_codeobj__303);
  Py_CLEAR(clear_module_state->__pyx_codeobj__304);
  Py_CLEAR(clear_module_state->__pyx_codeobj__305);
  Py_CLEAR(clear_module_state->__pyx_codeobj__306);
  Py_CLEAR(clear_module_state->__pyx_codeobj__307);
  Py_CLEAR(clear_module_state->__pyx_codeobj__308);
  Py_CLEAR(clear_module_state->__pyx_codeobj__309);
  Py_CLEAR(clear_module_state->__pyx_codeobj__310);
  Py_CLEAR(clear_module_state->__pyx_codeobj__311);
  Py_CLEAR(clear_module_state->__pyx_codeobj__312);
  Py_CLEAR(clear_module_state->__pyx_codeobj__313);
  Py_CLEAR(clear_module_state->__pyx_codeobj__314);
  Py_CLEAR(clear_module_state->__pyx_codeobj__315);
  Py_CLEAR(clear_module_state->__pyx_codeobj__317);
  Py_CLEAR(clear_module_state->__pyx_codeobj__318);
  Py_CLEAR(clear_module_state->__pyx_codeobj__319);
  Py_CLEAR(clear_module_state->__pyx_codeobj__320);
  Py_CLEAR(clear_module_state->__pyx_codeobj__321);
  Py_CLEAR(clear_module_state->__pyx_codeobj__323);
  Py_CLEAR(clear_module_state->__pyx_codeobj__324);
  Py_CLEAR(clear_module_state->__pyx_codeobj__325);
  Py_CLEAR(clear_module_state->__pyx_codeobj__326);
  Py_CLEAR(clear_module_state->__pyx_codeobj__327);
  Py_CLEAR(clear_module_state->__pyx_codeobj__328);
  Py_CLEAR(clear_module_state->__pyx_codeobj__330);
  Py_CLEAR(clear_module_state->__pyx_codeobj__332);
  Py_CLEAR(clear_module_state->__pyx_codeobj__333);
  Py_CLEAR(clear_module_state->__pyx_codeobj__334);
  Py_CLEAR(clear_module_state->__pyx_codeobj__335);
  Py_CLEAR(clear_module_state->__pyx_codeobj__337);
  Py_CLEAR(clear_module_state->__pyx_codeobj__338);
  Py_CLEAR(clear_module_state->__pyx_codeobj__340);
  Py_CLEAR(clear_module_state->__pyx_codeobj__342);
  Py_CLEAR(clear_module_state->__pyx_codeobj__343);
  Py_CLEAR(clear_module_state->__pyx_codeobj__345);
  Py_CLEAR(clear_module_state->__pyx_codeobj__347);
  Py_CLEAR(clear_module_state->__pyx_codeobj__349);
  Py_CLEAR(clear_module_state->__pyx_codeobj__351);
  Py_CLEAR(clear_module_state->__pyx_codeobj__353);
  Py_CLEAR(clear_module_state->__pyx_codeobj__354);
  Py_CLEAR(clear_module_state->__pyx_codeobj__355);
  Py_CLEAR(clear_module_state->__pyx_codeobj__357);
  Py_CLEAR(clear_module_state->__pyx_codeobj__359);
  Py_CLEAR(clear_module_state->__pyx_codeobj__361);
  Py_CLEAR(clear_module_state->__pyx_codeobj__362);
  Py_CLEAR(clear_module_state->__pyx_codeobj__364);
  Py_CLEAR(clear_module_state->__pyx_codeobj__366);
  Py_CLEAR(clear_module_state->__pyx_codeobj__368);
  Py_CLEAR(clear_module_state->__pyx_codeobj__370);
  Py_CLEAR(clear_module_state->__pyx_codeobj__372);
  Py_CLEAR(clear_module_state->__pyx_codeobj__373);
  Py_CLEAR(clear_module_state->__pyx_codeobj__375);
  Py_CLEAR(clear_module_state->__pyx_codeobj__376);
  Py_CLEAR(clear_module_state->__pyx_codeobj__378);
  Py_CLEAR(clear_module_state->__pyx_codeobj__380);
  Py_CLEAR(clear_module_state->__pyx_codeobj__381);
  Py_CLEAR(clear_module_state->__pyx_codeobj__383);
  Py_CLEAR(clear_module_state->__pyx_codeobj__385);
  Py_CLEAR(clear_module_state->__pyx_codeobj__387);
  Py_CLEAR(clear_module_state->__pyx_codeobj__389);
  Py_CLEAR(clear_module_state->__pyx_codeobj__391);
  Py_CLEAR(clear_module_state->__pyx_codeobj__393);
  Py_CLEAR(clear_module_state->__pyx_codeobj__394);
  Py_CLEAR(clear_module_state->__pyx_codeobj__396);
  Py_CLEAR(clear_module_state->__pyx_codeobj__398);
  Py_CLEAR(clear_module_state->__pyx_codeobj__400);
  Py_CLEAR(clear_module_state->__pyx_codeobj__402);
  Py_CLEAR(clear_module_state->__pyx_codeobj__404);
  Py_CLEAR(clear_module_state->__pyx_codeobj__406);
  Py_CLEAR(clear_module_state->__pyx_codeobj__408);
  Py_CLEAR(clear_module_state->__pyx_codeobj__410);
  Py_CLEAR(clear_module_state->__pyx_codeobj__412);
  Py_CLEAR(clear_module_state->__pyx_codeobj__413);
  Py_CLEAR(clear_module_state->__pyx_codeobj__415);
  Py_CLEAR(clear_module_state->__pyx_codeobj__417);
  Py_CLEAR(clear_module_state->__pyx_codeobj__418);
  Py_CLEAR(clear_module_state->__pyx_codeobj__420);
  Py_CLEAR(clear_module_state->__pyx_codeobj__421);
  Py_CLEAR(clear_module_state->__pyx_codeobj__423);
  Py_CLEAR(clear_module_state->__pyx_codeobj__425);
  Py_CLEAR(clear_module_state->__pyx_codeobj__427);
  Py_CLEAR(clear_module_state->__pyx_codeobj__429);
  Py_CLEAR(clear_module_state->__pyx_codeobj__430);
  Py_CLEAR(clear_module_state->__pyx_codeobj__432);
  Py_CLEAR(clear_module_state->__pyx_codeobj__434);
  Py_CLEAR(clear_module_state->__pyx_codeobj__436);
  Py_CLEAR(clear_module_state->__pyx_codeobj__438);
  Py_CLEAR(clear_module_state->__pyx_codeobj__439);
  Py_CLEAR(clear_module_state->__pyx_codeobj__441);
  Py_CLEAR(clear_module_state->__pyx_codeobj__443);
  Py_CLEAR(clear_module_state->__pyx_codeobj__445);
  Py_CLEAR(clear_module_state->__pyx_codeobj__446);
  Py_CLEAR(clear_module_state->__pyx_codeobj__448);
  Py_CLEAR(clear_module_state->__pyx_codeobj__450);
  Py_CLEAR(clear_module_state->__pyx_codeobj__452);
  Py_CLEAR(clear_module_state->__pyx_codeobj__454);
  Py_CLEAR(clear_module_state->__pyx_codeobj__456);
  Py_CLEAR(clear_module_state->__pyx_codeobj__458);
  Py_CLEAR(clear_module_state->__pyx_codeobj__460);
  Py_CLEAR(clear_module_state->__pyx_codeobj__461);
  Py_CLEAR(clear_module_state->__pyx_codeobj__462);
  Py_CLEAR(clear_module_state->__pyx_codeobj__464);
  Py_CLEAR(clear_module_state->__pyx_codeobj__466);
  Py_CLEAR(clear_module_state->__pyx_codeobj__468);
  Py_CLEAR(clear_module_state->__pyx_codeobj__470);
  Py_CLEAR(clear_module_state->__pyx_codeobj__472);
  Py_CLEAR(clear_module_state->__pyx_codeobj__474);
  Py_CLEAR(clear_module_state->__pyx_codeobj__475);
  Py_CLEAR(clear_module_state->__pyx_codeobj__477);
  Py_CLEAR(clear_module_state->__pyx_codeobj__479);
  Py_CLEAR(clear_module_state->__pyx_codeobj__481);
  Py_CLEAR(clear_module_state->__pyx_codeobj__482);
  Py_CLEAR(clear_module_state->__pyx_codeobj__483);
  Py_CLEAR(clear_module_state->__pyx_codeobj__484);
  Py_CLEAR(clear_module_state->__pyx_codeobj__485);
  Py_CLEAR(clear_module_state->__pyx_codeobj__487);
  Py_CLEAR(clear_module_state->__pyx_codeobj__489);
  Py_CLEAR(clear_module_state->__pyx_codeobj__491);
  Py_CLEAR(clear_module_state->__pyx_codeobj__493);
  Py_CLEAR(clear_module_state->__pyx_codeobj__495);
  Py_CLEAR(clear_module_state->__pyx_codeobj__497);
  Py_CLEAR(clear_module_state->__pyx_codeobj__498);
  Py_CLEAR(clear_module_state->__pyx_codeobj__500);
  Py_CLEAR(clear_module_state->__pyx_codeobj__501);
  Py_CLEAR(clear_module_state->__pyx_codeobj__502);
  Py_CLEAR(clear_module_state->__pyx_codeobj__504);
  Py_CLEAR(clear_module_state->__pyx_codeobj__505);
  Py_CLEAR(clear_module_state->__pyx_codeobj__507);
  Py_CLEAR(clear_module_state->__pyx_codeobj__509);
  Py_CLEAR(clear_module_state->__pyx_codeobj__511);
  Py_CLEAR(clear_module_state->__pyx_codeobj__513);
  Py_CLEAR(clear_module_state->__pyx_codeobj__514);
  Py_CLEAR(clear_module_state->__pyx_codeobj__516);
  Py_CLEAR(clear_module_state->__pyx_codeobj__517);
  Py_CLEAR(clear_module_state->__pyx_codeobj__518);
  Py_CLEAR(clear_module_state->__pyx_codeobj__519);
  Py_CLEAR(clear_module_state->__pyx_codeobj__520);
  Py_CLEAR(clear_module_state->__pyx_codeobj__522);
  Py_CLEAR(clear_module_state->__pyx_codeobj__524);
  Py_CLEAR(clear_module_state->__pyx_codeobj__526);
  Py_CLEAR(clear_module_state->__pyx_codeobj__527);
  Py_CLEAR(clear_module_state->__pyx_codeobj__529);
  Py_CLEAR(clear_module_state->__pyx_codeobj__531);
  Py_CLEAR(clear_module_state->__pyx_codeobj__532);
  Py_CLEAR(clear_module_state->__pyx_codeobj__534);
  Py_CLEAR(clear_module_state->__pyx_codeobj__535);
  Py_CLEAR(clear_module_state->__pyx_codeobj__536);
  Py_CLEAR(clear_module_state->__pyx_codeobj__538);
  Py_CLEAR(clear_module_state->__pyx_codeobj__539);
  Py_CLEAR(clear_module_state->__pyx_codeobj__540);
  Py_CLEAR(clear_module_state->__pyx_codeobj__542);
  Py_CLEAR(clear_module_state->__pyx_codeobj__544);
  Py_CLEAR(clear_module_state->__pyx_codeobj__545);
  Py_CLEAR(clear_module_state->__pyx_codeobj__547);
  Py_CLEAR(clear_module_state->__pyx_codeobj__549);
  Py_CLEAR(clear_module_state->__pyx_codeobj__551);
  Py_CLEAR(clear_module_state->__pyx_codeobj__552);
  Py_CLEAR(clear_module_state->__pyx_codeobj__554);
  Py_CLEAR(clear_module_state->__pyx_codeobj__556);
  Py_CLEAR(clear_module_state->__pyx_codeobj__558);
  Py_CLEAR(clear_module_state->__pyx_codeobj__560);
  Py_CLEAR(clear_module_state->__pyx_codeobj__562);
  Py_CLEAR(clear_module_state->__pyx_codeobj__564);
  Py_CLEAR(clear_module_state->__pyx_codeobj__566);
  Py_CLEAR(clear_module_state->__pyx_codeobj__568);
  Py_CLEAR(clear_module_state->__pyx_codeobj__570);
  Py_CLEAR(clear_module_state->__pyx_codeobj__571);
  Py_CLEAR(clear_module_state->__pyx_codeobj__573);
  Py_CLEAR(clear_module_state->__pyx_codeobj__575);
  Py_CLEAR(clear_module_state->__pyx_codeobj__577);
  Py_CLEAR(clear_module_state->__pyx_codeobj__579);
  Py_CLEAR(clear_module_state->__pyx_codeobj__581);
  Py_CLEAR(clear_module_state->__pyx_codeobj__583);
  Py_CLEAR(clear_module_state->__pyx_codeobj__585);
  Py_CLEAR(clear_module_state->__pyx_codeobj__587);
  Py_CLEAR(clear_module_state->__pyx_codeobj__589);
  Py_CLEAR(clear_module_state->__pyx_codeobj__591);
  Py_CLEAR(clear_module_state->__pyx_codeobj__593);
  Py_CLEAR(clear_module_state->__pyx_codeobj__595);
  Py_CLEAR(clear_module_state->__pyx_codeobj__597);
  Py_CLEAR(clear_module_state->__pyx_codeobj__599);
  Py_CLEAR(clear_module_state->__pyx_codeobj__601);
  Py_CLEAR(clear_module_state->__pyx_codeobj__603);
  Py_CLEAR(clear_module_state->__pyx_codeobj__605);
  Py_CLEAR(clear_module_state->__pyx_codeobj__607);
  Py_CLEAR(clear_module_state->__pyx_codeobj__608);
  Py_CLEAR(clear_module_state->__pyx_codeobj__610);
  Py_CLEAR(clear_module_state->__pyx_codeobj__611);
  Py_CLEAR(clear_module_state->__pyx_codeobj__613);
  Py_CLEAR(clear_module_state->__pyx_codeobj__614);
  Py_CLEAR(clear_module_state->__pyx_codeobj__615);
  Py_CLEAR(clear_module_state->__pyx_codeobj__617);
  Py_CLEAR(clear_module_state->__pyx_codeobj__619);
  Py_CLEAR(clear_module_state->__pyx_codeobj__620);
  Py_CLEAR(clear_module_state->__pyx_codeobj__622);
  Py_CLEAR(clear_module_state->__pyx_codeobj__623);
  Py_CLEAR(clear_module_state->__pyx_codeobj__625);
  Py_CLEAR(clear_module_state->__pyx_codeobj__626);
  Py_CLEAR(clear_module_state->__pyx_codeobj__628);
  Py_CLEAR(clear_module_state->__pyx_codeobj__632);
  Py_CLEAR(clear_module_state->__pyx_codeobj__634);
  Py_CLEAR(clear_module_state->__pyx_codeobj__635);
  Py_CLEAR(clear_module_state->__pyx_codeobj__636);
  Py_CLEAR(clear_module_state->__pyx_codeobj__639);
  Py_CLEAR(clear_module_state->__pyx_codeobj__641);
  Py_CLEAR(clear_module_state->__pyx_codeobj__643);
  Py_CLEAR(clear_module_state->__pyx_codeobj__645);
  Py_CLEAR(clear_module_state->__pyx_codeobj__647);
  Py_CLEAR(clear_module_state->__pyx_codeobj__648);
  Py_CLEAR(clear_module_state->__pyx_codeobj__649);
  Py_CLEAR(clear_module_state->__pyx_codeobj__651);
  Py_CLEAR(clear_module_state->__pyx_codeobj__652);
  Py_CLEAR(clear_module_state->__pyx_codeobj__653);
  Py_CLEAR(clear_module_state->__pyx_codeobj__654);
  Py_CLEAR(clear_module_state->__pyx_codeobj__656);
  Py_CLEAR(clear_module_state->__pyx_codeobj__659);
  Py_CLEAR(clear_module_state->__pyx_codeobj__662);
  Py_CLEAR(clear_module_state->__pyx_codeobj__663);
  Py_CLEAR(clear_module_state->__pyx_codeobj__665);
  Py_CLEAR(clear_module_state->__pyx_codeobj__667);
  Py_CLEAR(clear_module_state->__pyx_codeobj__669);
  Py_CLEAR(clear_module_state->__pyx_codeobj__671);
  Py_CLEAR(clear_module_state->__pyx_codeobj__673);
  Py_CLEAR(clear_module_state->__pyx_codeobj__675);
  Py_CLEAR(clear_module_state->__pyx_codeobj__678);
  Py_CLEAR(clear_module_state->__pyx_codeobj__681);
  Py_CLEAR(clear_module_state->__pyx_codeobj__684);
  Py_CLEAR(clear_module_state->__pyx_codeobj__685);
  Py_CLEAR(clear_module_state->__pyx_codeobj__686);
  Py_CLEAR(clear_module_state->__pyx_codeobj__689);
  Py_CLEAR(clear_module_state->__pyx_codeobj__691);
  Py_CLEAR(clear_module_state->__pyx_codeobj__693);
  Py_CLEAR(clear_module_state->__pyx_codeobj__695);
  Py_CLEAR(clear_module_state->__pyx_codeobj__697);
  Py_CLEAR(clear_module_state->__pyx_codeobj__699);
  Py_CLEAR(clear_module_state->__pyx_codeobj__701);
  Py_CLEAR(clear_module_state->__pyx_codeobj__702);
  Py_CLEAR(clear_module_state->__pyx_codeobj__704);
  Py_CLEAR(clear_module_state->__pyx_codeobj__706);
  Py_CLEAR(clear_module_state->__pyx_codeobj__707);
  Py_CLEAR(clear_module_state->__pyx_codeobj__709);
  Py_CLEAR(clear_module_state->__pyx_codeobj__712);
  Py_CLEAR(clear_module_state->__pyx_codeobj__715);
  Py_CLEAR(clear_module_state->__pyx_codeobj__717);
  Py_CLEAR(clear_module_state->__pyx_codeobj__719);
  Py_CLEAR(clear_module_state->__pyx_codeobj__721);
  Py_CLEAR(clear_module_state->__pyx_codeobj__723);
  Py_CLEAR(clear_module_state->__pyx_codeobj__725);
  Py_CLEAR(clear_module_state->__pyx_codeobj__727);
  Py_CLEAR(clear_module_state->__pyx_codeobj__728);
  Py_CLEAR(clear_module_state->__pyx_codeobj__729);
  Py_CLEAR(clear_module_state->__pyx_codeobj__731);
  Py_CLEAR(clear_module_state->__pyx_codeobj__733);
  Py_CLEAR(clear_module_state->__pyx_codeobj__734);
  Py_CLEAR(clear_module_state->__pyx_codeobj__735);
  Py_CLEAR(clear_module_state->__pyx_codeobj__740);
  Py_CLEAR(clear_module_state->__pyx_codeobj__743);
  Py_CLEAR(clear_module_state->__pyx_codeobj__745);
  Py_CLEAR(clear_module_state->__pyx_codeobj__746);
  Py_CLEAR(clear_module_state->__pyx_codeobj__748);
  Py_CLEAR(clear_module_state->__pyx_codeobj__750);
  Py_CLEAR(clear_module_state->__pyx_codeobj__751);
  Py_CLEAR(clear_module_state->__pyx_codeobj__753);
  Py_CLEAR(clear_module_state->__pyx_codeobj__755);
  Py_CLEAR(clear_module_state->__pyx_codeobj__756);
  Py_CLEAR(clear_module_state->__pyx_codeobj__757);
  Py_CLEAR(clear_module_state->__pyx_codeobj__758);
  Py_CLEAR(clear_module_state->__pyx_codeobj__760);
  Py_CLEAR(clear_module_state->__pyx_codeobj__762);
  Py_CLEAR(clear_module_state->__pyx_codeobj__763);
  Py_CLEAR(clear_module_state->__pyx_codeobj__765);
  Py_CLEAR(clear_module_state->__pyx_codeobj__766);
  Py_CLEAR(clear_module_state->__pyx_codeobj__769);
  Py_CLEAR(clear_module_state->__pyx_codeobj__771);
  Py_CLEAR(clear_module_state->__pyx_codeobj__773);
  Py_CLEAR(clear_module_state->__pyx_codeobj__775);
  Py_CLEAR(clear_module_state->__pyx_codeobj__777);
  return 0;
}
#endif
/* #### Code section: module_state_traverse ### */
#if CYTHON_USE_MODULE_STATE
static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
  __pyx_mstate *traverse_module_state = __pyx_mstate(m);
  if (!traverse_module_state) return 0;
  Py_VISIT(traverse_module_state->__pyx_d);
  Py_VISIT(traverse_module_state->__pyx_b);
  Py_VISIT(traverse_module_state->__pyx_cython_runtime);
  Py_VISIT(traverse_module_state->__pyx_empty_tuple);
  Py_VISIT(traverse_module_state->__pyx_empty_bytes);
  Py_VISIT(traverse_module_state->__pyx_empty_unicode);
  #ifdef __Pyx_CyFunction_USED
  Py_VISIT(traverse_module_state->__pyx_CyFunctionType);
  #endif
  #ifdef __Pyx_FusedFunction_USED
  Py_VISIT(traverse_module_state->__pyx_FusedFunctionType);
  #endif
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_dtype);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flatiter);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_broadcast);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ndarray);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_generic);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_number);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_integer);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_signedinteger);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_unsignedinteger);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_inexact);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_floating);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_complexfloating);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flexible);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_character);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ufunc);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjLROpt);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjLROpt);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVFS);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVFS);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjOption);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjOption);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVisual);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVisual_global_);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVisual_quality);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVisual_headlight);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVisual_map);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVisual_scale);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjVisual_rgba);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjStatistic);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjStatistic);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjModel);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjModel);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjContact);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjContact);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjWarningStat);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjTimerStat);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjSolverStat);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjData);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjData);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvPerturb);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvCamera);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvCamera);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvGLCamera);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvGeom);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvGeom);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvLight);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvLight);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvOption);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvOption);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvScene);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvScene);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjvFigure);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjvFigure);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjrRect);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjrRect);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjrContext);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjrContext);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjuiState);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjuiState);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjuiThemeSpacing);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjuiThemeColor);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjuiItem);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjuiItem);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjuiSection);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjuiSection);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjUI);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjUI);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_PyMjuiDef);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_PyMjuiDef);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_MjSim);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_MjSim);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj_MjRenderContext);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names);
  Py_VISIT(traverse_module_state->__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr);
  Py_VISIT(traverse_module_state->__pyx_array_type);
  Py_VISIT(traverse_module_state->__pyx_type___pyx_array);
  Py_VISIT(traverse_module_state->__pyx_MemviewEnum_type);
  Py_VISIT(traverse_module_state->__pyx_type___pyx_MemviewEnum);
  Py_VISIT(traverse_module_state->__pyx_memoryview_type);
  Py_VISIT(traverse_module_state->__pyx_type___pyx_memoryview);
  Py_VISIT(traverse_module_state->__pyx_memoryviewslice_type);
  Py_VISIT(traverse_module_state->__pyx_type___pyx_memoryviewslice);
  Py_VISIT(traverse_module_state->__pyx_kp_u_);
  Py_VISIT(traverse_module_state->__pyx_n_s_ABCMeta);
  Py_VISIT(traverse_module_state->__pyx_n_s_ASCII);
  Py_VISIT(traverse_module_state->__pyx_kp_s_All_dimensions_preceding_dimensi);
  Py_VISIT(traverse_module_state->__pyx_n_s_AssertionError);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Buffer_view_does_not_expose_stri);
  Py_VISIT(traverse_module_state->__pyx_n_s_CAMERA_FIXED);
  Py_VISIT(traverse_module_state->__pyx_n_s_CAMERA_FREE);
  Py_VISIT(traverse_module_state->__pyx_n_s_CAT_DECOR);
  Py_VISIT(traverse_module_state->__pyx_n_u_CUDA_VISIBLE_DEVICES);
  Py_VISIT(traverse_module_state->__pyx_kp_u_CUDA_buffers_must_be_mapped_befo);
  Py_VISIT(traverse_module_state->__pyx_kp_u_CUDA_buffers_must_be_unmapped_be);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Can_only_create_a_buffer_that_is);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Cannot_assign_to_read_only_memor);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Cannot_create_writable_memory_vi);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Cannot_index_with_type);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Cannot_transpose_memoryview_with);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Class_to_wrap_capturing_excepti);
  Py_VISIT(traverse_module_state->__pyx_n_s_Context);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Creating_offscreen_glfw);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Creating_window_glfw);
  Py_VISIT(traverse_module_state->__pyx_n_s_CudaBufferMappedError);
  Py_VISIT(traverse_module_state->__pyx_n_s_CudaBufferNotMappedError);
  Py_VISIT(traverse_module_state->__pyx_n_s_CudaNotEnabledError);
  Py_VISIT(traverse_module_state->__pyx_n_s_DOUBLEBUFFER);
  Py_VISIT(traverse_module_state->__pyx_n_u_DYLD_LIBRARY_PATH);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Depth_not_enabled_Use_depth_True);
  Py_VISIT(traverse_module_state->__pyx_n_s_Device);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Dimension_d_is_not_direct);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ellipsis);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Empty_shape_tuple_for_cython_arr);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Every_value_in_udd_state_must_be);
  Py_VISIT(traverse_module_state->__pyx_n_s_FONTSCALE_150);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Failed_to_create_GLFW_window);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Failed_to_import_pycuda);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Failed_to_initialize_GLFW);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Failed_to_initialize_OpenGL);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Failed_to_load_XML_file);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Failed_to_load_XML_from_string);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Failed_to_save_XML);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Failed_to_set_buffer_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_GEOM_BOX);
  Py_VISIT(traverse_module_state->__pyx_n_s_GLFW_IS_INITIALIZED);
  Py_VISIT(traverse_module_state->__pyx_kp_u_GLFW_error_code_d_s);
  Py_VISIT(traverse_module_state->__pyx_kp_u_GLFW_not_installed);
  Py_VISIT(traverse_module_state->__pyx_n_u_GPUS);
  Py_VISIT(traverse_module_state->__pyx_n_s_GlfwContext);
  Py_VISIT(traverse_module_state->__pyx_n_s_GlfwContext___init);
  Py_VISIT(traverse_module_state->__pyx_n_s_GlfwContext__create_window);
  Py_VISIT(traverse_module_state->__pyx_n_s_GlfwContext__glfw_error_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_GlfwContext__init_glfw);
  Py_VISIT(traverse_module_state->__pyx_n_s_GlfwContext__set_window_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_GlfwContext_get_buffer_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_GlfwContext_make_context_current);
  Py_VISIT(traverse_module_state->__pyx_n_s_GlfwContext_set_buffer_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_GlfwError);
  Py_VISIT(traverse_module_state->__pyx_n_s_INIT_HEIGHT);
  Py_VISIT(traverse_module_state->__pyx_n_s_INIT_WIDTH);
  Py_VISIT(traverse_module_state->__pyx_n_s_ImportError);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0);
  Py_VISIT(traverse_module_state->__pyx_n_s_IndexError);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Index_out_of_bounds_axis_d);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Indirect_dimensions_not_supporte);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Invalid_mode_expected_c_or_fortr);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Invalid_shape_in_axis);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Keys_cannot_be_added_to_udd_stat);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Keys_cannot_be_dropped_from_udd);
  Py_VISIT(traverse_module_state->__pyx_n_s_Kp);
  Py_VISIT(traverse_module_state->__pyx_n_s_Kv);
  Py_VISIT(traverse_module_state->__pyx_n_s_Lock);
  Py_VISIT(traverse_module_state->__pyx_n_s_M);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Mapped_CUDA_depth_buffer_pointer);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Mapped_CUDA_rgb_buffer_pointer);
  Py_VISIT(traverse_module_state->__pyx_n_s_MemoryError);
  Py_VISIT(traverse_module_state->__pyx_kp_s_MemoryView_of_r_at_0x_x);
  Py_VISIT(traverse_module_state->__pyx_kp_s_MemoryView_of_r_object);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjBatchRenderer);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjBatchRendererException);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjBatchRendererNotSupported);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjBatchRenderer___del);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjBatchRenderer___init);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjBatchRenderer__init_cuda);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjBatchRenderer__read_cuda);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjBatchRenderer__read_nocuda);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjBatchRenderer_cuda_depth_buffe);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjBatchRenderer_cuda_rgb_buffer);
  Py_VISIT(traverse_module_state->__pyx_kp_u_MjBatchRenderer_currently_only_s);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjBatchRenderer_map);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjBatchRenderer_prepare_render_c);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjBatchRenderer_read);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjBatchRenderer_render);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjBatchRenderer_unmap);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContextOffscreen);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContextOffscreen___cinit);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContextWindow);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContextWindow___init);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContextWindow_render);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContextWindow_window);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext___setstate_cytho);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext__add_marker_to_s);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext__init_camera);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext__set_mujoco_buff);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext__setup_opengl_co);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext_add_marker);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext_add_overlay);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext_draw_pixels);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext_move_camera);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext_read_pixels);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext_read_pixels_dept);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext_render);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext_update_offscreen);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext_update_sim);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjRenderContext_upload_texture);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSimState);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSimState___eq);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSimState___ne);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSimState__flatten_dict);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSimState__unflatten_dict);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSimState_flatten);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSimState_from_flattened);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_add_render_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_forward);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_get_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_ray);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_ray_fast_group);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_ray_fast_nogroup);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_render);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_render_lock);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_reset);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_save);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_set_constants);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_set_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_set_state_from_flattened);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_set_substep_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_step);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_step_udd);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjSim_substep_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_MjViewer);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Mode_must_be_either_window_or_of);
  Py_VISIT(traverse_module_state->__pyx_n_s_N);
  Py_VISIT(traverse_module_state->__pyx_n_s_NGAIN);
  Py_VISIT(traverse_module_state->__pyx_n_s_NamedTemporaryFile);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_actuator_with_id_d_exists);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_actuator_with_name);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_body_with_id_d_exists);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_body_with_name);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_camera_with_id_d_exists);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_camera_with_name);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_geom_with_id_d_exists);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_geom_with_name);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_joint_with_id_d_exists);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_joint_with_name);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_light_with_id_d_exists);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_light_with_name);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_mesh_with_id_d_exists);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_mesh_with_name);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_sensor_with_id_d_exists);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_sensor_with_name);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_site_with_id_d_exists);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_site_with_name);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_tendon_with_id_d_exists);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_tendon_with_name);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_userdata_with_id_d_exists);
  Py_VISIT(traverse_module_state->__pyx_kp_u_No_userdata_with_name);
  Py_VISIT(traverse_module_state->__pyx_kp_u_None);
  Py_VISIT(traverse_module_state->__pyx_n_s_NotImplemented);
  Py_VISIT(traverse_module_state->__pyx_n_s_NotImplementedError);
  Py_VISIT(traverse_module_state->__pyx_n_s_Number);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Numpy_array_values_in_udd_state);
  Py_VISIT(traverse_module_state->__pyx_n_b_O);
  Py_VISIT(traverse_module_state->__pyx_n_s_OBJ_UNKNOWN);
  Py_VISIT(traverse_module_state->__pyx_n_s_OffscreenOpenGLContext);
  Py_VISIT(traverse_module_state->__pyx_n_s_OffscreenOpenGLContext___init);
  Py_VISIT(traverse_module_state->__pyx_n_s_OffscreenOpenGLContext_close);
  Py_VISIT(traverse_module_state->__pyx_n_s_OffscreenOpenGLContext_make_cont);
  Py_VISIT(traverse_module_state->__pyx_n_s_OffscreenOpenGLContext_set_buffe);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Offscreen_rendering_not_supporte);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Only_GlfwContext_supported_for_w);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Only_label_is_a_string_in_mjvGeo);
  Py_VISIT(traverse_module_state->__pyx_n_s_OpenGLContext);
  Py_VISIT(traverse_module_state->__pyx_n_s_OpenGLContext_make_context_curre);
  Py_VISIT(traverse_module_state->__pyx_n_s_OpenGLContext_set_buffer_size);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
  Py_VISIT(traverse_module_state->__pyx_n_s_OverflowError);
  Py_VISIT(traverse_module_state->__pyx_n_s_PickleError);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjContact);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjContact___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjContact___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_body_jacp);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_body_jacr);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_body_ximat);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_body_xipos);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_body_xmat);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_body_xpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_body_xquat);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_body_xvelp);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_body_xvelr);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_cam_xmat);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_cam_xpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_camera_xmat);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_camera_xpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_geom_jacp);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_geom_jacr);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_geom_xmat);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_geom_xpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_geom_xvelp);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_geom_xvelr);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_joint_qpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_joint_qvel);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_joint_xanchor);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_joint_xaxis);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_light_xdir);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_light_xpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_mocap_pos);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_mocap_quat);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_sensor);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_sensordata);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_site_jacp);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_site_jacr);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_site_xmat);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_site_xpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_site_xvelp);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_site_xvelr);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_userdata);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_xanchor);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_xaxis);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_ximat);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_xipos);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_xmat);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_xpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_get_xquat);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_set_joint_qpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_set_joint_qvel);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_set_mocap_pos);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjData_set_mocap_quat);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjLROpt);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjLROpt___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjLROpt___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel__extract_mj_names_loca);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_actuator_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_actuator_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_body_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_body_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_camera_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_camera_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_geom_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_geom_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_get_joint_qpos_addr);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_get_joint_qvel_addr);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_get_mjb);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_get_xml);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_joint_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_joint_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_light_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_light_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_mesh_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_mesh_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_sensor_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_sensor_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_set_userdata_names);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_site_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_site_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_tendon_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_tendon_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_userdata_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjModel_userdata_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjOption);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjOption___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjOption___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjSolverStat);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjSolverStat___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjSolverStat___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjStatistic);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjStatistic___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjStatistic___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjTimerStat);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjTimerStat___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjTimerStat___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjUI);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjUI___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjUI___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVFS);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVFS___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVFS___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_global);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_global____reduce_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_global____setstate_cy);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_headlight);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_headlight___reduce_cy);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_headlight___setstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_map);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_map___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_map___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_quality);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_quality___reduce_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_quality___setstate_cy);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_rgba);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_rgba___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_rgba___setstate_cytho);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_scale);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_scale___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjVisual_scale___setstate_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjWarningStat);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjWarningStat___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjWarningStat___setstate_cytho);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjrContext);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjrContext___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjrContext___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjrRect);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjrRect___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjrRect___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiDef);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiDef___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiDef___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiItem);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiItem___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiItem___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiSection);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiSection___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiSection___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiState);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiState___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiState___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiThemeColor);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiThemeColor___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiThemeColor___setstate_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiThemeSpacing);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiThemeSpacing___reduce_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjuiThemeSpacing___setstate_cy);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvCamera);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvCamera___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvCamera___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvFigure);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvFigure___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvFigure___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvGLCamera);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvGLCamera___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvGLCamera___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvGeom);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvGeom___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvGeom___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvLight);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvLight___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvLight___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvOption);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvOption___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvOption___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvPerturb);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvPerturb___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvPerturb___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvScene);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvScene___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PyMjvScene___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_RND_IDCOLOR);
  Py_VISIT(traverse_module_state->__pyx_n_s_RND_SEGMENT);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Ran_out_of_geoms_maxgeom_d);
  Py_VISIT(traverse_module_state->__pyx_n_s_RegisteredBuffer);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Represents_a_snapshot_of_the_sim);
  Py_VISIT(traverse_module_state->__pyx_n_s_RuntimeError);
  Py_VISIT(traverse_module_state->__pyx_n_s_SAMPLES);
  Py_VISIT(traverse_module_state->__pyx_n_s_Sequence);
  Py_VISIT(traverse_module_state->__pyx_n_u_SimStateBase);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Step_may_not_be_zero_axis_d);
  Py_VISIT(traverse_module_state->__pyx_kp_b_T);
  Py_VISIT(traverse_module_state->__pyx_n_s_TemporaryDirectory);
  Py_VISIT(traverse_module_state->__pyx_n_s_TypeError);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Unable_to_convert_item_to_object);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Unrecognized_extension_for_s_Exp);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Unsupported_format_Valid_ones_ar);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Utility_class_for_rendering_int);
  Py_VISIT(traverse_module_state->__pyx_n_s_VISIBLE);
  Py_VISIT(traverse_module_state->__pyx_n_s_ValueError);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Value_has_incorrect_shape);
  Py_VISIT(traverse_module_state->__pyx_n_s_View_MemoryView);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Window_rendering_not_supported);
  Py_VISIT(traverse_module_state->__pyx_kp_b__10);
  Py_VISIT(traverse_module_state->__pyx_kp_u__10);
  Py_VISIT(traverse_module_state->__pyx_kp_b__11);
  Py_VISIT(traverse_module_state->__pyx_kp_b__12);
  Py_VISIT(traverse_module_state->__pyx_kp_u__13);
  Py_VISIT(traverse_module_state->__pyx_kp_u__14);
  Py_VISIT(traverse_module_state->__pyx_kp_u__2);
  Py_VISIT(traverse_module_state->__pyx_n_s__3);
  Py_VISIT(traverse_module_state->__pyx_kp_u__34);
  Py_VISIT(traverse_module_state->__pyx_kp_u__41);
  Py_VISIT(traverse_module_state->__pyx_kp_u__44);
  Py_VISIT(traverse_module_state->__pyx_kp_u__52);
  Py_VISIT(traverse_module_state->__pyx_kp_u__6);
  Py_VISIT(traverse_module_state->__pyx_n_s__637);
  Py_VISIT(traverse_module_state->__pyx_kp_u__7);
  Py_VISIT(traverse_module_state->__pyx_n_s__778);
  Py_VISIT(traverse_module_state->__pyx_kp_b__9);
  Py_VISIT(traverse_module_state->__pyx_n_s_a);
  Py_VISIT(traverse_module_state->__pyx_n_s_a0);
  Py_VISIT(traverse_module_state->__pyx_n_s_a1);
  Py_VISIT(traverse_module_state->__pyx_n_s_a2);
  Py_VISIT(traverse_module_state->__pyx_n_s_abc);
  Py_VISIT(traverse_module_state->__pyx_n_s_abstractmethod);
  Py_VISIT(traverse_module_state->__pyx_n_s_acc0);
  Py_VISIT(traverse_module_state->__pyx_n_s_act);
  Py_VISIT(traverse_module_state->__pyx_n_u_act);
  Py_VISIT(traverse_module_state->__pyx_n_s_action);
  Py_VISIT(traverse_module_state->__pyx_kp_u_active_contacts_efc_pos_should_b);
  Py_VISIT(traverse_module_state->__pyx_n_s_actuator_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_actuator_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_add_marker);
  Py_VISIT(traverse_module_state->__pyx_n_s_add_marker_to_scene);
  Py_VISIT(traverse_module_state->__pyx_n_s_add_mujoco_bin_to_dyld_library);
  Py_VISIT(traverse_module_state->__pyx_n_s_add_overlay);
  Py_VISIT(traverse_module_state->__pyx_n_s_add_render_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_addr);
  Py_VISIT(traverse_module_state->__pyx_n_s_allocate_buffer);
  Py_VISIT(traverse_module_state->__pyx_kp_u_and);
  Py_VISIT(traverse_module_state->__pyx_n_s_angle);
  Py_VISIT(traverse_module_state->__pyx_n_s_appendChild);
  Py_VISIT(traverse_module_state->__pyx_n_s_args);
  Py_VISIT(traverse_module_state->__pyx_n_s_arr);
  Py_VISIT(traverse_module_state->__pyx_n_s_array);
  Py_VISIT(traverse_module_state->__pyx_n_s_array_equal);
  Py_VISIT(traverse_module_state->__pyx_n_s_asarray);
  Py_VISIT(traverse_module_state->__pyx_n_s_aspectratio);
  Py_VISIT(traverse_module_state->__pyx_n_s_asyncio_coroutines);
  Py_VISIT(traverse_module_state->__pyx_n_s_attr);
  Py_VISIT(traverse_module_state->__pyx_n_s_axis);
  Py_VISIT(traverse_module_state->__pyx_n_s_b);
  Py_VISIT(traverse_module_state->__pyx_n_s_b0);
  Py_VISIT(traverse_module_state->__pyx_n_s_b1);
  Py_VISIT(traverse_module_state->__pyx_n_s_b2);
  Py_VISIT(traverse_module_state->__pyx_kp_u_bad_userdata_names);
  Py_VISIT(traverse_module_state->__pyx_n_s_base);
  Py_VISIT(traverse_module_state->__pyx_n_s_batch_offset);
  Py_VISIT(traverse_module_state->__pyx_kp_u_batch_offset_out_of_range);
  Py_VISIT(traverse_module_state->__pyx_n_s_batch_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_batch_size_2);
  Py_VISIT(traverse_module_state->__pyx_n_u_bin);
  Py_VISIT(traverse_module_state->__pyx_n_s_bin_path);
  Py_VISIT(traverse_module_state->__pyx_n_s_body);
  Py_VISIT(traverse_module_state->__pyx_n_s_body_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_body_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_body_jacp);
  Py_VISIT(traverse_module_state->__pyx_n_s_body_jacr);
  Py_VISIT(traverse_module_state->__pyx_n_s_body_mocapid);
  Py_VISIT(traverse_module_state->__pyx_n_s_body_name2id);
  Py_VISIT(traverse_module_state->__pyx_kp_u_body_xmat_should_be_used_instead);
  Py_VISIT(traverse_module_state->__pyx_kp_u_body_xpos_should_be_used_instead);
  Py_VISIT(traverse_module_state->__pyx_kp_u_body_xquat_should_be_used_instea);
  Py_VISIT(traverse_module_state->__pyx_n_s_bodyexclude);
  Py_VISIT(traverse_module_state->__pyx_n_s_bottom);
  Py_VISIT(traverse_module_state->__pyx_n_s_buffer);
  Py_VISIT(traverse_module_state->__pyx_n_s_buffer_sz);
  Py_VISIT(traverse_module_state->__pyx_n_s_buffer_view);
  Py_VISIT(traverse_module_state->__pyx_n_s_build_callback_fn);
  Py_VISIT(traverse_module_state->__pyx_n_s_c);
  Py_VISIT(traverse_module_state->__pyx_n_u_c);
  Py_VISIT(traverse_module_state->__pyx_n_s_c1);
  Py_VISIT(traverse_module_state->__pyx_n_s_c2);
  Py_VISIT(traverse_module_state->__pyx_n_s_cam);
  Py_VISIT(traverse_module_state->__pyx_n_s_camera_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_camera_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_camera_name);
  Py_VISIT(traverse_module_state->__pyx_n_s_camera_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_catmask);
  Py_VISIT(traverse_module_state->__pyx_n_s_childNodes);
  Py_VISIT(traverse_module_state->__pyx_n_s_cinit);
  Py_VISIT(traverse_module_state->__pyx_n_s_class);
  Py_VISIT(traverse_module_state->__pyx_n_s_class_getitem);
  Py_VISIT(traverse_module_state->__pyx_n_s_cline_in_traceback);
  Py_VISIT(traverse_module_state->__pyx_n_s_close);
  Py_VISIT(traverse_module_state->__pyx_n_s_colind);
  Py_VISIT(traverse_module_state->__pyx_n_s_collections);
  Py_VISIT(traverse_module_state->__pyx_kp_s_collections_abc);
  Py_VISIT(traverse_module_state->__pyx_n_s_con);
  Py_VISIT(traverse_module_state->__pyx_n_s_concatenate);
  Py_VISIT(traverse_module_state->__pyx_n_s_const);
  Py_VISIT(traverse_module_state->__pyx_kp_s_contiguous_and_direct);
  Py_VISIT(traverse_module_state->__pyx_kp_s_contiguous_and_indirect);
  Py_VISIT(traverse_module_state->__pyx_n_s_copy);
  Py_VISIT(traverse_module_state->__pyx_n_s_cost);
  Py_VISIT(traverse_module_state->__pyx_n_s_count);
  Py_VISIT(traverse_module_state->__pyx_n_s_createElement);
  Py_VISIT(traverse_module_state->__pyx_n_s_create_window);
  Py_VISIT(traverse_module_state->__pyx_n_s_create_window_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_ctrl);
  Py_VISIT(traverse_module_state->__pyx_n_s_cuda_buffers_are_mapped);
  Py_VISIT(traverse_module_state->__pyx_n_s_cuda_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_cuda_depth_buf_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_cuda_depth_buffer_pointer);
  Py_VISIT(traverse_module_state->__pyx_n_s_cuda_depth_mapping);
  Py_VISIT(traverse_module_state->__pyx_n_s_cuda_depth_pbo);
  Py_VISIT(traverse_module_state->__pyx_n_s_cuda_depth_ptr);
  Py_VISIT(traverse_module_state->__pyx_n_s_cuda_rgb_buf_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_cuda_rgb_buffer_pointer);
  Py_VISIT(traverse_module_state->__pyx_n_s_cuda_rgb_mapping);
  Py_VISIT(traverse_module_state->__pyx_n_s_cuda_rgb_pbo);
  Py_VISIT(traverse_module_state->__pyx_n_s_cuda_rgb_ptr);
  Py_VISIT(traverse_module_state->__pyx_n_s_current_batch_offset);
  Py_VISIT(traverse_module_state->__pyx_n_s_d);
  Py_VISIT(traverse_module_state->__pyx_n_u_d);
  Py_VISIT(traverse_module_state->__pyx_n_u_darwin);
  Py_VISIT(traverse_module_state->__pyx_n_s_data);
  Py_VISIT(traverse_module_state->__pyx_n_s_deepcopy);
  Py_VISIT(traverse_module_state->__pyx_n_s_def);
  Py_VISIT(traverse_module_state->__pyx_n_s_del);
  Py_VISIT(traverse_module_state->__pyx_n_s_delete);
  Py_VISIT(traverse_module_state->__pyx_n_s_depth);
  Py_VISIT(traverse_module_state->__pyx_n_s_depth_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_depth_arr);
  Py_VISIT(traverse_module_state->__pyx_n_s_depth_img);
  Py_VISIT(traverse_module_state->__pyx_n_s_depth_view);
  Py_VISIT(traverse_module_state->__pyx_n_s_derivative_error);
  Py_VISIT(traverse_module_state->__pyx_n_s_derivative_gain_smoothing);
  Py_VISIT(traverse_module_state->__pyx_n_s_derivative_time_const);
  Py_VISIT(traverse_module_state->__pyx_n_s_description);
  Py_VISIT(traverse_module_state->__pyx_n_s_dest);
  Py_VISIT(traverse_module_state->__pyx_n_s_detach);
  Py_VISIT(traverse_module_state->__pyx_n_s_device);
  Py_VISIT(traverse_module_state->__pyx_n_s_device_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_device_id_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_device_ptr_and_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_diag);
  Py_VISIT(traverse_module_state->__pyx_n_s_dict);
  Py_VISIT(traverse_module_state->__pyx_n_s_dim);
  Py_VISIT(traverse_module_state->__pyx_n_s_directory);
  Py_VISIT(traverse_module_state->__pyx_kp_u_disable);
  Py_VISIT(traverse_module_state->__pyx_n_s_discover_mujoco);
  Py_VISIT(traverse_module_state->__pyx_n_s_distance);
  Py_VISIT(traverse_module_state->__pyx_n_s_doc);
  Py_VISIT(traverse_module_state->__pyx_kp_u_doesn_t_match_old_pointer);
  Py_VISIT(traverse_module_state->__pyx_n_s_dom);
  Py_VISIT(traverse_module_state->__pyx_n_s_dot);
  Py_VISIT(traverse_module_state->__pyx_n_s_draw_pixels);
  Py_VISIT(traverse_module_state->__pyx_n_s_driver);
  Py_VISIT(traverse_module_state->__pyx_n_s_drv);
  Py_VISIT(traverse_module_state->__pyx_n_s_dst);
  Py_VISIT(traverse_module_state->__pyx_n_s_dt);
  Py_VISIT(traverse_module_state->__pyx_n_s_dt_seconds);
  Py_VISIT(traverse_module_state->__pyx_n_s_dtype);
  Py_VISIT(traverse_module_state->__pyx_n_s_dtype_is_object);
  Py_VISIT(traverse_module_state->__pyx_n_s_eigval);
  Py_VISIT(traverse_module_state->__pyx_n_s_eigvec);
  Py_VISIT(traverse_module_state->__pyx_n_s_element);
  Py_VISIT(traverse_module_state->__pyx_n_s_empty);
  Py_VISIT(traverse_module_state->__pyx_kp_u_enable);
  Py_VISIT(traverse_module_state->__pyx_n_s_encode);
  Py_VISIT(traverse_module_state->__pyx_n_s_end_i);
  Py_VISIT(traverse_module_state->__pyx_n_s_enter);
  Py_VISIT(traverse_module_state->__pyx_n_s_enumerate);
  Py_VISIT(traverse_module_state->__pyx_n_s_environ);
  Py_VISIT(traverse_module_state->__pyx_n_s_eq);
  Py_VISIT(traverse_module_state->__pyx_n_s_err_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_error);
  Py_VISIT(traverse_module_state->__pyx_n_s_error_code);
  Py_VISIT(traverse_module_state->__pyx_n_s_error_deadband);
  Py_VISIT(traverse_module_state->__pyx_n_s_error_sz);
  Py_VISIT(traverse_module_state->__pyx_n_s_errors);
  Py_VISIT(traverse_module_state->__pyx_n_s_errstr);
  Py_VISIT(traverse_module_state->__pyx_n_s_exclude_body);
  Py_VISIT(traverse_module_state->__pyx_kp_u_exists_Available_actuator_names);
  Py_VISIT(traverse_module_state->__pyx_kp_u_exists_Available_body_names);
  Py_VISIT(traverse_module_state->__pyx_kp_u_exists_Available_camera_names);
  Py_VISIT(traverse_module_state->__pyx_kp_u_exists_Available_geom_names);
  Py_VISIT(traverse_module_state->__pyx_kp_u_exists_Available_joint_names);
  Py_VISIT(traverse_module_state->__pyx_kp_u_exists_Available_light_names);
  Py_VISIT(traverse_module_state->__pyx_kp_u_exists_Available_mesh_names);
  Py_VISIT(traverse_module_state->__pyx_kp_u_exists_Available_sensor_names);
  Py_VISIT(traverse_module_state->__pyx_kp_u_exists_Available_site_names);
  Py_VISIT(traverse_module_state->__pyx_kp_u_exists_Available_tendon_names);
  Py_VISIT(traverse_module_state->__pyx_kp_u_exists_Available_userdata_names);
  Py_VISIT(traverse_module_state->__pyx_n_s_exit);
  Py_VISIT(traverse_module_state->__pyx_n_s_extent);
  Py_VISIT(traverse_module_state->__pyx_n_s_eye);
  Py_VISIT(traverse_module_state->__pyx_n_s_f);
  Py_VISIT(traverse_module_state->__pyx_n_s_feedback);
  Py_VISIT(traverse_module_state->__pyx_n_s_fig);
  Py_VISIT(traverse_module_state->__pyx_n_s_file);
  Py_VISIT(traverse_module_state->__pyx_n_s_filename);
  Py_VISIT(traverse_module_state->__pyx_n_s_filesize);
  Py_VISIT(traverse_module_state->__pyx_n_s_fill_value);
  Py_VISIT(traverse_module_state->__pyx_n_s_fixedcamid);
  Py_VISIT(traverse_module_state->__pyx_n_s_flags);
  Py_VISIT(traverse_module_state->__pyx_n_s_flat_udd_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_flatten);
  Py_VISIT(traverse_module_state->__pyx_n_s_flatten_dict);
  Py_VISIT(traverse_module_state->__pyx_n_s_flg_acc);
  Py_VISIT(traverse_module_state->__pyx_n_s_flg_color);
  Py_VISIT(traverse_module_state->__pyx_n_s_flg_coneHessian);
  Py_VISIT(traverse_module_state->__pyx_n_s_flg_depth);
  Py_VISIT(traverse_module_state->__pyx_n_s_flg_force);
  Py_VISIT(traverse_module_state->__pyx_n_s_flg_html);
  Py_VISIT(traverse_module_state->__pyx_n_s_flg_local);
  Py_VISIT(traverse_module_state->__pyx_n_s_flg_pad);
  Py_VISIT(traverse_module_state->__pyx_n_s_flg_paused);
  Py_VISIT(traverse_module_state->__pyx_n_s_flg_plus);
  Py_VISIT(traverse_module_state->__pyx_n_s_flg_static);
  Py_VISIT(traverse_module_state->__pyx_n_s_float32);
  Py_VISIT(traverse_module_state->__pyx_n_s_float64);
  Py_VISIT(traverse_module_state->__pyx_n_s_flush);
  Py_VISIT(traverse_module_state->__pyx_n_s_font);
  Py_VISIT(traverse_module_state->__pyx_n_s_fontscale);
  Py_VISIT(traverse_module_state->__pyx_n_s_force);
  Py_VISIT(traverse_module_state->__pyx_n_s_format);
  Py_VISIT(traverse_module_state->__pyx_n_s_fortran);
  Py_VISIT(traverse_module_state->__pyx_n_u_fortran);
  Py_VISIT(traverse_module_state->__pyx_n_s_forward);
  Py_VISIT(traverse_module_state->__pyx_n_s_fp);
  Py_VISIT(traverse_module_state->__pyx_n_s_framebuffer);
  Py_VISIT(traverse_module_state->__pyx_n_s_from_device);
  Py_VISIT(traverse_module_state->__pyx_n_s_from_flattened);
  Py_VISIT(traverse_module_state->__pyx_n_s_full);
  Py_VISIT(traverse_module_state->__pyx_n_s_g);
  Py_VISIT(traverse_module_state->__pyx_kp_u_gc);
  Py_VISIT(traverse_module_state->__pyx_n_s_genexpr);
  Py_VISIT(traverse_module_state->__pyx_n_s_geom);
  Py_VISIT(traverse_module_state->__pyx_n_s_geom_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_geom_jacp);
  Py_VISIT(traverse_module_state->__pyx_n_s_geom_jacr);
  Py_VISIT(traverse_module_state->__pyx_n_s_geom_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_geom_xpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_geomgroup);
  Py_VISIT(traverse_module_state->__pyx_n_s_geomgroup_view);
  Py_VISIT(traverse_module_state->__pyx_n_s_geomid);
  Py_VISIT(traverse_module_state->__pyx_n_s_geomtype);
  Py_VISIT(traverse_module_state->__pyx_n_s_getElementsByTagName);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_body_jacp);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_body_jacr);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_body_ximat);
  Py_VISIT(traverse_module_state->__pyx_kp_u_get_body_ximat_should_be_used_in);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_body_xipos);
  Py_VISIT(traverse_module_state->__pyx_kp_u_get_body_xipos_should_be_used_in);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_body_xmat);
  Py_VISIT(traverse_module_state->__pyx_kp_u_get_body_xmat_should_be_used_ins);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_body_xpos);
  Py_VISIT(traverse_module_state->__pyx_kp_u_get_body_xpos_should_be_used_ins);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_body_xquat);
  Py_VISIT(traverse_module_state->__pyx_kp_u_get_body_xquat_should_be_used_in);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_body_xvelp);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_body_xvelr);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_buffer_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_cam_xmat);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_cam_xpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_camera_xmat);
  Py_VISIT(traverse_module_state->__pyx_kp_u_get_camera_xmat_should_be_used_i);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_camera_xpos);
  Py_VISIT(traverse_module_state->__pyx_kp_u_get_camera_xpos_should_be_used_i);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_error_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_framebuffer_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_geom_jacp);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_geom_jacr);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_geom_xmat);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_geom_xpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_geom_xvelp);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_geom_xvelr);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_joint_qpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_joint_qpos_addr);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_joint_qvel);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_joint_qvel_addr);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_joint_xanchor);
  Py_VISIT(traverse_module_state->__pyx_kp_u_get_joint_xanchor_should_be_used);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_joint_xaxis);
  Py_VISIT(traverse_module_state->__pyx_kp_u_get_joint_xaxis_should_be_used_i);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_light_xdir);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_light_xpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_mjb);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_mocap_pos);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_mocap_quat);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_primary_monitor);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_sensor);
  Py_VISIT(traverse_module_state->__pyx_kp_u_get_sensor_should_be_used_instea);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_sensordata);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_site_jacp);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_site_jacr);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_site_xmat);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_site_xpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_site_xvelp);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_site_xvelr);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_userdata);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_video_mode);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_warning_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_xanchor);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_xaxis);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_ximat);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_xipos);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_xmat);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_xml);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_xpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_get_xquat);
  Py_VISIT(traverse_module_state->__pyx_n_s_getenv);
  Py_VISIT(traverse_module_state->__pyx_n_s_getstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_glfw);
  Py_VISIT(traverse_module_state->__pyx_n_u_glfw);
  Py_VISIT(traverse_module_state->__pyx_n_s_glfw_error_callback);
  Py_VISIT(traverse_module_state->__pyx_kp_u_got);
  Py_VISIT(traverse_module_state->__pyx_kp_u_got_differing_extents_in_dimensi);
  Py_VISIT(traverse_module_state->__pyx_n_s_gridpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_group_filter);
  Py_VISIT(traverse_module_state->__pyx_n_s_headpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_height);
  Py_VISIT(traverse_module_state->__pyx_n_s_height_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_hfieldid);
  Py_VISIT(traverse_module_state->__pyx_n_s_i);
  Py_VISIT(traverse_module_state->__pyx_n_s_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_idx);
  Py_VISIT(traverse_module_state->__pyx_n_s_idx_act);
  Py_VISIT(traverse_module_state->__pyx_n_s_idx_qpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_idx_qvel);
  Py_VISIT(traverse_module_state->__pyx_n_s_idx_time);
  Py_VISIT(traverse_module_state->__pyx_n_s_idx_udd);
  Py_VISIT(traverse_module_state->__pyx_n_s_image);
  Py_VISIT(traverse_module_state->__pyx_n_s_image_view);
  Py_VISIT(traverse_module_state->__pyx_n_s_import);
  Py_VISIT(traverse_module_state->__pyx_n_s_include_static_geoms);
  Py_VISIT(traverse_module_state->__pyx_n_s_indent);
  Py_VISIT(traverse_module_state->__pyx_n_s_index);
  Py_VISIT(traverse_module_state->__pyx_n_u_inertial);
  Py_VISIT(traverse_module_state->__pyx_n_s_info);
  Py_VISIT(traverse_module_state->__pyx_n_s_init);
  Py_VISIT(traverse_module_state->__pyx_n_s_init_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_init_camera);
  Py_VISIT(traverse_module_state->__pyx_n_s_init_cuda);
  Py_VISIT(traverse_module_state->__pyx_n_s_init_glfw);
  Py_VISIT(traverse_module_state->__pyx_n_s_init_height);
  Py_VISIT(traverse_module_state->__pyx_n_s_init_subclass);
  Py_VISIT(traverse_module_state->__pyx_n_s_init_width);
  Py_VISIT(traverse_module_state->__pyx_n_s_initializing);
  Py_VISIT(traverse_module_state->__pyx_kp_u_insufficient_userdata);
  Py_VISIT(traverse_module_state->__pyx_n_s_int32);
  Py_VISIT(traverse_module_state->__pyx_n_s_int64);
  Py_VISIT(traverse_module_state->__pyx_n_s_integral_error);
  Py_VISIT(traverse_module_state->__pyx_n_s_integral_max_clamp);
  Py_VISIT(traverse_module_state->__pyx_n_s_integral_time_const);
  Py_VISIT(traverse_module_state->__pyx_kp_u_invalid);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_coroutine);
  Py_VISIT(traverse_module_state->__pyx_kp_u_isenabled);
  Py_VISIT(traverse_module_state->__pyx_n_s_item);
  Py_VISIT(traverse_module_state->__pyx_n_s_items);
  Py_VISIT(traverse_module_state->__pyx_n_s_itemsize);
  Py_VISIT(traverse_module_state->__pyx_kp_s_itemsize_0_for_cython_array);
  Py_VISIT(traverse_module_state->__pyx_n_s_jacAxis);
  Py_VISIT(traverse_module_state->__pyx_n_s_jacPoint);
  Py_VISIT(traverse_module_state->__pyx_n_s_jacp);
  Py_VISIT(traverse_module_state->__pyx_n_s_jacp_view);
  Py_VISIT(traverse_module_state->__pyx_n_s_jacr);
  Py_VISIT(traverse_module_state->__pyx_n_s_jacr_view);
  Py_VISIT(traverse_module_state->__pyx_n_s_jar);
  Py_VISIT(traverse_module_state->__pyx_n_s_jnt_dofadr);
  Py_VISIT(traverse_module_state->__pyx_n_s_jnt_qposadr);
  Py_VISIT(traverse_module_state->__pyx_n_s_jnt_type);
  Py_VISIT(traverse_module_state->__pyx_n_s_join);
  Py_VISIT(traverse_module_state->__pyx_n_s_joint_addr);
  Py_VISIT(traverse_module_state->__pyx_n_s_joint_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_joint_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_joint_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_joint_type);
  Py_VISIT(traverse_module_state->__pyx_n_s_k);
  Py_VISIT(traverse_module_state->__pyx_n_s_keep_inertials);
  Py_VISIT(traverse_module_state->__pyx_n_s_key);
  Py_VISIT(traverse_module_state->__pyx_n_u_key);
  Py_VISIT(traverse_module_state->__pyx_n_s_key_el);
  Py_VISIT(traverse_module_state->__pyx_n_u_keyframe);
  Py_VISIT(traverse_module_state->__pyx_n_s_keyframe_el);
  Py_VISIT(traverse_module_state->__pyx_n_s_keys);
  Py_VISIT(traverse_module_state->__pyx_n_u_label);
  Py_VISIT(traverse_module_state->__pyx_n_s_left);
  Py_VISIT(traverse_module_state->__pyx_n_s_len);
  Py_VISIT(traverse_module_state->__pyx_n_s_lengthrange);
  Py_VISIT(traverse_module_state->__pyx_n_s_light_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_light_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_list);
  Py_VISIT(traverse_module_state->__pyx_n_s_load_model_from_mjb);
  Py_VISIT(traverse_module_state->__pyx_n_s_load_model_from_path);
  Py_VISIT(traverse_module_state->__pyx_n_s_load_model_from_xml);
  Py_VISIT(traverse_module_state->__pyx_n_s_logging);
  Py_VISIT(traverse_module_state->__pyx_n_s_lookat);
  Py_VISIT(traverse_module_state->__pyx_n_s_lower);
  Py_VISIT(traverse_module_state->__pyx_n_s_m);
  Py_VISIT(traverse_module_state->__pyx_n_s_main);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_context_current);
  Py_VISIT(traverse_module_state->__pyx_n_s_map);
  Py_VISIT(traverse_module_state->__pyx_n_s_marker_params);
  Py_VISIT(traverse_module_state->__pyx_n_s_mat);
  Py_VISIT(traverse_module_state->__pyx_n_s_mat1);
  Py_VISIT(traverse_module_state->__pyx_n_s_mat2);
  Py_VISIT(traverse_module_state->__pyx_n_s_maxgeom);
  Py_VISIT(traverse_module_state->__pyx_n_s_median);
  Py_VISIT(traverse_module_state->__pyx_n_s_memview);
  Py_VISIT(traverse_module_state->__pyx_n_s_mesh_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_mesh_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_meshid);
  Py_VISIT(traverse_module_state->__pyx_n_s_metaclass);
  Py_VISIT(traverse_module_state->__pyx_n_s_mindiag);
  Py_VISIT(traverse_module_state->__pyx_n_s_minidom);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_Euler);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_RungeKutta);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_activate);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_addContact);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_addFileVFS);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_addM);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_applyFT);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_camlight);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_checkAcc);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_checkPos);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_checkVel);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_collision);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_comPos);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_comVel);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_compareFwdInv);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_constraintUpdate);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_contactForce);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_copyModel);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_crb);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_deactivate);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_defaultLROpt);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_defaultOption);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_defaultSolRefImp);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_defaultVFS);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_defaultVisual);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_deleteData);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_deleteFileVFS);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_deleteModel);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_deleteVFS);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_differentiatePos);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_energyPos);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_energyVel);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_factorM);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_findFileVFS);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_forward);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_forwardSkip);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_freeLastXML);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_fullM);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_fwdAcceleration);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_fwdActuation);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_fwdConstraint);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_fwdPosition);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_fwdVelocity);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_getTotalmass);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_integratePos);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_invConstraint);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_invPosition);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_invVelocity);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_inverse);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_inverseSkip);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_isDual);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_isPyramidal);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_isSparse);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_jac);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_jacBody);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_jacBodyCom);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_jacGeom);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_jacPointAxis);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_jacSite);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_kinematics);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_loadModel);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_loadXML);
  Py_VISIT(traverse_module_state->__pyx_kp_u_mj_loadXML_error);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_local2Global);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_makeConstraint);
  Py_VISIT(traverse_module_state->__pyx_kp_u_mj_makeData_failed);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_makeEmptyFileVFS);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_mulJacTVec);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_mulJacVec);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_mulM);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_mulM2);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_normalizeQuat);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_objectAcceleration);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_objectVelocity);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_passive);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_printData);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_printModel);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_printSchema);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_projectConstraint);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_ray);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_rayHfield);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_rayMesh);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_referenceConstraint);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_resetCallbacks);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_resetData);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_resetDataKeyframe);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_rne);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_rnePostConstraint);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_saveLastXML);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_sensorAcc);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_sensorPos);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_sensorVel);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_setConst);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_setLengthRange);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_setTotalmass);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_sizeModel);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_solveM);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_solveM2);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_step);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_step1);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_step2);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_subtreeVel);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_tendon);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_transmission);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_version);
  Py_VISIT(traverse_module_state->__pyx_n_s_mj_warning);
  Py_VISIT(traverse_module_state->__pyx_n_u_mjb);
  Py_VISIT(traverse_module_state->__pyx_kp_u_mjb_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjb_bytes);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_addAux);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_blitAux);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_blitBuffer);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_changeFont);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_defaultContext);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_figure);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_findRect);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_finish);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_freeContext);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_getError);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_makeContext);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_overlay);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_render);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_restoreBuffer);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_setAux);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_setBuffer);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_uploadHField);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_uploadMesh);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjr_uploadTexture);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_Halton);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_L1);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_add);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_add3);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_addScl);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_addScl3);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_addTo);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_addTo3);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_addToScl);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_addToScl3);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_axisAngle2Quat);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_cholFactor);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_cholSolve);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_cholUpdate);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_clearHandlers);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_copy);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_copy3);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_copy4);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_cross);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_decodePyramid);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_derivQuat);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_dist3);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_dot);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_dot3);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_eig3);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_encodePyramid);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_error);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_error_i);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_error_s);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_insertionSort);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_insertionSortInt);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_isBad);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_isZero);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_mat2Quat);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_max);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_min);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_mulMatMat);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_mulMatMatT);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_mulMatTMat);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_mulMatTVec);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_mulMatVec);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_mulPose);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_mulQuat);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_mulQuatAxis);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_muscleBias);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_muscleDynamics);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_muscleGain);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_negPose);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_negQuat);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_norm);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_norm3);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_normalize);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_normalize3);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_normalize4);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_printMat);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_printMatSparse);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_quat2Mat);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_quat2Vel);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_quatIntegrate);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_quatZ2Vec);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_rayGeom);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_rotVecMat);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_rotVecMatT);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_rotVecQuat);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_round);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_scl);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_scl3);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_sigmoid);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_sign);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_springDamper);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_sqrMatTD);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_standardNormal);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_str2Type);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_sub);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_sub3);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_subFrom);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_subFrom3);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_subQuat);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_sum);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_transformSpatial);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_transpose);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_trnVecPose);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_unit4);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_warning);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_warning_i);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_warning_s);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_writeLog);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_zero);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_zero3);
  Py_VISIT(traverse_module_state->__pyx_n_s_mju_zero4);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjui_add);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjui_addToSection);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjui_event);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjui_render);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjui_resize);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjui_update);
  Py_VISIT(traverse_module_state->__pyx_kp_u_mjvGeom_doesn_t_have_field_s);
  Py_VISIT(traverse_module_state->__pyx_kp_u_mjvGeom_has_attr_but_type_is_inv);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_addGeoms);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_alignToCamera);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_applyPerturbForce);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_applyPerturbPose);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_cameraInModel);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_cameraInRoom);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_defaultCamera);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_defaultFigure);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_defaultOption);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_defaultPerturb);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_defaultScene);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_freeScene);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_frustumHeight);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_initPerturb);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_makeConnector);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_makeLights);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_makeScene);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_model2room);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_moveCamera);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_moveModel);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_movePerturb);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_room2model);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_select);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_updateCamera);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_updateScene);
  Py_VISIT(traverse_module_state->__pyx_n_s_mjv_updateSkin);
  Py_VISIT(traverse_module_state->__pyx_n_s_mocap_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_mocap_pos);
  Py_VISIT(traverse_module_state->__pyx_n_s_mocap_quat);
  Py_VISIT(traverse_module_state->__pyx_n_s_mode);
  Py_VISIT(traverse_module_state->__pyx_n_s_model);
  Py_VISIT(traverse_module_state->__pyx_kp_u_model_mjb);
  Py_VISIT(traverse_module_state->__pyx_kp_u_model_xml);
  Py_VISIT(traverse_module_state->__pyx_n_s_modelpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_modelquat);
  Py_VISIT(traverse_module_state->__pyx_n_s_module);
  Py_VISIT(traverse_module_state->__pyx_n_s_move_camera);
  Py_VISIT(traverse_module_state->__pyx_n_s_mro_entries);
  Py_VISIT(traverse_module_state->__pyx_n_s_msg);
  Py_VISIT(traverse_module_state->__pyx_n_s_mu);
  Py_VISIT(traverse_module_state->__pyx_n_u_mujoco);
  Py_VISIT(traverse_module_state->__pyx_n_s_mujoco_node);
  Py_VISIT(traverse_module_state->__pyx_n_s_mujoco_path);
  Py_VISIT(traverse_module_state->__pyx_n_u_mujoco_py);
  Py_VISIT(traverse_module_state->__pyx_n_s_mujoco_py_builder);
  Py_VISIT(traverse_module_state->__pyx_n_s_mujoco_py_cymj);
  Py_VISIT(traverse_module_state->__pyx_kp_s_mujoco_py_cymj_pyx);
  Py_VISIT(traverse_module_state->__pyx_n_s_mujoco_py_generated);
  Py_VISIT(traverse_module_state->__pyx_kp_s_mujoco_py_generated_wrappers_pxi);
  Py_VISIT(traverse_module_state->__pyx_kp_s_mujoco_py_mjbatchrenderer_pyx);
  Py_VISIT(traverse_module_state->__pyx_kp_s_mujoco_py_mjpid_pyx);
  Py_VISIT(traverse_module_state->__pyx_kp_s_mujoco_py_mjrendercontext_pyx);
  Py_VISIT(traverse_module_state->__pyx_kp_s_mujoco_py_mjsim_pyx);
  Py_VISIT(traverse_module_state->__pyx_kp_s_mujoco_py_mjsimstate_pyx);
  Py_VISIT(traverse_module_state->__pyx_n_s_mujoco_py_mjviewer);
  Py_VISIT(traverse_module_state->__pyx_kp_s_mujoco_py_opengl_context_pyx);
  Py_VISIT(traverse_module_state->__pyx_n_s_mujoco_py_utils);
  Py_VISIT(traverse_module_state->__pyx_n_s_n);
  Py_VISIT(traverse_module_state->__pyx_n_s_nM);
  Py_VISIT(traverse_module_state->__pyx_n_s_na);
  Py_VISIT(traverse_module_state->__pyx_n_s_name);
  Py_VISIT(traverse_module_state->__pyx_n_s_name_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_namedtuple);
  Py_VISIT(traverse_module_state->__pyx_kp_u_names_must_all_be_strings);
  Py_VISIT(traverse_module_state->__pyx_n_s_nbody);
  Py_VISIT(traverse_module_state->__pyx_n_s_nc);
  Py_VISIT(traverse_module_state->__pyx_n_s_ncam);
  Py_VISIT(traverse_module_state->__pyx_n_s_nconmax);
  Py_VISIT(traverse_module_state->__pyx_n_s_ndim);
  Py_VISIT(traverse_module_state->__pyx_n_s_ne);
  Py_VISIT(traverse_module_state->__pyx_n_s_ne_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_nefc);
  Py_VISIT(traverse_module_state->__pyx_n_s_new);
  Py_VISIT(traverse_module_state->__pyx_n_s_new_height);
  Py_VISIT(traverse_module_state->__pyx_n_s_new_model);
  Py_VISIT(traverse_module_state->__pyx_n_s_new_sim);
  Py_VISIT(traverse_module_state->__pyx_n_s_new_width);
  Py_VISIT(traverse_module_state->__pyx_n_s_newmass);
  Py_VISIT(traverse_module_state->__pyx_n_s_newpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_ngeom);
  Py_VISIT(traverse_module_state->__pyx_n_s_njmax);
  Py_VISIT(traverse_module_state->__pyx_n_s_njnt);
  Py_VISIT(traverse_module_state->__pyx_n_s_nlight);
  Py_VISIT(traverse_module_state->__pyx_n_s_nmocap);
  Py_VISIT(traverse_module_state->__pyx_kp_s_no_default___reduce___due_to_non);
  Py_VISIT(traverse_module_state->__pyx_n_s_np);
  Py_VISIT(traverse_module_state->__pyx_n_s_nq);
  Py_VISIT(traverse_module_state->__pyx_n_s_nr);
  Py_VISIT(traverse_module_state->__pyx_n_s_nrect);
  Py_VISIT(traverse_module_state->__pyx_n_s_nsensordata);
  Py_VISIT(traverse_module_state->__pyx_n_s_nsite);
  Py_VISIT(traverse_module_state->__pyx_n_s_nsubsteps);
  Py_VISIT(traverse_module_state->__pyx_n_s_ntendon);
  Py_VISIT(traverse_module_state->__pyx_n_s_nu);
  Py_VISIT(traverse_module_state->__pyx_n_s_num2);
  Py_VISIT(traverse_module_state->__pyx_n_s_numbers);
  Py_VISIT(traverse_module_state->__pyx_n_s_numpy);
  Py_VISIT(traverse_module_state->__pyx_kp_u_numpy__core_multiarray_failed_to);
  Py_VISIT(traverse_module_state->__pyx_kp_u_numpy__core_umath_failed_to_impo);
  Py_VISIT(traverse_module_state->__pyx_n_s_nuser_actuator);
  Py_VISIT(traverse_module_state->__pyx_kp_u_nuser_actuator_is_not_set_large);
  Py_VISIT(traverse_module_state->__pyx_n_s_nuserdata);
  Py_VISIT(traverse_module_state->__pyx_kp_u_nuserdata_is_not_set_large_enoug);
  Py_VISIT(traverse_module_state->__pyx_n_s_nv);
  Py_VISIT(traverse_module_state->__pyx_n_s_nwrap);
  Py_VISIT(traverse_module_state->__pyx_n_s_obj);
  Py_VISIT(traverse_module_state->__pyx_n_s_object);
  Py_VISIT(traverse_module_state->__pyx_n_s_objid);
  Py_VISIT(traverse_module_state->__pyx_n_s_objtype);
  Py_VISIT(traverse_module_state->__pyx_n_s_offscreen);
  Py_VISIT(traverse_module_state->__pyx_n_u_offscreen);
  Py_VISIT(traverse_module_state->__pyx_n_s_old_dyld_library_path);
  Py_VISIT(traverse_module_state->__pyx_n_s_oldpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_ones);
  Py_VISIT(traverse_module_state->__pyx_n_s_open);
  Py_VISIT(traverse_module_state->__pyx_n_s_opengl_backend);
  Py_VISIT(traverse_module_state->__pyx_n_s_opengl_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_opt);
  Py_VISIT(traverse_module_state->__pyx_n_s_os);
  Py_VISIT(traverse_module_state->__pyx_n_s_other);
  Py_VISIT(traverse_module_state->__pyx_n_s_output);
  Py_VISIT(traverse_module_state->__pyx_n_s_overlay);
  Py_VISIT(traverse_module_state->__pyx_n_s_overlay2);
  Py_VISIT(traverse_module_state->__pyx_n_s_pack);
  Py_VISIT(traverse_module_state->__pyx_n_s_parentNode);
  Py_VISIT(traverse_module_state->__pyx_n_s_parseString);
  Py_VISIT(traverse_module_state->__pyx_n_s_path);
  Py_VISIT(traverse_module_state->__pyx_n_s_pbo_depth);
  Py_VISIT(traverse_module_state->__pyx_n_s_pbo_rgb);
  Py_VISIT(traverse_module_state->__pyx_n_s_pert);
  Py_VISIT(traverse_module_state->__pyx_n_s_pickle);
  Py_VISIT(traverse_module_state->__pyx_n_s_platform);
  Py_VISIT(traverse_module_state->__pyx_n_s_pnt);
  Py_VISIT(traverse_module_state->__pyx_n_s_pnt_view);
  Py_VISIT(traverse_module_state->__pyx_n_s_point);
  Py_VISIT(traverse_module_state->__pyx_n_s_pop);
  Py_VISIT(traverse_module_state->__pyx_n_s_pos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pos0);
  Py_VISIT(traverse_module_state->__pyx_n_s_pos1);
  Py_VISIT(traverse_module_state->__pyx_n_s_pos2);
  Py_VISIT(traverse_module_state->__pyx_n_s_posres);
  Py_VISIT(traverse_module_state->__pyx_n_s_prepare);
  Py_VISIT(traverse_module_state->__pyx_n_s_prepare_render_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_previous_errors);
  Py_VISIT(traverse_module_state->__pyx_n_s_print);
  Py_VISIT(traverse_module_state->__pyx_n_s_prm);
  Py_VISIT(traverse_module_state->__pyx_n_s_property);
  Py_VISIT(traverse_module_state->__pyx_n_s_ptr);
  Py_VISIT(traverse_module_state->__pyx_n_s_push);
  Py_VISIT(traverse_module_state->__pyx_n_s_pycuda);
  Py_VISIT(traverse_module_state->__pyx_n_s_pycuda_driver);
  Py_VISIT(traverse_module_state->__pyx_n_s_pycuda_gl);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyramid);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_PickleError);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_checksum);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_result);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_type);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Enum);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_vtable);
  Py_VISIT(traverse_module_state->__pyx_n_s_qa);
  Py_VISIT(traverse_module_state->__pyx_n_s_qb);
  Py_VISIT(traverse_module_state->__pyx_n_s_qfrc_target);
  Py_VISIT(traverse_module_state->__pyx_n_s_qpos);
  Py_VISIT(traverse_module_state->__pyx_n_u_qpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_qpos1);
  Py_VISIT(traverse_module_state->__pyx_n_s_qpos2);
  Py_VISIT(traverse_module_state->__pyx_n_s_qualname);
  Py_VISIT(traverse_module_state->__pyx_n_s_quat);
  Py_VISIT(traverse_module_state->__pyx_n_s_quat1);
  Py_VISIT(traverse_module_state->__pyx_n_s_quat2);
  Py_VISIT(traverse_module_state->__pyx_n_s_quatres);
  Py_VISIT(traverse_module_state->__pyx_n_s_quiet);
  Py_VISIT(traverse_module_state->__pyx_n_s_qvel);
  Py_VISIT(traverse_module_state->__pyx_n_u_qvel);
  Py_VISIT(traverse_module_state->__pyx_n_s_r1);
  Py_VISIT(traverse_module_state->__pyx_n_s_r2);
  Py_VISIT(traverse_module_state->__pyx_n_s_range);
  Py_VISIT(traverse_module_state->__pyx_n_s_ravel);
  Py_VISIT(traverse_module_state->__pyx_n_s_ray);
  Py_VISIT(traverse_module_state->__pyx_n_s_ray_fast_group);
  Py_VISIT(traverse_module_state->__pyx_n_s_ray_fast_nogroup);
  Py_VISIT(traverse_module_state->__pyx_n_u_rb);
  Py_VISIT(traverse_module_state->__pyx_n_s_read);
  Py_VISIT(traverse_module_state->__pyx_n_s_read_cuda);
  Py_VISIT(traverse_module_state->__pyx_n_s_read_nocuda);
  Py_VISIT(traverse_module_state->__pyx_n_s_read_pixels);
  Py_VISIT(traverse_module_state->__pyx_n_s_read_pixels_depth);
  Py_VISIT(traverse_module_state->__pyx_n_s_rect);
  Py_VISIT(traverse_module_state->__pyx_n_s_reduce);
  Py_VISIT(traverse_module_state->__pyx_n_s_reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_reduce_ex);
  Py_VISIT(traverse_module_state->__pyx_n_s_refresh_rate);
  Py_VISIT(traverse_module_state->__pyx_n_s_register);
  Py_VISIT(traverse_module_state->__pyx_n_s_reldx);
  Py_VISIT(traverse_module_state->__pyx_n_s_reldy);
  Py_VISIT(traverse_module_state->__pyx_n_s_relx);
  Py_VISIT(traverse_module_state->__pyx_n_s_rely);
  Py_VISIT(traverse_module_state->__pyx_n_s_removeChild);
  Py_VISIT(traverse_module_state->__pyx_n_s_remove_empty_lines);
  Py_VISIT(traverse_module_state->__pyx_n_s_render);
  Py_VISIT(traverse_module_state->__pyx_n_s_render_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_render_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_render_contexts);
  Py_VISIT(traverse_module_state->__pyx_n_s_render_swap_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_res);
  Py_VISIT(traverse_module_state->__pyx_n_s_reset);
  Py_VISIT(traverse_module_state->__pyx_n_s_reshape);
  Py_VISIT(traverse_module_state->__pyx_n_s_resolution);
  Py_VISIT(traverse_module_state->__pyx_n_s_result);
  Py_VISIT(traverse_module_state->__pyx_n_s_result_xml);
  Py_VISIT(traverse_module_state->__pyx_n_s_ret);
  Py_VISIT(traverse_module_state->__pyx_n_s_ret_img);
  Py_VISIT(traverse_module_state->__pyx_n_s_rgb_arr);
  Py_VISIT(traverse_module_state->__pyx_n_s_rgb_img);
  Py_VISIT(traverse_module_state->__pyx_n_s_rgb_view);
  Py_VISIT(traverse_module_state->__pyx_n_s_roompos);
  Py_VISIT(traverse_module_state->__pyx_n_s_roomquat);
  Py_VISIT(traverse_module_state->__pyx_n_s_roomup);
  Py_VISIT(traverse_module_state->__pyx_n_s_rotnew2old);
  Py_VISIT(traverse_module_state->__pyx_n_s_rowadr);
  Py_VISIT(traverse_module_state->__pyx_n_s_rownnz);
  Py_VISIT(traverse_module_state->__pyx_kp_u_s_Failed_to_load_MJB);
  Py_VISIT(traverse_module_state->__pyx_n_s_sameframe);
  Py_VISIT(traverse_module_state->__pyx_n_s_samples);
  Py_VISIT(traverse_module_state->__pyx_n_s_save);
  Py_VISIT(traverse_module_state->__pyx_n_s_save_locals_str_array);
  Py_VISIT(traverse_module_state->__pyx_n_s_scale);
  Py_VISIT(traverse_module_state->__pyx_n_s_schema_example);
  Py_VISIT(traverse_module_state->__pyx_n_s_schema_val);
  Py_VISIT(traverse_module_state->__pyx_n_s_scl);
  Py_VISIT(traverse_module_state->__pyx_n_s_scn);
  Py_VISIT(traverse_module_state->__pyx_n_s_sect);
  Py_VISIT(traverse_module_state->__pyx_n_s_section);
  Py_VISIT(traverse_module_state->__pyx_n_s_seg_ids);
  Py_VISIT(traverse_module_state->__pyx_n_s_seg_img);
  Py_VISIT(traverse_module_state->__pyx_n_s_segmentation);
  Py_VISIT(traverse_module_state->__pyx_n_s_self);
  Py_VISIT(traverse_module_state->__pyx_kp_s_self_ptr_cannot_be_converted_to);
  Py_VISIT(traverse_module_state->__pyx_n_s_selpnt);
  Py_VISIT(traverse_module_state->__pyx_n_s_send);
  Py_VISIT(traverse_module_state->__pyx_n_s_sensor_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_sensor_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_setAttribute);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_buffer_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_constants);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_error_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_joint_qpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_joint_qvel);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_mocap_pos);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_mocap_quat);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_mujoco_buffers);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_name);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_pid_control);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_state_from_flattened);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_substep_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_userdata_names);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_warning_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_window_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_set_window_size_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_setpoint);
  Py_VISIT(traverse_module_state->__pyx_n_s_setstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_setup_opengl_context);
  Py_VISIT(traverse_module_state->__pyx_n_s_shape);
  Py_VISIT(traverse_module_state->__pyx_n_s_sim);
  Py_VISIT(traverse_module_state->__pyx_n_s_site);
  Py_VISIT(traverse_module_state->__pyx_n_s_site_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_site_jacp);
  Py_VISIT(traverse_module_state->__pyx_n_s_site_jacr);
  Py_VISIT(traverse_module_state->__pyx_n_s_site_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_skinid);
  Py_VISIT(traverse_module_state->__pyx_n_s_skipsensor);
  Py_VISIT(traverse_module_state->__pyx_n_s_skipstage);
  Py_VISIT(traverse_module_state->__pyx_n_s_slots);
  Py_VISIT(traverse_module_state->__pyx_n_s_solimp);
  Py_VISIT(traverse_module_state->__pyx_n_s_solref);
  Py_VISIT(traverse_module_state->__pyx_n_s_spec);
  Py_VISIT(traverse_module_state->__pyx_n_s_split);
  Py_VISIT(traverse_module_state->__pyx_n_s_src);
  Py_VISIT(traverse_module_state->__pyx_n_s_start);
  Py_VISIT(traverse_module_state->__pyx_n_s_start_i);
  Py_VISIT(traverse_module_state->__pyx_n_s_stat);
  Py_VISIT(traverse_module_state->__pyx_n_s_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_state_tuple);
  Py_VISIT(traverse_module_state->__pyx_n_s_staticmethod);
  Py_VISIT(traverse_module_state->__pyx_n_s_step);
  Py_VISIT(traverse_module_state->__pyx_n_s_step_udd);
  Py_VISIT(traverse_module_state->__pyx_n_s_stop);
  Py_VISIT(traverse_module_state->__pyx_n_s_str);
  Py_VISIT(traverse_module_state->__pyx_n_s_str_array);
  Py_VISIT(traverse_module_state->__pyx_kp_s_strided_and_direct);
  Py_VISIT(traverse_module_state->__pyx_kp_s_strided_and_direct_or_indirect);
  Py_VISIT(traverse_module_state->__pyx_kp_s_strided_and_indirect);
  Py_VISIT(traverse_module_state->__pyx_kp_s_stringsource);
  Py_VISIT(traverse_module_state->__pyx_n_s_struct);
  Py_VISIT(traverse_module_state->__pyx_n_s_substep_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_suffix);
  Py_VISIT(traverse_module_state->__pyx_n_s_super);
  Py_VISIT(traverse_module_state->__pyx_n_s_swap_buffers);
  Py_VISIT(traverse_module_state->__pyx_n_s_sys);
  Py_VISIT(traverse_module_state->__pyx_n_s_tagName);
  Py_VISIT(traverse_module_state->__pyx_n_s_target_height);
  Py_VISIT(traverse_module_state->__pyx_n_s_target_width);
  Py_VISIT(traverse_module_state->__pyx_n_s_td);
  Py_VISIT(traverse_module_state->__pyx_n_s_tempfile);
  Py_VISIT(traverse_module_state->__pyx_n_s_tendon_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_tendon_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_test);
  Py_VISIT(traverse_module_state->__pyx_n_s_tex_id);
  Py_VISIT(traverse_module_state->__pyx_n_s_texid);
  Py_VISIT(traverse_module_state->__pyx_n_s_text);
  Py_VISIT(traverse_module_state->__pyx_n_s_text1);
  Py_VISIT(traverse_module_state->__pyx_n_s_text2);
  Py_VISIT(traverse_module_state->__pyx_n_s_threading);
  Py_VISIT(traverse_module_state->__pyx_n_s_throw);
  Py_VISIT(traverse_module_state->__pyx_n_s_time);
  Py_VISIT(traverse_module_state->__pyx_n_u_time);
  Py_VISIT(traverse_module_state->__pyx_kp_u_time_qpos_qvel_act_udd_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_toprettyxml);
  Py_VISIT(traverse_module_state->__pyx_n_s_torque);
  Py_VISIT(traverse_module_state->__pyx_n_s_traceback);
  Py_VISIT(traverse_module_state->__pyx_n_s_type);
  Py_VISIT(traverse_module_state->__pyx_n_s_udd_callback);
  Py_VISIT(traverse_module_state->__pyx_n_s_udd_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_ui);
  Py_VISIT(traverse_module_state->__pyx_n_s_uint16);
  Py_VISIT(traverse_module_state->__pyx_n_s_uint8);
  Py_VISIT(traverse_module_state->__pyx_kp_s_unable_to_allocate_array_data);
  Py_VISIT(traverse_module_state->__pyx_kp_s_unable_to_allocate_shape_and_str);
  Py_VISIT(traverse_module_state->__pyx_n_s_unflatten_dict);
  Py_VISIT(traverse_module_state->__pyx_n_s_unmap);
  Py_VISIT(traverse_module_state->__pyx_n_s_unpack);
  Py_VISIT(traverse_module_state->__pyx_n_s_unregister);
  Py_VISIT(traverse_module_state->__pyx_n_s_up);
  Py_VISIT(traverse_module_state->__pyx_n_s_update);
  Py_VISIT(traverse_module_state->__pyx_n_s_update_offscreen_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_update_sim);
  Py_VISIT(traverse_module_state->__pyx_n_s_upload_texture);
  Py_VISIT(traverse_module_state->__pyx_n_s_use_cuda);
  Py_VISIT(traverse_module_state->__pyx_n_s_use_cuda_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_userdata);
  Py_VISIT(traverse_module_state->__pyx_n_s_userdata_id2name);
  Py_VISIT(traverse_module_state->__pyx_n_s_userdata_name2id);
  Py_VISIT(traverse_module_state->__pyx_n_s_userdata_names);
  Py_VISIT(traverse_module_state->__pyx_n_s_v);
  Py_VISIT(traverse_module_state->__pyx_n_s_val);
  Py_VISIT(traverse_module_state->__pyx_n_s_val_array);
  Py_VISIT(traverse_module_state->__pyx_n_s_value);
  Py_VISIT(traverse_module_state->__pyx_n_s_values);
  Py_VISIT(traverse_module_state->__pyx_n_s_vec);
  Py_VISIT(traverse_module_state->__pyx_n_s_vec1);
  Py_VISIT(traverse_module_state->__pyx_n_s_vec2);
  Py_VISIT(traverse_module_state->__pyx_n_s_vec_view);
  Py_VISIT(traverse_module_state->__pyx_n_s_vel);
  Py_VISIT(traverse_module_state->__pyx_n_s_vel0);
  Py_VISIT(traverse_module_state->__pyx_n_s_version_info);
  Py_VISIT(traverse_module_state->__pyx_n_s_vfs);
  Py_VISIT(traverse_module_state->__pyx_n_s_viewport);
  Py_VISIT(traverse_module_state->__pyx_n_s_vis);
  Py_VISIT(traverse_module_state->__pyx_n_s_vopt);
  Py_VISIT(traverse_module_state->__pyx_n_s_warn);
  Py_VISIT(traverse_module_state->__pyx_n_s_warning);
  Py_VISIT(traverse_module_state->__pyx_n_u_wb);
  Py_VISIT(traverse_module_state->__pyx_n_s_width);
  Py_VISIT(traverse_module_state->__pyx_n_s_width_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_window);
  Py_VISIT(traverse_module_state->__pyx_n_u_window);
  Py_VISIT(traverse_module_state->__pyx_n_s_window_hint);
  Py_VISIT(traverse_module_state->__pyx_n_s_window_should_close);
  Py_VISIT(traverse_module_state->__pyx_n_s_with_udd);
  Py_VISIT(traverse_module_state->__pyx_n_s_wrap_mujoco_warning);
  Py_VISIT(traverse_module_state->__pyx_n_s_wrap_mujoco_warning___enter);
  Py_VISIT(traverse_module_state->__pyx_n_s_wrap_mujoco_warning___exit);
  Py_VISIT(traverse_module_state->__pyx_n_s_wrapped);
  Py_VISIT(traverse_module_state->__pyx_n_s_write);
  Py_VISIT(traverse_module_state->__pyx_n_s_x);
  Py_VISIT(traverse_module_state->__pyx_n_s_xmat);
  Py_VISIT(traverse_module_state->__pyx_n_u_xml);
  Py_VISIT(traverse_module_state->__pyx_kp_u_xml_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_xml_dom);
  Py_VISIT(traverse_module_state->__pyx_n_s_xml_str);
  Py_VISIT(traverse_module_state->__pyx_n_s_xpos);
  Py_VISIT(traverse_module_state->__pyx_n_s_xvelp);
  Py_VISIT(traverse_module_state->__pyx_n_s_xvelr);
  Py_VISIT(traverse_module_state->__pyx_n_s_y);
  Py_VISIT(traverse_module_state->__pyx_n_s_zeros);
  Py_VISIT(traverse_module_state->__pyx_float_0_0);
  Py_VISIT(traverse_module_state->__pyx_float_0_1);
  Py_VISIT(traverse_module_state->__pyx_int_0);
  Py_VISIT(traverse_module_state->__pyx_int_1);
  Py_VISIT(traverse_module_state->__pyx_int_2);
  Py_VISIT(traverse_module_state->__pyx_int_3);
  Py_VISIT(traverse_module_state->__pyx_int_4);
  Py_VISIT(traverse_module_state->__pyx_int_6);
  Py_VISIT(traverse_module_state->__pyx_int_7);
  Py_VISIT(traverse_module_state->__pyx_int_256);
  Py_VISIT(traverse_module_state->__pyx_int_1000);
  Py_VISIT(traverse_module_state->__pyx_int_65536);
  Py_VISIT(traverse_module_state->__pyx_int_112105877);
  Py_VISIT(traverse_module_state->__pyx_int_136983863);
  Py_VISIT(traverse_module_state->__pyx_int_184977713);
  Py_VISIT(traverse_module_state->__pyx_int_neg_1);
  Py_VISIT(traverse_module_state->__pyx_slice__5);
  Py_VISIT(traverse_module_state->__pyx_tuple__4);
  Py_VISIT(traverse_module_state->__pyx_tuple__8);
  Py_VISIT(traverse_module_state->__pyx_tuple__15);
  Py_VISIT(traverse_module_state->__pyx_tuple__16);
  Py_VISIT(traverse_module_state->__pyx_tuple__17);
  Py_VISIT(traverse_module_state->__pyx_tuple__18);
  Py_VISIT(traverse_module_state->__pyx_tuple__19);
  Py_VISIT(traverse_module_state->__pyx_tuple__20);
  Py_VISIT(traverse_module_state->__pyx_tuple__21);
  Py_VISIT(traverse_module_state->__pyx_tuple__22);
  Py_VISIT(traverse_module_state->__pyx_tuple__23);
  Py_VISIT(traverse_module_state->__pyx_tuple__24);
  Py_VISIT(traverse_module_state->__pyx_tuple__25);
  Py_VISIT(traverse_module_state->__pyx_tuple__26);
  Py_VISIT(traverse_module_state->__pyx_tuple__27);
  Py_VISIT(traverse_module_state->__pyx_tuple__28);
  Py_VISIT(traverse_module_state->__pyx_tuple__29);
  Py_VISIT(traverse_module_state->__pyx_tuple__30);
  Py_VISIT(traverse_module_state->__pyx_tuple__31);
  Py_VISIT(traverse_module_state->__pyx_tuple__32);
  Py_VISIT(traverse_module_state->__pyx_tuple__33);
  Py_VISIT(traverse_module_state->__pyx_tuple__35);
  Py_VISIT(traverse_module_state->__pyx_tuple__36);
  Py_VISIT(traverse_module_state->__pyx_tuple__37);
  Py_VISIT(traverse_module_state->__pyx_tuple__38);
  Py_VISIT(traverse_module_state->__pyx_tuple__39);
  Py_VISIT(traverse_module_state->__pyx_tuple__40);
  Py_VISIT(traverse_module_state->__pyx_tuple__42);
  Py_VISIT(traverse_module_state->__pyx_tuple__45);
  Py_VISIT(traverse_module_state->__pyx_tuple__46);
  Py_VISIT(traverse_module_state->__pyx_tuple__47);
  Py_VISIT(traverse_module_state->__pyx_tuple__48);
  Py_VISIT(traverse_module_state->__pyx_tuple__49);
  Py_VISIT(traverse_module_state->__pyx_tuple__50);
  Py_VISIT(traverse_module_state->__pyx_tuple__51);
  Py_VISIT(traverse_module_state->__pyx_tuple__53);
  Py_VISIT(traverse_module_state->__pyx_tuple__54);
  Py_VISIT(traverse_module_state->__pyx_tuple__55);
  Py_VISIT(traverse_module_state->__pyx_tuple__56);
  Py_VISIT(traverse_module_state->__pyx_tuple__57);
  Py_VISIT(traverse_module_state->__pyx_tuple__58);
  Py_VISIT(traverse_module_state->__pyx_tuple__59);
  Py_VISIT(traverse_module_state->__pyx_tuple__60);
  Py_VISIT(traverse_module_state->__pyx_tuple__61);
  Py_VISIT(traverse_module_state->__pyx_tuple__62);
  Py_VISIT(traverse_module_state->__pyx_tuple__63);
  Py_VISIT(traverse_module_state->__pyx_tuple__64);
  Py_VISIT(traverse_module_state->__pyx_tuple__65);
  Py_VISIT(traverse_module_state->__pyx_tuple__66);
  Py_VISIT(traverse_module_state->__pyx_tuple__67);
  Py_VISIT(traverse_module_state->__pyx_tuple__69);
  Py_VISIT(traverse_module_state->__pyx_tuple__71);
  Py_VISIT(traverse_module_state->__pyx_tuple__93);
  Py_VISIT(traverse_module_state->__pyx_tuple__95);
  Py_VISIT(traverse_module_state->__pyx_tuple__117);
  Py_VISIT(traverse_module_state->__pyx_tuple__119);
  Py_VISIT(traverse_module_state->__pyx_tuple__121);
  Py_VISIT(traverse_module_state->__pyx_tuple__123);
  Py_VISIT(traverse_module_state->__pyx_tuple__136);
  Py_VISIT(traverse_module_state->__pyx_tuple__147);
  Py_VISIT(traverse_module_state->__pyx_tuple__149);
  Py_VISIT(traverse_module_state->__pyx_tuple__150);
  Py_VISIT(traverse_module_state->__pyx_tuple__152);
  Py_VISIT(traverse_module_state->__pyx_tuple__154);
  Py_VISIT(traverse_module_state->__pyx_tuple__181);
  Py_VISIT(traverse_module_state->__pyx_tuple__183);
  Py_VISIT(traverse_module_state->__pyx_tuple__187);
  Py_VISIT(traverse_module_state->__pyx_tuple__189);
  Py_VISIT(traverse_module_state->__pyx_tuple__229);
  Py_VISIT(traverse_module_state->__pyx_tuple__232);
  Py_VISIT(traverse_module_state->__pyx_tuple__234);
  Py_VISIT(traverse_module_state->__pyx_tuple__236);
  Py_VISIT(traverse_module_state->__pyx_tuple__238);
  Py_VISIT(traverse_module_state->__pyx_tuple__242);
  Py_VISIT(traverse_module_state->__pyx_tuple__244);
  Py_VISIT(traverse_module_state->__pyx_tuple__247);
  Py_VISIT(traverse_module_state->__pyx_tuple__249);
  Py_VISIT(traverse_module_state->__pyx_tuple__255);
  Py_VISIT(traverse_module_state->__pyx_tuple__258);
  Py_VISIT(traverse_module_state->__pyx_tuple__260);
  Py_VISIT(traverse_module_state->__pyx_tuple__263);
  Py_VISIT(traverse_module_state->__pyx_tuple__265);
  Py_VISIT(traverse_module_state->__pyx_tuple__267);
  Py_VISIT(traverse_module_state->__pyx_tuple__269);
  Py_VISIT(traverse_module_state->__pyx_tuple__273);
  Py_VISIT(traverse_module_state->__pyx_tuple__275);
  Py_VISIT(traverse_module_state->__pyx_tuple__279);
  Py_VISIT(traverse_module_state->__pyx_tuple__281);
  Py_VISIT(traverse_module_state->__pyx_tuple__283);
  Py_VISIT(traverse_module_state->__pyx_tuple__285);
  Py_VISIT(traverse_module_state->__pyx_tuple__287);
  Py_VISIT(traverse_module_state->__pyx_tuple__295);
  Py_VISIT(traverse_module_state->__pyx_tuple__316);
  Py_VISIT(traverse_module_state->__pyx_tuple__322);
  Py_VISIT(traverse_module_state->__pyx_tuple__329);
  Py_VISIT(traverse_module_state->__pyx_tuple__331);
  Py_VISIT(traverse_module_state->__pyx_tuple__336);
  Py_VISIT(traverse_module_state->__pyx_tuple__339);
  Py_VISIT(traverse_module_state->__pyx_tuple__341);
  Py_VISIT(traverse_module_state->__pyx_tuple__344);
  Py_VISIT(traverse_module_state->__pyx_tuple__346);
  Py_VISIT(traverse_module_state->__pyx_tuple__348);
  Py_VISIT(traverse_module_state->__pyx_tuple__350);
  Py_VISIT(traverse_module_state->__pyx_tuple__352);
  Py_VISIT(traverse_module_state->__pyx_tuple__356);
  Py_VISIT(traverse_module_state->__pyx_tuple__358);
  Py_VISIT(traverse_module_state->__pyx_tuple__360);
  Py_VISIT(traverse_module_state->__pyx_tuple__363);
  Py_VISIT(traverse_module_state->__pyx_tuple__365);
  Py_VISIT(traverse_module_state->__pyx_tuple__367);
  Py_VISIT(traverse_module_state->__pyx_tuple__369);
  Py_VISIT(traverse_module_state->__pyx_tuple__371);
  Py_VISIT(traverse_module_state->__pyx_tuple__374);
  Py_VISIT(traverse_module_state->__pyx_tuple__377);
  Py_VISIT(traverse_module_state->__pyx_tuple__379);
  Py_VISIT(traverse_module_state->__pyx_tuple__382);
  Py_VISIT(traverse_module_state->__pyx_tuple__384);
  Py_VISIT(traverse_module_state->__pyx_tuple__386);
  Py_VISIT(traverse_module_state->__pyx_tuple__388);
  Py_VISIT(traverse_module_state->__pyx_tuple__390);
  Py_VISIT(traverse_module_state->__pyx_tuple__392);
  Py_VISIT(traverse_module_state->__pyx_tuple__395);
  Py_VISIT(traverse_module_state->__pyx_tuple__397);
  Py_VISIT(traverse_module_state->__pyx_tuple__399);
  Py_VISIT(traverse_module_state->__pyx_tuple__401);
  Py_VISIT(traverse_module_state->__pyx_tuple__403);
  Py_VISIT(traverse_module_state->__pyx_tuple__405);
  Py_VISIT(traverse_module_state->__pyx_tuple__407);
  Py_VISIT(traverse_module_state->__pyx_tuple__409);
  Py_VISIT(traverse_module_state->__pyx_tuple__411);
  Py_VISIT(traverse_module_state->__pyx_tuple__414);
  Py_VISIT(traverse_module_state->__pyx_tuple__416);
  Py_VISIT(traverse_module_state->__pyx_tuple__419);
  Py_VISIT(traverse_module_state->__pyx_tuple__422);
  Py_VISIT(traverse_module_state->__pyx_tuple__424);
  Py_VISIT(traverse_module_state->__pyx_tuple__426);
  Py_VISIT(traverse_module_state->__pyx_tuple__428);
  Py_VISIT(traverse_module_state->__pyx_tuple__431);
  Py_VISIT(traverse_module_state->__pyx_tuple__433);
  Py_VISIT(traverse_module_state->__pyx_tuple__435);
  Py_VISIT(traverse_module_state->__pyx_tuple__437);
  Py_VISIT(traverse_module_state->__pyx_tuple__440);
  Py_VISIT(traverse_module_state->__pyx_tuple__442);
  Py_VISIT(traverse_module_state->__pyx_tuple__444);
  Py_VISIT(traverse_module_state->__pyx_tuple__447);
  Py_VISIT(traverse_module_state->__pyx_tuple__449);
  Py_VISIT(traverse_module_state->__pyx_tuple__451);
  Py_VISIT(traverse_module_state->__pyx_tuple__453);
  Py_VISIT(traverse_module_state->__pyx_tuple__455);
  Py_VISIT(traverse_module_state->__pyx_tuple__457);
  Py_VISIT(traverse_module_state->__pyx_tuple__459);
  Py_VISIT(traverse_module_state->__pyx_tuple__463);
  Py_VISIT(traverse_module_state->__pyx_tuple__465);
  Py_VISIT(traverse_module_state->__pyx_tuple__467);
  Py_VISIT(traverse_module_state->__pyx_tuple__469);
  Py_VISIT(traverse_module_state->__pyx_tuple__471);
  Py_VISIT(traverse_module_state->__pyx_tuple__473);
  Py_VISIT(traverse_module_state->__pyx_tuple__476);
  Py_VISIT(traverse_module_state->__pyx_tuple__478);
  Py_VISIT(traverse_module_state->__pyx_tuple__480);
  Py_VISIT(traverse_module_state->__pyx_tuple__486);
  Py_VISIT(traverse_module_state->__pyx_tuple__488);
  Py_VISIT(traverse_module_state->__pyx_tuple__490);
  Py_VISIT(traverse_module_state->__pyx_tuple__492);
  Py_VISIT(traverse_module_state->__pyx_tuple__494);
  Py_VISIT(traverse_module_state->__pyx_tuple__496);
  Py_VISIT(traverse_module_state->__pyx_tuple__499);
  Py_VISIT(traverse_module_state->__pyx_tuple__503);
  Py_VISIT(traverse_module_state->__pyx_tuple__506);
  Py_VISIT(traverse_module_state->__pyx_tuple__508);
  Py_VISIT(traverse_module_state->__pyx_tuple__510);
  Py_VISIT(traverse_module_state->__pyx_tuple__512);
  Py_VISIT(traverse_module_state->__pyx_tuple__515);
  Py_VISIT(traverse_module_state->__pyx_tuple__521);
  Py_VISIT(traverse_module_state->__pyx_tuple__523);
  Py_VISIT(traverse_module_state->__pyx_tuple__525);
  Py_VISIT(traverse_module_state->__pyx_tuple__528);
  Py_VISIT(traverse_module_state->__pyx_tuple__530);
  Py_VISIT(traverse_module_state->__pyx_tuple__533);
  Py_VISIT(traverse_module_state->__pyx_tuple__537);
  Py_VISIT(traverse_module_state->__pyx_tuple__541);
  Py_VISIT(traverse_module_state->__pyx_tuple__543);
  Py_VISIT(traverse_module_state->__pyx_tuple__546);
  Py_VISIT(traverse_module_state->__pyx_tuple__548);
  Py_VISIT(traverse_module_state->__pyx_tuple__550);
  Py_VISIT(traverse_module_state->__pyx_tuple__553);
  Py_VISIT(traverse_module_state->__pyx_tuple__555);
  Py_VISIT(traverse_module_state->__pyx_tuple__557);
  Py_VISIT(traverse_module_state->__pyx_tuple__559);
  Py_VISIT(traverse_module_state->__pyx_tuple__561);
  Py_VISIT(traverse_module_state->__pyx_tuple__563);
  Py_VISIT(traverse_module_state->__pyx_tuple__565);
  Py_VISIT(traverse_module_state->__pyx_tuple__567);
  Py_VISIT(traverse_module_state->__pyx_tuple__569);
  Py_VISIT(traverse_module_state->__pyx_tuple__572);
  Py_VISIT(traverse_module_state->__pyx_tuple__574);
  Py_VISIT(traverse_module_state->__pyx_tuple__576);
  Py_VISIT(traverse_module_state->__pyx_tuple__578);
  Py_VISIT(traverse_module_state->__pyx_tuple__580);
  Py_VISIT(traverse_module_state->__pyx_tuple__582);
  Py_VISIT(traverse_module_state->__pyx_tuple__584);
  Py_VISIT(traverse_module_state->__pyx_tuple__586);
  Py_VISIT(traverse_module_state->__pyx_tuple__588);
  Py_VISIT(traverse_module_state->__pyx_tuple__590);
  Py_VISIT(traverse_module_state->__pyx_tuple__592);
  Py_VISIT(traverse_module_state->__pyx_tuple__594);
  Py_VISIT(traverse_module_state->__pyx_tuple__596);
  Py_VISIT(traverse_module_state->__pyx_tuple__598);
  Py_VISIT(traverse_module_state->__pyx_tuple__600);
  Py_VISIT(traverse_module_state->__pyx_tuple__602);
  Py_VISIT(traverse_module_state->__pyx_tuple__604);
  Py_VISIT(traverse_module_state->__pyx_tuple__606);
  Py_VISIT(traverse_module_state->__pyx_tuple__609);
  Py_VISIT(traverse_module_state->__pyx_tuple__612);
  Py_VISIT(traverse_module_state->__pyx_tuple__616);
  Py_VISIT(traverse_module_state->__pyx_tuple__618);
  Py_VISIT(traverse_module_state->__pyx_tuple__621);
  Py_VISIT(traverse_module_state->__pyx_tuple__624);
  Py_VISIT(traverse_module_state->__pyx_tuple__627);
  Py_VISIT(traverse_module_state->__pyx_tuple__629);
  Py_VISIT(traverse_module_state->__pyx_tuple__630);
  Py_VISIT(traverse_module_state->__pyx_tuple__631);
  Py_VISIT(traverse_module_state->__pyx_tuple__633);
  Py_VISIT(traverse_module_state->__pyx_tuple__638);
  Py_VISIT(traverse_module_state->__pyx_tuple__640);
  Py_VISIT(traverse_module_state->__pyx_tuple__642);
  Py_VISIT(traverse_module_state->__pyx_tuple__644);
  Py_VISIT(traverse_module_state->__pyx_tuple__646);
  Py_VISIT(traverse_module_state->__pyx_tuple__650);
  Py_VISIT(traverse_module_state->__pyx_tuple__655);
  Py_VISIT(traverse_module_state->__pyx_tuple__657);
  Py_VISIT(traverse_module_state->__pyx_tuple__658);
  Py_VISIT(traverse_module_state->__pyx_tuple__660);
  Py_VISIT(traverse_module_state->__pyx_tuple__661);
  Py_VISIT(traverse_module_state->__pyx_tuple__664);
  Py_VISIT(traverse_module_state->__pyx_tuple__666);
  Py_VISIT(traverse_module_state->__pyx_tuple__668);
  Py_VISIT(traverse_module_state->__pyx_tuple__670);
  Py_VISIT(traverse_module_state->__pyx_tuple__672);
  Py_VISIT(traverse_module_state->__pyx_tuple__674);
  Py_VISIT(traverse_module_state->__pyx_tuple__676);
  Py_VISIT(traverse_module_state->__pyx_tuple__677);
  Py_VISIT(traverse_module_state->__pyx_tuple__679);
  Py_VISIT(traverse_module_state->__pyx_tuple__680);
  Py_VISIT(traverse_module_state->__pyx_tuple__682);
  Py_VISIT(traverse_module_state->__pyx_tuple__683);
  Py_VISIT(traverse_module_state->__pyx_tuple__687);
  Py_VISIT(traverse_module_state->__pyx_tuple__688);
  Py_VISIT(traverse_module_state->__pyx_tuple__690);
  Py_VISIT(traverse_module_state->__pyx_tuple__692);
  Py_VISIT(traverse_module_state->__pyx_tuple__694);
  Py_VISIT(traverse_module_state->__pyx_tuple__696);
  Py_VISIT(traverse_module_state->__pyx_tuple__698);
  Py_VISIT(traverse_module_state->__pyx_tuple__700);
  Py_VISIT(traverse_module_state->__pyx_tuple__703);
  Py_VISIT(traverse_module_state->__pyx_tuple__705);
  Py_VISIT(traverse_module_state->__pyx_tuple__708);
  Py_VISIT(traverse_module_state->__pyx_tuple__710);
  Py_VISIT(traverse_module_state->__pyx_tuple__711);
  Py_VISIT(traverse_module_state->__pyx_tuple__713);
  Py_VISIT(traverse_module_state->__pyx_tuple__714);
  Py_VISIT(traverse_module_state->__pyx_tuple__716);
  Py_VISIT(traverse_module_state->__pyx_tuple__718);
  Py_VISIT(traverse_module_state->__pyx_tuple__720);
  Py_VISIT(traverse_module_state->__pyx_tuple__722);
  Py_VISIT(traverse_module_state->__pyx_tuple__724);
  Py_VISIT(traverse_module_state->__pyx_tuple__726);
  Py_VISIT(traverse_module_state->__pyx_tuple__730);
  Py_VISIT(traverse_module_state->__pyx_tuple__732);
  Py_VISIT(traverse_module_state->__pyx_tuple__736);
  Py_VISIT(traverse_module_state->__pyx_tuple__737);
  Py_VISIT(traverse_module_state->__pyx_tuple__738);
  Py_VISIT(traverse_module_state->__pyx_tuple__739);
  Py_VISIT(traverse_module_state->__pyx_tuple__741);
  Py_VISIT(traverse_module_state->__pyx_tuple__742);
  Py_VISIT(traverse_module_state->__pyx_tuple__744);
  Py_VISIT(traverse_module_state->__pyx_tuple__747);
  Py_VISIT(traverse_module_state->__pyx_tuple__749);
  Py_VISIT(traverse_module_state->__pyx_tuple__752);
  Py_VISIT(traverse_module_state->__pyx_tuple__754);
  Py_VISIT(traverse_module_state->__pyx_tuple__759);
  Py_VISIT(traverse_module_state->__pyx_tuple__761);
  Py_VISIT(traverse_module_state->__pyx_tuple__764);
  Py_VISIT(traverse_module_state->__pyx_tuple__767);
  Py_VISIT(traverse_module_state->__pyx_tuple__768);
  Py_VISIT(traverse_module_state->__pyx_tuple__770);
  Py_VISIT(traverse_module_state->__pyx_tuple__772);
  Py_VISIT(traverse_module_state->__pyx_tuple__774);
  Py_VISIT(traverse_module_state->__pyx_tuple__776);
  Py_VISIT(traverse_module_state->__pyx_codeobj__43);
  Py_VISIT(traverse_module_state->__pyx_codeobj__68);
  Py_VISIT(traverse_module_state->__pyx_codeobj__70);
  Py_VISIT(traverse_module_state->__pyx_codeobj__72);
  Py_VISIT(traverse_module_state->__pyx_codeobj__73);
  Py_VISIT(traverse_module_state->__pyx_codeobj__74);
  Py_VISIT(traverse_module_state->__pyx_codeobj__75);
  Py_VISIT(traverse_module_state->__pyx_codeobj__76);
  Py_VISIT(traverse_module_state->__pyx_codeobj__77);
  Py_VISIT(traverse_module_state->__pyx_codeobj__78);
  Py_VISIT(traverse_module_state->__pyx_codeobj__79);
  Py_VISIT(traverse_module_state->__pyx_codeobj__80);
  Py_VISIT(traverse_module_state->__pyx_codeobj__81);
  Py_VISIT(traverse_module_state->__pyx_codeobj__82);
  Py_VISIT(traverse_module_state->__pyx_codeobj__83);
  Py_VISIT(traverse_module_state->__pyx_codeobj__84);
  Py_VISIT(traverse_module_state->__pyx_codeobj__85);
  Py_VISIT(traverse_module_state->__pyx_codeobj__86);
  Py_VISIT(traverse_module_state->__pyx_codeobj__87);
  Py_VISIT(traverse_module_state->__pyx_codeobj__88);
  Py_VISIT(traverse_module_state->__pyx_codeobj__89);
  Py_VISIT(traverse_module_state->__pyx_codeobj__90);
  Py_VISIT(traverse_module_state->__pyx_codeobj__91);
  Py_VISIT(traverse_module_state->__pyx_codeobj__92);
  Py_VISIT(traverse_module_state->__pyx_codeobj__94);
  Py_VISIT(traverse_module_state->__pyx_codeobj__96);
  Py_VISIT(traverse_module_state->__pyx_codeobj__97);
  Py_VISIT(traverse_module_state->__pyx_codeobj__98);
  Py_VISIT(traverse_module_state->__pyx_codeobj__99);
  Py_VISIT(traverse_module_state->__pyx_codeobj__100);
  Py_VISIT(traverse_module_state->__pyx_codeobj__101);
  Py_VISIT(traverse_module_state->__pyx_codeobj__102);
  Py_VISIT(traverse_module_state->__pyx_codeobj__103);
  Py_VISIT(traverse_module_state->__pyx_codeobj__104);
  Py_VISIT(traverse_module_state->__pyx_codeobj__105);
  Py_VISIT(traverse_module_state->__pyx_codeobj__106);
  Py_VISIT(traverse_module_state->__pyx_codeobj__107);
  Py_VISIT(traverse_module_state->__pyx_codeobj__108);
  Py_VISIT(traverse_module_state->__pyx_codeobj__109);
  Py_VISIT(traverse_module_state->__pyx_codeobj__110);
  Py_VISIT(traverse_module_state->__pyx_codeobj__111);
  Py_VISIT(traverse_module_state->__pyx_codeobj__112);
  Py_VISIT(traverse_module_state->__pyx_codeobj__113);
  Py_VISIT(traverse_module_state->__pyx_codeobj__114);
  Py_VISIT(traverse_module_state->__pyx_codeobj__115);
  Py_VISIT(traverse_module_state->__pyx_codeobj__116);
  Py_VISIT(traverse_module_state->__pyx_codeobj__118);
  Py_VISIT(traverse_module_state->__pyx_codeobj__120);
  Py_VISIT(traverse_module_state->__pyx_codeobj__122);
  Py_VISIT(traverse_module_state->__pyx_codeobj__124);
  Py_VISIT(traverse_module_state->__pyx_codeobj__125);
  Py_VISIT(traverse_module_state->__pyx_codeobj__126);
  Py_VISIT(traverse_module_state->__pyx_codeobj__127);
  Py_VISIT(traverse_module_state->__pyx_codeobj__128);
  Py_VISIT(traverse_module_state->__pyx_codeobj__129);
  Py_VISIT(traverse_module_state->__pyx_codeobj__130);
  Py_VISIT(traverse_module_state->__pyx_codeobj__131);
  Py_VISIT(traverse_module_state->__pyx_codeobj__132);
  Py_VISIT(traverse_module_state->__pyx_codeobj__133);
  Py_VISIT(traverse_module_state->__pyx_codeobj__134);
  Py_VISIT(traverse_module_state->__pyx_codeobj__135);
  Py_VISIT(traverse_module_state->__pyx_codeobj__137);
  Py_VISIT(traverse_module_state->__pyx_codeobj__138);
  Py_VISIT(traverse_module_state->__pyx_codeobj__139);
  Py_VISIT(traverse_module_state->__pyx_codeobj__140);
  Py_VISIT(traverse_module_state->__pyx_codeobj__141);
  Py_VISIT(traverse_module_state->__pyx_codeobj__142);
  Py_VISIT(traverse_module_state->__pyx_codeobj__143);
  Py_VISIT(traverse_module_state->__pyx_codeobj__144);
  Py_VISIT(traverse_module_state->__pyx_codeobj__145);
  Py_VISIT(traverse_module_state->__pyx_codeobj__146);
  Py_VISIT(traverse_module_state->__pyx_codeobj__148);
  Py_VISIT(traverse_module_state->__pyx_codeobj__151);
  Py_VISIT(traverse_module_state->__pyx_codeobj__153);
  Py_VISIT(traverse_module_state->__pyx_codeobj__155);
  Py_VISIT(traverse_module_state->__pyx_codeobj__156);
  Py_VISIT(traverse_module_state->__pyx_codeobj__157);
  Py_VISIT(traverse_module_state->__pyx_codeobj__158);
  Py_VISIT(traverse_module_state->__pyx_codeobj__159);
  Py_VISIT(traverse_module_state->__pyx_codeobj__160);
  Py_VISIT(traverse_module_state->__pyx_codeobj__161);
  Py_VISIT(traverse_module_state->__pyx_codeobj__162);
  Py_VISIT(traverse_module_state->__pyx_codeobj__163);
  Py_VISIT(traverse_module_state->__pyx_codeobj__164);
  Py_VISIT(traverse_module_state->__pyx_codeobj__165);
  Py_VISIT(traverse_module_state->__pyx_codeobj__166);
  Py_VISIT(traverse_module_state->__pyx_codeobj__167);
  Py_VISIT(traverse_module_state->__pyx_codeobj__168);
  Py_VISIT(traverse_module_state->__pyx_codeobj__169);
  Py_VISIT(traverse_module_state->__pyx_codeobj__170);
  Py_VISIT(traverse_module_state->__pyx_codeobj__171);
  Py_VISIT(traverse_module_state->__pyx_codeobj__172);
  Py_VISIT(traverse_module_state->__pyx_codeobj__173);
  Py_VISIT(traverse_module_state->__pyx_codeobj__174);
  Py_VISIT(traverse_module_state->__pyx_codeobj__175);
  Py_VISIT(traverse_module_state->__pyx_codeobj__176);
  Py_VISIT(traverse_module_state->__pyx_codeobj__177);
  Py_VISIT(traverse_module_state->__pyx_codeobj__178);
  Py_VISIT(traverse_module_state->__pyx_codeobj__179);
  Py_VISIT(traverse_module_state->__pyx_codeobj__180);
  Py_VISIT(traverse_module_state->__pyx_codeobj__182);
  Py_VISIT(traverse_module_state->__pyx_codeobj__184);
  Py_VISIT(traverse_module_state->__pyx_codeobj__185);
  Py_VISIT(traverse_module_state->__pyx_codeobj__186);
  Py_VISIT(traverse_module_state->__pyx_codeobj__188);
  Py_VISIT(traverse_module_state->__pyx_codeobj__190);
  Py_VISIT(traverse_module_state->__pyx_codeobj__191);
  Py_VISIT(traverse_module_state->__pyx_codeobj__192);
  Py_VISIT(traverse_module_state->__pyx_codeobj__193);
  Py_VISIT(traverse_module_state->__pyx_codeobj__194);
  Py_VISIT(traverse_module_state->__pyx_codeobj__195);
  Py_VISIT(traverse_module_state->__pyx_codeobj__196);
  Py_VISIT(traverse_module_state->__pyx_codeobj__197);
  Py_VISIT(traverse_module_state->__pyx_codeobj__198);
  Py_VISIT(traverse_module_state->__pyx_codeobj__199);
  Py_VISIT(traverse_module_state->__pyx_codeobj__200);
  Py_VISIT(traverse_module_state->__pyx_codeobj__201);
  Py_VISIT(traverse_module_state->__pyx_codeobj__202);
  Py_VISIT(traverse_module_state->__pyx_codeobj__203);
  Py_VISIT(traverse_module_state->__pyx_codeobj__204);
  Py_VISIT(traverse_module_state->__pyx_codeobj__205);
  Py_VISIT(traverse_module_state->__pyx_codeobj__206);
  Py_VISIT(traverse_module_state->__pyx_codeobj__207);
  Py_VISIT(traverse_module_state->__pyx_codeobj__208);
  Py_VISIT(traverse_module_state->__pyx_codeobj__209);
  Py_VISIT(traverse_module_state->__pyx_codeobj__210);
  Py_VISIT(traverse_module_state->__pyx_codeobj__211);
  Py_VISIT(traverse_module_state->__pyx_codeobj__212);
  Py_VISIT(traverse_module_state->__pyx_codeobj__213);
  Py_VISIT(traverse_module_state->__pyx_codeobj__214);
  Py_VISIT(traverse_module_state->__pyx_codeobj__215);
  Py_VISIT(traverse_module_state->__pyx_codeobj__216);
  Py_VISIT(traverse_module_state->__pyx_codeobj__217);
  Py_VISIT(traverse_module_state->__pyx_codeobj__218);
  Py_VISIT(traverse_module_state->__pyx_codeobj__219);
  Py_VISIT(traverse_module_state->__pyx_codeobj__220);
  Py_VISIT(traverse_module_state->__pyx_codeobj__221);
  Py_VISIT(traverse_module_state->__pyx_codeobj__222);
  Py_VISIT(traverse_module_state->__pyx_codeobj__223);
  Py_VISIT(traverse_module_state->__pyx_codeobj__224);
  Py_VISIT(traverse_module_state->__pyx_codeobj__225);
  Py_VISIT(traverse_module_state->__pyx_codeobj__226);
  Py_VISIT(traverse_module_state->__pyx_codeobj__227);
  Py_VISIT(traverse_module_state->__pyx_codeobj__228);
  Py_VISIT(traverse_module_state->__pyx_codeobj__230);
  Py_VISIT(traverse_module_state->__pyx_codeobj__231);
  Py_VISIT(traverse_module_state->__pyx_codeobj__233);
  Py_VISIT(traverse_module_state->__pyx_codeobj__235);
  Py_VISIT(traverse_module_state->__pyx_codeobj__237);
  Py_VISIT(traverse_module_state->__pyx_codeobj__239);
  Py_VISIT(traverse_module_state->__pyx_codeobj__240);
  Py_VISIT(traverse_module_state->__pyx_codeobj__241);
  Py_VISIT(traverse_module_state->__pyx_codeobj__243);
  Py_VISIT(traverse_module_state->__pyx_codeobj__245);
  Py_VISIT(traverse_module_state->__pyx_codeobj__246);
  Py_VISIT(traverse_module_state->__pyx_codeobj__248);
  Py_VISIT(traverse_module_state->__pyx_codeobj__250);
  Py_VISIT(traverse_module_state->__pyx_codeobj__251);
  Py_VISIT(traverse_module_state->__pyx_codeobj__252);
  Py_VISIT(traverse_module_state->__pyx_codeobj__253);
  Py_VISIT(traverse_module_state->__pyx_codeobj__254);
  Py_VISIT(traverse_module_state->__pyx_codeobj__256);
  Py_VISIT(traverse_module_state->__pyx_codeobj__257);
  Py_VISIT(traverse_module_state->__pyx_codeobj__259);
  Py_VISIT(traverse_module_state->__pyx_codeobj__261);
  Py_VISIT(traverse_module_state->__pyx_codeobj__262);
  Py_VISIT(traverse_module_state->__pyx_codeobj__264);
  Py_VISIT(traverse_module_state->__pyx_codeobj__266);
  Py_VISIT(traverse_module_state->__pyx_codeobj__268);
  Py_VISIT(traverse_module_state->__pyx_codeobj__270);
  Py_VISIT(traverse_module_state->__pyx_codeobj__271);
  Py_VISIT(traverse_module_state->__pyx_codeobj__272);
  Py_VISIT(traverse_module_state->__pyx_codeobj__274);
  Py_VISIT(traverse_module_state->__pyx_codeobj__276);
  Py_VISIT(traverse_module_state->__pyx_codeobj__277);
  Py_VISIT(traverse_module_state->__pyx_codeobj__278);
  Py_VISIT(traverse_module_state->__pyx_codeobj__280);
  Py_VISIT(traverse_module_state->__pyx_codeobj__282);
  Py_VISIT(traverse_module_state->__pyx_codeobj__284);
  Py_VISIT(traverse_module_state->__pyx_codeobj__286);
  Py_VISIT(traverse_module_state->__pyx_codeobj__288);
  Py_VISIT(traverse_module_state->__pyx_codeobj__289);
  Py_VISIT(traverse_module_state->__pyx_codeobj__290);
  Py_VISIT(traverse_module_state->__pyx_codeobj__291);
  Py_VISIT(traverse_module_state->__pyx_codeobj__292);
  Py_VISIT(traverse_module_state->__pyx_codeobj__293);
  Py_VISIT(traverse_module_state->__pyx_codeobj__294);
  Py_VISIT(traverse_module_state->__pyx_codeobj__296);
  Py_VISIT(traverse_module_state->__pyx_codeobj__297);
  Py_VISIT(traverse_module_state->__pyx_codeobj__298);
  Py_VISIT(traverse_module_state->__pyx_codeobj__299);
  Py_VISIT(traverse_module_state->__pyx_codeobj__300);
  Py_VISIT(traverse_module_state->__pyx_codeobj__301);
  Py_VISIT(traverse_module_state->__pyx_codeobj__302);
  Py_VISIT(traverse_module_state->__pyx_codeobj__303);
  Py_VISIT(traverse_module_state->__pyx_codeobj__304);
  Py_VISIT(traverse_module_state->__pyx_codeobj__305);
  Py_VISIT(traverse_module_state->__pyx_codeobj__306);
  Py_VISIT(traverse_module_state->__pyx_codeobj__307);
  Py_VISIT(traverse_module_state->__pyx_codeobj__308);
  Py_VISIT(traverse_module_state->__pyx_codeobj__309);
  Py_VISIT(traverse_module_state->__pyx_codeobj__310);
  Py_VISIT(traverse_module_state->__pyx_codeobj__311);
  Py_VISIT(traverse_module_state->__pyx_codeobj__312);
  Py_VISIT(traverse_module_state->__pyx_codeobj__313);
  Py_VISIT(traverse_module_state->__pyx_codeobj__314);
  Py_VISIT(traverse_module_state->__pyx_codeobj__315);
  Py_VISIT(traverse_module_state->__pyx_codeobj__317);
  Py_VISIT(traverse_module_state->__pyx_codeobj__318);
  Py_VISIT(traverse_module_state->__pyx_codeobj__319);
  Py_VISIT(traverse_module_state->__pyx_codeobj__320);
  Py_VISIT(traverse_module_state->__pyx_codeobj__321);
  Py_VISIT(traverse_module_state->__pyx_codeobj__323);
  Py_VISIT(traverse_module_state->__pyx_codeobj__324);
  Py_VISIT(traverse_module_state->__pyx_codeobj__325);
  Py_VISIT(traverse_module_state->__pyx_codeobj__326);
  Py_VISIT(traverse_module_state->__pyx_codeobj__327);
  Py_VISIT(traverse_module_state->__pyx_codeobj__328);
  Py_VISIT(traverse_module_state->__pyx_codeobj__330);
  Py_VISIT(traverse_module_state->__pyx_codeobj__332);
  Py_VISIT(traverse_module_state->__pyx_codeobj__333);
  Py_VISIT(traverse_module_state->__pyx_codeobj__334);
  Py_VISIT(traverse_module_state->__pyx_codeobj__335);
  Py_VISIT(traverse_module_state->__pyx_codeobj__337);
  Py_VISIT(traverse_module_state->__pyx_codeobj__338);
  Py_VISIT(traverse_module_state->__pyx_codeobj__340);
  Py_VISIT(traverse_module_state->__pyx_codeobj__342);
  Py_VISIT(traverse_module_state->__pyx_codeobj__343);
  Py_VISIT(traverse_module_state->__pyx_codeobj__345);
  Py_VISIT(traverse_module_state->__pyx_codeobj__347);
  Py_VISIT(traverse_module_state->__pyx_codeobj__349);
  Py_VISIT(traverse_module_state->__pyx_codeobj__351);
  Py_VISIT(traverse_module_state->__pyx_codeobj__353);
  Py_VISIT(traverse_module_state->__pyx_codeobj__354);
  Py_VISIT(traverse_module_state->__pyx_codeobj__355);
  Py_VISIT(traverse_module_state->__pyx_codeobj__357);
  Py_VISIT(traverse_module_state->__pyx_codeobj__359);
  Py_VISIT(traverse_module_state->__pyx_codeobj__361);
  Py_VISIT(traverse_module_state->__pyx_codeobj__362);
  Py_VISIT(traverse_module_state->__pyx_codeobj__364);
  Py_VISIT(traverse_module_state->__pyx_codeobj__366);
  Py_VISIT(traverse_module_state->__pyx_codeobj__368);
  Py_VISIT(traverse_module_state->__pyx_codeobj__370);
  Py_VISIT(traverse_module_state->__pyx_codeobj__372);
  Py_VISIT(traverse_module_state->__pyx_codeobj__373);
  Py_VISIT(traverse_module_state->__pyx_codeobj__375);
  Py_VISIT(traverse_module_state->__pyx_codeobj__376);
  Py_VISIT(traverse_module_state->__pyx_codeobj__378);
  Py_VISIT(traverse_module_state->__pyx_codeobj__380);
  Py_VISIT(traverse_module_state->__pyx_codeobj__381);
  Py_VISIT(traverse_module_state->__pyx_codeobj__383);
  Py_VISIT(traverse_module_state->__pyx_codeobj__385);
  Py_VISIT(traverse_module_state->__pyx_codeobj__387);
  Py_VISIT(traverse_module_state->__pyx_codeobj__389);
  Py_VISIT(traverse_module_state->__pyx_codeobj__391);
  Py_VISIT(traverse_module_state->__pyx_codeobj__393);
  Py_VISIT(traverse_module_state->__pyx_codeobj__394);
  Py_VISIT(traverse_module_state->__pyx_codeobj__396);
  Py_VISIT(traverse_module_state->__pyx_codeobj__398);
  Py_VISIT(traverse_module_state->__pyx_codeobj__400);
  Py_VISIT(traverse_module_state->__pyx_codeobj__402);
  Py_VISIT(traverse_module_state->__pyx_codeobj__404);
  Py_VISIT(traverse_module_state->__pyx_codeobj__406);
  Py_VISIT(traverse_module_state->__pyx_codeobj__408);
  Py_VISIT(traverse_module_state->__pyx_codeobj__410);
  Py_VISIT(traverse_module_state->__pyx_codeobj__412);
  Py_VISIT(traverse_module_state->__pyx_codeobj__413);
  Py_VISIT(traverse_module_state->__pyx_codeobj__415);
  Py_VISIT(traverse_module_state->__pyx_codeobj__417);
  Py_VISIT(traverse_module_state->__pyx_codeobj__418);
  Py_VISIT(traverse_module_state->__pyx_codeobj__420);
  Py_VISIT(traverse_module_state->__pyx_codeobj__421);
  Py_VISIT(traverse_module_state->__pyx_codeobj__423);
  Py_VISIT(traverse_module_state->__pyx_codeobj__425);
  Py_VISIT(traverse_module_state->__pyx_codeobj__427);
  Py_VISIT(traverse_module_state->__pyx_codeobj__429);
  Py_VISIT(traverse_module_state->__pyx_codeobj__430);
  Py_VISIT(traverse_module_state->__pyx_codeobj__432);
  Py_VISIT(traverse_module_state->__pyx_codeobj__434);
  Py_VISIT(traverse_module_state->__pyx_codeobj__436);
  Py_VISIT(traverse_module_state->__pyx_codeobj__438);
  Py_VISIT(traverse_module_state->__pyx_codeobj__439);
  Py_VISIT(traverse_module_state->__pyx_codeobj__441);
  Py_VISIT(traverse_module_state->__pyx_codeobj__443);
  Py_VISIT(traverse_module_state->__pyx_codeobj__445);
  Py_VISIT(traverse_module_state->__pyx_codeobj__446);
  Py_VISIT(traverse_module_state->__pyx_codeobj__448);
  Py_VISIT(traverse_module_state->__pyx_codeobj__450);
  Py_VISIT(traverse_module_state->__pyx_codeobj__452);
  Py_VISIT(traverse_module_state->__pyx_codeobj__454);
  Py_VISIT(traverse_module_state->__pyx_codeobj__456);
  Py_VISIT(traverse_module_state->__pyx_codeobj__458);
  Py_VISIT(traverse_module_state->__pyx_codeobj__460);
  Py_VISIT(traverse_module_state->__pyx_codeobj__461);
  Py_VISIT(traverse_module_state->__pyx_codeobj__462);
  Py_VISIT(traverse_module_state->__pyx_codeobj__464);
  Py_VISIT(traverse_module_state->__pyx_codeobj__466);
  Py_VISIT(traverse_module_state->__pyx_codeobj__468);
  Py_VISIT(traverse_module_state->__pyx_codeobj__470);
  Py_VISIT(traverse_module_state->__pyx_codeobj__472);
  Py_VISIT(traverse_module_state->__pyx_codeobj__474);
  Py_VISIT(traverse_module_state->__pyx_codeobj__475);
  Py_VISIT(traverse_module_state->__pyx_codeobj__477);
  Py_VISIT(traverse_module_state->__pyx_codeobj__479);
  Py_VISIT(traverse_module_state->__pyx_codeobj__481);
  Py_VISIT(traverse_module_state->__pyx_codeobj__482);
  Py_VISIT(traverse_module_state->__pyx_codeobj__483);
  Py_VISIT(traverse_module_state->__pyx_codeobj__484);
  Py_VISIT(traverse_module_state->__pyx_codeobj__485);
  Py_VISIT(traverse_module_state->__pyx_codeobj__487);
  Py_VISIT(traverse_module_state->__pyx_codeobj__489);
  Py_VISIT(traverse_module_state->__pyx_codeobj__491);
  Py_VISIT(traverse_module_state->__pyx_codeobj__493);
  Py_VISIT(traverse_module_state->__pyx_codeobj__495);
  Py_VISIT(traverse_module_state->__pyx_codeobj__497);
  Py_VISIT(traverse_module_state->__pyx_codeobj__498);
  Py_VISIT(traverse_module_state->__pyx_codeobj__500);
  Py_VISIT(traverse_module_state->__pyx_codeobj__501);
  Py_VISIT(traverse_module_state->__pyx_codeobj__502);
  Py_VISIT(traverse_module_state->__pyx_codeobj__504);
  Py_VISIT(traverse_module_state->__pyx_codeobj__505);
  Py_VISIT(traverse_module_state->__pyx_codeobj__507);
  Py_VISIT(traverse_module_state->__pyx_codeobj__509);
  Py_VISIT(traverse_module_state->__pyx_codeobj__511);
  Py_VISIT(traverse_module_state->__pyx_codeobj__513);
  Py_VISIT(traverse_module_state->__pyx_codeobj__514);
  Py_VISIT(traverse_module_state->__pyx_codeobj__516);
  Py_VISIT(traverse_module_state->__pyx_codeobj__517);
  Py_VISIT(traverse_module_state->__pyx_codeobj__518);
  Py_VISIT(traverse_module_state->__pyx_codeobj__519);
  Py_VISIT(traverse_module_state->__pyx_codeobj__520);
  Py_VISIT(traverse_module_state->__pyx_codeobj__522);
  Py_VISIT(traverse_module_state->__pyx_codeobj__524);
  Py_VISIT(traverse_module_state->__pyx_codeobj__526);
  Py_VISIT(traverse_module_state->__pyx_codeobj__527);
  Py_VISIT(traverse_module_state->__pyx_codeobj__529);
  Py_VISIT(traverse_module_state->__pyx_codeobj__531);
  Py_VISIT(traverse_module_state->__pyx_codeobj__532);
  Py_VISIT(traverse_module_state->__pyx_codeobj__534);
  Py_VISIT(traverse_module_state->__pyx_codeobj__535);
  Py_VISIT(traverse_module_state->__pyx_codeobj__536);
  Py_VISIT(traverse_module_state->__pyx_codeobj__538);
  Py_VISIT(traverse_module_state->__pyx_codeobj__539);
  Py_VISIT(traverse_module_state->__pyx_codeobj__540);
  Py_VISIT(traverse_module_state->__pyx_codeobj__542);
  Py_VISIT(traverse_module_state->__pyx_codeobj__544);
  Py_VISIT(traverse_module_state->__pyx_codeobj__545);
  Py_VISIT(traverse_module_state->__pyx_codeobj__547);
  Py_VISIT(traverse_module_state->__pyx_codeobj__549);
  Py_VISIT(traverse_module_state->__pyx_codeobj__551);
  Py_VISIT(traverse_module_state->__pyx_codeobj__552);
  Py_VISIT(traverse_module_state->__pyx_codeobj__554);
  Py_VISIT(traverse_module_state->__pyx_codeobj__556);
  Py_VISIT(traverse_module_state->__pyx_codeobj__558);
  Py_VISIT(traverse_module_state->__pyx_codeobj__560);
  Py_VISIT(traverse_module_state->__pyx_codeobj__562);
  Py_VISIT(traverse_module_state->__pyx_codeobj__564);
  Py_VISIT(traverse_module_state->__pyx_codeobj__566);
  Py_VISIT(traverse_module_state->__pyx_codeobj__568);
  Py_VISIT(traverse_module_state->__pyx_codeobj__570);
  Py_VISIT(traverse_module_state->__pyx_codeobj__571);
  Py_VISIT(traverse_module_state->__pyx_codeobj__573);
  Py_VISIT(traverse_module_state->__pyx_codeobj__575);
  Py_VISIT(traverse_module_state->__pyx_codeobj__577);
  Py_VISIT(traverse_module_state->__pyx_codeobj__579);
  Py_VISIT(traverse_module_state->__pyx_codeobj__581);
  Py_VISIT(traverse_module_state->__pyx_codeobj__583);
  Py_VISIT(traverse_module_state->__pyx_codeobj__585);
  Py_VISIT(traverse_module_state->__pyx_codeobj__587);
  Py_VISIT(traverse_module_state->__pyx_codeobj__589);
  Py_VISIT(traverse_module_state->__pyx_codeobj__591);
  Py_VISIT(traverse_module_state->__pyx_codeobj__593);
  Py_VISIT(traverse_module_state->__pyx_codeobj__595);
  Py_VISIT(traverse_module_state->__pyx_codeobj__597);
  Py_VISIT(traverse_module_state->__pyx_codeobj__599);
  Py_VISIT(traverse_module_state->__pyx_codeobj__601);
  Py_VISIT(traverse_module_state->__pyx_codeobj__603);
  Py_VISIT(traverse_module_state->__pyx_codeobj__605);
  Py_VISIT(traverse_module_state->__pyx_codeobj__607);
  Py_VISIT(traverse_module_state->__pyx_codeobj__608);
  Py_VISIT(traverse_module_state->__pyx_codeobj__610);
  Py_VISIT(traverse_module_state->__pyx_codeobj__611);
  Py_VISIT(traverse_module_state->__pyx_codeobj__613);
  Py_VISIT(traverse_module_state->__pyx_codeobj__614);
  Py_VISIT(traverse_module_state->__pyx_codeobj__615);
  Py_VISIT(traverse_module_state->__pyx_codeobj__617);
  Py_VISIT(traverse_module_state->__pyx_codeobj__619);
  Py_VISIT(traverse_module_state->__pyx_codeobj__620);
  Py_VISIT(traverse_module_state->__pyx_codeobj__622);
  Py_VISIT(traverse_module_state->__pyx_codeobj__623);
  Py_VISIT(traverse_module_state->__pyx_codeobj__625);
  Py_VISIT(traverse_module_state->__pyx_codeobj__626);
  Py_VISIT(traverse_module_state->__pyx_codeobj__628);
  Py_VISIT(traverse_module_state->__pyx_codeobj__632);
  Py_VISIT(traverse_module_state->__pyx_codeobj__634);
  Py_VISIT(traverse_module_state->__pyx_codeobj__635);
  Py_VISIT(traverse_module_state->__pyx_codeobj__636);
  Py_VISIT(traverse_module_state->__pyx_codeobj__639);
  Py_VISIT(traverse_module_state->__pyx_codeobj__641);
  Py_VISIT(traverse_module_state->__pyx_codeobj__643);
  Py_VISIT(traverse_module_state->__pyx_codeobj__645);
  Py_VISIT(traverse_module_state->__pyx_codeobj__647);
  Py_VISIT(traverse_module_state->__pyx_codeobj__648);
  Py_VISIT(traverse_module_state->__pyx_codeobj__649);
  Py_VISIT(traverse_module_state->__pyx_codeobj__651);
  Py_VISIT(traverse_module_state->__pyx_codeobj__652);
  Py_VISIT(traverse_module_state->__pyx_codeobj__653);
  Py_VISIT(traverse_module_state->__pyx_codeobj__654);
  Py_VISIT(traverse_module_state->__pyx_codeobj__656);
  Py_VISIT(traverse_module_state->__pyx_codeobj__659);
  Py_VISIT(traverse_module_state->__pyx_codeobj__662);
  Py_VISIT(traverse_module_state->__pyx_codeobj__663);
  Py_VISIT(traverse_module_state->__pyx_codeobj__665);
  Py_VISIT(traverse_module_state->__pyx_codeobj__667);
  Py_VISIT(traverse_module_state->__pyx_codeobj__669);
  Py_VISIT(traverse_module_state->__pyx_codeobj__671);
  Py_VISIT(traverse_module_state->__pyx_codeobj__673);
  Py_VISIT(traverse_module_state->__pyx_codeobj__675);
  Py_VISIT(traverse_module_state->__pyx_codeobj__678);
  Py_VISIT(traverse_module_state->__pyx_codeobj__681);
  Py_VISIT(traverse_module_state->__pyx_codeobj__684);
  Py_VISIT(traverse_module_state->__pyx_codeobj__685);
  Py_VISIT(traverse_module_state->__pyx_codeobj__686);
  Py_VISIT(traverse_module_state->__pyx_codeobj__689);
  Py_VISIT(traverse_module_state->__pyx_codeobj__691);
  Py_VISIT(traverse_module_state->__pyx_codeobj__693);
  Py_VISIT(traverse_module_state->__pyx_codeobj__695);
  Py_VISIT(traverse_module_state->__pyx_codeobj__697);
  Py_VISIT(traverse_module_state->__pyx_codeobj__699);
  Py_VISIT(traverse_module_state->__pyx_codeobj__701);
  Py_VISIT(traverse_module_state->__pyx_codeobj__702);
  Py_VISIT(traverse_module_state->__pyx_codeobj__704);
  Py_VISIT(traverse_module_state->__pyx_codeobj__706);
  Py_VISIT(traverse_module_state->__pyx_codeobj__707);
  Py_VISIT(traverse_module_state->__pyx_codeobj__709);
  Py_VISIT(traverse_module_state->__pyx_codeobj__712);
  Py_VISIT(traverse_module_state->__pyx_codeobj__715);
  Py_VISIT(traverse_module_state->__pyx_codeobj__717);
  Py_VISIT(traverse_module_state->__pyx_codeobj__719);
  Py_VISIT(traverse_module_state->__pyx_codeobj__721);
  Py_VISIT(traverse_module_state->__pyx_codeobj__723);
  Py_VISIT(traverse_module_state->__pyx_codeobj__725);
  Py_VISIT(traverse_module_state->__pyx_codeobj__727);
  Py_VISIT(traverse_module_state->__pyx_codeobj__728);
  Py_VISIT(traverse_module_state->__pyx_codeobj__729);
  Py_VISIT(traverse_module_state->__pyx_codeobj__731);
  Py_VISIT(traverse_module_state->__pyx_codeobj__733);
  Py_VISIT(traverse_module_state->__pyx_codeobj__734);
  Py_VISIT(traverse_module_state->__pyx_codeobj__735);
  Py_VISIT(traverse_module_state->__pyx_codeobj__740);
  Py_VISIT(traverse_module_state->__pyx_codeobj__743);
  Py_VISIT(traverse_module_state->__pyx_codeobj__745);
  Py_VISIT(traverse_module_state->__pyx_codeobj__746);
  Py_VISIT(traverse_module_state->__pyx_codeobj__748);
  Py_VISIT(traverse_module_state->__pyx_codeobj__750);
  Py_VISIT(traverse_module_state->__pyx_codeobj__751);
  Py_VISIT(traverse_module_state->__pyx_codeobj__753);
  Py_VISIT(traverse_module_state->__pyx_codeobj__755);
  Py_VISIT(traverse_module_state->__pyx_codeobj__756);
  Py_VISIT(traverse_module_state->__pyx_codeobj__757);
  Py_VISIT(traverse_module_state->__pyx_codeobj__758);
  Py_VISIT(traverse_module_state->__pyx_codeobj__760);
  Py_VISIT(traverse_module_state->__pyx_codeobj__762);
  Py_VISIT(traverse_module_state->__pyx_codeobj__763);
  Py_VISIT(traverse_module_state->__pyx_codeobj__765);
  Py_VISIT(traverse_module_state->__pyx_codeobj__766);
  Py_VISIT(traverse_module_state->__pyx_codeobj__769);
  Py_VISIT(traverse_module_state->__pyx_codeobj__771);
  Py_VISIT(traverse_module_state->__pyx_codeobj__773);
  Py_VISIT(traverse_module_state->__pyx_codeobj__775);
  Py_VISIT(traverse_module_state->__pyx_codeobj__777);
  return 0;
}
#endif
/* #### Code section: module_state_defines ### */
#define __pyx_d __pyx_mstate_global->__pyx_d
#define __pyx_b __pyx_mstate_global->__pyx_b
#define __pyx_cython_runtime __pyx_mstate_global->__pyx_cython_runtime
#define __pyx_empty_tuple __pyx_mstate_global->__pyx_empty_tuple
#define __pyx_empty_bytes __pyx_mstate_global->__pyx_empty_bytes
#define __pyx_empty_unicode __pyx_mstate_global->__pyx_empty_unicode
#ifdef __Pyx_CyFunction_USED
#define __pyx_CyFunctionType __pyx_mstate_global->__pyx_CyFunctionType
#endif
#ifdef __Pyx_FusedFunction_USED
#define __pyx_FusedFunctionType __pyx_mstate_global->__pyx_FusedFunctionType
#endif
#ifdef __Pyx_Generator_USED
#define __pyx_GeneratorType __pyx_mstate_global->__pyx_GeneratorType
#endif
#ifdef __Pyx_IterableCoroutine_USED
#define __pyx_IterableCoroutineType __pyx_mstate_global->__pyx_IterableCoroutineType
#endif
#ifdef __Pyx_Coroutine_USED
#define __pyx_CoroutineAwaitType __pyx_mstate_global->__pyx_CoroutineAwaitType
#endif
#ifdef __Pyx_Coroutine_USED
#define __pyx_CoroutineType __pyx_mstate_global->__pyx_CoroutineType
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#define __pyx_ptype_7cpython_4type_type __pyx_mstate_global->__pyx_ptype_7cpython_4type_type
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#define __pyx_ptype_5numpy_dtype __pyx_mstate_global->__pyx_ptype_5numpy_dtype
#define __pyx_ptype_5numpy_flatiter __pyx_mstate_global->__pyx_ptype_5numpy_flatiter
#define __pyx_ptype_5numpy_broadcast __pyx_mstate_global->__pyx_ptype_5numpy_broadcast
#define __pyx_ptype_5numpy_ndarray __pyx_mstate_global->__pyx_ptype_5numpy_ndarray
#define __pyx_ptype_5numpy_generic __pyx_mstate_global->__pyx_ptype_5numpy_generic
#define __pyx_ptype_5numpy_number __pyx_mstate_global->__pyx_ptype_5numpy_number
#define __pyx_ptype_5numpy_integer __pyx_mstate_global->__pyx_ptype_5numpy_integer
#define __pyx_ptype_5numpy_signedinteger __pyx_mstate_global->__pyx_ptype_5numpy_signedinteger
#define __pyx_ptype_5numpy_unsignedinteger __pyx_mstate_global->__pyx_ptype_5numpy_unsignedinteger
#define __pyx_ptype_5numpy_inexact __pyx_mstate_global->__pyx_ptype_5numpy_inexact
#define __pyx_ptype_5numpy_floating __pyx_mstate_global->__pyx_ptype_5numpy_floating
#define __pyx_ptype_5numpy_complexfloating __pyx_mstate_global->__pyx_ptype_5numpy_complexfloating
#define __pyx_ptype_5numpy_flexible __pyx_mstate_global->__pyx_ptype_5numpy_flexible
#define __pyx_ptype_5numpy_character __pyx_mstate_global->__pyx_ptype_5numpy_character
#define __pyx_ptype_5numpy_ufunc __pyx_mstate_global->__pyx_ptype_5numpy_ufunc
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#define __pyx_type_9mujoco_py_4cymj_PyMjLROpt __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjLROpt
#define __pyx_type_9mujoco_py_4cymj_PyMjVFS __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjVFS
#define __pyx_type_9mujoco_py_4cymj_PyMjOption __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjOption
#define __pyx_type_9mujoco_py_4cymj_PyMjVisual __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjVisual
#define __pyx_type_9mujoco_py_4cymj_PyMjVisual_global_ __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjVisual_global_
#define __pyx_type_9mujoco_py_4cymj_PyMjVisual_quality __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjVisual_quality
#define __pyx_type_9mujoco_py_4cymj_PyMjVisual_headlight __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjVisual_headlight
#define __pyx_type_9mujoco_py_4cymj_PyMjVisual_map __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjVisual_map
#define __pyx_type_9mujoco_py_4cymj_PyMjVisual_scale __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjVisual_scale
#define __pyx_type_9mujoco_py_4cymj_PyMjVisual_rgba __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjVisual_rgba
#define __pyx_type_9mujoco_py_4cymj_PyMjStatistic __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjStatistic
#define __pyx_type_9mujoco_py_4cymj_PyMjModel __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjModel
#define __pyx_type_9mujoco_py_4cymj_PyMjContact __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjContact
#define __pyx_type_9mujoco_py_4cymj_PyMjWarningStat __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjWarningStat
#define __pyx_type_9mujoco_py_4cymj_PyMjTimerStat __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjTimerStat
#define __pyx_type_9mujoco_py_4cymj_PyMjSolverStat __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjSolverStat
#define __pyx_type_9mujoco_py_4cymj_PyMjData __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjData
#define __pyx_type_9mujoco_py_4cymj_PyMjvPerturb __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjvPerturb
#define __pyx_type_9mujoco_py_4cymj_PyMjvCamera __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjvCamera
#define __pyx_type_9mujoco_py_4cymj_PyMjvGLCamera __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjvGLCamera
#define __pyx_type_9mujoco_py_4cymj_PyMjvGeom __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjvGeom
#define __pyx_type_9mujoco_py_4cymj_PyMjvLight __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjvLight
#define __pyx_type_9mujoco_py_4cymj_PyMjvOption __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjvOption
#define __pyx_type_9mujoco_py_4cymj_PyMjvScene __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjvScene
#define __pyx_type_9mujoco_py_4cymj_PyMjvFigure __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjvFigure
#define __pyx_type_9mujoco_py_4cymj_PyMjrRect __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjrRect
#define __pyx_type_9mujoco_py_4cymj_PyMjrContext __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjrContext
#define __pyx_type_9mujoco_py_4cymj_PyMjuiState __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjuiState
#define __pyx_type_9mujoco_py_4cymj_PyMjuiThemeSpacing __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjuiThemeSpacing
#define __pyx_type_9mujoco_py_4cymj_PyMjuiThemeColor __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjuiThemeColor
#define __pyx_type_9mujoco_py_4cymj_PyMjuiItem __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjuiItem
#define __pyx_type_9mujoco_py_4cymj_PyMjuiSection __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjuiSection
#define __pyx_type_9mujoco_py_4cymj_PyMjUI __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjUI
#define __pyx_type_9mujoco_py_4cymj_PyMjuiDef __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_PyMjuiDef
#define __pyx_type_9mujoco_py_4cymj_MjSim __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_MjSim
#define __pyx_type_9mujoco_py_4cymj_MjRenderContext __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj_MjRenderContext
#define __pyx_type_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names
#define __pyx_type_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr __pyx_mstate_global->__pyx_type_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr
#define __pyx_type___pyx_array __pyx_mstate_global->__pyx_type___pyx_array
#define __pyx_type___pyx_MemviewEnum __pyx_mstate_global->__pyx_type___pyx_MemviewEnum
#define __pyx_type___pyx_memoryview __pyx_mstate_global->__pyx_type___pyx_memoryview
#define __pyx_type___pyx_memoryviewslice __pyx_mstate_global->__pyx_type___pyx_memoryviewslice
#endif
#define __pyx_ptype_9mujoco_py_4cymj_PyMjLROpt __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjLROpt
#define __pyx_ptype_9mujoco_py_4cymj_PyMjVFS __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjVFS
#define __pyx_ptype_9mujoco_py_4cymj_PyMjOption __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjOption
#define __pyx_ptype_9mujoco_py_4cymj_PyMjVisual __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual
#define __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_ __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_
#define __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality
#define __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight
#define __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map
#define __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale
#define __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba
#define __pyx_ptype_9mujoco_py_4cymj_PyMjStatistic __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjStatistic
#define __pyx_ptype_9mujoco_py_4cymj_PyMjModel __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjModel
#define __pyx_ptype_9mujoco_py_4cymj_PyMjContact __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjContact
#define __pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat
#define __pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat
#define __pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat
#define __pyx_ptype_9mujoco_py_4cymj_PyMjData __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjData
#define __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb
#define __pyx_ptype_9mujoco_py_4cymj_PyMjvCamera __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjvCamera
#define __pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera
#define __pyx_ptype_9mujoco_py_4cymj_PyMjvGeom __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjvGeom
#define __pyx_ptype_9mujoco_py_4cymj_PyMjvLight __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjvLight
#define __pyx_ptype_9mujoco_py_4cymj_PyMjvOption __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjvOption
#define __pyx_ptype_9mujoco_py_4cymj_PyMjvScene __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjvScene
#define __pyx_ptype_9mujoco_py_4cymj_PyMjvFigure __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjvFigure
#define __pyx_ptype_9mujoco_py_4cymj_PyMjrRect __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjrRect
#define __pyx_ptype_9mujoco_py_4cymj_PyMjrContext __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjrContext
#define __pyx_ptype_9mujoco_py_4cymj_PyMjuiState __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjuiState
#define __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing
#define __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor
#define __pyx_ptype_9mujoco_py_4cymj_PyMjuiItem __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjuiItem
#define __pyx_ptype_9mujoco_py_4cymj_PyMjuiSection __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjuiSection
#define __pyx_ptype_9mujoco_py_4cymj_PyMjUI __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjUI
#define __pyx_ptype_9mujoco_py_4cymj_PyMjuiDef __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_PyMjuiDef
#define __pyx_ptype_9mujoco_py_4cymj_MjSim __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_MjSim
#define __pyx_ptype_9mujoco_py_4cymj_MjRenderContext __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj_MjRenderContext
#define __pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names
#define __pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr __pyx_mstate_global->__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr
#define __pyx_array_type __pyx_mstate_global->__pyx_array_type
#define __pyx_MemviewEnum_type __pyx_mstate_global->__pyx_MemviewEnum_type
#define __pyx_memoryview_type __pyx_mstate_global->__pyx_memoryview_type
#define __pyx_memoryviewslice_type __pyx_mstate_global->__pyx_memoryviewslice_type
#define __pyx_kp_u_ __pyx_mstate_global->__pyx_kp_u_
#define __pyx_n_s_ABCMeta __pyx_mstate_global->__pyx_n_s_ABCMeta
#define __pyx_n_s_ASCII __pyx_mstate_global->__pyx_n_s_ASCII
#define __pyx_kp_s_All_dimensions_preceding_dimensi __pyx_mstate_global->__pyx_kp_s_All_dimensions_preceding_dimensi
#define __pyx_n_s_AssertionError __pyx_mstate_global->__pyx_n_s_AssertionError
#define __pyx_kp_s_Buffer_view_does_not_expose_stri __pyx_mstate_global->__pyx_kp_s_Buffer_view_does_not_expose_stri
#define __pyx_n_s_CAMERA_FIXED __pyx_mstate_global->__pyx_n_s_CAMERA_FIXED
#define __pyx_n_s_CAMERA_FREE __pyx_mstate_global->__pyx_n_s_CAMERA_FREE
#define __pyx_n_s_CAT_DECOR __pyx_mstate_global->__pyx_n_s_CAT_DECOR
#define __pyx_n_u_CUDA_VISIBLE_DEVICES __pyx_mstate_global->__pyx_n_u_CUDA_VISIBLE_DEVICES
#define __pyx_kp_u_CUDA_buffers_must_be_mapped_befo __pyx_mstate_global->__pyx_kp_u_CUDA_buffers_must_be_mapped_befo
#define __pyx_kp_u_CUDA_buffers_must_be_unmapped_be __pyx_mstate_global->__pyx_kp_u_CUDA_buffers_must_be_unmapped_be
#define __pyx_kp_s_Can_only_create_a_buffer_that_is __pyx_mstate_global->__pyx_kp_s_Can_only_create_a_buffer_that_is
#define __pyx_kp_s_Cannot_assign_to_read_only_memor __pyx_mstate_global->__pyx_kp_s_Cannot_assign_to_read_only_memor
#define __pyx_kp_s_Cannot_create_writable_memory_vi __pyx_mstate_global->__pyx_kp_s_Cannot_create_writable_memory_vi
#define __pyx_kp_u_Cannot_index_with_type __pyx_mstate_global->__pyx_kp_u_Cannot_index_with_type
#define __pyx_kp_s_Cannot_transpose_memoryview_with __pyx_mstate_global->__pyx_kp_s_Cannot_transpose_memoryview_with
#define __pyx_kp_s_Class_to_wrap_capturing_excepti __pyx_mstate_global->__pyx_kp_s_Class_to_wrap_capturing_excepti
#define __pyx_n_s_Context __pyx_mstate_global->__pyx_n_s_Context
#define __pyx_kp_u_Creating_offscreen_glfw __pyx_mstate_global->__pyx_kp_u_Creating_offscreen_glfw
#define __pyx_kp_u_Creating_window_glfw __pyx_mstate_global->__pyx_kp_u_Creating_window_glfw
#define __pyx_n_s_CudaBufferMappedError __pyx_mstate_global->__pyx_n_s_CudaBufferMappedError
#define __pyx_n_s_CudaBufferNotMappedError __pyx_mstate_global->__pyx_n_s_CudaBufferNotMappedError
#define __pyx_n_s_CudaNotEnabledError __pyx_mstate_global->__pyx_n_s_CudaNotEnabledError
#define __pyx_n_s_DOUBLEBUFFER __pyx_mstate_global->__pyx_n_s_DOUBLEBUFFER
#define __pyx_n_u_DYLD_LIBRARY_PATH __pyx_mstate_global->__pyx_n_u_DYLD_LIBRARY_PATH
#define __pyx_kp_u_Depth_not_enabled_Use_depth_True __pyx_mstate_global->__pyx_kp_u_Depth_not_enabled_Use_depth_True
#define __pyx_n_s_Device __pyx_mstate_global->__pyx_n_s_Device
#define __pyx_kp_s_Dimension_d_is_not_direct __pyx_mstate_global->__pyx_kp_s_Dimension_d_is_not_direct
#define __pyx_n_s_Ellipsis __pyx_mstate_global->__pyx_n_s_Ellipsis
#define __pyx_kp_s_Empty_shape_tuple_for_cython_arr __pyx_mstate_global->__pyx_kp_s_Empty_shape_tuple_for_cython_arr
#define __pyx_kp_u_Every_value_in_udd_state_must_be __pyx_mstate_global->__pyx_kp_u_Every_value_in_udd_state_must_be
#define __pyx_n_s_FONTSCALE_150 __pyx_mstate_global->__pyx_n_s_FONTSCALE_150
#define __pyx_kp_u_Failed_to_create_GLFW_window __pyx_mstate_global->__pyx_kp_u_Failed_to_create_GLFW_window
#define __pyx_kp_u_Failed_to_import_pycuda __pyx_mstate_global->__pyx_kp_u_Failed_to_import_pycuda
#define __pyx_kp_u_Failed_to_initialize_GLFW __pyx_mstate_global->__pyx_kp_u_Failed_to_initialize_GLFW
#define __pyx_kp_u_Failed_to_initialize_OpenGL __pyx_mstate_global->__pyx_kp_u_Failed_to_initialize_OpenGL
#define __pyx_kp_u_Failed_to_load_XML_file __pyx_mstate_global->__pyx_kp_u_Failed_to_load_XML_file
#define __pyx_kp_u_Failed_to_load_XML_from_string __pyx_mstate_global->__pyx_kp_u_Failed_to_load_XML_from_string
#define __pyx_kp_u_Failed_to_save_XML __pyx_mstate_global->__pyx_kp_u_Failed_to_save_XML
#define __pyx_kp_u_Failed_to_set_buffer_size __pyx_mstate_global->__pyx_kp_u_Failed_to_set_buffer_size
#define __pyx_n_s_GEOM_BOX __pyx_mstate_global->__pyx_n_s_GEOM_BOX
#define __pyx_n_s_GLFW_IS_INITIALIZED __pyx_mstate_global->__pyx_n_s_GLFW_IS_INITIALIZED
#define __pyx_kp_u_GLFW_error_code_d_s __pyx_mstate_global->__pyx_kp_u_GLFW_error_code_d_s
#define __pyx_kp_u_GLFW_not_installed __pyx_mstate_global->__pyx_kp_u_GLFW_not_installed
#define __pyx_n_u_GPUS __pyx_mstate_global->__pyx_n_u_GPUS
#define __pyx_n_s_GlfwContext __pyx_mstate_global->__pyx_n_s_GlfwContext
#define __pyx_n_s_GlfwContext___init __pyx_mstate_global->__pyx_n_s_GlfwContext___init
#define __pyx_n_s_GlfwContext__create_window __pyx_mstate_global->__pyx_n_s_GlfwContext__create_window
#define __pyx_n_s_GlfwContext__glfw_error_callback __pyx_mstate_global->__pyx_n_s_GlfwContext__glfw_error_callback
#define __pyx_n_s_GlfwContext__init_glfw __pyx_mstate_global->__pyx_n_s_GlfwContext__init_glfw
#define __pyx_n_s_GlfwContext__set_window_size __pyx_mstate_global->__pyx_n_s_GlfwContext__set_window_size
#define __pyx_n_s_GlfwContext_get_buffer_size __pyx_mstate_global->__pyx_n_s_GlfwContext_get_buffer_size
#define __pyx_n_s_GlfwContext_make_context_current __pyx_mstate_global->__pyx_n_s_GlfwContext_make_context_current
#define __pyx_n_s_GlfwContext_set_buffer_size __pyx_mstate_global->__pyx_n_s_GlfwContext_set_buffer_size
#define __pyx_n_s_GlfwError __pyx_mstate_global->__pyx_n_s_GlfwError
#define __pyx_n_s_INIT_HEIGHT __pyx_mstate_global->__pyx_n_s_INIT_HEIGHT
#define __pyx_n_s_INIT_WIDTH __pyx_mstate_global->__pyx_n_s_INIT_WIDTH
#define __pyx_n_s_ImportError __pyx_mstate_global->__pyx_n_s_ImportError
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0
#define __pyx_n_s_IndexError __pyx_mstate_global->__pyx_n_s_IndexError
#define __pyx_kp_s_Index_out_of_bounds_axis_d __pyx_mstate_global->__pyx_kp_s_Index_out_of_bounds_axis_d
#define __pyx_kp_s_Indirect_dimensions_not_supporte __pyx_mstate_global->__pyx_kp_s_Indirect_dimensions_not_supporte
#define __pyx_kp_u_Invalid_mode_expected_c_or_fortr __pyx_mstate_global->__pyx_kp_u_Invalid_mode_expected_c_or_fortr
#define __pyx_kp_u_Invalid_shape_in_axis __pyx_mstate_global->__pyx_kp_u_Invalid_shape_in_axis
#define __pyx_kp_u_Keys_cannot_be_added_to_udd_stat __pyx_mstate_global->__pyx_kp_u_Keys_cannot_be_added_to_udd_stat
#define __pyx_kp_u_Keys_cannot_be_dropped_from_udd __pyx_mstate_global->__pyx_kp_u_Keys_cannot_be_dropped_from_udd
#define __pyx_n_s_Kp __pyx_mstate_global->__pyx_n_s_Kp
#define __pyx_n_s_Kv __pyx_mstate_global->__pyx_n_s_Kv
#define __pyx_n_s_Lock __pyx_mstate_global->__pyx_n_s_Lock
#define __pyx_n_s_M __pyx_mstate_global->__pyx_n_s_M
#define __pyx_kp_u_Mapped_CUDA_depth_buffer_pointer __pyx_mstate_global->__pyx_kp_u_Mapped_CUDA_depth_buffer_pointer
#define __pyx_kp_u_Mapped_CUDA_rgb_buffer_pointer __pyx_mstate_global->__pyx_kp_u_Mapped_CUDA_rgb_buffer_pointer
#define __pyx_n_s_MemoryError __pyx_mstate_global->__pyx_n_s_MemoryError
#define __pyx_kp_s_MemoryView_of_r_at_0x_x __pyx_mstate_global->__pyx_kp_s_MemoryView_of_r_at_0x_x
#define __pyx_kp_s_MemoryView_of_r_object __pyx_mstate_global->__pyx_kp_s_MemoryView_of_r_object
#define __pyx_n_s_MjBatchRenderer __pyx_mstate_global->__pyx_n_s_MjBatchRenderer
#define __pyx_n_s_MjBatchRendererException __pyx_mstate_global->__pyx_n_s_MjBatchRendererException
#define __pyx_n_s_MjBatchRendererNotSupported __pyx_mstate_global->__pyx_n_s_MjBatchRendererNotSupported
#define __pyx_n_s_MjBatchRenderer___del __pyx_mstate_global->__pyx_n_s_MjBatchRenderer___del
#define __pyx_n_s_MjBatchRenderer___init __pyx_mstate_global->__pyx_n_s_MjBatchRenderer___init
#define __pyx_n_s_MjBatchRenderer__init_cuda __pyx_mstate_global->__pyx_n_s_MjBatchRenderer__init_cuda
#define __pyx_n_s_MjBatchRenderer__read_cuda __pyx_mstate_global->__pyx_n_s_MjBatchRenderer__read_cuda
#define __pyx_n_s_MjBatchRenderer__read_nocuda __pyx_mstate_global->__pyx_n_s_MjBatchRenderer__read_nocuda
#define __pyx_n_s_MjBatchRenderer_cuda_depth_buffe __pyx_mstate_global->__pyx_n_s_MjBatchRenderer_cuda_depth_buffe
#define __pyx_n_s_MjBatchRenderer_cuda_rgb_buffer __pyx_mstate_global->__pyx_n_s_MjBatchRenderer_cuda_rgb_buffer
#define __pyx_kp_u_MjBatchRenderer_currently_only_s __pyx_mstate_global->__pyx_kp_u_MjBatchRenderer_currently_only_s
#define __pyx_n_s_MjBatchRenderer_map __pyx_mstate_global->__pyx_n_s_MjBatchRenderer_map
#define __pyx_n_s_MjBatchRenderer_prepare_render_c __pyx_mstate_global->__pyx_n_s_MjBatchRenderer_prepare_render_c
#define __pyx_n_s_MjBatchRenderer_read __pyx_mstate_global->__pyx_n_s_MjBatchRenderer_read
#define __pyx_n_s_MjBatchRenderer_render __pyx_mstate_global->__pyx_n_s_MjBatchRenderer_render
#define __pyx_n_s_MjBatchRenderer_unmap __pyx_mstate_global->__pyx_n_s_MjBatchRenderer_unmap
#define __pyx_n_s_MjRenderContext __pyx_mstate_global->__pyx_n_s_MjRenderContext
#define __pyx_n_s_MjRenderContextOffscreen __pyx_mstate_global->__pyx_n_s_MjRenderContextOffscreen
#define __pyx_n_s_MjRenderContextOffscreen___cinit __pyx_mstate_global->__pyx_n_s_MjRenderContextOffscreen___cinit
#define __pyx_n_s_MjRenderContextWindow __pyx_mstate_global->__pyx_n_s_MjRenderContextWindow
#define __pyx_n_s_MjRenderContextWindow___init __pyx_mstate_global->__pyx_n_s_MjRenderContextWindow___init
#define __pyx_n_s_MjRenderContextWindow_render __pyx_mstate_global->__pyx_n_s_MjRenderContextWindow_render
#define __pyx_n_s_MjRenderContextWindow_window __pyx_mstate_global->__pyx_n_s_MjRenderContextWindow_window
#define __pyx_n_s_MjRenderContext___reduce_cython __pyx_mstate_global->__pyx_n_s_MjRenderContext___reduce_cython
#define __pyx_n_s_MjRenderContext___setstate_cytho __pyx_mstate_global->__pyx_n_s_MjRenderContext___setstate_cytho
#define __pyx_n_s_MjRenderContext__add_marker_to_s __pyx_mstate_global->__pyx_n_s_MjRenderContext__add_marker_to_s
#define __pyx_n_s_MjRenderContext__init_camera __pyx_mstate_global->__pyx_n_s_MjRenderContext__init_camera
#define __pyx_n_s_MjRenderContext__set_mujoco_buff __pyx_mstate_global->__pyx_n_s_MjRenderContext__set_mujoco_buff
#define __pyx_n_s_MjRenderContext__setup_opengl_co __pyx_mstate_global->__pyx_n_s_MjRenderContext__setup_opengl_co
#define __pyx_n_s_MjRenderContext_add_marker __pyx_mstate_global->__pyx_n_s_MjRenderContext_add_marker
#define __pyx_n_s_MjRenderContext_add_overlay __pyx_mstate_global->__pyx_n_s_MjRenderContext_add_overlay
#define __pyx_n_s_MjRenderContext_draw_pixels __pyx_mstate_global->__pyx_n_s_MjRenderContext_draw_pixels
#define __pyx_n_s_MjRenderContext_move_camera __pyx_mstate_global->__pyx_n_s_MjRenderContext_move_camera
#define __pyx_n_s_MjRenderContext_read_pixels __pyx_mstate_global->__pyx_n_s_MjRenderContext_read_pixels
#define __pyx_n_s_MjRenderContext_read_pixels_dept __pyx_mstate_global->__pyx_n_s_MjRenderContext_read_pixels_dept
#define __pyx_n_s_MjRenderContext_render __pyx_mstate_global->__pyx_n_s_MjRenderContext_render
#define __pyx_n_s_MjRenderContext_update_offscreen __pyx_mstate_global->__pyx_n_s_MjRenderContext_update_offscreen
#define __pyx_n_s_MjRenderContext_update_sim __pyx_mstate_global->__pyx_n_s_MjRenderContext_update_sim
#define __pyx_n_s_MjRenderContext_upload_texture __pyx_mstate_global->__pyx_n_s_MjRenderContext_upload_texture
#define __pyx_n_s_MjSim __pyx_mstate_global->__pyx_n_s_MjSim
#define __pyx_n_s_MjSimState __pyx_mstate_global->__pyx_n_s_MjSimState
#define __pyx_n_s_MjSimState___eq __pyx_mstate_global->__pyx_n_s_MjSimState___eq
#define __pyx_n_s_MjSimState___ne __pyx_mstate_global->__pyx_n_s_MjSimState___ne
#define __pyx_n_s_MjSimState__flatten_dict __pyx_mstate_global->__pyx_n_s_MjSimState__flatten_dict
#define __pyx_n_s_MjSimState__unflatten_dict __pyx_mstate_global->__pyx_n_s_MjSimState__unflatten_dict
#define __pyx_n_s_MjSimState_flatten __pyx_mstate_global->__pyx_n_s_MjSimState_flatten
#define __pyx_n_s_MjSimState_from_flattened __pyx_mstate_global->__pyx_n_s_MjSimState_from_flattened
#define __pyx_n_s_MjSim___reduce_cython __pyx_mstate_global->__pyx_n_s_MjSim___reduce_cython
#define __pyx_n_s_MjSim___setstate_cython __pyx_mstate_global->__pyx_n_s_MjSim___setstate_cython
#define __pyx_n_s_MjSim_add_render_context __pyx_mstate_global->__pyx_n_s_MjSim_add_render_context
#define __pyx_n_s_MjSim_forward __pyx_mstate_global->__pyx_n_s_MjSim_forward
#define __pyx_n_s_MjSim_get_state __pyx_mstate_global->__pyx_n_s_MjSim_get_state
#define __pyx_n_s_MjSim_ray __pyx_mstate_global->__pyx_n_s_MjSim_ray
#define __pyx_n_s_MjSim_ray_fast_group __pyx_mstate_global->__pyx_n_s_MjSim_ray_fast_group
#define __pyx_n_s_MjSim_ray_fast_nogroup __pyx_mstate_global->__pyx_n_s_MjSim_ray_fast_nogroup
#define __pyx_n_s_MjSim_render __pyx_mstate_global->__pyx_n_s_MjSim_render
#define __pyx_n_s_MjSim_render_lock __pyx_mstate_global->__pyx_n_s_MjSim_render_lock
#define __pyx_n_s_MjSim_reset __pyx_mstate_global->__pyx_n_s_MjSim_reset
#define __pyx_n_s_MjSim_save __pyx_mstate_global->__pyx_n_s_MjSim_save
#define __pyx_n_s_MjSim_set_constants __pyx_mstate_global->__pyx_n_s_MjSim_set_constants
#define __pyx_n_s_MjSim_set_state __pyx_mstate_global->__pyx_n_s_MjSim_set_state
#define __pyx_n_s_MjSim_set_state_from_flattened __pyx_mstate_global->__pyx_n_s_MjSim_set_state_from_flattened
#define __pyx_n_s_MjSim_set_substep_callback __pyx_mstate_global->__pyx_n_s_MjSim_set_substep_callback
#define __pyx_n_s_MjSim_step __pyx_mstate_global->__pyx_n_s_MjSim_step
#define __pyx_n_s_MjSim_step_udd __pyx_mstate_global->__pyx_n_s_MjSim_step_udd
#define __pyx_n_s_MjSim_substep_callback __pyx_mstate_global->__pyx_n_s_MjSim_substep_callback
#define __pyx_n_s_MjViewer __pyx_mstate_global->__pyx_n_s_MjViewer
#define __pyx_kp_u_Mode_must_be_either_window_or_of __pyx_mstate_global->__pyx_kp_u_Mode_must_be_either_window_or_of
#define __pyx_n_s_N __pyx_mstate_global->__pyx_n_s_N
#define __pyx_n_s_NGAIN __pyx_mstate_global->__pyx_n_s_NGAIN
#define __pyx_n_s_NamedTemporaryFile __pyx_mstate_global->__pyx_n_s_NamedTemporaryFile
#define __pyx_kp_u_No_actuator_with_id_d_exists __pyx_mstate_global->__pyx_kp_u_No_actuator_with_id_d_exists
#define __pyx_kp_u_No_actuator_with_name __pyx_mstate_global->__pyx_kp_u_No_actuator_with_name
#define __pyx_kp_u_No_body_with_id_d_exists __pyx_mstate_global->__pyx_kp_u_No_body_with_id_d_exists
#define __pyx_kp_u_No_body_with_name __pyx_mstate_global->__pyx_kp_u_No_body_with_name
#define __pyx_kp_u_No_camera_with_id_d_exists __pyx_mstate_global->__pyx_kp_u_No_camera_with_id_d_exists
#define __pyx_kp_u_No_camera_with_name __pyx_mstate_global->__pyx_kp_u_No_camera_with_name
#define __pyx_kp_u_No_geom_with_id_d_exists __pyx_mstate_global->__pyx_kp_u_No_geom_with_id_d_exists
#define __pyx_kp_u_No_geom_with_name __pyx_mstate_global->__pyx_kp_u_No_geom_with_name
#define __pyx_kp_u_No_joint_with_id_d_exists __pyx_mstate_global->__pyx_kp_u_No_joint_with_id_d_exists
#define __pyx_kp_u_No_joint_with_name __pyx_mstate_global->__pyx_kp_u_No_joint_with_name
#define __pyx_kp_u_No_light_with_id_d_exists __pyx_mstate_global->__pyx_kp_u_No_light_with_id_d_exists
#define __pyx_kp_u_No_light_with_name __pyx_mstate_global->__pyx_kp_u_No_light_with_name
#define __pyx_kp_u_No_mesh_with_id_d_exists __pyx_mstate_global->__pyx_kp_u_No_mesh_with_id_d_exists
#define __pyx_kp_u_No_mesh_with_name __pyx_mstate_global->__pyx_kp_u_No_mesh_with_name
#define __pyx_kp_u_No_sensor_with_id_d_exists __pyx_mstate_global->__pyx_kp_u_No_sensor_with_id_d_exists
#define __pyx_kp_u_No_sensor_with_name __pyx_mstate_global->__pyx_kp_u_No_sensor_with_name
#define __pyx_kp_u_No_site_with_id_d_exists __pyx_mstate_global->__pyx_kp_u_No_site_with_id_d_exists
#define __pyx_kp_u_No_site_with_name __pyx_mstate_global->__pyx_kp_u_No_site_with_name
#define __pyx_kp_u_No_tendon_with_id_d_exists __pyx_mstate_global->__pyx_kp_u_No_tendon_with_id_d_exists
#define __pyx_kp_u_No_tendon_with_name __pyx_mstate_global->__pyx_kp_u_No_tendon_with_name
#define __pyx_kp_u_No_userdata_with_id_d_exists __pyx_mstate_global->__pyx_kp_u_No_userdata_with_id_d_exists
#define __pyx_kp_u_No_userdata_with_name __pyx_mstate_global->__pyx_kp_u_No_userdata_with_name
#define __pyx_kp_u_None __pyx_mstate_global->__pyx_kp_u_None
#define __pyx_n_s_NotImplemented __pyx_mstate_global->__pyx_n_s_NotImplemented
#define __pyx_n_s_NotImplementedError __pyx_mstate_global->__pyx_n_s_NotImplementedError
#define __pyx_n_s_Number __pyx_mstate_global->__pyx_n_s_Number
#define __pyx_kp_u_Numpy_array_values_in_udd_state __pyx_mstate_global->__pyx_kp_u_Numpy_array_values_in_udd_state
#define __pyx_n_b_O __pyx_mstate_global->__pyx_n_b_O
#define __pyx_n_s_OBJ_UNKNOWN __pyx_mstate_global->__pyx_n_s_OBJ_UNKNOWN
#define __pyx_n_s_OffscreenOpenGLContext __pyx_mstate_global->__pyx_n_s_OffscreenOpenGLContext
#define __pyx_n_s_OffscreenOpenGLContext___init __pyx_mstate_global->__pyx_n_s_OffscreenOpenGLContext___init
#define __pyx_n_s_OffscreenOpenGLContext_close __pyx_mstate_global->__pyx_n_s_OffscreenOpenGLContext_close
#define __pyx_n_s_OffscreenOpenGLContext_make_cont __pyx_mstate_global->__pyx_n_s_OffscreenOpenGLContext_make_cont
#define __pyx_n_s_OffscreenOpenGLContext_set_buffe __pyx_mstate_global->__pyx_n_s_OffscreenOpenGLContext_set_buffe
#define __pyx_kp_u_Offscreen_rendering_not_supporte __pyx_mstate_global->__pyx_kp_u_Offscreen_rendering_not_supporte
#define __pyx_kp_u_Only_GlfwContext_supported_for_w __pyx_mstate_global->__pyx_kp_u_Only_GlfwContext_supported_for_w
#define __pyx_kp_u_Only_label_is_a_string_in_mjvGeo __pyx_mstate_global->__pyx_kp_u_Only_label_is_a_string_in_mjvGeo
#define __pyx_n_s_OpenGLContext __pyx_mstate_global->__pyx_n_s_OpenGLContext
#define __pyx_n_s_OpenGLContext_make_context_curre __pyx_mstate_global->__pyx_n_s_OpenGLContext_make_context_curre
#define __pyx_n_s_OpenGLContext_set_buffer_size __pyx_mstate_global->__pyx_n_s_OpenGLContext_set_buffer_size
#define __pyx_kp_u_Out_of_bounds_on_buffer_access_a __pyx_mstate_global->__pyx_kp_u_Out_of_bounds_on_buffer_access_a
#define __pyx_n_s_OverflowError __pyx_mstate_global->__pyx_n_s_OverflowError
#define __pyx_n_s_PickleError __pyx_mstate_global->__pyx_n_s_PickleError
#define __pyx_n_s_PyMjContact __pyx_mstate_global->__pyx_n_s_PyMjContact
#define __pyx_n_s_PyMjContact___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjContact___reduce_cython
#define __pyx_n_s_PyMjContact___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjContact___setstate_cython
#define __pyx_n_s_PyMjData __pyx_mstate_global->__pyx_n_s_PyMjData
#define __pyx_n_s_PyMjData___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjData___reduce_cython
#define __pyx_n_s_PyMjData___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjData___setstate_cython
#define __pyx_n_s_PyMjData_get_body_jacp __pyx_mstate_global->__pyx_n_s_PyMjData_get_body_jacp
#define __pyx_n_s_PyMjData_get_body_jacr __pyx_mstate_global->__pyx_n_s_PyMjData_get_body_jacr
#define __pyx_n_s_PyMjData_get_body_ximat __pyx_mstate_global->__pyx_n_s_PyMjData_get_body_ximat
#define __pyx_n_s_PyMjData_get_body_xipos __pyx_mstate_global->__pyx_n_s_PyMjData_get_body_xipos
#define __pyx_n_s_PyMjData_get_body_xmat __pyx_mstate_global->__pyx_n_s_PyMjData_get_body_xmat
#define __pyx_n_s_PyMjData_get_body_xpos __pyx_mstate_global->__pyx_n_s_PyMjData_get_body_xpos
#define __pyx_n_s_PyMjData_get_body_xquat __pyx_mstate_global->__pyx_n_s_PyMjData_get_body_xquat
#define __pyx_n_s_PyMjData_get_body_xvelp __pyx_mstate_global->__pyx_n_s_PyMjData_get_body_xvelp
#define __pyx_n_s_PyMjData_get_body_xvelr __pyx_mstate_global->__pyx_n_s_PyMjData_get_body_xvelr
#define __pyx_n_s_PyMjData_get_cam_xmat __pyx_mstate_global->__pyx_n_s_PyMjData_get_cam_xmat
#define __pyx_n_s_PyMjData_get_cam_xpos __pyx_mstate_global->__pyx_n_s_PyMjData_get_cam_xpos
#define __pyx_n_s_PyMjData_get_camera_xmat __pyx_mstate_global->__pyx_n_s_PyMjData_get_camera_xmat
#define __pyx_n_s_PyMjData_get_camera_xpos __pyx_mstate_global->__pyx_n_s_PyMjData_get_camera_xpos
#define __pyx_n_s_PyMjData_get_geom_jacp __pyx_mstate_global->__pyx_n_s_PyMjData_get_geom_jacp
#define __pyx_n_s_PyMjData_get_geom_jacr __pyx_mstate_global->__pyx_n_s_PyMjData_get_geom_jacr
#define __pyx_n_s_PyMjData_get_geom_xmat __pyx_mstate_global->__pyx_n_s_PyMjData_get_geom_xmat
#define __pyx_n_s_PyMjData_get_geom_xpos __pyx_mstate_global->__pyx_n_s_PyMjData_get_geom_xpos
#define __pyx_n_s_PyMjData_get_geom_xvelp __pyx_mstate_global->__pyx_n_s_PyMjData_get_geom_xvelp
#define __pyx_n_s_PyMjData_get_geom_xvelr __pyx_mstate_global->__pyx_n_s_PyMjData_get_geom_xvelr
#define __pyx_n_s_PyMjData_get_joint_qpos __pyx_mstate_global->__pyx_n_s_PyMjData_get_joint_qpos
#define __pyx_n_s_PyMjData_get_joint_qvel __pyx_mstate_global->__pyx_n_s_PyMjData_get_joint_qvel
#define __pyx_n_s_PyMjData_get_joint_xanchor __pyx_mstate_global->__pyx_n_s_PyMjData_get_joint_xanchor
#define __pyx_n_s_PyMjData_get_joint_xaxis __pyx_mstate_global->__pyx_n_s_PyMjData_get_joint_xaxis
#define __pyx_n_s_PyMjData_get_light_xdir __pyx_mstate_global->__pyx_n_s_PyMjData_get_light_xdir
#define __pyx_n_s_PyMjData_get_light_xpos __pyx_mstate_global->__pyx_n_s_PyMjData_get_light_xpos
#define __pyx_n_s_PyMjData_get_mocap_pos __pyx_mstate_global->__pyx_n_s_PyMjData_get_mocap_pos
#define __pyx_n_s_PyMjData_get_mocap_quat __pyx_mstate_global->__pyx_n_s_PyMjData_get_mocap_quat
#define __pyx_n_s_PyMjData_get_sensor __pyx_mstate_global->__pyx_n_s_PyMjData_get_sensor
#define __pyx_n_s_PyMjData_get_sensordata __pyx_mstate_global->__pyx_n_s_PyMjData_get_sensordata
#define __pyx_n_s_PyMjData_get_site_jacp __pyx_mstate_global->__pyx_n_s_PyMjData_get_site_jacp
#define __pyx_n_s_PyMjData_get_site_jacr __pyx_mstate_global->__pyx_n_s_PyMjData_get_site_jacr
#define __pyx_n_s_PyMjData_get_site_xmat __pyx_mstate_global->__pyx_n_s_PyMjData_get_site_xmat
#define __pyx_n_s_PyMjData_get_site_xpos __pyx_mstate_global->__pyx_n_s_PyMjData_get_site_xpos
#define __pyx_n_s_PyMjData_get_site_xvelp __pyx_mstate_global->__pyx_n_s_PyMjData_get_site_xvelp
#define __pyx_n_s_PyMjData_get_site_xvelr __pyx_mstate_global->__pyx_n_s_PyMjData_get_site_xvelr
#define __pyx_n_s_PyMjData_get_userdata __pyx_mstate_global->__pyx_n_s_PyMjData_get_userdata
#define __pyx_n_s_PyMjData_get_xanchor __pyx_mstate_global->__pyx_n_s_PyMjData_get_xanchor
#define __pyx_n_s_PyMjData_get_xaxis __pyx_mstate_global->__pyx_n_s_PyMjData_get_xaxis
#define __pyx_n_s_PyMjData_get_ximat __pyx_mstate_global->__pyx_n_s_PyMjData_get_ximat
#define __pyx_n_s_PyMjData_get_xipos __pyx_mstate_global->__pyx_n_s_PyMjData_get_xipos
#define __pyx_n_s_PyMjData_get_xmat __pyx_mstate_global->__pyx_n_s_PyMjData_get_xmat
#define __pyx_n_s_PyMjData_get_xpos __pyx_mstate_global->__pyx_n_s_PyMjData_get_xpos
#define __pyx_n_s_PyMjData_get_xquat __pyx_mstate_global->__pyx_n_s_PyMjData_get_xquat
#define __pyx_n_s_PyMjData_set_joint_qpos __pyx_mstate_global->__pyx_n_s_PyMjData_set_joint_qpos
#define __pyx_n_s_PyMjData_set_joint_qvel __pyx_mstate_global->__pyx_n_s_PyMjData_set_joint_qvel
#define __pyx_n_s_PyMjData_set_mocap_pos __pyx_mstate_global->__pyx_n_s_PyMjData_set_mocap_pos
#define __pyx_n_s_PyMjData_set_mocap_quat __pyx_mstate_global->__pyx_n_s_PyMjData_set_mocap_quat
#define __pyx_n_s_PyMjLROpt __pyx_mstate_global->__pyx_n_s_PyMjLROpt
#define __pyx_n_s_PyMjLROpt___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjLROpt___reduce_cython
#define __pyx_n_s_PyMjLROpt___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjLROpt___setstate_cython
#define __pyx_n_s_PyMjModel __pyx_mstate_global->__pyx_n_s_PyMjModel
#define __pyx_n_s_PyMjModel___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjModel___reduce_cython
#define __pyx_n_s_PyMjModel___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjModel___setstate_cython
#define __pyx_n_s_PyMjModel__extract_mj_names_loca __pyx_mstate_global->__pyx_n_s_PyMjModel__extract_mj_names_loca
#define __pyx_n_s_PyMjModel_actuator_id2name __pyx_mstate_global->__pyx_n_s_PyMjModel_actuator_id2name
#define __pyx_n_s_PyMjModel_actuator_name2id __pyx_mstate_global->__pyx_n_s_PyMjModel_actuator_name2id
#define __pyx_n_s_PyMjModel_body_id2name __pyx_mstate_global->__pyx_n_s_PyMjModel_body_id2name
#define __pyx_n_s_PyMjModel_body_name2id __pyx_mstate_global->__pyx_n_s_PyMjModel_body_name2id
#define __pyx_n_s_PyMjModel_camera_id2name __pyx_mstate_global->__pyx_n_s_PyMjModel_camera_id2name
#define __pyx_n_s_PyMjModel_camera_name2id __pyx_mstate_global->__pyx_n_s_PyMjModel_camera_name2id
#define __pyx_n_s_PyMjModel_geom_id2name __pyx_mstate_global->__pyx_n_s_PyMjModel_geom_id2name
#define __pyx_n_s_PyMjModel_geom_name2id __pyx_mstate_global->__pyx_n_s_PyMjModel_geom_name2id
#define __pyx_n_s_PyMjModel_get_joint_qpos_addr __pyx_mstate_global->__pyx_n_s_PyMjModel_get_joint_qpos_addr
#define __pyx_n_s_PyMjModel_get_joint_qvel_addr __pyx_mstate_global->__pyx_n_s_PyMjModel_get_joint_qvel_addr
#define __pyx_n_s_PyMjModel_get_mjb __pyx_mstate_global->__pyx_n_s_PyMjModel_get_mjb
#define __pyx_n_s_PyMjModel_get_xml __pyx_mstate_global->__pyx_n_s_PyMjModel_get_xml
#define __pyx_n_s_PyMjModel_joint_id2name __pyx_mstate_global->__pyx_n_s_PyMjModel_joint_id2name
#define __pyx_n_s_PyMjModel_joint_name2id __pyx_mstate_global->__pyx_n_s_PyMjModel_joint_name2id
#define __pyx_n_s_PyMjModel_light_id2name __pyx_mstate_global->__pyx_n_s_PyMjModel_light_id2name
#define __pyx_n_s_PyMjModel_light_name2id __pyx_mstate_global->__pyx_n_s_PyMjModel_light_name2id
#define __pyx_n_s_PyMjModel_mesh_id2name __pyx_mstate_global->__pyx_n_s_PyMjModel_mesh_id2name
#define __pyx_n_s_PyMjModel_mesh_name2id __pyx_mstate_global->__pyx_n_s_PyMjModel_mesh_name2id
#define __pyx_n_s_PyMjModel_sensor_id2name __pyx_mstate_global->__pyx_n_s_PyMjModel_sensor_id2name
#define __pyx_n_s_PyMjModel_sensor_name2id __pyx_mstate_global->__pyx_n_s_PyMjModel_sensor_name2id
#define __pyx_n_s_PyMjModel_set_userdata_names __pyx_mstate_global->__pyx_n_s_PyMjModel_set_userdata_names
#define __pyx_n_s_PyMjModel_site_id2name __pyx_mstate_global->__pyx_n_s_PyMjModel_site_id2name
#define __pyx_n_s_PyMjModel_site_name2id __pyx_mstate_global->__pyx_n_s_PyMjModel_site_name2id
#define __pyx_n_s_PyMjModel_tendon_id2name __pyx_mstate_global->__pyx_n_s_PyMjModel_tendon_id2name
#define __pyx_n_s_PyMjModel_tendon_name2id __pyx_mstate_global->__pyx_n_s_PyMjModel_tendon_name2id
#define __pyx_n_s_PyMjModel_userdata_id2name __pyx_mstate_global->__pyx_n_s_PyMjModel_userdata_id2name
#define __pyx_n_s_PyMjModel_userdata_name2id __pyx_mstate_global->__pyx_n_s_PyMjModel_userdata_name2id
#define __pyx_n_s_PyMjOption __pyx_mstate_global->__pyx_n_s_PyMjOption
#define __pyx_n_s_PyMjOption___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjOption___reduce_cython
#define __pyx_n_s_PyMjOption___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjOption___setstate_cython
#define __pyx_n_s_PyMjSolverStat __pyx_mstate_global->__pyx_n_s_PyMjSolverStat
#define __pyx_n_s_PyMjSolverStat___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjSolverStat___reduce_cython
#define __pyx_n_s_PyMjSolverStat___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjSolverStat___setstate_cython
#define __pyx_n_s_PyMjStatistic __pyx_mstate_global->__pyx_n_s_PyMjStatistic
#define __pyx_n_s_PyMjStatistic___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjStatistic___reduce_cython
#define __pyx_n_s_PyMjStatistic___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjStatistic___setstate_cython
#define __pyx_n_s_PyMjTimerStat __pyx_mstate_global->__pyx_n_s_PyMjTimerStat
#define __pyx_n_s_PyMjTimerStat___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjTimerStat___reduce_cython
#define __pyx_n_s_PyMjTimerStat___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjTimerStat___setstate_cython
#define __pyx_n_s_PyMjUI __pyx_mstate_global->__pyx_n_s_PyMjUI
#define __pyx_n_s_PyMjUI___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjUI___reduce_cython
#define __pyx_n_s_PyMjUI___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjUI___setstate_cython
#define __pyx_n_s_PyMjVFS __pyx_mstate_global->__pyx_n_s_PyMjVFS
#define __pyx_n_s_PyMjVFS___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjVFS___reduce_cython
#define __pyx_n_s_PyMjVFS___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjVFS___setstate_cython
#define __pyx_n_s_PyMjVisual __pyx_mstate_global->__pyx_n_s_PyMjVisual
#define __pyx_n_s_PyMjVisual___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjVisual___reduce_cython
#define __pyx_n_s_PyMjVisual___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjVisual___setstate_cython
#define __pyx_n_s_PyMjVisual_global __pyx_mstate_global->__pyx_n_s_PyMjVisual_global
#define __pyx_n_s_PyMjVisual_global____reduce_cyth __pyx_mstate_global->__pyx_n_s_PyMjVisual_global____reduce_cyth
#define __pyx_n_s_PyMjVisual_global____setstate_cy __pyx_mstate_global->__pyx_n_s_PyMjVisual_global____setstate_cy
#define __pyx_n_s_PyMjVisual_headlight __pyx_mstate_global->__pyx_n_s_PyMjVisual_headlight
#define __pyx_n_s_PyMjVisual_headlight___reduce_cy __pyx_mstate_global->__pyx_n_s_PyMjVisual_headlight___reduce_cy
#define __pyx_n_s_PyMjVisual_headlight___setstate __pyx_mstate_global->__pyx_n_s_PyMjVisual_headlight___setstate
#define __pyx_n_s_PyMjVisual_map __pyx_mstate_global->__pyx_n_s_PyMjVisual_map
#define __pyx_n_s_PyMjVisual_map___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjVisual_map___reduce_cython
#define __pyx_n_s_PyMjVisual_map___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjVisual_map___setstate_cython
#define __pyx_n_s_PyMjVisual_quality __pyx_mstate_global->__pyx_n_s_PyMjVisual_quality
#define __pyx_n_s_PyMjVisual_quality___reduce_cyth __pyx_mstate_global->__pyx_n_s_PyMjVisual_quality___reduce_cyth
#define __pyx_n_s_PyMjVisual_quality___setstate_cy __pyx_mstate_global->__pyx_n_s_PyMjVisual_quality___setstate_cy
#define __pyx_n_s_PyMjVisual_rgba __pyx_mstate_global->__pyx_n_s_PyMjVisual_rgba
#define __pyx_n_s_PyMjVisual_rgba___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjVisual_rgba___reduce_cython
#define __pyx_n_s_PyMjVisual_rgba___setstate_cytho __pyx_mstate_global->__pyx_n_s_PyMjVisual_rgba___setstate_cytho
#define __pyx_n_s_PyMjVisual_scale __pyx_mstate_global->__pyx_n_s_PyMjVisual_scale
#define __pyx_n_s_PyMjVisual_scale___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjVisual_scale___reduce_cython
#define __pyx_n_s_PyMjVisual_scale___setstate_cyth __pyx_mstate_global->__pyx_n_s_PyMjVisual_scale___setstate_cyth
#define __pyx_n_s_PyMjWarningStat __pyx_mstate_global->__pyx_n_s_PyMjWarningStat
#define __pyx_n_s_PyMjWarningStat___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjWarningStat___reduce_cython
#define __pyx_n_s_PyMjWarningStat___setstate_cytho __pyx_mstate_global->__pyx_n_s_PyMjWarningStat___setstate_cytho
#define __pyx_n_s_PyMjrContext __pyx_mstate_global->__pyx_n_s_PyMjrContext
#define __pyx_n_s_PyMjrContext___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjrContext___reduce_cython
#define __pyx_n_s_PyMjrContext___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjrContext___setstate_cython
#define __pyx_n_s_PyMjrRect __pyx_mstate_global->__pyx_n_s_PyMjrRect
#define __pyx_n_s_PyMjrRect___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjrRect___reduce_cython
#define __pyx_n_s_PyMjrRect___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjrRect___setstate_cython
#define __pyx_n_s_PyMjuiDef __pyx_mstate_global->__pyx_n_s_PyMjuiDef
#define __pyx_n_s_PyMjuiDef___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjuiDef___reduce_cython
#define __pyx_n_s_PyMjuiDef___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjuiDef___setstate_cython
#define __pyx_n_s_PyMjuiItem __pyx_mstate_global->__pyx_n_s_PyMjuiItem
#define __pyx_n_s_PyMjuiItem___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjuiItem___reduce_cython
#define __pyx_n_s_PyMjuiItem___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjuiItem___setstate_cython
#define __pyx_n_s_PyMjuiSection __pyx_mstate_global->__pyx_n_s_PyMjuiSection
#define __pyx_n_s_PyMjuiSection___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjuiSection___reduce_cython
#define __pyx_n_s_PyMjuiSection___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjuiSection___setstate_cython
#define __pyx_n_s_PyMjuiState __pyx_mstate_global->__pyx_n_s_PyMjuiState
#define __pyx_n_s_PyMjuiState___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjuiState___reduce_cython
#define __pyx_n_s_PyMjuiState___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjuiState___setstate_cython
#define __pyx_n_s_PyMjuiThemeColor __pyx_mstate_global->__pyx_n_s_PyMjuiThemeColor
#define __pyx_n_s_PyMjuiThemeColor___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjuiThemeColor___reduce_cython
#define __pyx_n_s_PyMjuiThemeColor___setstate_cyth __pyx_mstate_global->__pyx_n_s_PyMjuiThemeColor___setstate_cyth
#define __pyx_n_s_PyMjuiThemeSpacing __pyx_mstate_global->__pyx_n_s_PyMjuiThemeSpacing
#define __pyx_n_s_PyMjuiThemeSpacing___reduce_cyth __pyx_mstate_global->__pyx_n_s_PyMjuiThemeSpacing___reduce_cyth
#define __pyx_n_s_PyMjuiThemeSpacing___setstate_cy __pyx_mstate_global->__pyx_n_s_PyMjuiThemeSpacing___setstate_cy
#define __pyx_n_s_PyMjvCamera __pyx_mstate_global->__pyx_n_s_PyMjvCamera
#define __pyx_n_s_PyMjvCamera___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjvCamera___reduce_cython
#define __pyx_n_s_PyMjvCamera___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjvCamera___setstate_cython
#define __pyx_n_s_PyMjvFigure __pyx_mstate_global->__pyx_n_s_PyMjvFigure
#define __pyx_n_s_PyMjvFigure___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjvFigure___reduce_cython
#define __pyx_n_s_PyMjvFigure___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjvFigure___setstate_cython
#define __pyx_n_s_PyMjvGLCamera __pyx_mstate_global->__pyx_n_s_PyMjvGLCamera
#define __pyx_n_s_PyMjvGLCamera___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjvGLCamera___reduce_cython
#define __pyx_n_s_PyMjvGLCamera___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjvGLCamera___setstate_cython
#define __pyx_n_s_PyMjvGeom __pyx_mstate_global->__pyx_n_s_PyMjvGeom
#define __pyx_n_s_PyMjvGeom___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjvGeom___reduce_cython
#define __pyx_n_s_PyMjvGeom___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjvGeom___setstate_cython
#define __pyx_n_s_PyMjvLight __pyx_mstate_global->__pyx_n_s_PyMjvLight
#define __pyx_n_s_PyMjvLight___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjvLight___reduce_cython
#define __pyx_n_s_PyMjvLight___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjvLight___setstate_cython
#define __pyx_n_s_PyMjvOption __pyx_mstate_global->__pyx_n_s_PyMjvOption
#define __pyx_n_s_PyMjvOption___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjvOption___reduce_cython
#define __pyx_n_s_PyMjvOption___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjvOption___setstate_cython
#define __pyx_n_s_PyMjvPerturb __pyx_mstate_global->__pyx_n_s_PyMjvPerturb
#define __pyx_n_s_PyMjvPerturb___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjvPerturb___reduce_cython
#define __pyx_n_s_PyMjvPerturb___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjvPerturb___setstate_cython
#define __pyx_n_s_PyMjvScene __pyx_mstate_global->__pyx_n_s_PyMjvScene
#define __pyx_n_s_PyMjvScene___reduce_cython __pyx_mstate_global->__pyx_n_s_PyMjvScene___reduce_cython
#define __pyx_n_s_PyMjvScene___setstate_cython __pyx_mstate_global->__pyx_n_s_PyMjvScene___setstate_cython
#define __pyx_n_s_RND_IDCOLOR __pyx_mstate_global->__pyx_n_s_RND_IDCOLOR
#define __pyx_n_s_RND_SEGMENT __pyx_mstate_global->__pyx_n_s_RND_SEGMENT
#define __pyx_kp_u_Ran_out_of_geoms_maxgeom_d __pyx_mstate_global->__pyx_kp_u_Ran_out_of_geoms_maxgeom_d
#define __pyx_n_s_RegisteredBuffer __pyx_mstate_global->__pyx_n_s_RegisteredBuffer
#define __pyx_kp_s_Represents_a_snapshot_of_the_sim __pyx_mstate_global->__pyx_kp_s_Represents_a_snapshot_of_the_sim
#define __pyx_n_s_RuntimeError __pyx_mstate_global->__pyx_n_s_RuntimeError
#define __pyx_n_s_SAMPLES __pyx_mstate_global->__pyx_n_s_SAMPLES
#define __pyx_n_s_Sequence __pyx_mstate_global->__pyx_n_s_Sequence
#define __pyx_n_u_SimStateBase __pyx_mstate_global->__pyx_n_u_SimStateBase
#define __pyx_kp_s_Step_may_not_be_zero_axis_d __pyx_mstate_global->__pyx_kp_s_Step_may_not_be_zero_axis_d
#define __pyx_kp_b_T __pyx_mstate_global->__pyx_kp_b_T
#define __pyx_n_s_TemporaryDirectory __pyx_mstate_global->__pyx_n_s_TemporaryDirectory
#define __pyx_n_s_TypeError __pyx_mstate_global->__pyx_n_s_TypeError
#define __pyx_kp_s_Unable_to_convert_item_to_object __pyx_mstate_global->__pyx_kp_s_Unable_to_convert_item_to_object
#define __pyx_kp_u_Unrecognized_extension_for_s_Exp __pyx_mstate_global->__pyx_kp_u_Unrecognized_extension_for_s_Exp
#define __pyx_kp_u_Unsupported_format_Valid_ones_ar __pyx_mstate_global->__pyx_kp_u_Unsupported_format_Valid_ones_ar
#define __pyx_kp_s_Utility_class_for_rendering_int __pyx_mstate_global->__pyx_kp_s_Utility_class_for_rendering_int
#define __pyx_n_s_VISIBLE __pyx_mstate_global->__pyx_n_s_VISIBLE
#define __pyx_n_s_ValueError __pyx_mstate_global->__pyx_n_s_ValueError
#define __pyx_kp_u_Value_has_incorrect_shape __pyx_mstate_global->__pyx_kp_u_Value_has_incorrect_shape
#define __pyx_n_s_View_MemoryView __pyx_mstate_global->__pyx_n_s_View_MemoryView
#define __pyx_kp_u_Window_rendering_not_supported __pyx_mstate_global->__pyx_kp_u_Window_rendering_not_supported
#define __pyx_kp_b__10 __pyx_mstate_global->__pyx_kp_b__10
#define __pyx_kp_u__10 __pyx_mstate_global->__pyx_kp_u__10
#define __pyx_kp_b__11 __pyx_mstate_global->__pyx_kp_b__11
#define __pyx_kp_b__12 __pyx_mstate_global->__pyx_kp_b__12
#define __pyx_kp_u__13 __pyx_mstate_global->__pyx_kp_u__13
#define __pyx_kp_u__14 __pyx_mstate_global->__pyx_kp_u__14
#define __pyx_kp_u__2 __pyx_mstate_global->__pyx_kp_u__2
#define __pyx_n_s__3 __pyx_mstate_global->__pyx_n_s__3
#define __pyx_kp_u__34 __pyx_mstate_global->__pyx_kp_u__34
#define __pyx_kp_u__41 __pyx_mstate_global->__pyx_kp_u__41
#define __pyx_kp_u__44 __pyx_mstate_global->__pyx_kp_u__44
#define __pyx_kp_u__52 __pyx_mstate_global->__pyx_kp_u__52
#define __pyx_kp_u__6 __pyx_mstate_global->__pyx_kp_u__6
#define __pyx_n_s__637 __pyx_mstate_global->__pyx_n_s__637
#define __pyx_kp_u__7 __pyx_mstate_global->__pyx_kp_u__7
#define __pyx_n_s__778 __pyx_mstate_global->__pyx_n_s__778
#define __pyx_kp_b__9 __pyx_mstate_global->__pyx_kp_b__9
#define __pyx_n_s_a __pyx_mstate_global->__pyx_n_s_a
#define __pyx_n_s_a0 __pyx_mstate_global->__pyx_n_s_a0
#define __pyx_n_s_a1 __pyx_mstate_global->__pyx_n_s_a1
#define __pyx_n_s_a2 __pyx_mstate_global->__pyx_n_s_a2
#define __pyx_n_s_abc __pyx_mstate_global->__pyx_n_s_abc
#define __pyx_n_s_abstractmethod __pyx_mstate_global->__pyx_n_s_abstractmethod
#define __pyx_n_s_acc0 __pyx_mstate_global->__pyx_n_s_acc0
#define __pyx_n_s_act __pyx_mstate_global->__pyx_n_s_act
#define __pyx_n_u_act __pyx_mstate_global->__pyx_n_u_act
#define __pyx_n_s_action __pyx_mstate_global->__pyx_n_s_action
#define __pyx_kp_u_active_contacts_efc_pos_should_b __pyx_mstate_global->__pyx_kp_u_active_contacts_efc_pos_should_b
#define __pyx_n_s_actuator_id2name __pyx_mstate_global->__pyx_n_s_actuator_id2name
#define __pyx_n_s_actuator_name2id __pyx_mstate_global->__pyx_n_s_actuator_name2id
#define __pyx_n_s_add_marker __pyx_mstate_global->__pyx_n_s_add_marker
#define __pyx_n_s_add_marker_to_scene __pyx_mstate_global->__pyx_n_s_add_marker_to_scene
#define __pyx_n_s_add_mujoco_bin_to_dyld_library __pyx_mstate_global->__pyx_n_s_add_mujoco_bin_to_dyld_library
#define __pyx_n_s_add_overlay __pyx_mstate_global->__pyx_n_s_add_overlay
#define __pyx_n_s_add_render_context __pyx_mstate_global->__pyx_n_s_add_render_context
#define __pyx_n_s_addr __pyx_mstate_global->__pyx_n_s_addr
#define __pyx_n_s_allocate_buffer __pyx_mstate_global->__pyx_n_s_allocate_buffer
#define __pyx_kp_u_and __pyx_mstate_global->__pyx_kp_u_and
#define __pyx_n_s_angle __pyx_mstate_global->__pyx_n_s_angle
#define __pyx_n_s_appendChild __pyx_mstate_global->__pyx_n_s_appendChild
#define __pyx_n_s_args __pyx_mstate_global->__pyx_n_s_args
#define __pyx_n_s_arr __pyx_mstate_global->__pyx_n_s_arr
#define __pyx_n_s_array __pyx_mstate_global->__pyx_n_s_array
#define __pyx_n_s_array_equal __pyx_mstate_global->__pyx_n_s_array_equal
#define __pyx_n_s_asarray __pyx_mstate_global->__pyx_n_s_asarray
#define __pyx_n_s_aspectratio __pyx_mstate_global->__pyx_n_s_aspectratio
#define __pyx_n_s_asyncio_coroutines __pyx_mstate_global->__pyx_n_s_asyncio_coroutines
#define __pyx_n_s_attr __pyx_mstate_global->__pyx_n_s_attr
#define __pyx_n_s_axis __pyx_mstate_global->__pyx_n_s_axis
#define __pyx_n_s_b __pyx_mstate_global->__pyx_n_s_b
#define __pyx_n_s_b0 __pyx_mstate_global->__pyx_n_s_b0
#define __pyx_n_s_b1 __pyx_mstate_global->__pyx_n_s_b1
#define __pyx_n_s_b2 __pyx_mstate_global->__pyx_n_s_b2
#define __pyx_kp_u_bad_userdata_names __pyx_mstate_global->__pyx_kp_u_bad_userdata_names
#define __pyx_n_s_base __pyx_mstate_global->__pyx_n_s_base
#define __pyx_n_s_batch_offset __pyx_mstate_global->__pyx_n_s_batch_offset
#define __pyx_kp_u_batch_offset_out_of_range __pyx_mstate_global->__pyx_kp_u_batch_offset_out_of_range
#define __pyx_n_s_batch_size __pyx_mstate_global->__pyx_n_s_batch_size
#define __pyx_n_s_batch_size_2 __pyx_mstate_global->__pyx_n_s_batch_size_2
#define __pyx_n_u_bin __pyx_mstate_global->__pyx_n_u_bin
#define __pyx_n_s_bin_path __pyx_mstate_global->__pyx_n_s_bin_path
#define __pyx_n_s_body __pyx_mstate_global->__pyx_n_s_body
#define __pyx_n_s_body_id __pyx_mstate_global->__pyx_n_s_body_id
#define __pyx_n_s_body_id2name __pyx_mstate_global->__pyx_n_s_body_id2name
#define __pyx_n_s_body_jacp __pyx_mstate_global->__pyx_n_s_body_jacp
#define __pyx_n_s_body_jacr __pyx_mstate_global->__pyx_n_s_body_jacr
#define __pyx_n_s_body_mocapid __pyx_mstate_global->__pyx_n_s_body_mocapid
#define __pyx_n_s_body_name2id __pyx_mstate_global->__pyx_n_s_body_name2id
#define __pyx_kp_u_body_xmat_should_be_used_instead __pyx_mstate_global->__pyx_kp_u_body_xmat_should_be_used_instead
#define __pyx_kp_u_body_xpos_should_be_used_instead __pyx_mstate_global->__pyx_kp_u_body_xpos_should_be_used_instead
#define __pyx_kp_u_body_xquat_should_be_used_instea __pyx_mstate_global->__pyx_kp_u_body_xquat_should_be_used_instea
#define __pyx_n_s_bodyexclude __pyx_mstate_global->__pyx_n_s_bodyexclude
#define __pyx_n_s_bottom __pyx_mstate_global->__pyx_n_s_bottom
#define __pyx_n_s_buffer __pyx_mstate_global->__pyx_n_s_buffer
#define __pyx_n_s_buffer_sz __pyx_mstate_global->__pyx_n_s_buffer_sz
#define __pyx_n_s_buffer_view __pyx_mstate_global->__pyx_n_s_buffer_view
#define __pyx_n_s_build_callback_fn __pyx_mstate_global->__pyx_n_s_build_callback_fn
#define __pyx_n_s_c __pyx_mstate_global->__pyx_n_s_c
#define __pyx_n_u_c __pyx_mstate_global->__pyx_n_u_c
#define __pyx_n_s_c1 __pyx_mstate_global->__pyx_n_s_c1
#define __pyx_n_s_c2 __pyx_mstate_global->__pyx_n_s_c2
#define __pyx_n_s_cam __pyx_mstate_global->__pyx_n_s_cam
#define __pyx_n_s_camera_id __pyx_mstate_global->__pyx_n_s_camera_id
#define __pyx_n_s_camera_id2name __pyx_mstate_global->__pyx_n_s_camera_id2name
#define __pyx_n_s_camera_name __pyx_mstate_global->__pyx_n_s_camera_name
#define __pyx_n_s_camera_name2id __pyx_mstate_global->__pyx_n_s_camera_name2id
#define __pyx_n_s_catmask __pyx_mstate_global->__pyx_n_s_catmask
#define __pyx_n_s_childNodes __pyx_mstate_global->__pyx_n_s_childNodes
#define __pyx_n_s_cinit __pyx_mstate_global->__pyx_n_s_cinit
#define __pyx_n_s_class __pyx_mstate_global->__pyx_n_s_class
#define __pyx_n_s_class_getitem __pyx_mstate_global->__pyx_n_s_class_getitem
#define __pyx_n_s_cline_in_traceback __pyx_mstate_global->__pyx_n_s_cline_in_traceback
#define __pyx_n_s_close __pyx_mstate_global->__pyx_n_s_close
#define __pyx_n_s_colind __pyx_mstate_global->__pyx_n_s_colind
#define __pyx_n_s_collections __pyx_mstate_global->__pyx_n_s_collections
#define __pyx_kp_s_collections_abc __pyx_mstate_global->__pyx_kp_s_collections_abc
#define __pyx_n_s_con __pyx_mstate_global->__pyx_n_s_con
#define __pyx_n_s_concatenate __pyx_mstate_global->__pyx_n_s_concatenate
#define __pyx_n_s_const __pyx_mstate_global->__pyx_n_s_const
#define __pyx_kp_s_contiguous_and_direct __pyx_mstate_global->__pyx_kp_s_contiguous_and_direct
#define __pyx_kp_s_contiguous_and_indirect __pyx_mstate_global->__pyx_kp_s_contiguous_and_indirect
#define __pyx_n_s_copy __pyx_mstate_global->__pyx_n_s_copy
#define __pyx_n_s_cost __pyx_mstate_global->__pyx_n_s_cost
#define __pyx_n_s_count __pyx_mstate_global->__pyx_n_s_count
#define __pyx_n_s_createElement __pyx_mstate_global->__pyx_n_s_createElement
#define __pyx_n_s_create_window __pyx_mstate_global->__pyx_n_s_create_window
#define __pyx_n_s_create_window_2 __pyx_mstate_global->__pyx_n_s_create_window_2
#define __pyx_n_s_ctrl __pyx_mstate_global->__pyx_n_s_ctrl
#define __pyx_n_s_cuda_buffers_are_mapped __pyx_mstate_global->__pyx_n_s_cuda_buffers_are_mapped
#define __pyx_n_s_cuda_context __pyx_mstate_global->__pyx_n_s_cuda_context
#define __pyx_n_s_cuda_depth_buf_size __pyx_mstate_global->__pyx_n_s_cuda_depth_buf_size
#define __pyx_n_s_cuda_depth_buffer_pointer __pyx_mstate_global->__pyx_n_s_cuda_depth_buffer_pointer
#define __pyx_n_s_cuda_depth_mapping __pyx_mstate_global->__pyx_n_s_cuda_depth_mapping
#define __pyx_n_s_cuda_depth_pbo __pyx_mstate_global->__pyx_n_s_cuda_depth_pbo
#define __pyx_n_s_cuda_depth_ptr __pyx_mstate_global->__pyx_n_s_cuda_depth_ptr
#define __pyx_n_s_cuda_rgb_buf_size __pyx_mstate_global->__pyx_n_s_cuda_rgb_buf_size
#define __pyx_n_s_cuda_rgb_buffer_pointer __pyx_mstate_global->__pyx_n_s_cuda_rgb_buffer_pointer
#define __pyx_n_s_cuda_rgb_mapping __pyx_mstate_global->__pyx_n_s_cuda_rgb_mapping
#define __pyx_n_s_cuda_rgb_pbo __pyx_mstate_global->__pyx_n_s_cuda_rgb_pbo
#define __pyx_n_s_cuda_rgb_ptr __pyx_mstate_global->__pyx_n_s_cuda_rgb_ptr
#define __pyx_n_s_current_batch_offset __pyx_mstate_global->__pyx_n_s_current_batch_offset
#define __pyx_n_s_d __pyx_mstate_global->__pyx_n_s_d
#define __pyx_n_u_d __pyx_mstate_global->__pyx_n_u_d
#define __pyx_n_u_darwin __pyx_mstate_global->__pyx_n_u_darwin
#define __pyx_n_s_data __pyx_mstate_global->__pyx_n_s_data
#define __pyx_n_s_deepcopy __pyx_mstate_global->__pyx_n_s_deepcopy
#define __pyx_n_s_def __pyx_mstate_global->__pyx_n_s_def
#define __pyx_n_s_del __pyx_mstate_global->__pyx_n_s_del
#define __pyx_n_s_delete __pyx_mstate_global->__pyx_n_s_delete
#define __pyx_n_s_depth __pyx_mstate_global->__pyx_n_s_depth
#define __pyx_n_s_depth_2 __pyx_mstate_global->__pyx_n_s_depth_2
#define __pyx_n_s_depth_arr __pyx_mstate_global->__pyx_n_s_depth_arr
#define __pyx_n_s_depth_img __pyx_mstate_global->__pyx_n_s_depth_img
#define __pyx_n_s_depth_view __pyx_mstate_global->__pyx_n_s_depth_view
#define __pyx_n_s_derivative_error __pyx_mstate_global->__pyx_n_s_derivative_error
#define __pyx_n_s_derivative_gain_smoothing __pyx_mstate_global->__pyx_n_s_derivative_gain_smoothing
#define __pyx_n_s_derivative_time_const __pyx_mstate_global->__pyx_n_s_derivative_time_const
#define __pyx_n_s_description __pyx_mstate_global->__pyx_n_s_description
#define __pyx_n_s_dest __pyx_mstate_global->__pyx_n_s_dest
#define __pyx_n_s_detach __pyx_mstate_global->__pyx_n_s_detach
#define __pyx_n_s_device __pyx_mstate_global->__pyx_n_s_device
#define __pyx_n_s_device_id __pyx_mstate_global->__pyx_n_s_device_id
#define __pyx_n_s_device_id_2 __pyx_mstate_global->__pyx_n_s_device_id_2
#define __pyx_n_s_device_ptr_and_size __pyx_mstate_global->__pyx_n_s_device_ptr_and_size
#define __pyx_n_s_diag __pyx_mstate_global->__pyx_n_s_diag
#define __pyx_n_s_dict __pyx_mstate_global->__pyx_n_s_dict
#define __pyx_n_s_dim __pyx_mstate_global->__pyx_n_s_dim
#define __pyx_n_s_directory __pyx_mstate_global->__pyx_n_s_directory
#define __pyx_kp_u_disable __pyx_mstate_global->__pyx_kp_u_disable
#define __pyx_n_s_discover_mujoco __pyx_mstate_global->__pyx_n_s_discover_mujoco
#define __pyx_n_s_distance __pyx_mstate_global->__pyx_n_s_distance
#define __pyx_n_s_doc __pyx_mstate_global->__pyx_n_s_doc
#define __pyx_kp_u_doesn_t_match_old_pointer __pyx_mstate_global->__pyx_kp_u_doesn_t_match_old_pointer
#define __pyx_n_s_dom __pyx_mstate_global->__pyx_n_s_dom
#define __pyx_n_s_dot __pyx_mstate_global->__pyx_n_s_dot
#define __pyx_n_s_draw_pixels __pyx_mstate_global->__pyx_n_s_draw_pixels
#define __pyx_n_s_driver __pyx_mstate_global->__pyx_n_s_driver
#define __pyx_n_s_drv __pyx_mstate_global->__pyx_n_s_drv
#define __pyx_n_s_dst __pyx_mstate_global->__pyx_n_s_dst
#define __pyx_n_s_dt __pyx_mstate_global->__pyx_n_s_dt
#define __pyx_n_s_dt_seconds __pyx_mstate_global->__pyx_n_s_dt_seconds
#define __pyx_n_s_dtype __pyx_mstate_global->__pyx_n_s_dtype
#define __pyx_n_s_dtype_is_object __pyx_mstate_global->__pyx_n_s_dtype_is_object
#define __pyx_n_s_eigval __pyx_mstate_global->__pyx_n_s_eigval
#define __pyx_n_s_eigvec __pyx_mstate_global->__pyx_n_s_eigvec
#define __pyx_n_s_element __pyx_mstate_global->__pyx_n_s_element
#define __pyx_n_s_empty __pyx_mstate_global->__pyx_n_s_empty
#define __pyx_kp_u_enable __pyx_mstate_global->__pyx_kp_u_enable
#define __pyx_n_s_encode __pyx_mstate_global->__pyx_n_s_encode
#define __pyx_n_s_end_i __pyx_mstate_global->__pyx_n_s_end_i
#define __pyx_n_s_enter __pyx_mstate_global->__pyx_n_s_enter
#define __pyx_n_s_enumerate __pyx_mstate_global->__pyx_n_s_enumerate
#define __pyx_n_s_environ __pyx_mstate_global->__pyx_n_s_environ
#define __pyx_n_s_eq __pyx_mstate_global->__pyx_n_s_eq
#define __pyx_n_s_err_callback __pyx_mstate_global->__pyx_n_s_err_callback
#define __pyx_n_s_error __pyx_mstate_global->__pyx_n_s_error
#define __pyx_n_s_error_code __pyx_mstate_global->__pyx_n_s_error_code
#define __pyx_n_s_error_deadband __pyx_mstate_global->__pyx_n_s_error_deadband
#define __pyx_n_s_error_sz __pyx_mstate_global->__pyx_n_s_error_sz
#define __pyx_n_s_errors __pyx_mstate_global->__pyx_n_s_errors
#define __pyx_n_s_errstr __pyx_mstate_global->__pyx_n_s_errstr
#define __pyx_n_s_exclude_body __pyx_mstate_global->__pyx_n_s_exclude_body
#define __pyx_kp_u_exists_Available_actuator_names __pyx_mstate_global->__pyx_kp_u_exists_Available_actuator_names
#define __pyx_kp_u_exists_Available_body_names __pyx_mstate_global->__pyx_kp_u_exists_Available_body_names
#define __pyx_kp_u_exists_Available_camera_names __pyx_mstate_global->__pyx_kp_u_exists_Available_camera_names
#define __pyx_kp_u_exists_Available_geom_names __pyx_mstate_global->__pyx_kp_u_exists_Available_geom_names
#define __pyx_kp_u_exists_Available_joint_names __pyx_mstate_global->__pyx_kp_u_exists_Available_joint_names
#define __pyx_kp_u_exists_Available_light_names __pyx_mstate_global->__pyx_kp_u_exists_Available_light_names
#define __pyx_kp_u_exists_Available_mesh_names __pyx_mstate_global->__pyx_kp_u_exists_Available_mesh_names
#define __pyx_kp_u_exists_Available_sensor_names __pyx_mstate_global->__pyx_kp_u_exists_Available_sensor_names
#define __pyx_kp_u_exists_Available_site_names __pyx_mstate_global->__pyx_kp_u_exists_Available_site_names
#define __pyx_kp_u_exists_Available_tendon_names __pyx_mstate_global->__pyx_kp_u_exists_Available_tendon_names
#define __pyx_kp_u_exists_Available_userdata_names __pyx_mstate_global->__pyx_kp_u_exists_Available_userdata_names
#define __pyx_n_s_exit __pyx_mstate_global->__pyx_n_s_exit
#define __pyx_n_s_extent __pyx_mstate_global->__pyx_n_s_extent
#define __pyx_n_s_eye __pyx_mstate_global->__pyx_n_s_eye
#define __pyx_n_s_f __pyx_mstate_global->__pyx_n_s_f
#define __pyx_n_s_feedback __pyx_mstate_global->__pyx_n_s_feedback
#define __pyx_n_s_fig __pyx_mstate_global->__pyx_n_s_fig
#define __pyx_n_s_file __pyx_mstate_global->__pyx_n_s_file
#define __pyx_n_s_filename __pyx_mstate_global->__pyx_n_s_filename
#define __pyx_n_s_filesize __pyx_mstate_global->__pyx_n_s_filesize
#define __pyx_n_s_fill_value __pyx_mstate_global->__pyx_n_s_fill_value
#define __pyx_n_s_fixedcamid __pyx_mstate_global->__pyx_n_s_fixedcamid
#define __pyx_n_s_flags __pyx_mstate_global->__pyx_n_s_flags
#define __pyx_n_s_flat_udd_state __pyx_mstate_global->__pyx_n_s_flat_udd_state
#define __pyx_n_s_flatten __pyx_mstate_global->__pyx_n_s_flatten
#define __pyx_n_s_flatten_dict __pyx_mstate_global->__pyx_n_s_flatten_dict
#define __pyx_n_s_flg_acc __pyx_mstate_global->__pyx_n_s_flg_acc
#define __pyx_n_s_flg_color __pyx_mstate_global->__pyx_n_s_flg_color
#define __pyx_n_s_flg_coneHessian __pyx_mstate_global->__pyx_n_s_flg_coneHessian
#define __pyx_n_s_flg_depth __pyx_mstate_global->__pyx_n_s_flg_depth
#define __pyx_n_s_flg_force __pyx_mstate_global->__pyx_n_s_flg_force
#define __pyx_n_s_flg_html __pyx_mstate_global->__pyx_n_s_flg_html
#define __pyx_n_s_flg_local __pyx_mstate_global->__pyx_n_s_flg_local
#define __pyx_n_s_flg_pad __pyx_mstate_global->__pyx_n_s_flg_pad
#define __pyx_n_s_flg_paused __pyx_mstate_global->__pyx_n_s_flg_paused
#define __pyx_n_s_flg_plus __pyx_mstate_global->__pyx_n_s_flg_plus
#define __pyx_n_s_flg_static __pyx_mstate_global->__pyx_n_s_flg_static
#define __pyx_n_s_float32 __pyx_mstate_global->__pyx_n_s_float32
#define __pyx_n_s_float64 __pyx_mstate_global->__pyx_n_s_float64
#define __pyx_n_s_flush __pyx_mstate_global->__pyx_n_s_flush
#define __pyx_n_s_font __pyx_mstate_global->__pyx_n_s_font
#define __pyx_n_s_fontscale __pyx_mstate_global->__pyx_n_s_fontscale
#define __pyx_n_s_force __pyx_mstate_global->__pyx_n_s_force
#define __pyx_n_s_format __pyx_mstate_global->__pyx_n_s_format
#define __pyx_n_s_fortran __pyx_mstate_global->__pyx_n_s_fortran
#define __pyx_n_u_fortran __pyx_mstate_global->__pyx_n_u_fortran
#define __pyx_n_s_forward __pyx_mstate_global->__pyx_n_s_forward
#define __pyx_n_s_fp __pyx_mstate_global->__pyx_n_s_fp
#define __pyx_n_s_framebuffer __pyx_mstate_global->__pyx_n_s_framebuffer
#define __pyx_n_s_from_device __pyx_mstate_global->__pyx_n_s_from_device
#define __pyx_n_s_from_flattened __pyx_mstate_global->__pyx_n_s_from_flattened
#define __pyx_n_s_full __pyx_mstate_global->__pyx_n_s_full
#define __pyx_n_s_g __pyx_mstate_global->__pyx_n_s_g
#define __pyx_kp_u_gc __pyx_mstate_global->__pyx_kp_u_gc
#define __pyx_n_s_genexpr __pyx_mstate_global->__pyx_n_s_genexpr
#define __pyx_n_s_geom __pyx_mstate_global->__pyx_n_s_geom
#define __pyx_n_s_geom_id2name __pyx_mstate_global->__pyx_n_s_geom_id2name
#define __pyx_n_s_geom_jacp __pyx_mstate_global->__pyx_n_s_geom_jacp
#define __pyx_n_s_geom_jacr __pyx_mstate_global->__pyx_n_s_geom_jacr
#define __pyx_n_s_geom_name2id __pyx_mstate_global->__pyx_n_s_geom_name2id
#define __pyx_n_s_geom_xpos __pyx_mstate_global->__pyx_n_s_geom_xpos
#define __pyx_n_s_geomgroup __pyx_mstate_global->__pyx_n_s_geomgroup
#define __pyx_n_s_geomgroup_view __pyx_mstate_global->__pyx_n_s_geomgroup_view
#define __pyx_n_s_geomid __pyx_mstate_global->__pyx_n_s_geomid
#define __pyx_n_s_geomtype __pyx_mstate_global->__pyx_n_s_geomtype
#define __pyx_n_s_getElementsByTagName __pyx_mstate_global->__pyx_n_s_getElementsByTagName
#define __pyx_n_s_get_body_jacp __pyx_mstate_global->__pyx_n_s_get_body_jacp
#define __pyx_n_s_get_body_jacr __pyx_mstate_global->__pyx_n_s_get_body_jacr
#define __pyx_n_s_get_body_ximat __pyx_mstate_global->__pyx_n_s_get_body_ximat
#define __pyx_kp_u_get_body_ximat_should_be_used_in __pyx_mstate_global->__pyx_kp_u_get_body_ximat_should_be_used_in
#define __pyx_n_s_get_body_xipos __pyx_mstate_global->__pyx_n_s_get_body_xipos
#define __pyx_kp_u_get_body_xipos_should_be_used_in __pyx_mstate_global->__pyx_kp_u_get_body_xipos_should_be_used_in
#define __pyx_n_s_get_body_xmat __pyx_mstate_global->__pyx_n_s_get_body_xmat
#define __pyx_kp_u_get_body_xmat_should_be_used_ins __pyx_mstate_global->__pyx_kp_u_get_body_xmat_should_be_used_ins
#define __pyx_n_s_get_body_xpos __pyx_mstate_global->__pyx_n_s_get_body_xpos
#define __pyx_kp_u_get_body_xpos_should_be_used_ins __pyx_mstate_global->__pyx_kp_u_get_body_xpos_should_be_used_ins
#define __pyx_n_s_get_body_xquat __pyx_mstate_global->__pyx_n_s_get_body_xquat
#define __pyx_kp_u_get_body_xquat_should_be_used_in __pyx_mstate_global->__pyx_kp_u_get_body_xquat_should_be_used_in
#define __pyx_n_s_get_body_xvelp __pyx_mstate_global->__pyx_n_s_get_body_xvelp
#define __pyx_n_s_get_body_xvelr __pyx_mstate_global->__pyx_n_s_get_body_xvelr
#define __pyx_n_s_get_buffer_size __pyx_mstate_global->__pyx_n_s_get_buffer_size
#define __pyx_n_s_get_cam_xmat __pyx_mstate_global->__pyx_n_s_get_cam_xmat
#define __pyx_n_s_get_cam_xpos __pyx_mstate_global->__pyx_n_s_get_cam_xpos
#define __pyx_n_s_get_camera_xmat __pyx_mstate_global->__pyx_n_s_get_camera_xmat
#define __pyx_kp_u_get_camera_xmat_should_be_used_i __pyx_mstate_global->__pyx_kp_u_get_camera_xmat_should_be_used_i
#define __pyx_n_s_get_camera_xpos __pyx_mstate_global->__pyx_n_s_get_camera_xpos
#define __pyx_kp_u_get_camera_xpos_should_be_used_i __pyx_mstate_global->__pyx_kp_u_get_camera_xpos_should_be_used_i
#define __pyx_n_s_get_error_callback __pyx_mstate_global->__pyx_n_s_get_error_callback
#define __pyx_n_s_get_framebuffer_size __pyx_mstate_global->__pyx_n_s_get_framebuffer_size
#define __pyx_n_s_get_geom_jacp __pyx_mstate_global->__pyx_n_s_get_geom_jacp
#define __pyx_n_s_get_geom_jacr __pyx_mstate_global->__pyx_n_s_get_geom_jacr
#define __pyx_n_s_get_geom_xmat __pyx_mstate_global->__pyx_n_s_get_geom_xmat
#define __pyx_n_s_get_geom_xpos __pyx_mstate_global->__pyx_n_s_get_geom_xpos
#define __pyx_n_s_get_geom_xvelp __pyx_mstate_global->__pyx_n_s_get_geom_xvelp
#define __pyx_n_s_get_geom_xvelr __pyx_mstate_global->__pyx_n_s_get_geom_xvelr
#define __pyx_n_s_get_joint_qpos __pyx_mstate_global->__pyx_n_s_get_joint_qpos
#define __pyx_n_s_get_joint_qpos_addr __pyx_mstate_global->__pyx_n_s_get_joint_qpos_addr
#define __pyx_n_s_get_joint_qvel __pyx_mstate_global->__pyx_n_s_get_joint_qvel
#define __pyx_n_s_get_joint_qvel_addr __pyx_mstate_global->__pyx_n_s_get_joint_qvel_addr
#define __pyx_n_s_get_joint_xanchor __pyx_mstate_global->__pyx_n_s_get_joint_xanchor
#define __pyx_kp_u_get_joint_xanchor_should_be_used __pyx_mstate_global->__pyx_kp_u_get_joint_xanchor_should_be_used
#define __pyx_n_s_get_joint_xaxis __pyx_mstate_global->__pyx_n_s_get_joint_xaxis
#define __pyx_kp_u_get_joint_xaxis_should_be_used_i __pyx_mstate_global->__pyx_kp_u_get_joint_xaxis_should_be_used_i
#define __pyx_n_s_get_light_xdir __pyx_mstate_global->__pyx_n_s_get_light_xdir
#define __pyx_n_s_get_light_xpos __pyx_mstate_global->__pyx_n_s_get_light_xpos
#define __pyx_n_s_get_mjb __pyx_mstate_global->__pyx_n_s_get_mjb
#define __pyx_n_s_get_mocap_pos __pyx_mstate_global->__pyx_n_s_get_mocap_pos
#define __pyx_n_s_get_mocap_quat __pyx_mstate_global->__pyx_n_s_get_mocap_quat
#define __pyx_n_s_get_primary_monitor __pyx_mstate_global->__pyx_n_s_get_primary_monitor
#define __pyx_n_s_get_sensor __pyx_mstate_global->__pyx_n_s_get_sensor
#define __pyx_kp_u_get_sensor_should_be_used_instea __pyx_mstate_global->__pyx_kp_u_get_sensor_should_be_used_instea
#define __pyx_n_s_get_sensordata __pyx_mstate_global->__pyx_n_s_get_sensordata
#define __pyx_n_s_get_site_jacp __pyx_mstate_global->__pyx_n_s_get_site_jacp
#define __pyx_n_s_get_site_jacr __pyx_mstate_global->__pyx_n_s_get_site_jacr
#define __pyx_n_s_get_site_xmat __pyx_mstate_global->__pyx_n_s_get_site_xmat
#define __pyx_n_s_get_site_xpos __pyx_mstate_global->__pyx_n_s_get_site_xpos
#define __pyx_n_s_get_site_xvelp __pyx_mstate_global->__pyx_n_s_get_site_xvelp
#define __pyx_n_s_get_site_xvelr __pyx_mstate_global->__pyx_n_s_get_site_xvelr
#define __pyx_n_s_get_state __pyx_mstate_global->__pyx_n_s_get_state
#define __pyx_n_s_get_userdata __pyx_mstate_global->__pyx_n_s_get_userdata
#define __pyx_n_s_get_video_mode __pyx_mstate_global->__pyx_n_s_get_video_mode
#define __pyx_n_s_get_warning_callback __pyx_mstate_global->__pyx_n_s_get_warning_callback
#define __pyx_n_s_get_xanchor __pyx_mstate_global->__pyx_n_s_get_xanchor
#define __pyx_n_s_get_xaxis __pyx_mstate_global->__pyx_n_s_get_xaxis
#define __pyx_n_s_get_ximat __pyx_mstate_global->__pyx_n_s_get_ximat
#define __pyx_n_s_get_xipos __pyx_mstate_global->__pyx_n_s_get_xipos
#define __pyx_n_s_get_xmat __pyx_mstate_global->__pyx_n_s_get_xmat
#define __pyx_n_s_get_xml __pyx_mstate_global->__pyx_n_s_get_xml
#define __pyx_n_s_get_xpos __pyx_mstate_global->__pyx_n_s_get_xpos
#define __pyx_n_s_get_xquat __pyx_mstate_global->__pyx_n_s_get_xquat
#define __pyx_n_s_getenv __pyx_mstate_global->__pyx_n_s_getenv
#define __pyx_n_s_getstate __pyx_mstate_global->__pyx_n_s_getstate
#define __pyx_n_s_glfw __pyx_mstate_global->__pyx_n_s_glfw
#define __pyx_n_u_glfw __pyx_mstate_global->__pyx_n_u_glfw
#define __pyx_n_s_glfw_error_callback __pyx_mstate_global->__pyx_n_s_glfw_error_callback
#define __pyx_kp_u_got __pyx_mstate_global->__pyx_kp_u_got
#define __pyx_kp_u_got_differing_extents_in_dimensi __pyx_mstate_global->__pyx_kp_u_got_differing_extents_in_dimensi
#define __pyx_n_s_gridpos __pyx_mstate_global->__pyx_n_s_gridpos
#define __pyx_n_s_group_filter __pyx_mstate_global->__pyx_n_s_group_filter
#define __pyx_n_s_headpos __pyx_mstate_global->__pyx_n_s_headpos
#define __pyx_n_s_height __pyx_mstate_global->__pyx_n_s_height
#define __pyx_n_s_height_2 __pyx_mstate_global->__pyx_n_s_height_2
#define __pyx_n_s_hfieldid __pyx_mstate_global->__pyx_n_s_hfieldid
#define __pyx_n_s_i __pyx_mstate_global->__pyx_n_s_i
#define __pyx_n_s_id __pyx_mstate_global->__pyx_n_s_id
#define __pyx_n_s_idx __pyx_mstate_global->__pyx_n_s_idx
#define __pyx_n_s_idx_act __pyx_mstate_global->__pyx_n_s_idx_act
#define __pyx_n_s_idx_qpos __pyx_mstate_global->__pyx_n_s_idx_qpos
#define __pyx_n_s_idx_qvel __pyx_mstate_global->__pyx_n_s_idx_qvel
#define __pyx_n_s_idx_time __pyx_mstate_global->__pyx_n_s_idx_time
#define __pyx_n_s_idx_udd __pyx_mstate_global->__pyx_n_s_idx_udd
#define __pyx_n_s_image __pyx_mstate_global->__pyx_n_s_image
#define __pyx_n_s_image_view __pyx_mstate_global->__pyx_n_s_image_view
#define __pyx_n_s_import __pyx_mstate_global->__pyx_n_s_import
#define __pyx_n_s_include_static_geoms __pyx_mstate_global->__pyx_n_s_include_static_geoms
#define __pyx_n_s_indent __pyx_mstate_global->__pyx_n_s_indent
#define __pyx_n_s_index __pyx_mstate_global->__pyx_n_s_index
#define __pyx_n_u_inertial __pyx_mstate_global->__pyx_n_u_inertial
#define __pyx_n_s_info __pyx_mstate_global->__pyx_n_s_info
#define __pyx_n_s_init __pyx_mstate_global->__pyx_n_s_init
#define __pyx_n_s_init_2 __pyx_mstate_global->__pyx_n_s_init_2
#define __pyx_n_s_init_camera __pyx_mstate_global->__pyx_n_s_init_camera
#define __pyx_n_s_init_cuda __pyx_mstate_global->__pyx_n_s_init_cuda
#define __pyx_n_s_init_glfw __pyx_mstate_global->__pyx_n_s_init_glfw
#define __pyx_n_s_init_height __pyx_mstate_global->__pyx_n_s_init_height
#define __pyx_n_s_init_subclass __pyx_mstate_global->__pyx_n_s_init_subclass
#define __pyx_n_s_init_width __pyx_mstate_global->__pyx_n_s_init_width
#define __pyx_n_s_initializing __pyx_mstate_global->__pyx_n_s_initializing
#define __pyx_kp_u_insufficient_userdata __pyx_mstate_global->__pyx_kp_u_insufficient_userdata
#define __pyx_n_s_int32 __pyx_mstate_global->__pyx_n_s_int32
#define __pyx_n_s_int64 __pyx_mstate_global->__pyx_n_s_int64
#define __pyx_n_s_integral_error __pyx_mstate_global->__pyx_n_s_integral_error
#define __pyx_n_s_integral_max_clamp __pyx_mstate_global->__pyx_n_s_integral_max_clamp
#define __pyx_n_s_integral_time_const __pyx_mstate_global->__pyx_n_s_integral_time_const
#define __pyx_kp_u_invalid __pyx_mstate_global->__pyx_kp_u_invalid
#define __pyx_n_s_is_coroutine __pyx_mstate_global->__pyx_n_s_is_coroutine
#define __pyx_kp_u_isenabled __pyx_mstate_global->__pyx_kp_u_isenabled
#define __pyx_n_s_item __pyx_mstate_global->__pyx_n_s_item
#define __pyx_n_s_items __pyx_mstate_global->__pyx_n_s_items
#define __pyx_n_s_itemsize __pyx_mstate_global->__pyx_n_s_itemsize
#define __pyx_kp_s_itemsize_0_for_cython_array __pyx_mstate_global->__pyx_kp_s_itemsize_0_for_cython_array
#define __pyx_n_s_jacAxis __pyx_mstate_global->__pyx_n_s_jacAxis
#define __pyx_n_s_jacPoint __pyx_mstate_global->__pyx_n_s_jacPoint
#define __pyx_n_s_jacp __pyx_mstate_global->__pyx_n_s_jacp
#define __pyx_n_s_jacp_view __pyx_mstate_global->__pyx_n_s_jacp_view
#define __pyx_n_s_jacr __pyx_mstate_global->__pyx_n_s_jacr
#define __pyx_n_s_jacr_view __pyx_mstate_global->__pyx_n_s_jacr_view
#define __pyx_n_s_jar __pyx_mstate_global->__pyx_n_s_jar
#define __pyx_n_s_jnt_dofadr __pyx_mstate_global->__pyx_n_s_jnt_dofadr
#define __pyx_n_s_jnt_qposadr __pyx_mstate_global->__pyx_n_s_jnt_qposadr
#define __pyx_n_s_jnt_type __pyx_mstate_global->__pyx_n_s_jnt_type
#define __pyx_n_s_join __pyx_mstate_global->__pyx_n_s_join
#define __pyx_n_s_joint_addr __pyx_mstate_global->__pyx_n_s_joint_addr
#define __pyx_n_s_joint_id __pyx_mstate_global->__pyx_n_s_joint_id
#define __pyx_n_s_joint_id2name __pyx_mstate_global->__pyx_n_s_joint_id2name
#define __pyx_n_s_joint_name2id __pyx_mstate_global->__pyx_n_s_joint_name2id
#define __pyx_n_s_joint_type __pyx_mstate_global->__pyx_n_s_joint_type
#define __pyx_n_s_k __pyx_mstate_global->__pyx_n_s_k
#define __pyx_n_s_keep_inertials __pyx_mstate_global->__pyx_n_s_keep_inertials
#define __pyx_n_s_key __pyx_mstate_global->__pyx_n_s_key
#define __pyx_n_u_key __pyx_mstate_global->__pyx_n_u_key
#define __pyx_n_s_key_el __pyx_mstate_global->__pyx_n_s_key_el
#define __pyx_n_u_keyframe __pyx_mstate_global->__pyx_n_u_keyframe
#define __pyx_n_s_keyframe_el __pyx_mstate_global->__pyx_n_s_keyframe_el
#define __pyx_n_s_keys __pyx_mstate_global->__pyx_n_s_keys
#define __pyx_n_u_label __pyx_mstate_global->__pyx_n_u_label
#define __pyx_n_s_left __pyx_mstate_global->__pyx_n_s_left
#define __pyx_n_s_len __pyx_mstate_global->__pyx_n_s_len
#define __pyx_n_s_lengthrange __pyx_mstate_global->__pyx_n_s_lengthrange
#define __pyx_n_s_light_id2name __pyx_mstate_global->__pyx_n_s_light_id2name
#define __pyx_n_s_light_name2id __pyx_mstate_global->__pyx_n_s_light_name2id
#define __pyx_n_s_list __pyx_mstate_global->__pyx_n_s_list
#define __pyx_n_s_load_model_from_mjb __pyx_mstate_global->__pyx_n_s_load_model_from_mjb
#define __pyx_n_s_load_model_from_path __pyx_mstate_global->__pyx_n_s_load_model_from_path
#define __pyx_n_s_load_model_from_xml __pyx_mstate_global->__pyx_n_s_load_model_from_xml
#define __pyx_n_s_logging __pyx_mstate_global->__pyx_n_s_logging
#define __pyx_n_s_lookat __pyx_mstate_global->__pyx_n_s_lookat
#define __pyx_n_s_lower __pyx_mstate_global->__pyx_n_s_lower
#define __pyx_n_s_m __pyx_mstate_global->__pyx_n_s_m
#define __pyx_n_s_main __pyx_mstate_global->__pyx_n_s_main
#define __pyx_n_s_make_context __pyx_mstate_global->__pyx_n_s_make_context
#define __pyx_n_s_make_context_current __pyx_mstate_global->__pyx_n_s_make_context_current
#define __pyx_n_s_map __pyx_mstate_global->__pyx_n_s_map
#define __pyx_n_s_marker_params __pyx_mstate_global->__pyx_n_s_marker_params
#define __pyx_n_s_mat __pyx_mstate_global->__pyx_n_s_mat
#define __pyx_n_s_mat1 __pyx_mstate_global->__pyx_n_s_mat1
#define __pyx_n_s_mat2 __pyx_mstate_global->__pyx_n_s_mat2
#define __pyx_n_s_maxgeom __pyx_mstate_global->__pyx_n_s_maxgeom
#define __pyx_n_s_median __pyx_mstate_global->__pyx_n_s_median
#define __pyx_n_s_memview __pyx_mstate_global->__pyx_n_s_memview
#define __pyx_n_s_mesh_id2name __pyx_mstate_global->__pyx_n_s_mesh_id2name
#define __pyx_n_s_mesh_name2id __pyx_mstate_global->__pyx_n_s_mesh_name2id
#define __pyx_n_s_meshid __pyx_mstate_global->__pyx_n_s_meshid
#define __pyx_n_s_metaclass __pyx_mstate_global->__pyx_n_s_metaclass
#define __pyx_n_s_mindiag __pyx_mstate_global->__pyx_n_s_mindiag
#define __pyx_n_s_minidom __pyx_mstate_global->__pyx_n_s_minidom
#define __pyx_n_s_mj_Euler __pyx_mstate_global->__pyx_n_s_mj_Euler
#define __pyx_n_s_mj_RungeKutta __pyx_mstate_global->__pyx_n_s_mj_RungeKutta
#define __pyx_n_s_mj_activate __pyx_mstate_global->__pyx_n_s_mj_activate
#define __pyx_n_s_mj_addContact __pyx_mstate_global->__pyx_n_s_mj_addContact
#define __pyx_n_s_mj_addFileVFS __pyx_mstate_global->__pyx_n_s_mj_addFileVFS
#define __pyx_n_s_mj_addM __pyx_mstate_global->__pyx_n_s_mj_addM
#define __pyx_n_s_mj_applyFT __pyx_mstate_global->__pyx_n_s_mj_applyFT
#define __pyx_n_s_mj_camlight __pyx_mstate_global->__pyx_n_s_mj_camlight
#define __pyx_n_s_mj_checkAcc __pyx_mstate_global->__pyx_n_s_mj_checkAcc
#define __pyx_n_s_mj_checkPos __pyx_mstate_global->__pyx_n_s_mj_checkPos
#define __pyx_n_s_mj_checkVel __pyx_mstate_global->__pyx_n_s_mj_checkVel
#define __pyx_n_s_mj_collision __pyx_mstate_global->__pyx_n_s_mj_collision
#define __pyx_n_s_mj_comPos __pyx_mstate_global->__pyx_n_s_mj_comPos
#define __pyx_n_s_mj_comVel __pyx_mstate_global->__pyx_n_s_mj_comVel
#define __pyx_n_s_mj_compareFwdInv __pyx_mstate_global->__pyx_n_s_mj_compareFwdInv
#define __pyx_n_s_mj_constraintUpdate __pyx_mstate_global->__pyx_n_s_mj_constraintUpdate
#define __pyx_n_s_mj_contactForce __pyx_mstate_global->__pyx_n_s_mj_contactForce
#define __pyx_n_s_mj_copyModel __pyx_mstate_global->__pyx_n_s_mj_copyModel
#define __pyx_n_s_mj_crb __pyx_mstate_global->__pyx_n_s_mj_crb
#define __pyx_n_s_mj_deactivate __pyx_mstate_global->__pyx_n_s_mj_deactivate
#define __pyx_n_s_mj_defaultLROpt __pyx_mstate_global->__pyx_n_s_mj_defaultLROpt
#define __pyx_n_s_mj_defaultOption __pyx_mstate_global->__pyx_n_s_mj_defaultOption
#define __pyx_n_s_mj_defaultSolRefImp __pyx_mstate_global->__pyx_n_s_mj_defaultSolRefImp
#define __pyx_n_s_mj_defaultVFS __pyx_mstate_global->__pyx_n_s_mj_defaultVFS
#define __pyx_n_s_mj_defaultVisual __pyx_mstate_global->__pyx_n_s_mj_defaultVisual
#define __pyx_n_s_mj_deleteData __pyx_mstate_global->__pyx_n_s_mj_deleteData
#define __pyx_n_s_mj_deleteFileVFS __pyx_mstate_global->__pyx_n_s_mj_deleteFileVFS
#define __pyx_n_s_mj_deleteModel __pyx_mstate_global->__pyx_n_s_mj_deleteModel
#define __pyx_n_s_mj_deleteVFS __pyx_mstate_global->__pyx_n_s_mj_deleteVFS
#define __pyx_n_s_mj_differentiatePos __pyx_mstate_global->__pyx_n_s_mj_differentiatePos
#define __pyx_n_s_mj_energyPos __pyx_mstate_global->__pyx_n_s_mj_energyPos
#define __pyx_n_s_mj_energyVel __pyx_mstate_global->__pyx_n_s_mj_energyVel
#define __pyx_n_s_mj_factorM __pyx_mstate_global->__pyx_n_s_mj_factorM
#define __pyx_n_s_mj_findFileVFS __pyx_mstate_global->__pyx_n_s_mj_findFileVFS
#define __pyx_n_s_mj_forward __pyx_mstate_global->__pyx_n_s_mj_forward
#define __pyx_n_s_mj_forwardSkip __pyx_mstate_global->__pyx_n_s_mj_forwardSkip
#define __pyx_n_s_mj_freeLastXML __pyx_mstate_global->__pyx_n_s_mj_freeLastXML
#define __pyx_n_s_mj_fullM __pyx_mstate_global->__pyx_n_s_mj_fullM
#define __pyx_n_s_mj_fwdAcceleration __pyx_mstate_global->__pyx_n_s_mj_fwdAcceleration
#define __pyx_n_s_mj_fwdActuation __pyx_mstate_global->__pyx_n_s_mj_fwdActuation
#define __pyx_n_s_mj_fwdConstraint __pyx_mstate_global->__pyx_n_s_mj_fwdConstraint
#define __pyx_n_s_mj_fwdPosition __pyx_mstate_global->__pyx_n_s_mj_fwdPosition
#define __pyx_n_s_mj_fwdVelocity __pyx_mstate_global->__pyx_n_s_mj_fwdVelocity
#define __pyx_n_s_mj_getTotalmass __pyx_mstate_global->__pyx_n_s_mj_getTotalmass
#define __pyx_n_s_mj_integratePos __pyx_mstate_global->__pyx_n_s_mj_integratePos
#define __pyx_n_s_mj_invConstraint __pyx_mstate_global->__pyx_n_s_mj_invConstraint
#define __pyx_n_s_mj_invPosition __pyx_mstate_global->__pyx_n_s_mj_invPosition
#define __pyx_n_s_mj_invVelocity __pyx_mstate_global->__pyx_n_s_mj_invVelocity
#define __pyx_n_s_mj_inverse __pyx_mstate_global->__pyx_n_s_mj_inverse
#define __pyx_n_s_mj_inverseSkip __pyx_mstate_global->__pyx_n_s_mj_inverseSkip
#define __pyx_n_s_mj_isDual __pyx_mstate_global->__pyx_n_s_mj_isDual
#define __pyx_n_s_mj_isPyramidal __pyx_mstate_global->__pyx_n_s_mj_isPyramidal
#define __pyx_n_s_mj_isSparse __pyx_mstate_global->__pyx_n_s_mj_isSparse
#define __pyx_n_s_mj_jac __pyx_mstate_global->__pyx_n_s_mj_jac
#define __pyx_n_s_mj_jacBody __pyx_mstate_global->__pyx_n_s_mj_jacBody
#define __pyx_n_s_mj_jacBodyCom __pyx_mstate_global->__pyx_n_s_mj_jacBodyCom
#define __pyx_n_s_mj_jacGeom __pyx_mstate_global->__pyx_n_s_mj_jacGeom
#define __pyx_n_s_mj_jacPointAxis __pyx_mstate_global->__pyx_n_s_mj_jacPointAxis
#define __pyx_n_s_mj_jacSite __pyx_mstate_global->__pyx_n_s_mj_jacSite
#define __pyx_n_s_mj_kinematics __pyx_mstate_global->__pyx_n_s_mj_kinematics
#define __pyx_n_s_mj_loadModel __pyx_mstate_global->__pyx_n_s_mj_loadModel
#define __pyx_n_s_mj_loadXML __pyx_mstate_global->__pyx_n_s_mj_loadXML
#define __pyx_kp_u_mj_loadXML_error __pyx_mstate_global->__pyx_kp_u_mj_loadXML_error
#define __pyx_n_s_mj_local2Global __pyx_mstate_global->__pyx_n_s_mj_local2Global
#define __pyx_n_s_mj_makeConstraint __pyx_mstate_global->__pyx_n_s_mj_makeConstraint
#define __pyx_kp_u_mj_makeData_failed __pyx_mstate_global->__pyx_kp_u_mj_makeData_failed
#define __pyx_n_s_mj_makeEmptyFileVFS __pyx_mstate_global->__pyx_n_s_mj_makeEmptyFileVFS
#define __pyx_n_s_mj_mulJacTVec __pyx_mstate_global->__pyx_n_s_mj_mulJacTVec
#define __pyx_n_s_mj_mulJacVec __pyx_mstate_global->__pyx_n_s_mj_mulJacVec
#define __pyx_n_s_mj_mulM __pyx_mstate_global->__pyx_n_s_mj_mulM
#define __pyx_n_s_mj_mulM2 __pyx_mstate_global->__pyx_n_s_mj_mulM2
#define __pyx_n_s_mj_name2id __pyx_mstate_global->__pyx_n_s_mj_name2id
#define __pyx_n_s_mj_normalizeQuat __pyx_mstate_global->__pyx_n_s_mj_normalizeQuat
#define __pyx_n_s_mj_objectAcceleration __pyx_mstate_global->__pyx_n_s_mj_objectAcceleration
#define __pyx_n_s_mj_objectVelocity __pyx_mstate_global->__pyx_n_s_mj_objectVelocity
#define __pyx_n_s_mj_passive __pyx_mstate_global->__pyx_n_s_mj_passive
#define __pyx_n_s_mj_printData __pyx_mstate_global->__pyx_n_s_mj_printData
#define __pyx_n_s_mj_printModel __pyx_mstate_global->__pyx_n_s_mj_printModel
#define __pyx_n_s_mj_printSchema __pyx_mstate_global->__pyx_n_s_mj_printSchema
#define __pyx_n_s_mj_projectConstraint __pyx_mstate_global->__pyx_n_s_mj_projectConstraint
#define __pyx_n_s_mj_ray __pyx_mstate_global->__pyx_n_s_mj_ray
#define __pyx_n_s_mj_rayHfield __pyx_mstate_global->__pyx_n_s_mj_rayHfield
#define __pyx_n_s_mj_rayMesh __pyx_mstate_global->__pyx_n_s_mj_rayMesh
#define __pyx_n_s_mj_referenceConstraint __pyx_mstate_global->__pyx_n_s_mj_referenceConstraint
#define __pyx_n_s_mj_resetCallbacks __pyx_mstate_global->__pyx_n_s_mj_resetCallbacks
#define __pyx_n_s_mj_resetData __pyx_mstate_global->__pyx_n_s_mj_resetData
#define __pyx_n_s_mj_resetDataKeyframe __pyx_mstate_global->__pyx_n_s_mj_resetDataKeyframe
#define __pyx_n_s_mj_rne __pyx_mstate_global->__pyx_n_s_mj_rne
#define __pyx_n_s_mj_rnePostConstraint __pyx_mstate_global->__pyx_n_s_mj_rnePostConstraint
#define __pyx_n_s_mj_saveLastXML __pyx_mstate_global->__pyx_n_s_mj_saveLastXML
#define __pyx_n_s_mj_sensorAcc __pyx_mstate_global->__pyx_n_s_mj_sensorAcc
#define __pyx_n_s_mj_sensorPos __pyx_mstate_global->__pyx_n_s_mj_sensorPos
#define __pyx_n_s_mj_sensorVel __pyx_mstate_global->__pyx_n_s_mj_sensorVel
#define __pyx_n_s_mj_setConst __pyx_mstate_global->__pyx_n_s_mj_setConst
#define __pyx_n_s_mj_setLengthRange __pyx_mstate_global->__pyx_n_s_mj_setLengthRange
#define __pyx_n_s_mj_setTotalmass __pyx_mstate_global->__pyx_n_s_mj_setTotalmass
#define __pyx_n_s_mj_sizeModel __pyx_mstate_global->__pyx_n_s_mj_sizeModel
#define __pyx_n_s_mj_solveM __pyx_mstate_global->__pyx_n_s_mj_solveM
#define __pyx_n_s_mj_solveM2 __pyx_mstate_global->__pyx_n_s_mj_solveM2
#define __pyx_n_s_mj_step __pyx_mstate_global->__pyx_n_s_mj_step
#define __pyx_n_s_mj_step1 __pyx_mstate_global->__pyx_n_s_mj_step1
#define __pyx_n_s_mj_step2 __pyx_mstate_global->__pyx_n_s_mj_step2
#define __pyx_n_s_mj_subtreeVel __pyx_mstate_global->__pyx_n_s_mj_subtreeVel
#define __pyx_n_s_mj_tendon __pyx_mstate_global->__pyx_n_s_mj_tendon
#define __pyx_n_s_mj_transmission __pyx_mstate_global->__pyx_n_s_mj_transmission
#define __pyx_n_s_mj_version __pyx_mstate_global->__pyx_n_s_mj_version
#define __pyx_n_s_mj_warning __pyx_mstate_global->__pyx_n_s_mj_warning
#define __pyx_n_u_mjb __pyx_mstate_global->__pyx_n_u_mjb
#define __pyx_kp_u_mjb_2 __pyx_mstate_global->__pyx_kp_u_mjb_2
#define __pyx_n_s_mjb_bytes __pyx_mstate_global->__pyx_n_s_mjb_bytes
#define __pyx_n_s_mjr_addAux __pyx_mstate_global->__pyx_n_s_mjr_addAux
#define __pyx_n_s_mjr_blitAux __pyx_mstate_global->__pyx_n_s_mjr_blitAux
#define __pyx_n_s_mjr_blitBuffer __pyx_mstate_global->__pyx_n_s_mjr_blitBuffer
#define __pyx_n_s_mjr_changeFont __pyx_mstate_global->__pyx_n_s_mjr_changeFont
#define __pyx_n_s_mjr_defaultContext __pyx_mstate_global->__pyx_n_s_mjr_defaultContext
#define __pyx_n_s_mjr_figure __pyx_mstate_global->__pyx_n_s_mjr_figure
#define __pyx_n_s_mjr_findRect __pyx_mstate_global->__pyx_n_s_mjr_findRect
#define __pyx_n_s_mjr_finish __pyx_mstate_global->__pyx_n_s_mjr_finish
#define __pyx_n_s_mjr_freeContext __pyx_mstate_global->__pyx_n_s_mjr_freeContext
#define __pyx_n_s_mjr_getError __pyx_mstate_global->__pyx_n_s_mjr_getError
#define __pyx_n_s_mjr_makeContext __pyx_mstate_global->__pyx_n_s_mjr_makeContext
#define __pyx_n_s_mjr_overlay __pyx_mstate_global->__pyx_n_s_mjr_overlay
#define __pyx_n_s_mjr_render __pyx_mstate_global->__pyx_n_s_mjr_render
#define __pyx_n_s_mjr_restoreBuffer __pyx_mstate_global->__pyx_n_s_mjr_restoreBuffer
#define __pyx_n_s_mjr_setAux __pyx_mstate_global->__pyx_n_s_mjr_setAux
#define __pyx_n_s_mjr_setBuffer __pyx_mstate_global->__pyx_n_s_mjr_setBuffer
#define __pyx_n_s_mjr_uploadHField __pyx_mstate_global->__pyx_n_s_mjr_uploadHField
#define __pyx_n_s_mjr_uploadMesh __pyx_mstate_global->__pyx_n_s_mjr_uploadMesh
#define __pyx_n_s_mjr_uploadTexture __pyx_mstate_global->__pyx_n_s_mjr_uploadTexture
#define __pyx_n_s_mju_Halton __pyx_mstate_global->__pyx_n_s_mju_Halton
#define __pyx_n_s_mju_L1 __pyx_mstate_global->__pyx_n_s_mju_L1
#define __pyx_n_s_mju_add __pyx_mstate_global->__pyx_n_s_mju_add
#define __pyx_n_s_mju_add3 __pyx_mstate_global->__pyx_n_s_mju_add3
#define __pyx_n_s_mju_addScl __pyx_mstate_global->__pyx_n_s_mju_addScl
#define __pyx_n_s_mju_addScl3 __pyx_mstate_global->__pyx_n_s_mju_addScl3
#define __pyx_n_s_mju_addTo __pyx_mstate_global->__pyx_n_s_mju_addTo
#define __pyx_n_s_mju_addTo3 __pyx_mstate_global->__pyx_n_s_mju_addTo3
#define __pyx_n_s_mju_addToScl __pyx_mstate_global->__pyx_n_s_mju_addToScl
#define __pyx_n_s_mju_addToScl3 __pyx_mstate_global->__pyx_n_s_mju_addToScl3
#define __pyx_n_s_mju_axisAngle2Quat __pyx_mstate_global->__pyx_n_s_mju_axisAngle2Quat
#define __pyx_n_s_mju_cholFactor __pyx_mstate_global->__pyx_n_s_mju_cholFactor
#define __pyx_n_s_mju_cholSolve __pyx_mstate_global->__pyx_n_s_mju_cholSolve
#define __pyx_n_s_mju_cholUpdate __pyx_mstate_global->__pyx_n_s_mju_cholUpdate
#define __pyx_n_s_mju_clearHandlers __pyx_mstate_global->__pyx_n_s_mju_clearHandlers
#define __pyx_n_s_mju_copy __pyx_mstate_global->__pyx_n_s_mju_copy
#define __pyx_n_s_mju_copy3 __pyx_mstate_global->__pyx_n_s_mju_copy3
#define __pyx_n_s_mju_copy4 __pyx_mstate_global->__pyx_n_s_mju_copy4
#define __pyx_n_s_mju_cross __pyx_mstate_global->__pyx_n_s_mju_cross
#define __pyx_n_s_mju_decodePyramid __pyx_mstate_global->__pyx_n_s_mju_decodePyramid
#define __pyx_n_s_mju_derivQuat __pyx_mstate_global->__pyx_n_s_mju_derivQuat
#define __pyx_n_s_mju_dist3 __pyx_mstate_global->__pyx_n_s_mju_dist3
#define __pyx_n_s_mju_dot __pyx_mstate_global->__pyx_n_s_mju_dot
#define __pyx_n_s_mju_dot3 __pyx_mstate_global->__pyx_n_s_mju_dot3
#define __pyx_n_s_mju_eig3 __pyx_mstate_global->__pyx_n_s_mju_eig3
#define __pyx_n_s_mju_encodePyramid __pyx_mstate_global->__pyx_n_s_mju_encodePyramid
#define __pyx_n_s_mju_error __pyx_mstate_global->__pyx_n_s_mju_error
#define __pyx_n_s_mju_error_i __pyx_mstate_global->__pyx_n_s_mju_error_i
#define __pyx_n_s_mju_error_s __pyx_mstate_global->__pyx_n_s_mju_error_s
#define __pyx_n_s_mju_insertionSort __pyx_mstate_global->__pyx_n_s_mju_insertionSort
#define __pyx_n_s_mju_insertionSortInt __pyx_mstate_global->__pyx_n_s_mju_insertionSortInt
#define __pyx_n_s_mju_isBad __pyx_mstate_global->__pyx_n_s_mju_isBad
#define __pyx_n_s_mju_isZero __pyx_mstate_global->__pyx_n_s_mju_isZero
#define __pyx_n_s_mju_mat2Quat __pyx_mstate_global->__pyx_n_s_mju_mat2Quat
#define __pyx_n_s_mju_max __pyx_mstate_global->__pyx_n_s_mju_max
#define __pyx_n_s_mju_min __pyx_mstate_global->__pyx_n_s_mju_min
#define __pyx_n_s_mju_mulMatMat __pyx_mstate_global->__pyx_n_s_mju_mulMatMat
#define __pyx_n_s_mju_mulMatMatT __pyx_mstate_global->__pyx_n_s_mju_mulMatMatT
#define __pyx_n_s_mju_mulMatTMat __pyx_mstate_global->__pyx_n_s_mju_mulMatTMat
#define __pyx_n_s_mju_mulMatTVec __pyx_mstate_global->__pyx_n_s_mju_mulMatTVec
#define __pyx_n_s_mju_mulMatVec __pyx_mstate_global->__pyx_n_s_mju_mulMatVec
#define __pyx_n_s_mju_mulPose __pyx_mstate_global->__pyx_n_s_mju_mulPose
#define __pyx_n_s_mju_mulQuat __pyx_mstate_global->__pyx_n_s_mju_mulQuat
#define __pyx_n_s_mju_mulQuatAxis __pyx_mstate_global->__pyx_n_s_mju_mulQuatAxis
#define __pyx_n_s_mju_muscleBias __pyx_mstate_global->__pyx_n_s_mju_muscleBias
#define __pyx_n_s_mju_muscleDynamics __pyx_mstate_global->__pyx_n_s_mju_muscleDynamics
#define __pyx_n_s_mju_muscleGain __pyx_mstate_global->__pyx_n_s_mju_muscleGain
#define __pyx_n_s_mju_negPose __pyx_mstate_global->__pyx_n_s_mju_negPose
#define __pyx_n_s_mju_negQuat __pyx_mstate_global->__pyx_n_s_mju_negQuat
#define __pyx_n_s_mju_norm __pyx_mstate_global->__pyx_n_s_mju_norm
#define __pyx_n_s_mju_norm3 __pyx_mstate_global->__pyx_n_s_mju_norm3
#define __pyx_n_s_mju_normalize __pyx_mstate_global->__pyx_n_s_mju_normalize
#define __pyx_n_s_mju_normalize3 __pyx_mstate_global->__pyx_n_s_mju_normalize3
#define __pyx_n_s_mju_normalize4 __pyx_mstate_global->__pyx_n_s_mju_normalize4
#define __pyx_n_s_mju_printMat __pyx_mstate_global->__pyx_n_s_mju_printMat
#define __pyx_n_s_mju_printMatSparse __pyx_mstate_global->__pyx_n_s_mju_printMatSparse
#define __pyx_n_s_mju_quat2Mat __pyx_mstate_global->__pyx_n_s_mju_quat2Mat
#define __pyx_n_s_mju_quat2Vel __pyx_mstate_global->__pyx_n_s_mju_quat2Vel
#define __pyx_n_s_mju_quatIntegrate __pyx_mstate_global->__pyx_n_s_mju_quatIntegrate
#define __pyx_n_s_mju_quatZ2Vec __pyx_mstate_global->__pyx_n_s_mju_quatZ2Vec
#define __pyx_n_s_mju_rayGeom __pyx_mstate_global->__pyx_n_s_mju_rayGeom
#define __pyx_n_s_mju_rotVecMat __pyx_mstate_global->__pyx_n_s_mju_rotVecMat
#define __pyx_n_s_mju_rotVecMatT __pyx_mstate_global->__pyx_n_s_mju_rotVecMatT
#define __pyx_n_s_mju_rotVecQuat __pyx_mstate_global->__pyx_n_s_mju_rotVecQuat
#define __pyx_n_s_mju_round __pyx_mstate_global->__pyx_n_s_mju_round
#define __pyx_n_s_mju_scl __pyx_mstate_global->__pyx_n_s_mju_scl
#define __pyx_n_s_mju_scl3 __pyx_mstate_global->__pyx_n_s_mju_scl3
#define __pyx_n_s_mju_sigmoid __pyx_mstate_global->__pyx_n_s_mju_sigmoid
#define __pyx_n_s_mju_sign __pyx_mstate_global->__pyx_n_s_mju_sign
#define __pyx_n_s_mju_springDamper __pyx_mstate_global->__pyx_n_s_mju_springDamper
#define __pyx_n_s_mju_sqrMatTD __pyx_mstate_global->__pyx_n_s_mju_sqrMatTD
#define __pyx_n_s_mju_standardNormal __pyx_mstate_global->__pyx_n_s_mju_standardNormal
#define __pyx_n_s_mju_str2Type __pyx_mstate_global->__pyx_n_s_mju_str2Type
#define __pyx_n_s_mju_sub __pyx_mstate_global->__pyx_n_s_mju_sub
#define __pyx_n_s_mju_sub3 __pyx_mstate_global->__pyx_n_s_mju_sub3
#define __pyx_n_s_mju_subFrom __pyx_mstate_global->__pyx_n_s_mju_subFrom
#define __pyx_n_s_mju_subFrom3 __pyx_mstate_global->__pyx_n_s_mju_subFrom3
#define __pyx_n_s_mju_subQuat __pyx_mstate_global->__pyx_n_s_mju_subQuat
#define __pyx_n_s_mju_sum __pyx_mstate_global->__pyx_n_s_mju_sum
#define __pyx_n_s_mju_transformSpatial __pyx_mstate_global->__pyx_n_s_mju_transformSpatial
#define __pyx_n_s_mju_transpose __pyx_mstate_global->__pyx_n_s_mju_transpose
#define __pyx_n_s_mju_trnVecPose __pyx_mstate_global->__pyx_n_s_mju_trnVecPose
#define __pyx_n_s_mju_unit4 __pyx_mstate_global->__pyx_n_s_mju_unit4
#define __pyx_n_s_mju_warning __pyx_mstate_global->__pyx_n_s_mju_warning
#define __pyx_n_s_mju_warning_i __pyx_mstate_global->__pyx_n_s_mju_warning_i
#define __pyx_n_s_mju_warning_s __pyx_mstate_global->__pyx_n_s_mju_warning_s
#define __pyx_n_s_mju_writeLog __pyx_mstate_global->__pyx_n_s_mju_writeLog
#define __pyx_n_s_mju_zero __pyx_mstate_global->__pyx_n_s_mju_zero
#define __pyx_n_s_mju_zero3 __pyx_mstate_global->__pyx_n_s_mju_zero3
#define __pyx_n_s_mju_zero4 __pyx_mstate_global->__pyx_n_s_mju_zero4
#define __pyx_n_s_mjui_add __pyx_mstate_global->__pyx_n_s_mjui_add
#define __pyx_n_s_mjui_addToSection __pyx_mstate_global->__pyx_n_s_mjui_addToSection
#define __pyx_n_s_mjui_event __pyx_mstate_global->__pyx_n_s_mjui_event
#define __pyx_n_s_mjui_render __pyx_mstate_global->__pyx_n_s_mjui_render
#define __pyx_n_s_mjui_resize __pyx_mstate_global->__pyx_n_s_mjui_resize
#define __pyx_n_s_mjui_update __pyx_mstate_global->__pyx_n_s_mjui_update
#define __pyx_kp_u_mjvGeom_doesn_t_have_field_s __pyx_mstate_global->__pyx_kp_u_mjvGeom_doesn_t_have_field_s
#define __pyx_kp_u_mjvGeom_has_attr_but_type_is_inv __pyx_mstate_global->__pyx_kp_u_mjvGeom_has_attr_but_type_is_inv
#define __pyx_n_s_mjv_addGeoms __pyx_mstate_global->__pyx_n_s_mjv_addGeoms
#define __pyx_n_s_mjv_alignToCamera __pyx_mstate_global->__pyx_n_s_mjv_alignToCamera
#define __pyx_n_s_mjv_applyPerturbForce __pyx_mstate_global->__pyx_n_s_mjv_applyPerturbForce
#define __pyx_n_s_mjv_applyPerturbPose __pyx_mstate_global->__pyx_n_s_mjv_applyPerturbPose
#define __pyx_n_s_mjv_cameraInModel __pyx_mstate_global->__pyx_n_s_mjv_cameraInModel
#define __pyx_n_s_mjv_cameraInRoom __pyx_mstate_global->__pyx_n_s_mjv_cameraInRoom
#define __pyx_n_s_mjv_defaultCamera __pyx_mstate_global->__pyx_n_s_mjv_defaultCamera
#define __pyx_n_s_mjv_defaultFigure __pyx_mstate_global->__pyx_n_s_mjv_defaultFigure
#define __pyx_n_s_mjv_defaultOption __pyx_mstate_global->__pyx_n_s_mjv_defaultOption
#define __pyx_n_s_mjv_defaultPerturb __pyx_mstate_global->__pyx_n_s_mjv_defaultPerturb
#define __pyx_n_s_mjv_defaultScene __pyx_mstate_global->__pyx_n_s_mjv_defaultScene
#define __pyx_n_s_mjv_freeScene __pyx_mstate_global->__pyx_n_s_mjv_freeScene
#define __pyx_n_s_mjv_frustumHeight __pyx_mstate_global->__pyx_n_s_mjv_frustumHeight
#define __pyx_n_s_mjv_initPerturb __pyx_mstate_global->__pyx_n_s_mjv_initPerturb
#define __pyx_n_s_mjv_makeConnector __pyx_mstate_global->__pyx_n_s_mjv_makeConnector
#define __pyx_n_s_mjv_makeLights __pyx_mstate_global->__pyx_n_s_mjv_makeLights
#define __pyx_n_s_mjv_makeScene __pyx_mstate_global->__pyx_n_s_mjv_makeScene
#define __pyx_n_s_mjv_model2room __pyx_mstate_global->__pyx_n_s_mjv_model2room
#define __pyx_n_s_mjv_moveCamera __pyx_mstate_global->__pyx_n_s_mjv_moveCamera
#define __pyx_n_s_mjv_moveModel __pyx_mstate_global->__pyx_n_s_mjv_moveModel
#define __pyx_n_s_mjv_movePerturb __pyx_mstate_global->__pyx_n_s_mjv_movePerturb
#define __pyx_n_s_mjv_room2model __pyx_mstate_global->__pyx_n_s_mjv_room2model
#define __pyx_n_s_mjv_select __pyx_mstate_global->__pyx_n_s_mjv_select
#define __pyx_n_s_mjv_updateCamera __pyx_mstate_global->__pyx_n_s_mjv_updateCamera
#define __pyx_n_s_mjv_updateScene __pyx_mstate_global->__pyx_n_s_mjv_updateScene
#define __pyx_n_s_mjv_updateSkin __pyx_mstate_global->__pyx_n_s_mjv_updateSkin
#define __pyx_n_s_mocap_id __pyx_mstate_global->__pyx_n_s_mocap_id
#define __pyx_n_s_mocap_pos __pyx_mstate_global->__pyx_n_s_mocap_pos
#define __pyx_n_s_mocap_quat __pyx_mstate_global->__pyx_n_s_mocap_quat
#define __pyx_n_s_mode __pyx_mstate_global->__pyx_n_s_mode
#define __pyx_n_s_model __pyx_mstate_global->__pyx_n_s_model
#define __pyx_kp_u_model_mjb __pyx_mstate_global->__pyx_kp_u_model_mjb
#define __pyx_kp_u_model_xml __pyx_mstate_global->__pyx_kp_u_model_xml
#define __pyx_n_s_modelpos __pyx_mstate_global->__pyx_n_s_modelpos
#define __pyx_n_s_modelquat __pyx_mstate_global->__pyx_n_s_modelquat
#define __pyx_n_s_module __pyx_mstate_global->__pyx_n_s_module
#define __pyx_n_s_move_camera __pyx_mstate_global->__pyx_n_s_move_camera
#define __pyx_n_s_mro_entries __pyx_mstate_global->__pyx_n_s_mro_entries
#define __pyx_n_s_msg __pyx_mstate_global->__pyx_n_s_msg
#define __pyx_n_s_mu __pyx_mstate_global->__pyx_n_s_mu
#define __pyx_n_u_mujoco __pyx_mstate_global->__pyx_n_u_mujoco
#define __pyx_n_s_mujoco_node __pyx_mstate_global->__pyx_n_s_mujoco_node
#define __pyx_n_s_mujoco_path __pyx_mstate_global->__pyx_n_s_mujoco_path
#define __pyx_n_u_mujoco_py __pyx_mstate_global->__pyx_n_u_mujoco_py
#define __pyx_n_s_mujoco_py_builder __pyx_mstate_global->__pyx_n_s_mujoco_py_builder
#define __pyx_n_s_mujoco_py_cymj __pyx_mstate_global->__pyx_n_s_mujoco_py_cymj
#define __pyx_kp_s_mujoco_py_cymj_pyx __pyx_mstate_global->__pyx_kp_s_mujoco_py_cymj_pyx
#define __pyx_n_s_mujoco_py_generated __pyx_mstate_global->__pyx_n_s_mujoco_py_generated
#define __pyx_kp_s_mujoco_py_generated_wrappers_pxi __pyx_mstate_global->__pyx_kp_s_mujoco_py_generated_wrappers_pxi
#define __pyx_kp_s_mujoco_py_mjbatchrenderer_pyx __pyx_mstate_global->__pyx_kp_s_mujoco_py_mjbatchrenderer_pyx
#define __pyx_kp_s_mujoco_py_mjpid_pyx __pyx_mstate_global->__pyx_kp_s_mujoco_py_mjpid_pyx
#define __pyx_kp_s_mujoco_py_mjrendercontext_pyx __pyx_mstate_global->__pyx_kp_s_mujoco_py_mjrendercontext_pyx
#define __pyx_kp_s_mujoco_py_mjsim_pyx __pyx_mstate_global->__pyx_kp_s_mujoco_py_mjsim_pyx
#define __pyx_kp_s_mujoco_py_mjsimstate_pyx __pyx_mstate_global->__pyx_kp_s_mujoco_py_mjsimstate_pyx
#define __pyx_n_s_mujoco_py_mjviewer __pyx_mstate_global->__pyx_n_s_mujoco_py_mjviewer
#define __pyx_kp_s_mujoco_py_opengl_context_pyx __pyx_mstate_global->__pyx_kp_s_mujoco_py_opengl_context_pyx
#define __pyx_n_s_mujoco_py_utils __pyx_mstate_global->__pyx_n_s_mujoco_py_utils
#define __pyx_n_s_n __pyx_mstate_global->__pyx_n_s_n
#define __pyx_n_s_nM __pyx_mstate_global->__pyx_n_s_nM
#define __pyx_n_s_na __pyx_mstate_global->__pyx_n_s_na
#define __pyx_n_s_name __pyx_mstate_global->__pyx_n_s_name
#define __pyx_n_s_name_2 __pyx_mstate_global->__pyx_n_s_name_2
#define __pyx_n_s_namedtuple __pyx_mstate_global->__pyx_n_s_namedtuple
#define __pyx_kp_u_names_must_all_be_strings __pyx_mstate_global->__pyx_kp_u_names_must_all_be_strings
#define __pyx_n_s_nbody __pyx_mstate_global->__pyx_n_s_nbody
#define __pyx_n_s_nc __pyx_mstate_global->__pyx_n_s_nc
#define __pyx_n_s_ncam __pyx_mstate_global->__pyx_n_s_ncam
#define __pyx_n_s_nconmax __pyx_mstate_global->__pyx_n_s_nconmax
#define __pyx_n_s_ndim __pyx_mstate_global->__pyx_n_s_ndim
#define __pyx_n_s_ne __pyx_mstate_global->__pyx_n_s_ne
#define __pyx_n_s_ne_2 __pyx_mstate_global->__pyx_n_s_ne_2
#define __pyx_n_s_nefc __pyx_mstate_global->__pyx_n_s_nefc
#define __pyx_n_s_new __pyx_mstate_global->__pyx_n_s_new
#define __pyx_n_s_new_height __pyx_mstate_global->__pyx_n_s_new_height
#define __pyx_n_s_new_model __pyx_mstate_global->__pyx_n_s_new_model
#define __pyx_n_s_new_sim __pyx_mstate_global->__pyx_n_s_new_sim
#define __pyx_n_s_new_width __pyx_mstate_global->__pyx_n_s_new_width
#define __pyx_n_s_newmass __pyx_mstate_global->__pyx_n_s_newmass
#define __pyx_n_s_newpos __pyx_mstate_global->__pyx_n_s_newpos
#define __pyx_n_s_ngeom __pyx_mstate_global->__pyx_n_s_ngeom
#define __pyx_n_s_njmax __pyx_mstate_global->__pyx_n_s_njmax
#define __pyx_n_s_njnt __pyx_mstate_global->__pyx_n_s_njnt
#define __pyx_n_s_nlight __pyx_mstate_global->__pyx_n_s_nlight
#define __pyx_n_s_nmocap __pyx_mstate_global->__pyx_n_s_nmocap
#define __pyx_kp_s_no_default___reduce___due_to_non __pyx_mstate_global->__pyx_kp_s_no_default___reduce___due_to_non
#define __pyx_n_s_np __pyx_mstate_global->__pyx_n_s_np
#define __pyx_n_s_nq __pyx_mstate_global->__pyx_n_s_nq
#define __pyx_n_s_nr __pyx_mstate_global->__pyx_n_s_nr
#define __pyx_n_s_nrect __pyx_mstate_global->__pyx_n_s_nrect
#define __pyx_n_s_nsensordata __pyx_mstate_global->__pyx_n_s_nsensordata
#define __pyx_n_s_nsite __pyx_mstate_global->__pyx_n_s_nsite
#define __pyx_n_s_nsubsteps __pyx_mstate_global->__pyx_n_s_nsubsteps
#define __pyx_n_s_ntendon __pyx_mstate_global->__pyx_n_s_ntendon
#define __pyx_n_s_nu __pyx_mstate_global->__pyx_n_s_nu
#define __pyx_n_s_num2 __pyx_mstate_global->__pyx_n_s_num2
#define __pyx_n_s_numbers __pyx_mstate_global->__pyx_n_s_numbers
#define __pyx_n_s_numpy __pyx_mstate_global->__pyx_n_s_numpy
#define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_mstate_global->__pyx_kp_u_numpy__core_multiarray_failed_to
#define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo
#define __pyx_n_s_nuser_actuator __pyx_mstate_global->__pyx_n_s_nuser_actuator
#define __pyx_kp_u_nuser_actuator_is_not_set_large __pyx_mstate_global->__pyx_kp_u_nuser_actuator_is_not_set_large
#define __pyx_n_s_nuserdata __pyx_mstate_global->__pyx_n_s_nuserdata
#define __pyx_kp_u_nuserdata_is_not_set_large_enoug __pyx_mstate_global->__pyx_kp_u_nuserdata_is_not_set_large_enoug
#define __pyx_n_s_nv __pyx_mstate_global->__pyx_n_s_nv
#define __pyx_n_s_nwrap __pyx_mstate_global->__pyx_n_s_nwrap
#define __pyx_n_s_obj __pyx_mstate_global->__pyx_n_s_obj
#define __pyx_n_s_object __pyx_mstate_global->__pyx_n_s_object
#define __pyx_n_s_objid __pyx_mstate_global->__pyx_n_s_objid
#define __pyx_n_s_objtype __pyx_mstate_global->__pyx_n_s_objtype
#define __pyx_n_s_offscreen __pyx_mstate_global->__pyx_n_s_offscreen
#define __pyx_n_u_offscreen __pyx_mstate_global->__pyx_n_u_offscreen
#define __pyx_n_s_old_dyld_library_path __pyx_mstate_global->__pyx_n_s_old_dyld_library_path
#define __pyx_n_s_oldpos __pyx_mstate_global->__pyx_n_s_oldpos
#define __pyx_n_s_ones __pyx_mstate_global->__pyx_n_s_ones
#define __pyx_n_s_open __pyx_mstate_global->__pyx_n_s_open
#define __pyx_n_s_opengl_backend __pyx_mstate_global->__pyx_n_s_opengl_backend
#define __pyx_n_s_opengl_context __pyx_mstate_global->__pyx_n_s_opengl_context
#define __pyx_n_s_opt __pyx_mstate_global->__pyx_n_s_opt
#define __pyx_n_s_os __pyx_mstate_global->__pyx_n_s_os
#define __pyx_n_s_other __pyx_mstate_global->__pyx_n_s_other
#define __pyx_n_s_output __pyx_mstate_global->__pyx_n_s_output
#define __pyx_n_s_overlay __pyx_mstate_global->__pyx_n_s_overlay
#define __pyx_n_s_overlay2 __pyx_mstate_global->__pyx_n_s_overlay2
#define __pyx_n_s_pack __pyx_mstate_global->__pyx_n_s_pack
#define __pyx_n_s_parentNode __pyx_mstate_global->__pyx_n_s_parentNode
#define __pyx_n_s_parseString __pyx_mstate_global->__pyx_n_s_parseString
#define __pyx_n_s_path __pyx_mstate_global->__pyx_n_s_path
#define __pyx_n_s_pbo_depth __pyx_mstate_global->__pyx_n_s_pbo_depth
#define __pyx_n_s_pbo_rgb __pyx_mstate_global->__pyx_n_s_pbo_rgb
#define __pyx_n_s_pert __pyx_mstate_global->__pyx_n_s_pert
#define __pyx_n_s_pickle __pyx_mstate_global->__pyx_n_s_pickle
#define __pyx_n_s_platform __pyx_mstate_global->__pyx_n_s_platform
#define __pyx_n_s_pnt __pyx_mstate_global->__pyx_n_s_pnt
#define __pyx_n_s_pnt_view __pyx_mstate_global->__pyx_n_s_pnt_view
#define __pyx_n_s_point __pyx_mstate_global->__pyx_n_s_point
#define __pyx_n_s_pop __pyx_mstate_global->__pyx_n_s_pop
#define __pyx_n_s_pos __pyx_mstate_global->__pyx_n_s_pos
#define __pyx_n_s_pos0 __pyx_mstate_global->__pyx_n_s_pos0
#define __pyx_n_s_pos1 __pyx_mstate_global->__pyx_n_s_pos1
#define __pyx_n_s_pos2 __pyx_mstate_global->__pyx_n_s_pos2
#define __pyx_n_s_posres __pyx_mstate_global->__pyx_n_s_posres
#define __pyx_n_s_prepare __pyx_mstate_global->__pyx_n_s_prepare
#define __pyx_n_s_prepare_render_context __pyx_mstate_global->__pyx_n_s_prepare_render_context
#define __pyx_n_s_previous_errors __pyx_mstate_global->__pyx_n_s_previous_errors
#define __pyx_n_s_print __pyx_mstate_global->__pyx_n_s_print
#define __pyx_n_s_prm __pyx_mstate_global->__pyx_n_s_prm
#define __pyx_n_s_property __pyx_mstate_global->__pyx_n_s_property
#define __pyx_n_s_ptr __pyx_mstate_global->__pyx_n_s_ptr
#define __pyx_n_s_push __pyx_mstate_global->__pyx_n_s_push
#define __pyx_n_s_pycuda __pyx_mstate_global->__pyx_n_s_pycuda
#define __pyx_n_s_pycuda_driver __pyx_mstate_global->__pyx_n_s_pycuda_driver
#define __pyx_n_s_pycuda_gl __pyx_mstate_global->__pyx_n_s_pycuda_gl
#define __pyx_n_s_pyramid __pyx_mstate_global->__pyx_n_s_pyramid
#define __pyx_n_s_pyx_PickleError __pyx_mstate_global->__pyx_n_s_pyx_PickleError
#define __pyx_n_s_pyx_checksum __pyx_mstate_global->__pyx_n_s_pyx_checksum
#define __pyx_n_s_pyx_result __pyx_mstate_global->__pyx_n_s_pyx_result
#define __pyx_n_s_pyx_state __pyx_mstate_global->__pyx_n_s_pyx_state
#define __pyx_n_s_pyx_type __pyx_mstate_global->__pyx_n_s_pyx_type
#define __pyx_n_s_pyx_unpickle_Enum __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Enum
#define __pyx_n_s_pyx_vtable __pyx_mstate_global->__pyx_n_s_pyx_vtable
#define __pyx_n_s_qa __pyx_mstate_global->__pyx_n_s_qa
#define __pyx_n_s_qb __pyx_mstate_global->__pyx_n_s_qb
#define __pyx_n_s_qfrc_target __pyx_mstate_global->__pyx_n_s_qfrc_target
#define __pyx_n_s_qpos __pyx_mstate_global->__pyx_n_s_qpos
#define __pyx_n_u_qpos __pyx_mstate_global->__pyx_n_u_qpos
#define __pyx_n_s_qpos1 __pyx_mstate_global->__pyx_n_s_qpos1
#define __pyx_n_s_qpos2 __pyx_mstate_global->__pyx_n_s_qpos2
#define __pyx_n_s_qualname __pyx_mstate_global->__pyx_n_s_qualname
#define __pyx_n_s_quat __pyx_mstate_global->__pyx_n_s_quat
#define __pyx_n_s_quat1 __pyx_mstate_global->__pyx_n_s_quat1
#define __pyx_n_s_quat2 __pyx_mstate_global->__pyx_n_s_quat2
#define __pyx_n_s_quatres __pyx_mstate_global->__pyx_n_s_quatres
#define __pyx_n_s_quiet __pyx_mstate_global->__pyx_n_s_quiet
#define __pyx_n_s_qvel __pyx_mstate_global->__pyx_n_s_qvel
#define __pyx_n_u_qvel __pyx_mstate_global->__pyx_n_u_qvel
#define __pyx_n_s_r1 __pyx_mstate_global->__pyx_n_s_r1
#define __pyx_n_s_r2 __pyx_mstate_global->__pyx_n_s_r2
#define __pyx_n_s_range __pyx_mstate_global->__pyx_n_s_range
#define __pyx_n_s_ravel __pyx_mstate_global->__pyx_n_s_ravel
#define __pyx_n_s_ray __pyx_mstate_global->__pyx_n_s_ray
#define __pyx_n_s_ray_fast_group __pyx_mstate_global->__pyx_n_s_ray_fast_group
#define __pyx_n_s_ray_fast_nogroup __pyx_mstate_global->__pyx_n_s_ray_fast_nogroup
#define __pyx_n_u_rb __pyx_mstate_global->__pyx_n_u_rb
#define __pyx_n_s_read __pyx_mstate_global->__pyx_n_s_read
#define __pyx_n_s_read_cuda __pyx_mstate_global->__pyx_n_s_read_cuda
#define __pyx_n_s_read_nocuda __pyx_mstate_global->__pyx_n_s_read_nocuda
#define __pyx_n_s_read_pixels __pyx_mstate_global->__pyx_n_s_read_pixels
#define __pyx_n_s_read_pixels_depth __pyx_mstate_global->__pyx_n_s_read_pixels_depth
#define __pyx_n_s_rect __pyx_mstate_global->__pyx_n_s_rect
#define __pyx_n_s_reduce __pyx_mstate_global->__pyx_n_s_reduce
#define __pyx_n_s_reduce_cython __pyx_mstate_global->__pyx_n_s_reduce_cython
#define __pyx_n_s_reduce_ex __pyx_mstate_global->__pyx_n_s_reduce_ex
#define __pyx_n_s_refresh_rate __pyx_mstate_global->__pyx_n_s_refresh_rate
#define __pyx_n_s_register __pyx_mstate_global->__pyx_n_s_register
#define __pyx_n_s_reldx __pyx_mstate_global->__pyx_n_s_reldx
#define __pyx_n_s_reldy __pyx_mstate_global->__pyx_n_s_reldy
#define __pyx_n_s_relx __pyx_mstate_global->__pyx_n_s_relx
#define __pyx_n_s_rely __pyx_mstate_global->__pyx_n_s_rely
#define __pyx_n_s_removeChild __pyx_mstate_global->__pyx_n_s_removeChild
#define __pyx_n_s_remove_empty_lines __pyx_mstate_global->__pyx_n_s_remove_empty_lines
#define __pyx_n_s_render __pyx_mstate_global->__pyx_n_s_render
#define __pyx_n_s_render_callback __pyx_mstate_global->__pyx_n_s_render_callback
#define __pyx_n_s_render_context __pyx_mstate_global->__pyx_n_s_render_context
#define __pyx_n_s_render_contexts __pyx_mstate_global->__pyx_n_s_render_contexts
#define __pyx_n_s_render_swap_callback __pyx_mstate_global->__pyx_n_s_render_swap_callback
#define __pyx_n_s_res __pyx_mstate_global->__pyx_n_s_res
#define __pyx_n_s_reset __pyx_mstate_global->__pyx_n_s_reset
#define __pyx_n_s_reshape __pyx_mstate_global->__pyx_n_s_reshape
#define __pyx_n_s_resolution __pyx_mstate_global->__pyx_n_s_resolution
#define __pyx_n_s_result __pyx_mstate_global->__pyx_n_s_result
#define __pyx_n_s_result_xml __pyx_mstate_global->__pyx_n_s_result_xml
#define __pyx_n_s_ret __pyx_mstate_global->__pyx_n_s_ret
#define __pyx_n_s_ret_img __pyx_mstate_global->__pyx_n_s_ret_img
#define __pyx_n_s_rgb_arr __pyx_mstate_global->__pyx_n_s_rgb_arr
#define __pyx_n_s_rgb_img __pyx_mstate_global->__pyx_n_s_rgb_img
#define __pyx_n_s_rgb_view __pyx_mstate_global->__pyx_n_s_rgb_view
#define __pyx_n_s_roompos __pyx_mstate_global->__pyx_n_s_roompos
#define __pyx_n_s_roomquat __pyx_mstate_global->__pyx_n_s_roomquat
#define __pyx_n_s_roomup __pyx_mstate_global->__pyx_n_s_roomup
#define __pyx_n_s_rotnew2old __pyx_mstate_global->__pyx_n_s_rotnew2old
#define __pyx_n_s_rowadr __pyx_mstate_global->__pyx_n_s_rowadr
#define __pyx_n_s_rownnz __pyx_mstate_global->__pyx_n_s_rownnz
#define __pyx_kp_u_s_Failed_to_load_MJB __pyx_mstate_global->__pyx_kp_u_s_Failed_to_load_MJB
#define __pyx_n_s_sameframe __pyx_mstate_global->__pyx_n_s_sameframe
#define __pyx_n_s_samples __pyx_mstate_global->__pyx_n_s_samples
#define __pyx_n_s_save __pyx_mstate_global->__pyx_n_s_save
#define __pyx_n_s_save_locals_str_array __pyx_mstate_global->__pyx_n_s_save_locals_str_array
#define __pyx_n_s_scale __pyx_mstate_global->__pyx_n_s_scale
#define __pyx_n_s_schema_example __pyx_mstate_global->__pyx_n_s_schema_example
#define __pyx_n_s_schema_val __pyx_mstate_global->__pyx_n_s_schema_val
#define __pyx_n_s_scl __pyx_mstate_global->__pyx_n_s_scl
#define __pyx_n_s_scn __pyx_mstate_global->__pyx_n_s_scn
#define __pyx_n_s_sect __pyx_mstate_global->__pyx_n_s_sect
#define __pyx_n_s_section __pyx_mstate_global->__pyx_n_s_section
#define __pyx_n_s_seg_ids __pyx_mstate_global->__pyx_n_s_seg_ids
#define __pyx_n_s_seg_img __pyx_mstate_global->__pyx_n_s_seg_img
#define __pyx_n_s_segmentation __pyx_mstate_global->__pyx_n_s_segmentation
#define __pyx_n_s_self __pyx_mstate_global->__pyx_n_s_self
#define __pyx_kp_s_self_ptr_cannot_be_converted_to __pyx_mstate_global->__pyx_kp_s_self_ptr_cannot_be_converted_to
#define __pyx_n_s_selpnt __pyx_mstate_global->__pyx_n_s_selpnt
#define __pyx_n_s_send __pyx_mstate_global->__pyx_n_s_send
#define __pyx_n_s_sensor_id2name __pyx_mstate_global->__pyx_n_s_sensor_id2name
#define __pyx_n_s_sensor_name2id __pyx_mstate_global->__pyx_n_s_sensor_name2id
#define __pyx_n_s_setAttribute __pyx_mstate_global->__pyx_n_s_setAttribute
#define __pyx_n_s_set_buffer_size __pyx_mstate_global->__pyx_n_s_set_buffer_size
#define __pyx_n_s_set_constants __pyx_mstate_global->__pyx_n_s_set_constants
#define __pyx_n_s_set_error_callback __pyx_mstate_global->__pyx_n_s_set_error_callback
#define __pyx_n_s_set_joint_qpos __pyx_mstate_global->__pyx_n_s_set_joint_qpos
#define __pyx_n_s_set_joint_qvel __pyx_mstate_global->__pyx_n_s_set_joint_qvel
#define __pyx_n_s_set_mocap_pos __pyx_mstate_global->__pyx_n_s_set_mocap_pos
#define __pyx_n_s_set_mocap_quat __pyx_mstate_global->__pyx_n_s_set_mocap_quat
#define __pyx_n_s_set_mujoco_buffers __pyx_mstate_global->__pyx_n_s_set_mujoco_buffers
#define __pyx_n_s_set_name __pyx_mstate_global->__pyx_n_s_set_name
#define __pyx_n_s_set_pid_control __pyx_mstate_global->__pyx_n_s_set_pid_control
#define __pyx_n_s_set_state __pyx_mstate_global->__pyx_n_s_set_state
#define __pyx_n_s_set_state_from_flattened __pyx_mstate_global->__pyx_n_s_set_state_from_flattened
#define __pyx_n_s_set_substep_callback __pyx_mstate_global->__pyx_n_s_set_substep_callback
#define __pyx_n_s_set_userdata_names __pyx_mstate_global->__pyx_n_s_set_userdata_names
#define __pyx_n_s_set_warning_callback __pyx_mstate_global->__pyx_n_s_set_warning_callback
#define __pyx_n_s_set_window_size __pyx_mstate_global->__pyx_n_s_set_window_size
#define __pyx_n_s_set_window_size_2 __pyx_mstate_global->__pyx_n_s_set_window_size_2
#define __pyx_n_s_setpoint __pyx_mstate_global->__pyx_n_s_setpoint
#define __pyx_n_s_setstate __pyx_mstate_global->__pyx_n_s_setstate
#define __pyx_n_s_setstate_cython __pyx_mstate_global->__pyx_n_s_setstate_cython
#define __pyx_n_s_setup_opengl_context __pyx_mstate_global->__pyx_n_s_setup_opengl_context
#define __pyx_n_s_shape __pyx_mstate_global->__pyx_n_s_shape
#define __pyx_n_s_sim __pyx_mstate_global->__pyx_n_s_sim
#define __pyx_n_s_site __pyx_mstate_global->__pyx_n_s_site
#define __pyx_n_s_site_id2name __pyx_mstate_global->__pyx_n_s_site_id2name
#define __pyx_n_s_site_jacp __pyx_mstate_global->__pyx_n_s_site_jacp
#define __pyx_n_s_site_jacr __pyx_mstate_global->__pyx_n_s_site_jacr
#define __pyx_n_s_site_name2id __pyx_mstate_global->__pyx_n_s_site_name2id
#define __pyx_n_s_size __pyx_mstate_global->__pyx_n_s_size
#define __pyx_n_s_skinid __pyx_mstate_global->__pyx_n_s_skinid
#define __pyx_n_s_skipsensor __pyx_mstate_global->__pyx_n_s_skipsensor
#define __pyx_n_s_skipstage __pyx_mstate_global->__pyx_n_s_skipstage
#define __pyx_n_s_slots __pyx_mstate_global->__pyx_n_s_slots
#define __pyx_n_s_solimp __pyx_mstate_global->__pyx_n_s_solimp
#define __pyx_n_s_solref __pyx_mstate_global->__pyx_n_s_solref
#define __pyx_n_s_spec __pyx_mstate_global->__pyx_n_s_spec
#define __pyx_n_s_split __pyx_mstate_global->__pyx_n_s_split
#define __pyx_n_s_src __pyx_mstate_global->__pyx_n_s_src
#define __pyx_n_s_start __pyx_mstate_global->__pyx_n_s_start
#define __pyx_n_s_start_i __pyx_mstate_global->__pyx_n_s_start_i
#define __pyx_n_s_stat __pyx_mstate_global->__pyx_n_s_stat
#define __pyx_n_s_state __pyx_mstate_global->__pyx_n_s_state
#define __pyx_n_s_state_tuple __pyx_mstate_global->__pyx_n_s_state_tuple
#define __pyx_n_s_staticmethod __pyx_mstate_global->__pyx_n_s_staticmethod
#define __pyx_n_s_step __pyx_mstate_global->__pyx_n_s_step
#define __pyx_n_s_step_udd __pyx_mstate_global->__pyx_n_s_step_udd
#define __pyx_n_s_stop __pyx_mstate_global->__pyx_n_s_stop
#define __pyx_n_s_str __pyx_mstate_global->__pyx_n_s_str
#define __pyx_n_s_str_array __pyx_mstate_global->__pyx_n_s_str_array
#define __pyx_kp_s_strided_and_direct __pyx_mstate_global->__pyx_kp_s_strided_and_direct
#define __pyx_kp_s_strided_and_direct_or_indirect __pyx_mstate_global->__pyx_kp_s_strided_and_direct_or_indirect
#define __pyx_kp_s_strided_and_indirect __pyx_mstate_global->__pyx_kp_s_strided_and_indirect
#define __pyx_kp_s_stringsource __pyx_mstate_global->__pyx_kp_s_stringsource
#define __pyx_n_s_struct __pyx_mstate_global->__pyx_n_s_struct
#define __pyx_n_s_substep_callback __pyx_mstate_global->__pyx_n_s_substep_callback
#define __pyx_n_s_suffix __pyx_mstate_global->__pyx_n_s_suffix
#define __pyx_n_s_super __pyx_mstate_global->__pyx_n_s_super
#define __pyx_n_s_swap_buffers __pyx_mstate_global->__pyx_n_s_swap_buffers
#define __pyx_n_s_sys __pyx_mstate_global->__pyx_n_s_sys
#define __pyx_n_s_tagName __pyx_mstate_global->__pyx_n_s_tagName
#define __pyx_n_s_target_height __pyx_mstate_global->__pyx_n_s_target_height
#define __pyx_n_s_target_width __pyx_mstate_global->__pyx_n_s_target_width
#define __pyx_n_s_td __pyx_mstate_global->__pyx_n_s_td
#define __pyx_n_s_tempfile __pyx_mstate_global->__pyx_n_s_tempfile
#define __pyx_n_s_tendon_id2name __pyx_mstate_global->__pyx_n_s_tendon_id2name
#define __pyx_n_s_tendon_name2id __pyx_mstate_global->__pyx_n_s_tendon_name2id
#define __pyx_n_s_test __pyx_mstate_global->__pyx_n_s_test
#define __pyx_n_s_tex_id __pyx_mstate_global->__pyx_n_s_tex_id
#define __pyx_n_s_texid __pyx_mstate_global->__pyx_n_s_texid
#define __pyx_n_s_text __pyx_mstate_global->__pyx_n_s_text
#define __pyx_n_s_text1 __pyx_mstate_global->__pyx_n_s_text1
#define __pyx_n_s_text2 __pyx_mstate_global->__pyx_n_s_text2
#define __pyx_n_s_threading __pyx_mstate_global->__pyx_n_s_threading
#define __pyx_n_s_throw __pyx_mstate_global->__pyx_n_s_throw
#define __pyx_n_s_time __pyx_mstate_global->__pyx_n_s_time
#define __pyx_n_u_time __pyx_mstate_global->__pyx_n_u_time
#define __pyx_kp_u_time_qpos_qvel_act_udd_state __pyx_mstate_global->__pyx_kp_u_time_qpos_qvel_act_udd_state
#define __pyx_n_s_toprettyxml __pyx_mstate_global->__pyx_n_s_toprettyxml
#define __pyx_n_s_torque __pyx_mstate_global->__pyx_n_s_torque
#define __pyx_n_s_traceback __pyx_mstate_global->__pyx_n_s_traceback
#define __pyx_n_s_type __pyx_mstate_global->__pyx_n_s_type
#define __pyx_n_s_udd_callback __pyx_mstate_global->__pyx_n_s_udd_callback
#define __pyx_n_s_udd_state __pyx_mstate_global->__pyx_n_s_udd_state
#define __pyx_n_s_ui __pyx_mstate_global->__pyx_n_s_ui
#define __pyx_n_s_uint16 __pyx_mstate_global->__pyx_n_s_uint16
#define __pyx_n_s_uint8 __pyx_mstate_global->__pyx_n_s_uint8
#define __pyx_kp_s_unable_to_allocate_array_data __pyx_mstate_global->__pyx_kp_s_unable_to_allocate_array_data
#define __pyx_kp_s_unable_to_allocate_shape_and_str __pyx_mstate_global->__pyx_kp_s_unable_to_allocate_shape_and_str
#define __pyx_n_s_unflatten_dict __pyx_mstate_global->__pyx_n_s_unflatten_dict
#define __pyx_n_s_unmap __pyx_mstate_global->__pyx_n_s_unmap
#define __pyx_n_s_unpack __pyx_mstate_global->__pyx_n_s_unpack
#define __pyx_n_s_unregister __pyx_mstate_global->__pyx_n_s_unregister
#define __pyx_n_s_up __pyx_mstate_global->__pyx_n_s_up
#define __pyx_n_s_update __pyx_mstate_global->__pyx_n_s_update
#define __pyx_n_s_update_offscreen_size __pyx_mstate_global->__pyx_n_s_update_offscreen_size
#define __pyx_n_s_update_sim __pyx_mstate_global->__pyx_n_s_update_sim
#define __pyx_n_s_upload_texture __pyx_mstate_global->__pyx_n_s_upload_texture
#define __pyx_n_s_use_cuda __pyx_mstate_global->__pyx_n_s_use_cuda
#define __pyx_n_s_use_cuda_2 __pyx_mstate_global->__pyx_n_s_use_cuda_2
#define __pyx_n_s_userdata __pyx_mstate_global->__pyx_n_s_userdata
#define __pyx_n_s_userdata_id2name __pyx_mstate_global->__pyx_n_s_userdata_id2name
#define __pyx_n_s_userdata_name2id __pyx_mstate_global->__pyx_n_s_userdata_name2id
#define __pyx_n_s_userdata_names __pyx_mstate_global->__pyx_n_s_userdata_names
#define __pyx_n_s_v __pyx_mstate_global->__pyx_n_s_v
#define __pyx_n_s_val __pyx_mstate_global->__pyx_n_s_val
#define __pyx_n_s_val_array __pyx_mstate_global->__pyx_n_s_val_array
#define __pyx_n_s_value __pyx_mstate_global->__pyx_n_s_value
#define __pyx_n_s_values __pyx_mstate_global->__pyx_n_s_values
#define __pyx_n_s_vec __pyx_mstate_global->__pyx_n_s_vec
#define __pyx_n_s_vec1 __pyx_mstate_global->__pyx_n_s_vec1
#define __pyx_n_s_vec2 __pyx_mstate_global->__pyx_n_s_vec2
#define __pyx_n_s_vec_view __pyx_mstate_global->__pyx_n_s_vec_view
#define __pyx_n_s_vel __pyx_mstate_global->__pyx_n_s_vel
#define __pyx_n_s_vel0 __pyx_mstate_global->__pyx_n_s_vel0
#define __pyx_n_s_version_info __pyx_mstate_global->__pyx_n_s_version_info
#define __pyx_n_s_vfs __pyx_mstate_global->__pyx_n_s_vfs
#define __pyx_n_s_viewport __pyx_mstate_global->__pyx_n_s_viewport
#define __pyx_n_s_vis __pyx_mstate_global->__pyx_n_s_vis
#define __pyx_n_s_vopt __pyx_mstate_global->__pyx_n_s_vopt
#define __pyx_n_s_warn __pyx_mstate_global->__pyx_n_s_warn
#define __pyx_n_s_warning __pyx_mstate_global->__pyx_n_s_warning
#define __pyx_n_u_wb __pyx_mstate_global->__pyx_n_u_wb
#define __pyx_n_s_width __pyx_mstate_global->__pyx_n_s_width
#define __pyx_n_s_width_2 __pyx_mstate_global->__pyx_n_s_width_2
#define __pyx_n_s_window __pyx_mstate_global->__pyx_n_s_window
#define __pyx_n_u_window __pyx_mstate_global->__pyx_n_u_window
#define __pyx_n_s_window_hint __pyx_mstate_global->__pyx_n_s_window_hint
#define __pyx_n_s_window_should_close __pyx_mstate_global->__pyx_n_s_window_should_close
#define __pyx_n_s_with_udd __pyx_mstate_global->__pyx_n_s_with_udd
#define __pyx_n_s_wrap_mujoco_warning __pyx_mstate_global->__pyx_n_s_wrap_mujoco_warning
#define __pyx_n_s_wrap_mujoco_warning___enter __pyx_mstate_global->__pyx_n_s_wrap_mujoco_warning___enter
#define __pyx_n_s_wrap_mujoco_warning___exit __pyx_mstate_global->__pyx_n_s_wrap_mujoco_warning___exit
#define __pyx_n_s_wrapped __pyx_mstate_global->__pyx_n_s_wrapped
#define __pyx_n_s_write __pyx_mstate_global->__pyx_n_s_write
#define __pyx_n_s_x __pyx_mstate_global->__pyx_n_s_x
#define __pyx_n_s_xmat __pyx_mstate_global->__pyx_n_s_xmat
#define __pyx_n_u_xml __pyx_mstate_global->__pyx_n_u_xml
#define __pyx_kp_u_xml_2 __pyx_mstate_global->__pyx_kp_u_xml_2
#define __pyx_n_s_xml_dom __pyx_mstate_global->__pyx_n_s_xml_dom
#define __pyx_n_s_xml_str __pyx_mstate_global->__pyx_n_s_xml_str
#define __pyx_n_s_xpos __pyx_mstate_global->__pyx_n_s_xpos
#define __pyx_n_s_xvelp __pyx_mstate_global->__pyx_n_s_xvelp
#define __pyx_n_s_xvelr __pyx_mstate_global->__pyx_n_s_xvelr
#define __pyx_n_s_y __pyx_mstate_global->__pyx_n_s_y
#define __pyx_n_s_zeros __pyx_mstate_global->__pyx_n_s_zeros
#define __pyx_float_0_0 __pyx_mstate_global->__pyx_float_0_0
#define __pyx_float_0_1 __pyx_mstate_global->__pyx_float_0_1
#define __pyx_int_0 __pyx_mstate_global->__pyx_int_0
#define __pyx_int_1 __pyx_mstate_global->__pyx_int_1
#define __pyx_int_2 __pyx_mstate_global->__pyx_int_2
#define __pyx_int_3 __pyx_mstate_global->__pyx_int_3
#define __pyx_int_4 __pyx_mstate_global->__pyx_int_4
#define __pyx_int_6 __pyx_mstate_global->__pyx_int_6
#define __pyx_int_7 __pyx_mstate_global->__pyx_int_7
#define __pyx_int_256 __pyx_mstate_global->__pyx_int_256
#define __pyx_int_1000 __pyx_mstate_global->__pyx_int_1000
#define __pyx_int_65536 __pyx_mstate_global->__pyx_int_65536
#define __pyx_int_112105877 __pyx_mstate_global->__pyx_int_112105877
#define __pyx_int_136983863 __pyx_mstate_global->__pyx_int_136983863
#define __pyx_int_184977713 __pyx_mstate_global->__pyx_int_184977713
#define __pyx_int_neg_1 __pyx_mstate_global->__pyx_int_neg_1
#define __pyx_slice__5 __pyx_mstate_global->__pyx_slice__5
#define __pyx_tuple__4 __pyx_mstate_global->__pyx_tuple__4
#define __pyx_tuple__8 __pyx_mstate_global->__pyx_tuple__8
#define __pyx_tuple__15 __pyx_mstate_global->__pyx_tuple__15
#define __pyx_tuple__16 __pyx_mstate_global->__pyx_tuple__16
#define __pyx_tuple__17 __pyx_mstate_global->__pyx_tuple__17
#define __pyx_tuple__18 __pyx_mstate_global->__pyx_tuple__18
#define __pyx_tuple__19 __pyx_mstate_global->__pyx_tuple__19
#define __pyx_tuple__20 __pyx_mstate_global->__pyx_tuple__20
#define __pyx_tuple__21 __pyx_mstate_global->__pyx_tuple__21
#define __pyx_tuple__22 __pyx_mstate_global->__pyx_tuple__22
#define __pyx_tuple__23 __pyx_mstate_global->__pyx_tuple__23
#define __pyx_tuple__24 __pyx_mstate_global->__pyx_tuple__24
#define __pyx_tuple__25 __pyx_mstate_global->__pyx_tuple__25
#define __pyx_tuple__26 __pyx_mstate_global->__pyx_tuple__26
#define __pyx_tuple__27 __pyx_mstate_global->__pyx_tuple__27
#define __pyx_tuple__28 __pyx_mstate_global->__pyx_tuple__28
#define __pyx_tuple__29 __pyx_mstate_global->__pyx_tuple__29
#define __pyx_tuple__30 __pyx_mstate_global->__pyx_tuple__30
#define __pyx_tuple__31 __pyx_mstate_global->__pyx_tuple__31
#define __pyx_tuple__32 __pyx_mstate_global->__pyx_tuple__32
#define __pyx_tuple__33 __pyx_mstate_global->__pyx_tuple__33
#define __pyx_tuple__35 __pyx_mstate_global->__pyx_tuple__35
#define __pyx_tuple__36 __pyx_mstate_global->__pyx_tuple__36
#define __pyx_tuple__37 __pyx_mstate_global->__pyx_tuple__37
#define __pyx_tuple__38 __pyx_mstate_global->__pyx_tuple__38
#define __pyx_tuple__39 __pyx_mstate_global->__pyx_tuple__39
#define __pyx_tuple__40 __pyx_mstate_global->__pyx_tuple__40
#define __pyx_tuple__42 __pyx_mstate_global->__pyx_tuple__42
#define __pyx_tuple__45 __pyx_mstate_global->__pyx_tuple__45
#define __pyx_tuple__46 __pyx_mstate_global->__pyx_tuple__46
#define __pyx_tuple__47 __pyx_mstate_global->__pyx_tuple__47
#define __pyx_tuple__48 __pyx_mstate_global->__pyx_tuple__48
#define __pyx_tuple__49 __pyx_mstate_global->__pyx_tuple__49
#define __pyx_tuple__50 __pyx_mstate_global->__pyx_tuple__50
#define __pyx_tuple__51 __pyx_mstate_global->__pyx_tuple__51
#define __pyx_tuple__53 __pyx_mstate_global->__pyx_tuple__53
#define __pyx_tuple__54 __pyx_mstate_global->__pyx_tuple__54
#define __pyx_tuple__55 __pyx_mstate_global->__pyx_tuple__55
#define __pyx_tuple__56 __pyx_mstate_global->__pyx_tuple__56
#define __pyx_tuple__57 __pyx_mstate_global->__pyx_tuple__57
#define __pyx_tuple__58 __pyx_mstate_global->__pyx_tuple__58
#define __pyx_tuple__59 __pyx_mstate_global->__pyx_tuple__59
#define __pyx_tuple__60 __pyx_mstate_global->__pyx_tuple__60
#define __pyx_tuple__61 __pyx_mstate_global->__pyx_tuple__61
#define __pyx_tuple__62 __pyx_mstate_global->__pyx_tuple__62
#define __pyx_tuple__63 __pyx_mstate_global->__pyx_tuple__63
#define __pyx_tuple__64 __pyx_mstate_global->__pyx_tuple__64
#define __pyx_tuple__65 __pyx_mstate_global->__pyx_tuple__65
#define __pyx_tuple__66 __pyx_mstate_global->__pyx_tuple__66
#define __pyx_tuple__67 __pyx_mstate_global->__pyx_tuple__67
#define __pyx_tuple__69 __pyx_mstate_global->__pyx_tuple__69
#define __pyx_tuple__71 __pyx_mstate_global->__pyx_tuple__71
#define __pyx_tuple__93 __pyx_mstate_global->__pyx_tuple__93
#define __pyx_tuple__95 __pyx_mstate_global->__pyx_tuple__95
#define __pyx_tuple__117 __pyx_mstate_global->__pyx_tuple__117
#define __pyx_tuple__119 __pyx_mstate_global->__pyx_tuple__119
#define __pyx_tuple__121 __pyx_mstate_global->__pyx_tuple__121
#define __pyx_tuple__123 __pyx_mstate_global->__pyx_tuple__123
#define __pyx_tuple__136 __pyx_mstate_global->__pyx_tuple__136
#define __pyx_tuple__147 __pyx_mstate_global->__pyx_tuple__147
#define __pyx_tuple__149 __pyx_mstate_global->__pyx_tuple__149
#define __pyx_tuple__150 __pyx_mstate_global->__pyx_tuple__150
#define __pyx_tuple__152 __pyx_mstate_global->__pyx_tuple__152
#define __pyx_tuple__154 __pyx_mstate_global->__pyx_tuple__154
#define __pyx_tuple__181 __pyx_mstate_global->__pyx_tuple__181
#define __pyx_tuple__183 __pyx_mstate_global->__pyx_tuple__183
#define __pyx_tuple__187 __pyx_mstate_global->__pyx_tuple__187
#define __pyx_tuple__189 __pyx_mstate_global->__pyx_tuple__189
#define __pyx_tuple__229 __pyx_mstate_global->__pyx_tuple__229
#define __pyx_tuple__232 __pyx_mstate_global->__pyx_tuple__232
#define __pyx_tuple__234 __pyx_mstate_global->__pyx_tuple__234
#define __pyx_tuple__236 __pyx_mstate_global->__pyx_tuple__236
#define __pyx_tuple__238 __pyx_mstate_global->__pyx_tuple__238
#define __pyx_tuple__242 __pyx_mstate_global->__pyx_tuple__242
#define __pyx_tuple__244 __pyx_mstate_global->__pyx_tuple__244
#define __pyx_tuple__247 __pyx_mstate_global->__pyx_tuple__247
#define __pyx_tuple__249 __pyx_mstate_global->__pyx_tuple__249
#define __pyx_tuple__255 __pyx_mstate_global->__pyx_tuple__255
#define __pyx_tuple__258 __pyx_mstate_global->__pyx_tuple__258
#define __pyx_tuple__260 __pyx_mstate_global->__pyx_tuple__260
#define __pyx_tuple__263 __pyx_mstate_global->__pyx_tuple__263
#define __pyx_tuple__265 __pyx_mstate_global->__pyx_tuple__265
#define __pyx_tuple__267 __pyx_mstate_global->__pyx_tuple__267
#define __pyx_tuple__269 __pyx_mstate_global->__pyx_tuple__269
#define __pyx_tuple__273 __pyx_mstate_global->__pyx_tuple__273
#define __pyx_tuple__275 __pyx_mstate_global->__pyx_tuple__275
#define __pyx_tuple__279 __pyx_mstate_global->__pyx_tuple__279
#define __pyx_tuple__281 __pyx_mstate_global->__pyx_tuple__281
#define __pyx_tuple__283 __pyx_mstate_global->__pyx_tuple__283
#define __pyx_tuple__285 __pyx_mstate_global->__pyx_tuple__285
#define __pyx_tuple__287 __pyx_mstate_global->__pyx_tuple__287
#define __pyx_tuple__295 __pyx_mstate_global->__pyx_tuple__295
#define __pyx_tuple__316 __pyx_mstate_global->__pyx_tuple__316
#define __pyx_tuple__322 __pyx_mstate_global->__pyx_tuple__322
#define __pyx_tuple__329 __pyx_mstate_global->__pyx_tuple__329
#define __pyx_tuple__331 __pyx_mstate_global->__pyx_tuple__331
#define __pyx_tuple__336 __pyx_mstate_global->__pyx_tuple__336
#define __pyx_tuple__339 __pyx_mstate_global->__pyx_tuple__339
#define __pyx_tuple__341 __pyx_mstate_global->__pyx_tuple__341
#define __pyx_tuple__344 __pyx_mstate_global->__pyx_tuple__344
#define __pyx_tuple__346 __pyx_mstate_global->__pyx_tuple__346
#define __pyx_tuple__348 __pyx_mstate_global->__pyx_tuple__348
#define __pyx_tuple__350 __pyx_mstate_global->__pyx_tuple__350
#define __pyx_tuple__352 __pyx_mstate_global->__pyx_tuple__352
#define __pyx_tuple__356 __pyx_mstate_global->__pyx_tuple__356
#define __pyx_tuple__358 __pyx_mstate_global->__pyx_tuple__358
#define __pyx_tuple__360 __pyx_mstate_global->__pyx_tuple__360
#define __pyx_tuple__363 __pyx_mstate_global->__pyx_tuple__363
#define __pyx_tuple__365 __pyx_mstate_global->__pyx_tuple__365
#define __pyx_tuple__367 __pyx_mstate_global->__pyx_tuple__367
#define __pyx_tuple__369 __pyx_mstate_global->__pyx_tuple__369
#define __pyx_tuple__371 __pyx_mstate_global->__pyx_tuple__371
#define __pyx_tuple__374 __pyx_mstate_global->__pyx_tuple__374
#define __pyx_tuple__377 __pyx_mstate_global->__pyx_tuple__377
#define __pyx_tuple__379 __pyx_mstate_global->__pyx_tuple__379
#define __pyx_tuple__382 __pyx_mstate_global->__pyx_tuple__382
#define __pyx_tuple__384 __pyx_mstate_global->__pyx_tuple__384
#define __pyx_tuple__386 __pyx_mstate_global->__pyx_tuple__386
#define __pyx_tuple__388 __pyx_mstate_global->__pyx_tuple__388
#define __pyx_tuple__390 __pyx_mstate_global->__pyx_tuple__390
#define __pyx_tuple__392 __pyx_mstate_global->__pyx_tuple__392
#define __pyx_tuple__395 __pyx_mstate_global->__pyx_tuple__395
#define __pyx_tuple__397 __pyx_mstate_global->__pyx_tuple__397
#define __pyx_tuple__399 __pyx_mstate_global->__pyx_tuple__399
#define __pyx_tuple__401 __pyx_mstate_global->__pyx_tuple__401
#define __pyx_tuple__403 __pyx_mstate_global->__pyx_tuple__403
#define __pyx_tuple__405 __pyx_mstate_global->__pyx_tuple__405
#define __pyx_tuple__407 __pyx_mstate_global->__pyx_tuple__407
#define __pyx_tuple__409 __pyx_mstate_global->__pyx_tuple__409
#define __pyx_tuple__411 __pyx_mstate_global->__pyx_tuple__411
#define __pyx_tuple__414 __pyx_mstate_global->__pyx_tuple__414
#define __pyx_tuple__416 __pyx_mstate_global->__pyx_tuple__416
#define __pyx_tuple__419 __pyx_mstate_global->__pyx_tuple__419
#define __pyx_tuple__422 __pyx_mstate_global->__pyx_tuple__422
#define __pyx_tuple__424 __pyx_mstate_global->__pyx_tuple__424
#define __pyx_tuple__426 __pyx_mstate_global->__pyx_tuple__426
#define __pyx_tuple__428 __pyx_mstate_global->__pyx_tuple__428
#define __pyx_tuple__431 __pyx_mstate_global->__pyx_tuple__431
#define __pyx_tuple__433 __pyx_mstate_global->__pyx_tuple__433
#define __pyx_tuple__435 __pyx_mstate_global->__pyx_tuple__435
#define __pyx_tuple__437 __pyx_mstate_global->__pyx_tuple__437
#define __pyx_tuple__440 __pyx_mstate_global->__pyx_tuple__440
#define __pyx_tuple__442 __pyx_mstate_global->__pyx_tuple__442
#define __pyx_tuple__444 __pyx_mstate_global->__pyx_tuple__444
#define __pyx_tuple__447 __pyx_mstate_global->__pyx_tuple__447
#define __pyx_tuple__449 __pyx_mstate_global->__pyx_tuple__449
#define __pyx_tuple__451 __pyx_mstate_global->__pyx_tuple__451
#define __pyx_tuple__453 __pyx_mstate_global->__pyx_tuple__453
#define __pyx_tuple__455 __pyx_mstate_global->__pyx_tuple__455
#define __pyx_tuple__457 __pyx_mstate_global->__pyx_tuple__457
#define __pyx_tuple__459 __pyx_mstate_global->__pyx_tuple__459
#define __pyx_tuple__463 __pyx_mstate_global->__pyx_tuple__463
#define __pyx_tuple__465 __pyx_mstate_global->__pyx_tuple__465
#define __pyx_tuple__467 __pyx_mstate_global->__pyx_tuple__467
#define __pyx_tuple__469 __pyx_mstate_global->__pyx_tuple__469
#define __pyx_tuple__471 __pyx_mstate_global->__pyx_tuple__471
#define __pyx_tuple__473 __pyx_mstate_global->__pyx_tuple__473
#define __pyx_tuple__476 __pyx_mstate_global->__pyx_tuple__476
#define __pyx_tuple__478 __pyx_mstate_global->__pyx_tuple__478
#define __pyx_tuple__480 __pyx_mstate_global->__pyx_tuple__480
#define __pyx_tuple__486 __pyx_mstate_global->__pyx_tuple__486
#define __pyx_tuple__488 __pyx_mstate_global->__pyx_tuple__488
#define __pyx_tuple__490 __pyx_mstate_global->__pyx_tuple__490
#define __pyx_tuple__492 __pyx_mstate_global->__pyx_tuple__492
#define __pyx_tuple__494 __pyx_mstate_global->__pyx_tuple__494
#define __pyx_tuple__496 __pyx_mstate_global->__pyx_tuple__496
#define __pyx_tuple__499 __pyx_mstate_global->__pyx_tuple__499
#define __pyx_tuple__503 __pyx_mstate_global->__pyx_tuple__503
#define __pyx_tuple__506 __pyx_mstate_global->__pyx_tuple__506
#define __pyx_tuple__508 __pyx_mstate_global->__pyx_tuple__508
#define __pyx_tuple__510 __pyx_mstate_global->__pyx_tuple__510
#define __pyx_tuple__512 __pyx_mstate_global->__pyx_tuple__512
#define __pyx_tuple__515 __pyx_mstate_global->__pyx_tuple__515
#define __pyx_tuple__521 __pyx_mstate_global->__pyx_tuple__521
#define __pyx_tuple__523 __pyx_mstate_global->__pyx_tuple__523
#define __pyx_tuple__525 __pyx_mstate_global->__pyx_tuple__525
#define __pyx_tuple__528 __pyx_mstate_global->__pyx_tuple__528
#define __pyx_tuple__530 __pyx_mstate_global->__pyx_tuple__530
#define __pyx_tuple__533 __pyx_mstate_global->__pyx_tuple__533
#define __pyx_tuple__537 __pyx_mstate_global->__pyx_tuple__537
#define __pyx_tuple__541 __pyx_mstate_global->__pyx_tuple__541
#define __pyx_tuple__543 __pyx_mstate_global->__pyx_tuple__543
#define __pyx_tuple__546 __pyx_mstate_global->__pyx_tuple__546
#define __pyx_tuple__548 __pyx_mstate_global->__pyx_tuple__548
#define __pyx_tuple__550 __pyx_mstate_global->__pyx_tuple__550
#define __pyx_tuple__553 __pyx_mstate_global->__pyx_tuple__553
#define __pyx_tuple__555 __pyx_mstate_global->__pyx_tuple__555
#define __pyx_tuple__557 __pyx_mstate_global->__pyx_tuple__557
#define __pyx_tuple__559 __pyx_mstate_global->__pyx_tuple__559
#define __pyx_tuple__561 __pyx_mstate_global->__pyx_tuple__561
#define __pyx_tuple__563 __pyx_mstate_global->__pyx_tuple__563
#define __pyx_tuple__565 __pyx_mstate_global->__pyx_tuple__565
#define __pyx_tuple__567 __pyx_mstate_global->__pyx_tuple__567
#define __pyx_tuple__569 __pyx_mstate_global->__pyx_tuple__569
#define __pyx_tuple__572 __pyx_mstate_global->__pyx_tuple__572
#define __pyx_tuple__574 __pyx_mstate_global->__pyx_tuple__574
#define __pyx_tuple__576 __pyx_mstate_global->__pyx_tuple__576
#define __pyx_tuple__578 __pyx_mstate_global->__pyx_tuple__578
#define __pyx_tuple__580 __pyx_mstate_global->__pyx_tuple__580
#define __pyx_tuple__582 __pyx_mstate_global->__pyx_tuple__582
#define __pyx_tuple__584 __pyx_mstate_global->__pyx_tuple__584
#define __pyx_tuple__586 __pyx_mstate_global->__pyx_tuple__586
#define __pyx_tuple__588 __pyx_mstate_global->__pyx_tuple__588
#define __pyx_tuple__590 __pyx_mstate_global->__pyx_tuple__590
#define __pyx_tuple__592 __pyx_mstate_global->__pyx_tuple__592
#define __pyx_tuple__594 __pyx_mstate_global->__pyx_tuple__594
#define __pyx_tuple__596 __pyx_mstate_global->__pyx_tuple__596
#define __pyx_tuple__598 __pyx_mstate_global->__pyx_tuple__598
#define __pyx_tuple__600 __pyx_mstate_global->__pyx_tuple__600
#define __pyx_tuple__602 __pyx_mstate_global->__pyx_tuple__602
#define __pyx_tuple__604 __pyx_mstate_global->__pyx_tuple__604
#define __pyx_tuple__606 __pyx_mstate_global->__pyx_tuple__606
#define __pyx_tuple__609 __pyx_mstate_global->__pyx_tuple__609
#define __pyx_tuple__612 __pyx_mstate_global->__pyx_tuple__612
#define __pyx_tuple__616 __pyx_mstate_global->__pyx_tuple__616
#define __pyx_tuple__618 __pyx_mstate_global->__pyx_tuple__618
#define __pyx_tuple__621 __pyx_mstate_global->__pyx_tuple__621
#define __pyx_tuple__624 __pyx_mstate_global->__pyx_tuple__624
#define __pyx_tuple__627 __pyx_mstate_global->__pyx_tuple__627
#define __pyx_tuple__629 __pyx_mstate_global->__pyx_tuple__629
#define __pyx_tuple__630 __pyx_mstate_global->__pyx_tuple__630
#define __pyx_tuple__631 __pyx_mstate_global->__pyx_tuple__631
#define __pyx_tuple__633 __pyx_mstate_global->__pyx_tuple__633
#define __pyx_tuple__638 __pyx_mstate_global->__pyx_tuple__638
#define __pyx_tuple__640 __pyx_mstate_global->__pyx_tuple__640
#define __pyx_tuple__642 __pyx_mstate_global->__pyx_tuple__642
#define __pyx_tuple__644 __pyx_mstate_global->__pyx_tuple__644
#define __pyx_tuple__646 __pyx_mstate_global->__pyx_tuple__646
#define __pyx_tuple__650 __pyx_mstate_global->__pyx_tuple__650
#define __pyx_tuple__655 __pyx_mstate_global->__pyx_tuple__655
#define __pyx_tuple__657 __pyx_mstate_global->__pyx_tuple__657
#define __pyx_tuple__658 __pyx_mstate_global->__pyx_tuple__658
#define __pyx_tuple__660 __pyx_mstate_global->__pyx_tuple__660
#define __pyx_tuple__661 __pyx_mstate_global->__pyx_tuple__661
#define __pyx_tuple__664 __pyx_mstate_global->__pyx_tuple__664
#define __pyx_tuple__666 __pyx_mstate_global->__pyx_tuple__666
#define __pyx_tuple__668 __pyx_mstate_global->__pyx_tuple__668
#define __pyx_tuple__670 __pyx_mstate_global->__pyx_tuple__670
#define __pyx_tuple__672 __pyx_mstate_global->__pyx_tuple__672
#define __pyx_tuple__674 __pyx_mstate_global->__pyx_tuple__674
#define __pyx_tuple__676 __pyx_mstate_global->__pyx_tuple__676
#define __pyx_tuple__677 __pyx_mstate_global->__pyx_tuple__677
#define __pyx_tuple__679 __pyx_mstate_global->__pyx_tuple__679
#define __pyx_tuple__680 __pyx_mstate_global->__pyx_tuple__680
#define __pyx_tuple__682 __pyx_mstate_global->__pyx_tuple__682
#define __pyx_tuple__683 __pyx_mstate_global->__pyx_tuple__683
#define __pyx_tuple__687 __pyx_mstate_global->__pyx_tuple__687
#define __pyx_tuple__688 __pyx_mstate_global->__pyx_tuple__688
#define __pyx_tuple__690 __pyx_mstate_global->__pyx_tuple__690
#define __pyx_tuple__692 __pyx_mstate_global->__pyx_tuple__692
#define __pyx_tuple__694 __pyx_mstate_global->__pyx_tuple__694
#define __pyx_tuple__696 __pyx_mstate_global->__pyx_tuple__696
#define __pyx_tuple__698 __pyx_mstate_global->__pyx_tuple__698
#define __pyx_tuple__700 __pyx_mstate_global->__pyx_tuple__700
#define __pyx_tuple__703 __pyx_mstate_global->__pyx_tuple__703
#define __pyx_tuple__705 __pyx_mstate_global->__pyx_tuple__705
#define __pyx_tuple__708 __pyx_mstate_global->__pyx_tuple__708
#define __pyx_tuple__710 __pyx_mstate_global->__pyx_tuple__710
#define __pyx_tuple__711 __pyx_mstate_global->__pyx_tuple__711
#define __pyx_tuple__713 __pyx_mstate_global->__pyx_tuple__713
#define __pyx_tuple__714 __pyx_mstate_global->__pyx_tuple__714
#define __pyx_tuple__716 __pyx_mstate_global->__pyx_tuple__716
#define __pyx_tuple__718 __pyx_mstate_global->__pyx_tuple__718
#define __pyx_tuple__720 __pyx_mstate_global->__pyx_tuple__720
#define __pyx_tuple__722 __pyx_mstate_global->__pyx_tuple__722
#define __pyx_tuple__724 __pyx_mstate_global->__pyx_tuple__724
#define __pyx_tuple__726 __pyx_mstate_global->__pyx_tuple__726
#define __pyx_tuple__730 __pyx_mstate_global->__pyx_tuple__730
#define __pyx_tuple__732 __pyx_mstate_global->__pyx_tuple__732
#define __pyx_tuple__736 __pyx_mstate_global->__pyx_tuple__736
#define __pyx_tuple__737 __pyx_mstate_global->__pyx_tuple__737
#define __pyx_tuple__738 __pyx_mstate_global->__pyx_tuple__738
#define __pyx_tuple__739 __pyx_mstate_global->__pyx_tuple__739
#define __pyx_tuple__741 __pyx_mstate_global->__pyx_tuple__741
#define __pyx_tuple__742 __pyx_mstate_global->__pyx_tuple__742
#define __pyx_tuple__744 __pyx_mstate_global->__pyx_tuple__744
#define __pyx_tuple__747 __pyx_mstate_global->__pyx_tuple__747
#define __pyx_tuple__749 __pyx_mstate_global->__pyx_tuple__749
#define __pyx_tuple__752 __pyx_mstate_global->__pyx_tuple__752
#define __pyx_tuple__754 __pyx_mstate_global->__pyx_tuple__754
#define __pyx_tuple__759 __pyx_mstate_global->__pyx_tuple__759
#define __pyx_tuple__761 __pyx_mstate_global->__pyx_tuple__761
#define __pyx_tuple__764 __pyx_mstate_global->__pyx_tuple__764
#define __pyx_tuple__767 __pyx_mstate_global->__pyx_tuple__767
#define __pyx_tuple__768 __pyx_mstate_global->__pyx_tuple__768
#define __pyx_tuple__770 __pyx_mstate_global->__pyx_tuple__770
#define __pyx_tuple__772 __pyx_mstate_global->__pyx_tuple__772
#define __pyx_tuple__774 __pyx_mstate_global->__pyx_tuple__774
#define __pyx_tuple__776 __pyx_mstate_global->__pyx_tuple__776
#define __pyx_codeobj__43 __pyx_mstate_global->__pyx_codeobj__43
#define __pyx_codeobj__68 __pyx_mstate_global->__pyx_codeobj__68
#define __pyx_codeobj__70 __pyx_mstate_global->__pyx_codeobj__70
#define __pyx_codeobj__72 __pyx_mstate_global->__pyx_codeobj__72
#define __pyx_codeobj__73 __pyx_mstate_global->__pyx_codeobj__73
#define __pyx_codeobj__74 __pyx_mstate_global->__pyx_codeobj__74
#define __pyx_codeobj__75 __pyx_mstate_global->__pyx_codeobj__75
#define __pyx_codeobj__76 __pyx_mstate_global->__pyx_codeobj__76
#define __pyx_codeobj__77 __pyx_mstate_global->__pyx_codeobj__77
#define __pyx_codeobj__78 __pyx_mstate_global->__pyx_codeobj__78
#define __pyx_codeobj__79 __pyx_mstate_global->__pyx_codeobj__79
#define __pyx_codeobj__80 __pyx_mstate_global->__pyx_codeobj__80
#define __pyx_codeobj__81 __pyx_mstate_global->__pyx_codeobj__81
#define __pyx_codeobj__82 __pyx_mstate_global->__pyx_codeobj__82
#define __pyx_codeobj__83 __pyx_mstate_global->__pyx_codeobj__83
#define __pyx_codeobj__84 __pyx_mstate_global->__pyx_codeobj__84
#define __pyx_codeobj__85 __pyx_mstate_global->__pyx_codeobj__85
#define __pyx_codeobj__86 __pyx_mstate_global->__pyx_codeobj__86
#define __pyx_codeobj__87 __pyx_mstate_global->__pyx_codeobj__87
#define __pyx_codeobj__88 __pyx_mstate_global->__pyx_codeobj__88
#define __pyx_codeobj__89 __pyx_mstate_global->__pyx_codeobj__89
#define __pyx_codeobj__90 __pyx_mstate_global->__pyx_codeobj__90
#define __pyx_codeobj__91 __pyx_mstate_global->__pyx_codeobj__91
#define __pyx_codeobj__92 __pyx_mstate_global->__pyx_codeobj__92
#define __pyx_codeobj__94 __pyx_mstate_global->__pyx_codeobj__94
#define __pyx_codeobj__96 __pyx_mstate_global->__pyx_codeobj__96
#define __pyx_codeobj__97 __pyx_mstate_global->__pyx_codeobj__97
#define __pyx_codeobj__98 __pyx_mstate_global->__pyx_codeobj__98
#define __pyx_codeobj__99 __pyx_mstate_global->__pyx_codeobj__99
#define __pyx_codeobj__100 __pyx_mstate_global->__pyx_codeobj__100
#define __pyx_codeobj__101 __pyx_mstate_global->__pyx_codeobj__101
#define __pyx_codeobj__102 __pyx_mstate_global->__pyx_codeobj__102
#define __pyx_codeobj__103 __pyx_mstate_global->__pyx_codeobj__103
#define __pyx_codeobj__104 __pyx_mstate_global->__pyx_codeobj__104
#define __pyx_codeobj__105 __pyx_mstate_global->__pyx_codeobj__105
#define __pyx_codeobj__106 __pyx_mstate_global->__pyx_codeobj__106
#define __pyx_codeobj__107 __pyx_mstate_global->__pyx_codeobj__107
#define __pyx_codeobj__108 __pyx_mstate_global->__pyx_codeobj__108
#define __pyx_codeobj__109 __pyx_mstate_global->__pyx_codeobj__109
#define __pyx_codeobj__110 __pyx_mstate_global->__pyx_codeobj__110
#define __pyx_codeobj__111 __pyx_mstate_global->__pyx_codeobj__111
#define __pyx_codeobj__112 __pyx_mstate_global->__pyx_codeobj__112
#define __pyx_codeobj__113 __pyx_mstate_global->__pyx_codeobj__113
#define __pyx_codeobj__114 __pyx_mstate_global->__pyx_codeobj__114
#define __pyx_codeobj__115 __pyx_mstate_global->__pyx_codeobj__115
#define __pyx_codeobj__116 __pyx_mstate_global->__pyx_codeobj__116
#define __pyx_codeobj__118 __pyx_mstate_global->__pyx_codeobj__118
#define __pyx_codeobj__120 __pyx_mstate_global->__pyx_codeobj__120
#define __pyx_codeobj__122 __pyx_mstate_global->__pyx_codeobj__122
#define __pyx_codeobj__124 __pyx_mstate_global->__pyx_codeobj__124
#define __pyx_codeobj__125 __pyx_mstate_global->__pyx_codeobj__125
#define __pyx_codeobj__126 __pyx_mstate_global->__pyx_codeobj__126
#define __pyx_codeobj__127 __pyx_mstate_global->__pyx_codeobj__127
#define __pyx_codeobj__128 __pyx_mstate_global->__pyx_codeobj__128
#define __pyx_codeobj__129 __pyx_mstate_global->__pyx_codeobj__129
#define __pyx_codeobj__130 __pyx_mstate_global->__pyx_codeobj__130
#define __pyx_codeobj__131 __pyx_mstate_global->__pyx_codeobj__131
#define __pyx_codeobj__132 __pyx_mstate_global->__pyx_codeobj__132
#define __pyx_codeobj__133 __pyx_mstate_global->__pyx_codeobj__133
#define __pyx_codeobj__134 __pyx_mstate_global->__pyx_codeobj__134
#define __pyx_codeobj__135 __pyx_mstate_global->__pyx_codeobj__135
#define __pyx_codeobj__137 __pyx_mstate_global->__pyx_codeobj__137
#define __pyx_codeobj__138 __pyx_mstate_global->__pyx_codeobj__138
#define __pyx_codeobj__139 __pyx_mstate_global->__pyx_codeobj__139
#define __pyx_codeobj__140 __pyx_mstate_global->__pyx_codeobj__140
#define __pyx_codeobj__141 __pyx_mstate_global->__pyx_codeobj__141
#define __pyx_codeobj__142 __pyx_mstate_global->__pyx_codeobj__142
#define __pyx_codeobj__143 __pyx_mstate_global->__pyx_codeobj__143
#define __pyx_codeobj__144 __pyx_mstate_global->__pyx_codeobj__144
#define __pyx_codeobj__145 __pyx_mstate_global->__pyx_codeobj__145
#define __pyx_codeobj__146 __pyx_mstate_global->__pyx_codeobj__146
#define __pyx_codeobj__148 __pyx_mstate_global->__pyx_codeobj__148
#define __pyx_codeobj__151 __pyx_mstate_global->__pyx_codeobj__151
#define __pyx_codeobj__153 __pyx_mstate_global->__pyx_codeobj__153
#define __pyx_codeobj__155 __pyx_mstate_global->__pyx_codeobj__155
#define __pyx_codeobj__156 __pyx_mstate_global->__pyx_codeobj__156
#define __pyx_codeobj__157 __pyx_mstate_global->__pyx_codeobj__157
#define __pyx_codeobj__158 __pyx_mstate_global->__pyx_codeobj__158
#define __pyx_codeobj__159 __pyx_mstate_global->__pyx_codeobj__159
#define __pyx_codeobj__160 __pyx_mstate_global->__pyx_codeobj__160
#define __pyx_codeobj__161 __pyx_mstate_global->__pyx_codeobj__161
#define __pyx_codeobj__162 __pyx_mstate_global->__pyx_codeobj__162
#define __pyx_codeobj__163 __pyx_mstate_global->__pyx_codeobj__163
#define __pyx_codeobj__164 __pyx_mstate_global->__pyx_codeobj__164
#define __pyx_codeobj__165 __pyx_mstate_global->__pyx_codeobj__165
#define __pyx_codeobj__166 __pyx_mstate_global->__pyx_codeobj__166
#define __pyx_codeobj__167 __pyx_mstate_global->__pyx_codeobj__167
#define __pyx_codeobj__168 __pyx_mstate_global->__pyx_codeobj__168
#define __pyx_codeobj__169 __pyx_mstate_global->__pyx_codeobj__169
#define __pyx_codeobj__170 __pyx_mstate_global->__pyx_codeobj__170
#define __pyx_codeobj__171 __pyx_mstate_global->__pyx_codeobj__171
#define __pyx_codeobj__172 __pyx_mstate_global->__pyx_codeobj__172
#define __pyx_codeobj__173 __pyx_mstate_global->__pyx_codeobj__173
#define __pyx_codeobj__174 __pyx_mstate_global->__pyx_codeobj__174
#define __pyx_codeobj__175 __pyx_mstate_global->__pyx_codeobj__175
#define __pyx_codeobj__176 __pyx_mstate_global->__pyx_codeobj__176
#define __pyx_codeobj__177 __pyx_mstate_global->__pyx_codeobj__177
#define __pyx_codeobj__178 __pyx_mstate_global->__pyx_codeobj__178
#define __pyx_codeobj__179 __pyx_mstate_global->__pyx_codeobj__179
#define __pyx_codeobj__180 __pyx_mstate_global->__pyx_codeobj__180
#define __pyx_codeobj__182 __pyx_mstate_global->__pyx_codeobj__182
#define __pyx_codeobj__184 __pyx_mstate_global->__pyx_codeobj__184
#define __pyx_codeobj__185 __pyx_mstate_global->__pyx_codeobj__185
#define __pyx_codeobj__186 __pyx_mstate_global->__pyx_codeobj__186
#define __pyx_codeobj__188 __pyx_mstate_global->__pyx_codeobj__188
#define __pyx_codeobj__190 __pyx_mstate_global->__pyx_codeobj__190
#define __pyx_codeobj__191 __pyx_mstate_global->__pyx_codeobj__191
#define __pyx_codeobj__192 __pyx_mstate_global->__pyx_codeobj__192
#define __pyx_codeobj__193 __pyx_mstate_global->__pyx_codeobj__193
#define __pyx_codeobj__194 __pyx_mstate_global->__pyx_codeobj__194
#define __pyx_codeobj__195 __pyx_mstate_global->__pyx_codeobj__195
#define __pyx_codeobj__196 __pyx_mstate_global->__pyx_codeobj__196
#define __pyx_codeobj__197 __pyx_mstate_global->__pyx_codeobj__197
#define __pyx_codeobj__198 __pyx_mstate_global->__pyx_codeobj__198
#define __pyx_codeobj__199 __pyx_mstate_global->__pyx_codeobj__199
#define __pyx_codeobj__200 __pyx_mstate_global->__pyx_codeobj__200
#define __pyx_codeobj__201 __pyx_mstate_global->__pyx_codeobj__201
#define __pyx_codeobj__202 __pyx_mstate_global->__pyx_codeobj__202
#define __pyx_codeobj__203 __pyx_mstate_global->__pyx_codeobj__203
#define __pyx_codeobj__204 __pyx_mstate_global->__pyx_codeobj__204
#define __pyx_codeobj__205 __pyx_mstate_global->__pyx_codeobj__205
#define __pyx_codeobj__206 __pyx_mstate_global->__pyx_codeobj__206
#define __pyx_codeobj__207 __pyx_mstate_global->__pyx_codeobj__207
#define __pyx_codeobj__208 __pyx_mstate_global->__pyx_codeobj__208
#define __pyx_codeobj__209 __pyx_mstate_global->__pyx_codeobj__209
#define __pyx_codeobj__210 __pyx_mstate_global->__pyx_codeobj__210
#define __pyx_codeobj__211 __pyx_mstate_global->__pyx_codeobj__211
#define __pyx_codeobj__212 __pyx_mstate_global->__pyx_codeobj__212
#define __pyx_codeobj__213 __pyx_mstate_global->__pyx_codeobj__213
#define __pyx_codeobj__214 __pyx_mstate_global->__pyx_codeobj__214
#define __pyx_codeobj__215 __pyx_mstate_global->__pyx_codeobj__215
#define __pyx_codeobj__216 __pyx_mstate_global->__pyx_codeobj__216
#define __pyx_codeobj__217 __pyx_mstate_global->__pyx_codeobj__217
#define __pyx_codeobj__218 __pyx_mstate_global->__pyx_codeobj__218
#define __pyx_codeobj__219 __pyx_mstate_global->__pyx_codeobj__219
#define __pyx_codeobj__220 __pyx_mstate_global->__pyx_codeobj__220
#define __pyx_codeobj__221 __pyx_mstate_global->__pyx_codeobj__221
#define __pyx_codeobj__222 __pyx_mstate_global->__pyx_codeobj__222
#define __pyx_codeobj__223 __pyx_mstate_global->__pyx_codeobj__223
#define __pyx_codeobj__224 __pyx_mstate_global->__pyx_codeobj__224
#define __pyx_codeobj__225 __pyx_mstate_global->__pyx_codeobj__225
#define __pyx_codeobj__226 __pyx_mstate_global->__pyx_codeobj__226
#define __pyx_codeobj__227 __pyx_mstate_global->__pyx_codeobj__227
#define __pyx_codeobj__228 __pyx_mstate_global->__pyx_codeobj__228
#define __pyx_codeobj__230 __pyx_mstate_global->__pyx_codeobj__230
#define __pyx_codeobj__231 __pyx_mstate_global->__pyx_codeobj__231
#define __pyx_codeobj__233 __pyx_mstate_global->__pyx_codeobj__233
#define __pyx_codeobj__235 __pyx_mstate_global->__pyx_codeobj__235
#define __pyx_codeobj__237 __pyx_mstate_global->__pyx_codeobj__237
#define __pyx_codeobj__239 __pyx_mstate_global->__pyx_codeobj__239
#define __pyx_codeobj__240 __pyx_mstate_global->__pyx_codeobj__240
#define __pyx_codeobj__241 __pyx_mstate_global->__pyx_codeobj__241
#define __pyx_codeobj__243 __pyx_mstate_global->__pyx_codeobj__243
#define __pyx_codeobj__245 __pyx_mstate_global->__pyx_codeobj__245
#define __pyx_codeobj__246 __pyx_mstate_global->__pyx_codeobj__246
#define __pyx_codeobj__248 __pyx_mstate_global->__pyx_codeobj__248
#define __pyx_codeobj__250 __pyx_mstate_global->__pyx_codeobj__250
#define __pyx_codeobj__251 __pyx_mstate_global->__pyx_codeobj__251
#define __pyx_codeobj__252 __pyx_mstate_global->__pyx_codeobj__252
#define __pyx_codeobj__253 __pyx_mstate_global->__pyx_codeobj__253
#define __pyx_codeobj__254 __pyx_mstate_global->__pyx_codeobj__254
#define __pyx_codeobj__256 __pyx_mstate_global->__pyx_codeobj__256
#define __pyx_codeobj__257 __pyx_mstate_global->__pyx_codeobj__257
#define __pyx_codeobj__259 __pyx_mstate_global->__pyx_codeobj__259
#define __pyx_codeobj__261 __pyx_mstate_global->__pyx_codeobj__261
#define __pyx_codeobj__262 __pyx_mstate_global->__pyx_codeobj__262
#define __pyx_codeobj__264 __pyx_mstate_global->__pyx_codeobj__264
#define __pyx_codeobj__266 __pyx_mstate_global->__pyx_codeobj__266
#define __pyx_codeobj__268 __pyx_mstate_global->__pyx_codeobj__268
#define __pyx_codeobj__270 __pyx_mstate_global->__pyx_codeobj__270
#define __pyx_codeobj__271 __pyx_mstate_global->__pyx_codeobj__271
#define __pyx_codeobj__272 __pyx_mstate_global->__pyx_codeobj__272
#define __pyx_codeobj__274 __pyx_mstate_global->__pyx_codeobj__274
#define __pyx_codeobj__276 __pyx_mstate_global->__pyx_codeobj__276
#define __pyx_codeobj__277 __pyx_mstate_global->__pyx_codeobj__277
#define __pyx_codeobj__278 __pyx_mstate_global->__pyx_codeobj__278
#define __pyx_codeobj__280 __pyx_mstate_global->__pyx_codeobj__280
#define __pyx_codeobj__282 __pyx_mstate_global->__pyx_codeobj__282
#define __pyx_codeobj__284 __pyx_mstate_global->__pyx_codeobj__284
#define __pyx_codeobj__286 __pyx_mstate_global->__pyx_codeobj__286
#define __pyx_codeobj__288 __pyx_mstate_global->__pyx_codeobj__288
#define __pyx_codeobj__289 __pyx_mstate_global->__pyx_codeobj__289
#define __pyx_codeobj__290 __pyx_mstate_global->__pyx_codeobj__290
#define __pyx_codeobj__291 __pyx_mstate_global->__pyx_codeobj__291
#define __pyx_codeobj__292 __pyx_mstate_global->__pyx_codeobj__292
#define __pyx_codeobj__293 __pyx_mstate_global->__pyx_codeobj__293
#define __pyx_codeobj__294 __pyx_mstate_global->__pyx_codeobj__294
#define __pyx_codeobj__296 __pyx_mstate_global->__pyx_codeobj__296
#define __pyx_codeobj__297 __pyx_mstate_global->__pyx_codeobj__297
#define __pyx_codeobj__298 __pyx_mstate_global->__pyx_codeobj__298
#define __pyx_codeobj__299 __pyx_mstate_global->__pyx_codeobj__299
#define __pyx_codeobj__300 __pyx_mstate_global->__pyx_codeobj__300
#define __pyx_codeobj__301 __pyx_mstate_global->__pyx_codeobj__301
#define __pyx_codeobj__302 __pyx_mstate_global->__pyx_codeobj__302
#define __pyx_codeobj__303 __pyx_mstate_global->__pyx_codeobj__303
#define __pyx_codeobj__304 __pyx_mstate_global->__pyx_codeobj__304
#define __pyx_codeobj__305 __pyx_mstate_global->__pyx_codeobj__305
#define __pyx_codeobj__306 __pyx_mstate_global->__pyx_codeobj__306
#define __pyx_codeobj__307 __pyx_mstate_global->__pyx_codeobj__307
#define __pyx_codeobj__308 __pyx_mstate_global->__pyx_codeobj__308
#define __pyx_codeobj__309 __pyx_mstate_global->__pyx_codeobj__309
#define __pyx_codeobj__310 __pyx_mstate_global->__pyx_codeobj__310
#define __pyx_codeobj__311 __pyx_mstate_global->__pyx_codeobj__311
#define __pyx_codeobj__312 __pyx_mstate_global->__pyx_codeobj__312
#define __pyx_codeobj__313 __pyx_mstate_global->__pyx_codeobj__313
#define __pyx_codeobj__314 __pyx_mstate_global->__pyx_codeobj__314
#define __pyx_codeobj__315 __pyx_mstate_global->__pyx_codeobj__315
#define __pyx_codeobj__317 __pyx_mstate_global->__pyx_codeobj__317
#define __pyx_codeobj__318 __pyx_mstate_global->__pyx_codeobj__318
#define __pyx_codeobj__319 __pyx_mstate_global->__pyx_codeobj__319
#define __pyx_codeobj__320 __pyx_mstate_global->__pyx_codeobj__320
#define __pyx_codeobj__321 __pyx_mstate_global->__pyx_codeobj__321
#define __pyx_codeobj__323 __pyx_mstate_global->__pyx_codeobj__323
#define __pyx_codeobj__324 __pyx_mstate_global->__pyx_codeobj__324
#define __pyx_codeobj__325 __pyx_mstate_global->__pyx_codeobj__325
#define __pyx_codeobj__326 __pyx_mstate_global->__pyx_codeobj__326
#define __pyx_codeobj__327 __pyx_mstate_global->__pyx_codeobj__327
#define __pyx_codeobj__328 __pyx_mstate_global->__pyx_codeobj__328
#define __pyx_codeobj__330 __pyx_mstate_global->__pyx_codeobj__330
#define __pyx_codeobj__332 __pyx_mstate_global->__pyx_codeobj__332
#define __pyx_codeobj__333 __pyx_mstate_global->__pyx_codeobj__333
#define __pyx_codeobj__334 __pyx_mstate_global->__pyx_codeobj__334
#define __pyx_codeobj__335 __pyx_mstate_global->__pyx_codeobj__335
#define __pyx_codeobj__337 __pyx_mstate_global->__pyx_codeobj__337
#define __pyx_codeobj__338 __pyx_mstate_global->__pyx_codeobj__338
#define __pyx_codeobj__340 __pyx_mstate_global->__pyx_codeobj__340
#define __pyx_codeobj__342 __pyx_mstate_global->__pyx_codeobj__342
#define __pyx_codeobj__343 __pyx_mstate_global->__pyx_codeobj__343
#define __pyx_codeobj__345 __pyx_mstate_global->__pyx_codeobj__345
#define __pyx_codeobj__347 __pyx_mstate_global->__pyx_codeobj__347
#define __pyx_codeobj__349 __pyx_mstate_global->__pyx_codeobj__349
#define __pyx_codeobj__351 __pyx_mstate_global->__pyx_codeobj__351
#define __pyx_codeobj__353 __pyx_mstate_global->__pyx_codeobj__353
#define __pyx_codeobj__354 __pyx_mstate_global->__pyx_codeobj__354
#define __pyx_codeobj__355 __pyx_mstate_global->__pyx_codeobj__355
#define __pyx_codeobj__357 __pyx_mstate_global->__pyx_codeobj__357
#define __pyx_codeobj__359 __pyx_mstate_global->__pyx_codeobj__359
#define __pyx_codeobj__361 __pyx_mstate_global->__pyx_codeobj__361
#define __pyx_codeobj__362 __pyx_mstate_global->__pyx_codeobj__362
#define __pyx_codeobj__364 __pyx_mstate_global->__pyx_codeobj__364
#define __pyx_codeobj__366 __pyx_mstate_global->__pyx_codeobj__366
#define __pyx_codeobj__368 __pyx_mstate_global->__pyx_codeobj__368
#define __pyx_codeobj__370 __pyx_mstate_global->__pyx_codeobj__370
#define __pyx_codeobj__372 __pyx_mstate_global->__pyx_codeobj__372
#define __pyx_codeobj__373 __pyx_mstate_global->__pyx_codeobj__373
#define __pyx_codeobj__375 __pyx_mstate_global->__pyx_codeobj__375
#define __pyx_codeobj__376 __pyx_mstate_global->__pyx_codeobj__376
#define __pyx_codeobj__378 __pyx_mstate_global->__pyx_codeobj__378
#define __pyx_codeobj__380 __pyx_mstate_global->__pyx_codeobj__380
#define __pyx_codeobj__381 __pyx_mstate_global->__pyx_codeobj__381
#define __pyx_codeobj__383 __pyx_mstate_global->__pyx_codeobj__383
#define __pyx_codeobj__385 __pyx_mstate_global->__pyx_codeobj__385
#define __pyx_codeobj__387 __pyx_mstate_global->__pyx_codeobj__387
#define __pyx_codeobj__389 __pyx_mstate_global->__pyx_codeobj__389
#define __pyx_codeobj__391 __pyx_mstate_global->__pyx_codeobj__391
#define __pyx_codeobj__393 __pyx_mstate_global->__pyx_codeobj__393
#define __pyx_codeobj__394 __pyx_mstate_global->__pyx_codeobj__394
#define __pyx_codeobj__396 __pyx_mstate_global->__pyx_codeobj__396
#define __pyx_codeobj__398 __pyx_mstate_global->__pyx_codeobj__398
#define __pyx_codeobj__400 __pyx_mstate_global->__pyx_codeobj__400
#define __pyx_codeobj__402 __pyx_mstate_global->__pyx_codeobj__402
#define __pyx_codeobj__404 __pyx_mstate_global->__pyx_codeobj__404
#define __pyx_codeobj__406 __pyx_mstate_global->__pyx_codeobj__406
#define __pyx_codeobj__408 __pyx_mstate_global->__pyx_codeobj__408
#define __pyx_codeobj__410 __pyx_mstate_global->__pyx_codeobj__410
#define __pyx_codeobj__412 __pyx_mstate_global->__pyx_codeobj__412
#define __pyx_codeobj__413 __pyx_mstate_global->__pyx_codeobj__413
#define __pyx_codeobj__415 __pyx_mstate_global->__pyx_codeobj__415
#define __pyx_codeobj__417 __pyx_mstate_global->__pyx_codeobj__417
#define __pyx_codeobj__418 __pyx_mstate_global->__pyx_codeobj__418
#define __pyx_codeobj__420 __pyx_mstate_global->__pyx_codeobj__420
#define __pyx_codeobj__421 __pyx_mstate_global->__pyx_codeobj__421
#define __pyx_codeobj__423 __pyx_mstate_global->__pyx_codeobj__423
#define __pyx_codeobj__425 __pyx_mstate_global->__pyx_codeobj__425
#define __pyx_codeobj__427 __pyx_mstate_global->__pyx_codeobj__427
#define __pyx_codeobj__429 __pyx_mstate_global->__pyx_codeobj__429
#define __pyx_codeobj__430 __pyx_mstate_global->__pyx_codeobj__430
#define __pyx_codeobj__432 __pyx_mstate_global->__pyx_codeobj__432
#define __pyx_codeobj__434 __pyx_mstate_global->__pyx_codeobj__434
#define __pyx_codeobj__436 __pyx_mstate_global->__pyx_codeobj__436
#define __pyx_codeobj__438 __pyx_mstate_global->__pyx_codeobj__438
#define __pyx_codeobj__439 __pyx_mstate_global->__pyx_codeobj__439
#define __pyx_codeobj__441 __pyx_mstate_global->__pyx_codeobj__441
#define __pyx_codeobj__443 __pyx_mstate_global->__pyx_codeobj__443
#define __pyx_codeobj__445 __pyx_mstate_global->__pyx_codeobj__445
#define __pyx_codeobj__446 __pyx_mstate_global->__pyx_codeobj__446
#define __pyx_codeobj__448 __pyx_mstate_global->__pyx_codeobj__448
#define __pyx_codeobj__450 __pyx_mstate_global->__pyx_codeobj__450
#define __pyx_codeobj__452 __pyx_mstate_global->__pyx_codeobj__452
#define __pyx_codeobj__454 __pyx_mstate_global->__pyx_codeobj__454
#define __pyx_codeobj__456 __pyx_mstate_global->__pyx_codeobj__456
#define __pyx_codeobj__458 __pyx_mstate_global->__pyx_codeobj__458
#define __pyx_codeobj__460 __pyx_mstate_global->__pyx_codeobj__460
#define __pyx_codeobj__461 __pyx_mstate_global->__pyx_codeobj__461
#define __pyx_codeobj__462 __pyx_mstate_global->__pyx_codeobj__462
#define __pyx_codeobj__464 __pyx_mstate_global->__pyx_codeobj__464
#define __pyx_codeobj__466 __pyx_mstate_global->__pyx_codeobj__466
#define __pyx_codeobj__468 __pyx_mstate_global->__pyx_codeobj__468
#define __pyx_codeobj__470 __pyx_mstate_global->__pyx_codeobj__470
#define __pyx_codeobj__472 __pyx_mstate_global->__pyx_codeobj__472
#define __pyx_codeobj__474 __pyx_mstate_global->__pyx_codeobj__474
#define __pyx_codeobj__475 __pyx_mstate_global->__pyx_codeobj__475
#define __pyx_codeobj__477 __pyx_mstate_global->__pyx_codeobj__477
#define __pyx_codeobj__479 __pyx_mstate_global->__pyx_codeobj__479
#define __pyx_codeobj__481 __pyx_mstate_global->__pyx_codeobj__481
#define __pyx_codeobj__482 __pyx_mstate_global->__pyx_codeobj__482
#define __pyx_codeobj__483 __pyx_mstate_global->__pyx_codeobj__483
#define __pyx_codeobj__484 __pyx_mstate_global->__pyx_codeobj__484
#define __pyx_codeobj__485 __pyx_mstate_global->__pyx_codeobj__485
#define __pyx_codeobj__487 __pyx_mstate_global->__pyx_codeobj__487
#define __pyx_codeobj__489 __pyx_mstate_global->__pyx_codeobj__489
#define __pyx_codeobj__491 __pyx_mstate_global->__pyx_codeobj__491
#define __pyx_codeobj__493 __pyx_mstate_global->__pyx_codeobj__493
#define __pyx_codeobj__495 __pyx_mstate_global->__pyx_codeobj__495
#define __pyx_codeobj__497 __pyx_mstate_global->__pyx_codeobj__497
#define __pyx_codeobj__498 __pyx_mstate_global->__pyx_codeobj__498
#define __pyx_codeobj__500 __pyx_mstate_global->__pyx_codeobj__500
#define __pyx_codeobj__501 __pyx_mstate_global->__pyx_codeobj__501
#define __pyx_codeobj__502 __pyx_mstate_global->__pyx_codeobj__502
#define __pyx_codeobj__504 __pyx_mstate_global->__pyx_codeobj__504
#define __pyx_codeobj__505 __pyx_mstate_global->__pyx_codeobj__505
#define __pyx_codeobj__507 __pyx_mstate_global->__pyx_codeobj__507
#define __pyx_codeobj__509 __pyx_mstate_global->__pyx_codeobj__509
#define __pyx_codeobj__511 __pyx_mstate_global->__pyx_codeobj__511
#define __pyx_codeobj__513 __pyx_mstate_global->__pyx_codeobj__513
#define __pyx_codeobj__514 __pyx_mstate_global->__pyx_codeobj__514
#define __pyx_codeobj__516 __pyx_mstate_global->__pyx_codeobj__516
#define __pyx_codeobj__517 __pyx_mstate_global->__pyx_codeobj__517
#define __pyx_codeobj__518 __pyx_mstate_global->__pyx_codeobj__518
#define __pyx_codeobj__519 __pyx_mstate_global->__pyx_codeobj__519
#define __pyx_codeobj__520 __pyx_mstate_global->__pyx_codeobj__520
#define __pyx_codeobj__522 __pyx_mstate_global->__pyx_codeobj__522
#define __pyx_codeobj__524 __pyx_mstate_global->__pyx_codeobj__524
#define __pyx_codeobj__526 __pyx_mstate_global->__pyx_codeobj__526
#define __pyx_codeobj__527 __pyx_mstate_global->__pyx_codeobj__527
#define __pyx_codeobj__529 __pyx_mstate_global->__pyx_codeobj__529
#define __pyx_codeobj__531 __pyx_mstate_global->__pyx_codeobj__531
#define __pyx_codeobj__532 __pyx_mstate_global->__pyx_codeobj__532
#define __pyx_codeobj__534 __pyx_mstate_global->__pyx_codeobj__534
#define __pyx_codeobj__535 __pyx_mstate_global->__pyx_codeobj__535
#define __pyx_codeobj__536 __pyx_mstate_global->__pyx_codeobj__536
#define __pyx_codeobj__538 __pyx_mstate_global->__pyx_codeobj__538
#define __pyx_codeobj__539 __pyx_mstate_global->__pyx_codeobj__539
#define __pyx_codeobj__540 __pyx_mstate_global->__pyx_codeobj__540
#define __pyx_codeobj__542 __pyx_mstate_global->__pyx_codeobj__542
#define __pyx_codeobj__544 __pyx_mstate_global->__pyx_codeobj__544
#define __pyx_codeobj__545 __pyx_mstate_global->__pyx_codeobj__545
#define __pyx_codeobj__547 __pyx_mstate_global->__pyx_codeobj__547
#define __pyx_codeobj__549 __pyx_mstate_global->__pyx_codeobj__549
#define __pyx_codeobj__551 __pyx_mstate_global->__pyx_codeobj__551
#define __pyx_codeobj__552 __pyx_mstate_global->__pyx_codeobj__552
#define __pyx_codeobj__554 __pyx_mstate_global->__pyx_codeobj__554
#define __pyx_codeobj__556 __pyx_mstate_global->__pyx_codeobj__556
#define __pyx_codeobj__558 __pyx_mstate_global->__pyx_codeobj__558
#define __pyx_codeobj__560 __pyx_mstate_global->__pyx_codeobj__560
#define __pyx_codeobj__562 __pyx_mstate_global->__pyx_codeobj__562
#define __pyx_codeobj__564 __pyx_mstate_global->__pyx_codeobj__564
#define __pyx_codeobj__566 __pyx_mstate_global->__pyx_codeobj__566
#define __pyx_codeobj__568 __pyx_mstate_global->__pyx_codeobj__568
#define __pyx_codeobj__570 __pyx_mstate_global->__pyx_codeobj__570
#define __pyx_codeobj__571 __pyx_mstate_global->__pyx_codeobj__571
#define __pyx_codeobj__573 __pyx_mstate_global->__pyx_codeobj__573
#define __pyx_codeobj__575 __pyx_mstate_global->__pyx_codeobj__575
#define __pyx_codeobj__577 __pyx_mstate_global->__pyx_codeobj__577
#define __pyx_codeobj__579 __pyx_mstate_global->__pyx_codeobj__579
#define __pyx_codeobj__581 __pyx_mstate_global->__pyx_codeobj__581
#define __pyx_codeobj__583 __pyx_mstate_global->__pyx_codeobj__583
#define __pyx_codeobj__585 __pyx_mstate_global->__pyx_codeobj__585
#define __pyx_codeobj__587 __pyx_mstate_global->__pyx_codeobj__587
#define __pyx_codeobj__589 __pyx_mstate_global->__pyx_codeobj__589
#define __pyx_codeobj__591 __pyx_mstate_global->__pyx_codeobj__591
#define __pyx_codeobj__593 __pyx_mstate_global->__pyx_codeobj__593
#define __pyx_codeobj__595 __pyx_mstate_global->__pyx_codeobj__595
#define __pyx_codeobj__597 __pyx_mstate_global->__pyx_codeobj__597
#define __pyx_codeobj__599 __pyx_mstate_global->__pyx_codeobj__599
#define __pyx_codeobj__601 __pyx_mstate_global->__pyx_codeobj__601
#define __pyx_codeobj__603 __pyx_mstate_global->__pyx_codeobj__603
#define __pyx_codeobj__605 __pyx_mstate_global->__pyx_codeobj__605
#define __pyx_codeobj__607 __pyx_mstate_global->__pyx_codeobj__607
#define __pyx_codeobj__608 __pyx_mstate_global->__pyx_codeobj__608
#define __pyx_codeobj__610 __pyx_mstate_global->__pyx_codeobj__610
#define __pyx_codeobj__611 __pyx_mstate_global->__pyx_codeobj__611
#define __pyx_codeobj__613 __pyx_mstate_global->__pyx_codeobj__613
#define __pyx_codeobj__614 __pyx_mstate_global->__pyx_codeobj__614
#define __pyx_codeobj__615 __pyx_mstate_global->__pyx_codeobj__615
#define __pyx_codeobj__617 __pyx_mstate_global->__pyx_codeobj__617
#define __pyx_codeobj__619 __pyx_mstate_global->__pyx_codeobj__619
#define __pyx_codeobj__620 __pyx_mstate_global->__pyx_codeobj__620
#define __pyx_codeobj__622 __pyx_mstate_global->__pyx_codeobj__622
#define __pyx_codeobj__623 __pyx_mstate_global->__pyx_codeobj__623
#define __pyx_codeobj__625 __pyx_mstate_global->__pyx_codeobj__625
#define __pyx_codeobj__626 __pyx_mstate_global->__pyx_codeobj__626
#define __pyx_codeobj__628 __pyx_mstate_global->__pyx_codeobj__628
#define __pyx_codeobj__632 __pyx_mstate_global->__pyx_codeobj__632
#define __pyx_codeobj__634 __pyx_mstate_global->__pyx_codeobj__634
#define __pyx_codeobj__635 __pyx_mstate_global->__pyx_codeobj__635
#define __pyx_codeobj__636 __pyx_mstate_global->__pyx_codeobj__636
#define __pyx_codeobj__639 __pyx_mstate_global->__pyx_codeobj__639
#define __pyx_codeobj__641 __pyx_mstate_global->__pyx_codeobj__641
#define __pyx_codeobj__643 __pyx_mstate_global->__pyx_codeobj__643
#define __pyx_codeobj__645 __pyx_mstate_global->__pyx_codeobj__645
#define __pyx_codeobj__647 __pyx_mstate_global->__pyx_codeobj__647
#define __pyx_codeobj__648 __pyx_mstate_global->__pyx_codeobj__648
#define __pyx_codeobj__649 __pyx_mstate_global->__pyx_codeobj__649
#define __pyx_codeobj__651 __pyx_mstate_global->__pyx_codeobj__651
#define __pyx_codeobj__652 __pyx_mstate_global->__pyx_codeobj__652
#define __pyx_codeobj__653 __pyx_mstate_global->__pyx_codeobj__653
#define __pyx_codeobj__654 __pyx_mstate_global->__pyx_codeobj__654
#define __pyx_codeobj__656 __pyx_mstate_global->__pyx_codeobj__656
#define __pyx_codeobj__659 __pyx_mstate_global->__pyx_codeobj__659
#define __pyx_codeobj__662 __pyx_mstate_global->__pyx_codeobj__662
#define __pyx_codeobj__663 __pyx_mstate_global->__pyx_codeobj__663
#define __pyx_codeobj__665 __pyx_mstate_global->__pyx_codeobj__665
#define __pyx_codeobj__667 __pyx_mstate_global->__pyx_codeobj__667
#define __pyx_codeobj__669 __pyx_mstate_global->__pyx_codeobj__669
#define __pyx_codeobj__671 __pyx_mstate_global->__pyx_codeobj__671
#define __pyx_codeobj__673 __pyx_mstate_global->__pyx_codeobj__673
#define __pyx_codeobj__675 __pyx_mstate_global->__pyx_codeobj__675
#define __pyx_codeobj__678 __pyx_mstate_global->__pyx_codeobj__678
#define __pyx_codeobj__681 __pyx_mstate_global->__pyx_codeobj__681
#define __pyx_codeobj__684 __pyx_mstate_global->__pyx_codeobj__684
#define __pyx_codeobj__685 __pyx_mstate_global->__pyx_codeobj__685
#define __pyx_codeobj__686 __pyx_mstate_global->__pyx_codeobj__686
#define __pyx_codeobj__689 __pyx_mstate_global->__pyx_codeobj__689
#define __pyx_codeobj__691 __pyx_mstate_global->__pyx_codeobj__691
#define __pyx_codeobj__693 __pyx_mstate_global->__pyx_codeobj__693
#define __pyx_codeobj__695 __pyx_mstate_global->__pyx_codeobj__695
#define __pyx_codeobj__697 __pyx_mstate_global->__pyx_codeobj__697
#define __pyx_codeobj__699 __pyx_mstate_global->__pyx_codeobj__699
#define __pyx_codeobj__701 __pyx_mstate_global->__pyx_codeobj__701
#define __pyx_codeobj__702 __pyx_mstate_global->__pyx_codeobj__702
#define __pyx_codeobj__704 __pyx_mstate_global->__pyx_codeobj__704
#define __pyx_codeobj__706 __pyx_mstate_global->__pyx_codeobj__706
#define __pyx_codeobj__707 __pyx_mstate_global->__pyx_codeobj__707
#define __pyx_codeobj__709 __pyx_mstate_global->__pyx_codeobj__709
#define __pyx_codeobj__712 __pyx_mstate_global->__pyx_codeobj__712
#define __pyx_codeobj__715 __pyx_mstate_global->__pyx_codeobj__715
#define __pyx_codeobj__717 __pyx_mstate_global->__pyx_codeobj__717
#define __pyx_codeobj__719 __pyx_mstate_global->__pyx_codeobj__719
#define __pyx_codeobj__721 __pyx_mstate_global->__pyx_codeobj__721
#define __pyx_codeobj__723 __pyx_mstate_global->__pyx_codeobj__723
#define __pyx_codeobj__725 __pyx_mstate_global->__pyx_codeobj__725
#define __pyx_codeobj__727 __pyx_mstate_global->__pyx_codeobj__727
#define __pyx_codeobj__728 __pyx_mstate_global->__pyx_codeobj__728
#define __pyx_codeobj__729 __pyx_mstate_global->__pyx_codeobj__729
#define __pyx_codeobj__731 __pyx_mstate_global->__pyx_codeobj__731
#define __pyx_codeobj__733 __pyx_mstate_global->__pyx_codeobj__733
#define __pyx_codeobj__734 __pyx_mstate_global->__pyx_codeobj__734
#define __pyx_codeobj__735 __pyx_mstate_global->__pyx_codeobj__735
#define __pyx_codeobj__740 __pyx_mstate_global->__pyx_codeobj__740
#define __pyx_codeobj__743 __pyx_mstate_global->__pyx_codeobj__743
#define __pyx_codeobj__745 __pyx_mstate_global->__pyx_codeobj__745
#define __pyx_codeobj__746 __pyx_mstate_global->__pyx_codeobj__746
#define __pyx_codeobj__748 __pyx_mstate_global->__pyx_codeobj__748
#define __pyx_codeobj__750 __pyx_mstate_global->__pyx_codeobj__750
#define __pyx_codeobj__751 __pyx_mstate_global->__pyx_codeobj__751
#define __pyx_codeobj__753 __pyx_mstate_global->__pyx_codeobj__753
#define __pyx_codeobj__755 __pyx_mstate_global->__pyx_codeobj__755
#define __pyx_codeobj__756 __pyx_mstate_global->__pyx_codeobj__756
#define __pyx_codeobj__757 __pyx_mstate_global->__pyx_codeobj__757
#define __pyx_codeobj__758 __pyx_mstate_global->__pyx_codeobj__758
#define __pyx_codeobj__760 __pyx_mstate_global->__pyx_codeobj__760
#define __pyx_codeobj__762 __pyx_mstate_global->__pyx_codeobj__762
#define __pyx_codeobj__763 __pyx_mstate_global->__pyx_codeobj__763
#define __pyx_codeobj__765 __pyx_mstate_global->__pyx_codeobj__765
#define __pyx_codeobj__766 __pyx_mstate_global->__pyx_codeobj__766
#define __pyx_codeobj__769 __pyx_mstate_global->__pyx_codeobj__769
#define __pyx_codeobj__771 __pyx_mstate_global->__pyx_codeobj__771
#define __pyx_codeobj__773 __pyx_mstate_global->__pyx_codeobj__773
#define __pyx_codeobj__775 __pyx_mstate_global->__pyx_codeobj__775
#define __pyx_codeobj__777 __pyx_mstate_global->__pyx_codeobj__777
/* #### Code section: module_code ### */

/* "carray.from_py":79
 * 
 * @cname("__Pyx_carray_from_py_float")
 * cdef int __Pyx_carray_from_py_float(object o, base_type *v, Py_ssize_t length) except -1:             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t i = length
 *     try:
 */

static int __Pyx_carray_from_py_float(PyObject *__pyx_v_o, float *__pyx_v_v, Py_ssize_t __pyx_v_length) {
  Py_ssize_t __pyx_v_i;
  PyObject *__pyx_v_item = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  PyObject *__pyx_t_10 = NULL;
  float __pyx_t_11;
  char const *__pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_carray_from_py_float", 1);

  /* "carray.from_py":80
 * @cname("__Pyx_carray_from_py_float")
 * cdef int __Pyx_carray_from_py_float(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length             # <<<<<<<<<<<<<<
 *     try:
 *         i = len(o)
 */
  __pyx_v_i = __pyx_v_length;

  /* "carray.from_py":81
 * cdef int __Pyx_carray_from_py_float(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length
 *     try:             # <<<<<<<<<<<<<<
 *         i = len(o)
 *     except (TypeError, OverflowError):
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "carray.from_py":82
 *     cdef Py_ssize_t i = length
 *     try:
 *         i = len(o)             # <<<<<<<<<<<<<<
 *     except (TypeError, OverflowError):
 *         pass
 */
      __pyx_t_4 = PyObject_Length(__pyx_v_o); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(3, 82, __pyx_L3_error)
      __pyx_v_i = __pyx_t_4;

      /* "carray.from_py":81
 * cdef int __Pyx_carray_from_py_float(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length
 *     try:             # <<<<<<<<<<<<<<
 *         i = len(o)
 *     except (TypeError, OverflowError):
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    /* "carray.from_py":83
 *     try:
 *         i = len(o)
 *     except (TypeError, OverflowError):             # <<<<<<<<<<<<<<
 *         pass
 *     if i == length:
 */
    __pyx_t_5 = __Pyx_PyErr_ExceptionMatches2(__pyx_builtin_TypeError, __pyx_builtin_OverflowError);
    if (__pyx_t_5) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "carray.from_py":81
 * cdef int __Pyx_carray_from_py_float(object o, base_type *v, Py_ssize_t length) except -1:
 *     cdef Py_ssize_t i = length
 *     try:             # <<<<<<<<<<<<<<
 *         i = len(o)
 *     except (TypeError, OverflowError):
 */
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "carray.from_py":85
 *     except (TypeError, OverflowError):
 *         pass
 *     if i == length:             # <<<<<<<<<<<<<<
 *         for i, item in enumerate(o):
 *             if i >= length:
 */
  __pyx_t_6 = (__pyx_v_i == __pyx_v_length);
  if (__pyx_t_6) {

    /* "carray.from_py":86
 *         pass
 *     if i == length:
 *         for i, item in enumerate(o):             # <<<<<<<<<<<<<<
 *             if i >= length:
 *                 break
 */
    __pyx_t_4 = 0;
    if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
      __pyx_t_7 = __pyx_v_o; __Pyx_INCREF(__pyx_t_7);
      __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 86, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 86, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_7))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_7);
            #if !CYTHON_ASSUME_SAFE_MACROS
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 86, __pyx_L1_error)
            #endif
            if (__pyx_t_8 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(3, 86, __pyx_L1_error)
          #else
          __pyx_t_10 = __Pyx_PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 86, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_7);
            #if !CYTHON_ASSUME_SAFE_MACROS
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 86, __pyx_L1_error)
            #endif
            if (__pyx_t_8 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(3, 86, __pyx_L1_error)
          #else
          __pyx_t_10 = __Pyx_PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 86, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        }
      } else {
        __pyx_t_10 = __pyx_t_9(__pyx_t_7);
        if (unlikely(!__pyx_t_10)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(3, 86, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_10);
      __pyx_t_10 = 0;
      __pyx_v_i = __pyx_t_4;
      __pyx_t_4 = (__pyx_t_4 + 1);

      /* "carray.from_py":87
 *     if i == length:
 *         for i, item in enumerate(o):
 *             if i >= length:             # <<<<<<<<<<<<<<
 *                 break
 *             v[i] = item
 */
      __pyx_t_6 = (__pyx_v_i >= __pyx_v_length);
      if (__pyx_t_6) {

        /* "carray.from_py":88
 *         for i, item in enumerate(o):
 *             if i >= length:
 *                 break             # <<<<<<<<<<<<<<
 *             v[i] = item
 *         else:
 */
        goto __pyx_L11_break;

        /* "carray.from_py":87
 *     if i == length:
 *         for i, item in enumerate(o):
 *             if i >= length:             # <<<<<<<<<<<<<<
 *                 break
 *             v[i] = item
 */
      }

      /* "carray.from_py":89
 *             if i >= length:
 *                 break
 *             v[i] = item             # <<<<<<<<<<<<<<
 *         else:
 *             i += 1  # convert index to length
 */
      __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_v_item); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(3, 89, __pyx_L1_error)
      (__pyx_v_v[__pyx_v_i]) = __pyx_t_11;

      /* "carray.from_py":86
 *         pass
 *     if i == length:
 *         for i, item in enumerate(o):             # <<<<<<<<<<<<<<
 *             if i >= length:
 *                 break
 */
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L13_for_else;
    __pyx_L11_break:;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L14_for_end;
    /*else*/ {
      __pyx_L13_for_else:;

      /* "carray.from_py":91
 *             v[i] = item
 *         else:
 *             i += 1  # convert index to length             # <<<<<<<<<<<<<<
 *             if i == length:
 *                 return 0
 */
      __pyx_v_i = (__pyx_v_i + 1);

      /* "carray.from_py":92
 *         else:
 *             i += 1  # convert index to length
 *             if i == length:             # <<<<<<<<<<<<<<
 *                 return 0
 * 
 */
      __pyx_t_6 = (__pyx_v_i == __pyx_v_length);
      if (__pyx_t_6) {

        /* "carray.from_py":93
 *             i += 1  # convert index to length
 *             if i == length:
 *                 return 0             # <<<<<<<<<<<<<<
 * 
 *     PyErr_Format(
 */
        __pyx_r = 0;
        goto __pyx_L0;

        /* "carray.from_py":92
 *         else:
 *             i += 1  # convert index to length
 *             if i == length:             # <<<<<<<<<<<<<<
 *                 return 0
 * 
 */
      }
    }
    __pyx_L14_for_end:;

    /* "carray.from_py":85
 *     except (TypeError, OverflowError):
 *         pass
 *     if i == length:             # <<<<<<<<<<<<<<
 *         for i, item in enumerate(o):
 *             if i >= length:
 */
  }

  /* "carray.from_py":98
 *         IndexError,
 *         ("too many values found during array assignment, expected %zd"
 *          if i >= length else             # <<<<<<<<<<<<<<
 *          "not enough values found during array assignment, expected %zd, got %zd"),
 *         length, i)
 */
  __pyx_t_6 = (__pyx_v_i >= __pyx_v_length);
  if (__pyx_t_6) {
    __pyx_t_12 = ((char const *)"too many values found during array assignment, expected %zd");
  } else {
    __pyx_t_12 = ((char const *)"not enough values found during array assignment, expected %zd, got %zd");
  }

  /* "carray.from_py":95
 *                 return 0
 * 
 *     PyErr_Format(             # <<<<<<<<<<<<<<
 *         IndexError,
 *         ("too many values found during array assignment, expected %zd"
 */
  __pyx_t_7 = PyErr_Format(__pyx_builtin_IndexError, __pyx_t_12, __pyx_v_length, __pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "carray.from_py":79
 * 
 * @cname("__Pyx_carray_from_py_float")
 * cdef int __Pyx_carray_from_py_float(object o, base_type *v, Py_ssize_t length) except -1:             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t i = length
 *     try:
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("carray.from_py.__Pyx_carray_from_py_float", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":131
 *         cdef bint dtype_is_object
 * 
 *     def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None,             # <<<<<<<<<<<<<<
 *                   mode="c", bint allocate_buffer=True):
 * 
 */

/* Python wrapper */
static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_shape = 0;
  Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_format = 0;
  PyObject *__pyx_v_mode = 0;
  int __pyx_v_allocate_buffer;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shape,&__pyx_n_s_itemsize,&__pyx_n_s_format,&__pyx_n_s_mode,&__pyx_n_s_allocate_buffer,0};
    values[3] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_n_s_c));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_shape)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 131, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_itemsize)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 131, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 1); __PYX_ERR(3, 131, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_format)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 131, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 2); __PYX_ERR(3, 131, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mode);
          if (value) { values[3] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 131, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allocate_buffer);
          if (value) { values[4] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 131, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(3, 131, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_shape = ((PyObject*)values[0]);
    __pyx_v_itemsize = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_itemsize == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 131, __pyx_L3_error)
    __pyx_v_format = values[2];
    __pyx_v_mode = values[3];
    if (values[4]) {
      __pyx_v_allocate_buffer = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allocate_buffer == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 132, __pyx_L3_error)
    } else {

      /* "View.MemoryView":132
 * 
 *     def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None,
 *                   mode="c", bint allocate_buffer=True):             # <<<<<<<<<<<<<<
 * 
 *         cdef int idx
 */
      __pyx_v_allocate_buffer = ((int)1);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, __pyx_nargs); __PYX_ERR(3, 131, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_shape), (&PyTuple_Type), 1, "shape", 1))) __PYX_ERR(3, 131, __pyx_L1_error)
  if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(3, 131, __pyx_L1_error)
  }
  __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v_shape, __pyx_v_itemsize, __pyx_v_format, __pyx_v_mode, __pyx_v_allocate_buffer);

  /* "View.MemoryView":131
 *         cdef bint dtype_is_object
 * 
 *     def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None,             # <<<<<<<<<<<<<<
 *                   mode="c", bint allocate_buffer=True):
 * 
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer) {
  int __pyx_v_idx;
  Py_ssize_t __pyx_v_dim;
  char __pyx_v_order;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  char *__pyx_t_8;
  Py_ssize_t __pyx_t_9;
  Py_UCS4 __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_INCREF(__pyx_v_format);

  /* "View.MemoryView":137
 *         cdef Py_ssize_t dim
 * 
 *         self.ndim = <int> len(shape)             # <<<<<<<<<<<<<<
 *         self.itemsize = itemsize
 * 
 */
  if (unlikely(__pyx_v_shape == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(3, 137, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyTuple_GET_SIZE(__pyx_v_shape); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(3, 137, __pyx_L1_error)
  __pyx_v_self->ndim = ((int)__pyx_t_1);

  /* "View.MemoryView":138
 * 
 *         self.ndim = <int> len(shape)
 *         self.itemsize = itemsize             # <<<<<<<<<<<<<<
 * 
 *         if not self.ndim:
 */
  __pyx_v_self->itemsize = __pyx_v_itemsize;

  /* "View.MemoryView":140
 *         self.itemsize = itemsize
 * 
 *         if not self.ndim:             # <<<<<<<<<<<<<<
 *             raise ValueError, "Empty shape tuple for cython.array"
 * 
 */
  __pyx_t_2 = (!(__pyx_v_self->ndim != 0));
  if (unlikely(__pyx_t_2)) {

    /* "View.MemoryView":141
 * 
 *         if not self.ndim:
 *             raise ValueError, "Empty shape tuple for cython.array"             # <<<<<<<<<<<<<<
 * 
 *         if itemsize <= 0:
 */
    __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Empty_shape_tuple_for_cython_arr, 0, 0);
    __PYX_ERR(3, 141, __pyx_L1_error)

    /* "View.MemoryView":140
 *         self.itemsize = itemsize
 * 
 *         if not self.ndim:             # <<<<<<<<<<<<<<
 *             raise ValueError, "Empty shape tuple for cython.array"
 * 
 */
  }

  /* "View.MemoryView":143
 *             raise ValueError, "Empty shape tuple for cython.array"
 * 
 *         if itemsize <= 0:             # <<<<<<<<<<<<<<
 *             raise ValueError, "itemsize <= 0 for cython.array"
 * 
 */
  __pyx_t_2 = (__pyx_v_itemsize <= 0);
  if (unlikely(__pyx_t_2)) {

    /* "View.MemoryView":144
 * 
 *         if itemsize <= 0:
 *             raise ValueError, "itemsize <= 0 for cython.array"             # <<<<<<<<<<<<<<
 * 
 *         if not isinstance(format, bytes):
 */
    __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_itemsize_0_for_cython_array, 0, 0);
    __PYX_ERR(3, 144, __pyx_L1_error)

    /* "View.MemoryView":143
 *             raise ValueError, "Empty shape tuple for cython.array"
 * 
 *         if itemsize <= 0:             # <<<<<<<<<<<<<<
 *             raise ValueError, "itemsize <= 0 for cython.array"
 * 
 */
  }

  /* "View.MemoryView":146
 *             raise ValueError, "itemsize <= 0 for cython.array"
 * 
 *         if not isinstance(format, bytes):             # <<<<<<<<<<<<<<
 *             format = format.encode('ASCII')
 *         self._format = format  # keep a reference to the byte string
 */
  __pyx_t_2 = PyBytes_Check(__pyx_v_format); 
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "View.MemoryView":147
 * 
 *         if not isinstance(format, bytes):
 *             format = format.encode('ASCII')             # <<<<<<<<<<<<<<
 *         self._format = format  # keep a reference to the byte string
 *         self.format = self._format
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 147, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_n_s_ASCII};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 147, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF_SET(__pyx_v_format, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "View.MemoryView":146
 *             raise ValueError, "itemsize <= 0 for cython.array"
 * 
 *         if not isinstance(format, bytes):             # <<<<<<<<<<<<<<
 *             format = format.encode('ASCII')
 *         self._format = format  # keep a reference to the byte string
 */
  }

  /* "View.MemoryView":148
 *         if not isinstance(format, bytes):
 *             format = format.encode('ASCII')
 *         self._format = format  # keep a reference to the byte string             # <<<<<<<<<<<<<<
 *         self.format = self._format
 * 
 */
  if (!(likely(PyBytes_CheckExact(__pyx_v_format))||((__pyx_v_format) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_format))) __PYX_ERR(3, 148, __pyx_L1_error)
  __pyx_t_4 = __pyx_v_format;
  __Pyx_INCREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->_format);
  __Pyx_DECREF(__pyx_v_self->_format);
  __pyx_v_self->_format = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "View.MemoryView":149
 *             format = format.encode('ASCII')
 *         self._format = format  # keep a reference to the byte string
 *         self.format = self._format             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (unlikely(__pyx_v_self->_format == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(3, 149, __pyx_L1_error)
  }
  __pyx_t_8 = __Pyx_PyBytes_AsWritableString(__pyx_v_self->_format); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(3, 149, __pyx_L1_error)
  __pyx_v_self->format = __pyx_t_8;

  /* "View.MemoryView":152
 * 
 * 
 *         self._shape = <Py_ssize_t *> PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2)             # <<<<<<<<<<<<<<
 *         self._strides = self._shape + self.ndim
 * 
 */
  __pyx_v_self->_shape = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * __pyx_v_self->ndim) * 2)));

  /* "View.MemoryView":153
 * 
 *         self._shape = <Py_ssize_t *> PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2)
 *         self._strides = self._shape + self.ndim             # <<<<<<<<<<<<<<
 * 
 *         if not self._shape:
 */
  __pyx_v_self->_strides = (__pyx_v_self->_shape + __pyx_v_self->ndim);

  /* "View.MemoryView":155
 *         self._strides = self._shape + self.ndim
 * 
 *         if not self._shape:             # <<<<<<<<<<<<<<
 *             raise MemoryError, "unable to allocate shape and strides."
 * 
 */
  __pyx_t_3 = (!(__pyx_v_self->_shape != 0));
  if (unlikely(__pyx_t_3)) {

    /* "View.MemoryView":156
 * 
 *         if not self._shape:
 *             raise MemoryError, "unable to allocate shape and strides."             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_Raise(__pyx_builtin_MemoryError, __pyx_kp_s_unable_to_allocate_shape_and_str, 0, 0);
    __PYX_ERR(3, 156, __pyx_L1_error)

    /* "View.MemoryView":155
 *         self._strides = self._shape + self.ndim
 * 
 *         if not self._shape:             # <<<<<<<<<<<<<<
 *             raise MemoryError, "unable to allocate shape and strides."
 * 
 */
  }

  /* "View.MemoryView":159
 * 
 * 
 *         for idx, dim in enumerate(shape):             # <<<<<<<<<<<<<<
 *             if dim <= 0:
 *                 raise ValueError, f"Invalid shape in axis {idx}: {dim}."
 */
  __pyx_t_7 = 0;
  __pyx_t_4 = __pyx_v_shape; __Pyx_INCREF(__pyx_t_4);
  __pyx_t_1 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
      #if !CYTHON_ASSUME_SAFE_MACROS
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 159, __pyx_L1_error)
      #endif
      if (__pyx_t_1 >= __pyx_temp) break;
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++; if (unlikely((0 < 0))) __PYX_ERR(3, 159, __pyx_L1_error)
    #else
    __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    #endif
    __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 159, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_dim = __pyx_t_9;
    __pyx_v_idx = __pyx_t_7;
    __pyx_t_7 = (__pyx_t_7 + 1);

    /* "View.MemoryView":160
 * 
 *         for idx, dim in enumerate(shape):
 *             if dim <= 0:             # <<<<<<<<<<<<<<
 *                 raise ValueError, f"Invalid shape in axis {idx}: {dim}."
 *             self._shape[idx] = dim
 */
    __pyx_t_3 = (__pyx_v_dim <= 0);
    if (unlikely(__pyx_t_3)) {

      /* "View.MemoryView":161
 *         for idx, dim in enumerate(shape):
 *             if dim <= 0:
 *                 raise ValueError, f"Invalid shape in axis {idx}: {dim}."             # <<<<<<<<<<<<<<
 *             self._shape[idx] = dim
 * 
 */
      __pyx_t_5 = PyTuple_New(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 161, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_9 = 0;
      __pyx_t_10 = 127;
      __Pyx_INCREF(__pyx_kp_u_Invalid_shape_in_axis);
      __pyx_t_9 += 22;
      __Pyx_GIVEREF(__pyx_kp_u_Invalid_shape_in_axis);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_kp_u_Invalid_shape_in_axis);
      __pyx_t_6 = __Pyx_PyUnicode_From_int(__pyx_v_idx, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 161, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6);
      __pyx_t_6 = 0;
      __Pyx_INCREF(__pyx_kp_u_);
      __pyx_t_9 += 2;
      __Pyx_GIVEREF(__pyx_kp_u_);
      PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_kp_u_);
      __pyx_t_6 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_dim, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 161, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_6);
      __pyx_t_6 = 0;
      __Pyx_INCREF(__pyx_kp_u__2);
      __pyx_t_9 += 1;
      __Pyx_GIVEREF(__pyx_kp_u__2);
      PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_kp_u__2);
      __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_5, 5, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 161, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_6, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(3, 161, __pyx_L1_error)

      /* "View.MemoryView":160
 * 
 *         for idx, dim in enumerate(shape):
 *             if dim <= 0:             # <<<<<<<<<<<<<<
 *                 raise ValueError, f"Invalid shape in axis {idx}: {dim}."
 *             self._shape[idx] = dim
 */
    }

    /* "View.MemoryView":162
 *             if dim <= 0:
 *                 raise ValueError, f"Invalid shape in axis {idx}: {dim}."
 *             self._shape[idx] = dim             # <<<<<<<<<<<<<<
 * 
 *         cdef char order
 */
    (__pyx_v_self->_shape[__pyx_v_idx]) = __pyx_v_dim;

    /* "View.MemoryView":159
 * 
 * 
 *         for idx, dim in enumerate(shape):             # <<<<<<<<<<<<<<
 *             if dim <= 0:
 *                 raise ValueError, f"Invalid shape in axis {idx}: {dim}."
 */
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "View.MemoryView":165
 * 
 *         cdef char order
 *         if mode == 'c':             # <<<<<<<<<<<<<<
 *             order = b'C'
 *             self.mode = u'c'
 */
  __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_c, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(3, 165, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "View.MemoryView":166
 *         cdef char order
 *         if mode == 'c':
 *             order = b'C'             # <<<<<<<<<<<<<<
 *             self.mode = u'c'
 *         elif mode == 'fortran':
 */
    __pyx_v_order = 'C';

    /* "View.MemoryView":167
 *         if mode == 'c':
 *             order = b'C'
 *             self.mode = u'c'             # <<<<<<<<<<<<<<
 *         elif mode == 'fortran':
 *             order = b'F'
 */
    __Pyx_INCREF(__pyx_n_u_c);
    __Pyx_GIVEREF(__pyx_n_u_c);
    __Pyx_GOTREF(__pyx_v_self->mode);
    __Pyx_DECREF(__pyx_v_self->mode);
    __pyx_v_self->mode = __pyx_n_u_c;

    /* "View.MemoryView":165
 * 
 *         cdef char order
 *         if mode == 'c':             # <<<<<<<<<<<<<<
 *             order = b'C'
 *             self.mode = u'c'
 */
    goto __pyx_L11;
  }

  /* "View.MemoryView":168
 *             order = b'C'
 *             self.mode = u'c'
 *         elif mode == 'fortran':             # <<<<<<<<<<<<<<
 *             order = b'F'
 *             self.mode = u'fortran'
 */
  __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_fortran, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(3, 168, __pyx_L1_error)
  if (likely(__pyx_t_3)) {

    /* "View.MemoryView":169
 *             self.mode = u'c'
 *         elif mode == 'fortran':
 *             order = b'F'             # <<<<<<<<<<<<<<
 *             self.mode = u'fortran'
 *         else:
 */
    __pyx_v_order = 'F';

    /* "View.MemoryView":170
 *         elif mode == 'fortran':
 *             order = b'F'
 *             self.mode = u'fortran'             # <<<<<<<<<<<<<<
 *         else:
 *             raise ValueError, f"Invalid mode, expected 'c' or 'fortran', got {mode}"
 */
    __Pyx_INCREF(__pyx_n_u_fortran);
    __Pyx_GIVEREF(__pyx_n_u_fortran);
    __Pyx_GOTREF(__pyx_v_self->mode);
    __Pyx_DECREF(__pyx_v_self->mode);
    __pyx_v_self->mode = __pyx_n_u_fortran;

    /* "View.MemoryView":168
 *             order = b'C'
 *             self.mode = u'c'
 *         elif mode == 'fortran':             # <<<<<<<<<<<<<<
 *             order = b'F'
 *             self.mode = u'fortran'
 */
    goto __pyx_L11;
  }

  /* "View.MemoryView":172
 *             self.mode = u'fortran'
 *         else:
 *             raise ValueError, f"Invalid mode, expected 'c' or 'fortran', got {mode}"             # <<<<<<<<<<<<<<
 * 
 *         self.len = fill_contig_strides_array(self._shape, self._strides, itemsize, self.ndim, order)
 */
  /*else*/ {
    __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_mode, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_mode_expected_c_or_fortr, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_6, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(3, 172, __pyx_L1_error)
  }
  __pyx_L11:;

  /* "View.MemoryView":174
 *             raise ValueError, f"Invalid mode, expected 'c' or 'fortran', got {mode}"
 * 
 *         self.len = fill_contig_strides_array(self._shape, self._strides, itemsize, self.ndim, order)             # <<<<<<<<<<<<<<
 * 
 *         self.free_data = allocate_buffer
 */
  __pyx_v_self->len = __pyx_fill_contig_strides_array(__pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_itemsize, __pyx_v_self->ndim, __pyx_v_order);

  /* "View.MemoryView":176
 *         self.len = fill_contig_strides_array(self._shape, self._strides, itemsize, self.ndim, order)
 * 
 *         self.free_data = allocate_buffer             # <<<<<<<<<<<<<<
 *         self.dtype_is_object = format == b'O'
 * 
 */
  __pyx_v_self->free_data = __pyx_v_allocate_buffer;

  /* "View.MemoryView":177
 * 
 *         self.free_data = allocate_buffer
 *         self.dtype_is_object = format == b'O'             # <<<<<<<<<<<<<<
 * 
 *         if allocate_buffer:
 */
  __pyx_t_6 = PyObject_RichCompare(__pyx_v_format, __pyx_n_b_O, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 177, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 177, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_v_self->dtype_is_object = __pyx_t_3;

  /* "View.MemoryView":179
 *         self.dtype_is_object = format == b'O'
 * 
 *         if allocate_buffer:             # <<<<<<<<<<<<<<
 *             _allocate_buffer(self)
 * 
 */
  if (__pyx_v_allocate_buffer) {

    /* "View.MemoryView":180
 * 
 *         if allocate_buffer:
 *             _allocate_buffer(self)             # <<<<<<<<<<<<<<
 * 
 *     @cname('getbuffer')
 */
    __pyx_t_7 = __pyx_array_allocate_buffer(__pyx_v_self); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(3, 180, __pyx_L1_error)

    /* "View.MemoryView":179
 *         self.dtype_is_object = format == b'O'
 * 
 *         if allocate_buffer:             # <<<<<<<<<<<<<<
 *             _allocate_buffer(self)
 * 
 */
  }

  /* "View.MemoryView":131
 *         cdef bint dtype_is_object
 * 
 *     def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None,             # <<<<<<<<<<<<<<
 *                   mode="c", bint allocate_buffer=True):
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_format);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":182
 *             _allocate_buffer(self)
 * 
 *     @cname('getbuffer')             # <<<<<<<<<<<<<<
 *     def __getbuffer__(self, Py_buffer *info, int flags):
 *         cdef int bufmode = -1
 */

/* Python wrapper */
CYTHON_UNUSED static int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
CYTHON_UNUSED static int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(((struct __pyx_array_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
  int __pyx_v_bufmode;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  char *__pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (unlikely(__pyx_v_info == NULL)) {
    PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete");
    return -1;
  }
  __Pyx_RefNannySetupContext("__getbuffer__", 0);
  __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(__pyx_v_info->obj);

  /* "View.MemoryView":184
 *     @cname('getbuffer')
 *     def __getbuffer__(self, Py_buffer *info, int flags):
 *         cdef int bufmode = -1             # <<<<<<<<<<<<<<
 *         if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):
 *             if self.mode == u"c":
 */
  __pyx_v_bufmode = -1;

  /* "View.MemoryView":185
 *     def __getbuffer__(self, Py_buffer *info, int flags):
 *         cdef int bufmode = -1
 *         if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):             # <<<<<<<<<<<<<<
 *             if self.mode == u"c":
 *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
 */
  __pyx_t_1 = ((__pyx_v_flags & ((PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS) | PyBUF_ANY_CONTIGUOUS)) != 0);
  if (__pyx_t_1) {

    /* "View.MemoryView":186
 *         cdef int bufmode = -1
 *         if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):
 *             if self.mode == u"c":             # <<<<<<<<<<<<<<
 *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
 *             elif self.mode == u"fortran":
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_c, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(3, 186, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "View.MemoryView":187
 *         if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):
 *             if self.mode == u"c":
 *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS             # <<<<<<<<<<<<<<
 *             elif self.mode == u"fortran":
 *                 bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
 */
      __pyx_v_bufmode = (PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS);

      /* "View.MemoryView":186
 *         cdef int bufmode = -1
 *         if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):
 *             if self.mode == u"c":             # <<<<<<<<<<<<<<
 *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
 *             elif self.mode == u"fortran":
 */
      goto __pyx_L4;
    }

    /* "View.MemoryView":188
 *             if self.mode == u"c":
 *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
 *             elif self.mode == u"fortran":             # <<<<<<<<<<<<<<
 *                 bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
 *             if not (flags & bufmode):
 */
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_fortran, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(3, 188, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "View.MemoryView":189
 *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
 *             elif self.mode == u"fortran":
 *                 bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS             # <<<<<<<<<<<<<<
 *             if not (flags & bufmode):
 *                 raise ValueError, "Can only create a buffer that is contiguous in memory."
 */
      __pyx_v_bufmode = (PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS);

      /* "View.MemoryView":188
 *             if self.mode == u"c":
 *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
 *             elif self.mode == u"fortran":             # <<<<<<<<<<<<<<
 *                 bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
 *             if not (flags & bufmode):
 */
    }
    __pyx_L4:;

    /* "View.MemoryView":190
 *             elif self.mode == u"fortran":
 *                 bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
 *             if not (flags & bufmode):             # <<<<<<<<<<<<<<
 *                 raise ValueError, "Can only create a buffer that is contiguous in memory."
 *         info.buf = self.data
 */
    __pyx_t_1 = (!((__pyx_v_flags & __pyx_v_bufmode) != 0));
    if (unlikely(__pyx_t_1)) {

      /* "View.MemoryView":191
 *                 bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
 *             if not (flags & bufmode):
 *                 raise ValueError, "Can only create a buffer that is contiguous in memory."             # <<<<<<<<<<<<<<
 *         info.buf = self.data
 *         info.len = self.len
 */
      __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Can_only_create_a_buffer_that_is, 0, 0);
      __PYX_ERR(3, 191, __pyx_L1_error)

      /* "View.MemoryView":190
 *             elif self.mode == u"fortran":
 *                 bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
 *             if not (flags & bufmode):             # <<<<<<<<<<<<<<
 *                 raise ValueError, "Can only create a buffer that is contiguous in memory."
 *         info.buf = self.data
 */
    }

    /* "View.MemoryView":185
 *     def __getbuffer__(self, Py_buffer *info, int flags):
 *         cdef int bufmode = -1
 *         if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):             # <<<<<<<<<<<<<<
 *             if self.mode == u"c":
 *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
 */
  }

  /* "View.MemoryView":192
 *             if not (flags & bufmode):
 *                 raise ValueError, "Can only create a buffer that is contiguous in memory."
 *         info.buf = self.data             # <<<<<<<<<<<<<<
 *         info.len = self.len
 * 
 */
  __pyx_t_2 = __pyx_v_self->data;
  __pyx_v_info->buf = __pyx_t_2;

  /* "View.MemoryView":193
 *                 raise ValueError, "Can only create a buffer that is contiguous in memory."
 *         info.buf = self.data
 *         info.len = self.len             # <<<<<<<<<<<<<<
 * 
 *         if flags & PyBUF_STRIDES:
 */
  __pyx_t_3 = __pyx_v_self->len;
  __pyx_v_info->len = __pyx_t_3;

  /* "View.MemoryView":195
 *         info.len = self.len
 * 
 *         if flags & PyBUF_STRIDES:             # <<<<<<<<<<<<<<
 *             info.ndim = self.ndim
 *             info.shape = self._shape
 */
  __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0);
  if (__pyx_t_1) {

    /* "View.MemoryView":196
 * 
 *         if flags & PyBUF_STRIDES:
 *             info.ndim = self.ndim             # <<<<<<<<<<<<<<
 *             info.shape = self._shape
 *             info.strides = self._strides
 */
    __pyx_t_4 = __pyx_v_self->ndim;
    __pyx_v_info->ndim = __pyx_t_4;

    /* "View.MemoryView":197
 *         if flags & PyBUF_STRIDES:
 *             info.ndim = self.ndim
 *             info.shape = self._shape             # <<<<<<<<<<<<<<
 *             info.strides = self._strides
 *         else:
 */
    __pyx_t_5 = __pyx_v_self->_shape;
    __pyx_v_info->shape = __pyx_t_5;

    /* "View.MemoryView":198
 *             info.ndim = self.ndim
 *             info.shape = self._shape
 *             info.strides = self._strides             # <<<<<<<<<<<<<<
 *         else:
 *             info.ndim = 1
 */
    __pyx_t_5 = __pyx_v_self->_strides;
    __pyx_v_info->strides = __pyx_t_5;

    /* "View.MemoryView":195
 *         info.len = self.len
 * 
 *         if flags & PyBUF_STRIDES:             # <<<<<<<<<<<<<<
 *             info.ndim = self.ndim
 *             info.shape = self._shape
 */
    goto __pyx_L6;
  }

  /* "View.MemoryView":200
 *             info.strides = self._strides
 *         else:
 *             info.ndim = 1             # <<<<<<<<<<<<<<
 *             info.shape = &self.len if flags & PyBUF_ND else NULL
 *             info.strides = NULL
 */
  /*else*/ {
    __pyx_v_info->ndim = 1;

    /* "View.MemoryView":201
 *         else:
 *             info.ndim = 1
 *             info.shape = &self.len if flags & PyBUF_ND else NULL             # <<<<<<<<<<<<<<
 *             info.strides = NULL
 * 
 */
    __pyx_t_1 = ((__pyx_v_flags & PyBUF_ND) != 0);
    if (__pyx_t_1) {
      __pyx_t_5 = (&__pyx_v_self->len);
    } else {
      __pyx_t_5 = NULL;
    }
    __pyx_v_info->shape = __pyx_t_5;

    /* "View.MemoryView":202
 *             info.ndim = 1
 *             info.shape = &self.len if flags & PyBUF_ND else NULL
 *             info.strides = NULL             # <<<<<<<<<<<<<<
 * 
 *         info.suboffsets = NULL
 */
    __pyx_v_info->strides = NULL;
  }
  __pyx_L6:;

  /* "View.MemoryView":204
 *             info.strides = NULL
 * 
 *         info.suboffsets = NULL             # <<<<<<<<<<<<<<
 *         info.itemsize = self.itemsize
 *         info.readonly = 0
 */
  __pyx_v_info->suboffsets = NULL;

  /* "View.MemoryView":205
 * 
 *         info.suboffsets = NULL
 *         info.itemsize = self.itemsize             # <<<<<<<<<<<<<<
 *         info.readonly = 0
 *         info.format = self.format if flags & PyBUF_FORMAT else NULL
 */
  __pyx_t_3 = __pyx_v_self->itemsize;
  __pyx_v_info->itemsize = __pyx_t_3;

  /* "View.MemoryView":206
 *         info.suboffsets = NULL
 *         info.itemsize = self.itemsize
 *         info.readonly = 0             # <<<<<<<<<<<<<<
 *         info.format = self.format if flags & PyBUF_FORMAT else NULL
 *         info.obj = self
 */
  __pyx_v_info->readonly = 0;

  /* "View.MemoryView":207
 *         info.itemsize = self.itemsize
 *         info.readonly = 0
 *         info.format = self.format if flags & PyBUF_FORMAT else NULL             # <<<<<<<<<<<<<<
 *         info.obj = self
 * 
 */
  __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
  if (__pyx_t_1) {
    __pyx_t_2 = __pyx_v_self->format;
  } else {
    __pyx_t_2 = NULL;
  }
  __pyx_v_info->format = __pyx_t_2;

  /* "View.MemoryView":208
 *         info.readonly = 0
 *         info.format = self.format if flags & PyBUF_FORMAT else NULL
 *         info.obj = self             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(array self):
 */
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  __Pyx_GOTREF(__pyx_v_info->obj);
  __Pyx_DECREF(__pyx_v_info->obj);
  __pyx_v_info->obj = ((PyObject *)__pyx_v_self);

  /* "View.MemoryView":182
 *             _allocate_buffer(self)
 * 
 *     @cname('getbuffer')             # <<<<<<<<<<<<<<
 *     def __getbuffer__(self, Py_buffer *info, int flags):
 *         cdef int bufmode = -1
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("View.MemoryView.array.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  if (__pyx_v_info->obj != NULL) {
    __Pyx_GOTREF(__pyx_v_info->obj);
    __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
  }
  goto __pyx_L2;
  __pyx_L0:;
  if (__pyx_v_info->obj == Py_None) {
    __Pyx_GOTREF(__pyx_v_info->obj);
    __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
  }
  __pyx_L2:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":210
 *         info.obj = self
 * 
 *     def __dealloc__(array self):             # <<<<<<<<<<<<<<
 *         if self.callback_free_data != NULL:
 *             self.callback_free_data(self.data)
 */

/* Python wrapper */
static void __pyx_array___dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_array___dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(((struct __pyx_array_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self) {
  int __pyx_t_1;
  int __pyx_t_2;

  /* "View.MemoryView":211
 * 
 *     def __dealloc__(array self):
 *         if self.callback_free_data != NULL:             # <<<<<<<<<<<<<<
 *             self.callback_free_data(self.data)
 *         elif self.free_data and self.data is not NULL:
 */
  __pyx_t_1 = (__pyx_v_self->callback_free_data != NULL);
  if (__pyx_t_1) {

    /* "View.MemoryView":212
 *     def __dealloc__(array self):
 *         if self.callback_free_data != NULL:
 *             self.callback_free_data(self.data)             # <<<<<<<<<<<<<<
 *         elif self.free_data and self.data is not NULL:
 *             if self.dtype_is_object:
 */
    __pyx_v_self->callback_free_data(__pyx_v_self->data);

    /* "View.MemoryView":211
 * 
 *     def __dealloc__(array self):
 *         if self.callback_free_data != NULL:             # <<<<<<<<<<<<<<
 *             self.callback_free_data(self.data)
 *         elif self.free_data and self.data is not NULL:
 */
    goto __pyx_L3;
  }

  /* "View.MemoryView":213
 *         if self.callback_free_data != NULL:
 *             self.callback_free_data(self.data)
 *         elif self.free_data and self.data is not NULL:             # <<<<<<<<<<<<<<
 *             if self.dtype_is_object:
 *                 refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
 */
  if (__pyx_v_self->free_data) {
  } else {
    __pyx_t_1 = __pyx_v_self->free_data;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (__pyx_v_self->data != NULL);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "View.MemoryView":214
 *             self.callback_free_data(self.data)
 *         elif self.free_data and self.data is not NULL:
 *             if self.dtype_is_object:             # <<<<<<<<<<<<<<
 *                 refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
 *             free(self.data)
 */
    if (__pyx_v_self->dtype_is_object) {

      /* "View.MemoryView":215
 *         elif self.free_data and self.data is not NULL:
 *             if self.dtype_is_object:
 *                 refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)             # <<<<<<<<<<<<<<
 *             free(self.data)
 *         PyObject_Free(self._shape)
 */
      __pyx_memoryview_refcount_objects_in_slice(__pyx_v_self->data, __pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_self->ndim, 0);

      /* "View.MemoryView":214
 *             self.callback_free_data(self.data)
 *         elif self.free_data and self.data is not NULL:
 *             if self.dtype_is_object:             # <<<<<<<<<<<<<<
 *                 refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
 *             free(self.data)
 */
    }

    /* "View.MemoryView":216
 *             if self.dtype_is_object:
 *                 refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
 *             free(self.data)             # <<<<<<<<<<<<<<
 *         PyObject_Free(self._shape)
 * 
 */
    free(__pyx_v_self->data);

    /* "View.MemoryView":213
 *         if self.callback_free_data != NULL:
 *             self.callback_free_data(self.data)
 *         elif self.free_data and self.data is not NULL:             # <<<<<<<<<<<<<<
 *             if self.dtype_is_object:
 *                 refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
 */
  }
  __pyx_L3:;

  /* "View.MemoryView":217
 *                 refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
 *             free(self.data)
 *         PyObject_Free(self._shape)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  PyObject_Free(__pyx_v_self->_shape);

  /* "View.MemoryView":210
 *         info.obj = self
 * 
 *     def __dealloc__(array self):             # <<<<<<<<<<<<<<
 *         if self.callback_free_data != NULL:
 *             self.callback_free_data(self.data)
 */

  /* function exit code */
}

/* "View.MemoryView":219
 *         PyObject_Free(self._shape)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def memview(self):
 *         return self.get_memview()
 */

/* Python wrapper */
static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_15View_dot_MemoryView_5array_7memview___get__(((struct __pyx_array_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "View.MemoryView":221
 *     @property
 *     def memview(self):
 *         return self.get_memview()             # <<<<<<<<<<<<<<
 * 
 *     @cname('get_memview')
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_array *)__pyx_v_self->__pyx_vtab)->get_memview(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":219
 *         PyObject_Free(self._shape)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def memview(self):
 *         return self.get_memview()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("View.MemoryView.array.memview.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":224
 * 
 *     @cname('get_memview')
 *     cdef get_memview(self):             # <<<<<<<<<<<<<<
 *         flags =  PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE
 *         return  memoryview(self, flags, self.dtype_is_object)
 */

static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self) {
  int __pyx_v_flags;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_memview", 1);

  /* "View.MemoryView":225
 *     @cname('get_memview')
 *     cdef get_memview(self):
 *         flags =  PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE             # <<<<<<<<<<<<<<
 *         return  memoryview(self, flags, self.dtype_is_object)
 * 
 */
  __pyx_v_flags = ((PyBUF_ANY_CONTIGUOUS | PyBUF_FORMAT) | PyBUF_WRITABLE);

  /* "View.MemoryView":226
 *     cdef get_memview(self):
 *         flags =  PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE
 *         return  memoryview(self, flags, self.dtype_is_object)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self))) __PYX_ERR(3, 226, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(3, 226, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(3, 226, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":224
 * 
 *     @cname('get_memview')
 *     cdef get_memview(self):             # <<<<<<<<<<<<<<
 *         flags =  PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE
 *         return  memoryview(self, flags, self.dtype_is_object)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("View.MemoryView.array.get_memview", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":228
 *         return  memoryview(self, flags, self.dtype_is_object)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return self._shape[0]
 * 
 */

/* Python wrapper */
static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(((struct __pyx_array_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self) {
  Py_ssize_t __pyx_r;

  /* "View.MemoryView":229
 * 
 *     def __len__(self):
 *         return self._shape[0]             # <<<<<<<<<<<<<<
 * 
 *     def __getattr__(self, attr):
 */
  __pyx_r = (__pyx_v_self->_shape[0]);
  goto __pyx_L0;

  /* "View.MemoryView":228
 *         return  memoryview(self, flags, self.dtype_is_object)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return self._shape[0]
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "View.MemoryView":231
 *         return self._shape[0]
 * 
 *     def __getattr__(self, attr):             # <<<<<<<<<<<<<<
 *         return getattr(self.memview, attr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /*proto*/
static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_attr));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__getattr__", 1);

  /* "View.MemoryView":232
 * 
 *     def __getattr__(self, attr):
 *         return getattr(self.memview, attr)             # <<<<<<<<<<<<<<
 * 
 *     def __getitem__(self, item):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":231
 *         return self._shape[0]
 * 
 *     def __getattr__(self, attr):             # <<<<<<<<<<<<<<
 *         return getattr(self.memview, attr)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("View.MemoryView.array.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":234
 *         return getattr(self.memview, attr)
 * 
 *     def __getitem__(self, item):             # <<<<<<<<<<<<<<
 *         return self.memview[item]
 * 
 */

/* Python wrapper */
static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/
static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__getitem__", 1);

  /* "View.MemoryView":235
 * 
 *     def __getitem__(self, item):
 *         return self.memview[item]             # <<<<<<<<<<<<<<
 * 
 *     def __setitem__(self, item, value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_item); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":234
 *         return getattr(self.memview, attr)
 * 
 *     def __getitem__(self, item):             # <<<<<<<<<<<<<<
 *         return self.memview[item]
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("View.MemoryView.array.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":237
 *         return self.memview[item]
 * 
 *     def __setitem__(self, item, value):             # <<<<<<<<<<<<<<
 *         self.memview[item] = value
 * 
 */

/* Python wrapper */
static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /*proto*/
static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setitem__", 1);

  /* "View.MemoryView":238
 * 
 *     def __setitem__(self, item, value):
 *         self.memview[item] = value             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_item, __pyx_v_value) < 0))) __PYX_ERR(3, 238, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "View.MemoryView":237
 *         return self.memview[item]
 * 
 *     def __setitem__(self, item, value):             # <<<<<<<<<<<<<<
 *         self.memview[item] = value
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("View.MemoryView.array.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf___pyx_array___reduce_cython__(((struct __pyx_array_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("View.MemoryView.array.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("View.MemoryView.array.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf___pyx_array_2__setstate_cython__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("View.MemoryView.array.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":248
 * 
 * @cname("__pyx_array_allocate_buffer")
 * cdef int _allocate_buffer(array self) except -1:             # <<<<<<<<<<<<<<
 * 
 * 
 */

static int __pyx_array_allocate_buffer(struct __pyx_array_obj *__pyx_v_self) {
  Py_ssize_t __pyx_v_i;
  PyObject **__pyx_v_p;
  int __pyx_r;
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "View.MemoryView":254
 *     cdef PyObject **p
 * 
 *     self.free_data = True             # <<<<<<<<<<<<<<
 *     self.data = <char *>malloc(self.len)
 *     if not self.data:
 */
  __pyx_v_self->free_data = 1;

  /* "View.MemoryView":255
 * 
 *     self.free_data = True
 *     self.data = <char *>malloc(self.len)             # <<<<<<<<<<<<<<
 *     if not self.data:
 *         raise MemoryError, "unable to allocate array data."
 */
  __pyx_v_self->data = ((char *)malloc(__pyx_v_self->len));

  /* "View.MemoryView":256
 *     self.free_data = True
 *     self.data = <char *>malloc(self.len)
 *     if not self.data:             # <<<<<<<<<<<<<<
 *         raise MemoryError, "unable to allocate array data."
 * 
 */
  __pyx_t_1 = (!(__pyx_v_self->data != 0));
  if (unlikely(__pyx_t_1)) {

    /* "View.MemoryView":257
 *     self.data = <char *>malloc(self.len)
 *     if not self.data:
 *         raise MemoryError, "unable to allocate array data."             # <<<<<<<<<<<<<<
 * 
 *     if self.dtype_is_object:
 */
    __Pyx_Raise(__pyx_builtin_MemoryError, __pyx_kp_s_unable_to_allocate_array_data, 0, 0);
    __PYX_ERR(3, 257, __pyx_L1_error)

    /* "View.MemoryView":256
 *     self.free_data = True
 *     self.data = <char *>malloc(self.len)
 *     if not self.data:             # <<<<<<<<<<<<<<
 *         raise MemoryError, "unable to allocate array data."
 * 
 */
  }

  /* "View.MemoryView":259
 *         raise MemoryError, "unable to allocate array data."
 * 
 *     if self.dtype_is_object:             # <<<<<<<<<<<<<<
 *         p = <PyObject **> self.data
 *         for i in range(self.len // self.itemsize):
 */
  if (__pyx_v_self->dtype_is_object) {

    /* "View.MemoryView":260
 * 
 *     if self.dtype_is_object:
 *         p = <PyObject **> self.data             # <<<<<<<<<<<<<<
 *         for i in range(self.len // self.itemsize):
 *             p[i] = Py_None
 */
    __pyx_v_p = ((PyObject **)__pyx_v_self->data);

    /* "View.MemoryView":261
 *     if self.dtype_is_object:
 *         p = <PyObject **> self.data
 *         for i in range(self.len // self.itemsize):             # <<<<<<<<<<<<<<
 *             p[i] = Py_None
 *             Py_INCREF(Py_None)
 */
    if (unlikely(__pyx_v_self->itemsize == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
      __PYX_ERR(3, 261, __pyx_L1_error)
    }
    else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_self->itemsize == (Py_ssize_t)-1)  && unlikely(__Pyx_UNARY_NEG_WOULD_OVERFLOW(__pyx_v_self->len))) {
      PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
      __PYX_ERR(3, 261, __pyx_L1_error)
    }
    __pyx_t_2 = __Pyx_div_Py_ssize_t(__pyx_v_self->len, __pyx_v_self->itemsize);
    __pyx_t_3 = __pyx_t_2;
    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
      __pyx_v_i = __pyx_t_4;

      /* "View.MemoryView":262
 *         p = <PyObject **> self.data
 *         for i in range(self.len // self.itemsize):
 *             p[i] = Py_None             # <<<<<<<<<<<<<<
 *             Py_INCREF(Py_None)
 *     return 0
 */
      (__pyx_v_p[__pyx_v_i]) = Py_None;

      /* "View.MemoryView":263
 *         for i in range(self.len // self.itemsize):
 *             p[i] = Py_None
 *             Py_INCREF(Py_None)             # <<<<<<<<<<<<<<
 *     return 0
 * 
 */
      Py_INCREF(Py_None);
    }

    /* "View.MemoryView":259
 *         raise MemoryError, "unable to allocate array data."
 * 
 *     if self.dtype_is_object:             # <<<<<<<<<<<<<<
 *         p = <PyObject **> self.data
 *         for i in range(self.len // self.itemsize):
 */
  }

  /* "View.MemoryView":264
 *             p[i] = Py_None
 *             Py_INCREF(Py_None)
 *     return 0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = 0;
  goto __pyx_L0;

  /* "View.MemoryView":248
 * 
 * @cname("__pyx_array_allocate_buffer")
 * cdef int _allocate_buffer(array self) except -1:             # <<<<<<<<<<<<<<
 * 
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("View.MemoryView._allocate_buffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "View.MemoryView":268
 * 
 * @cname("__pyx_array_new")
 * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, char *c_mode, char *buf):             # <<<<<<<<<<<<<<
 *     cdef array result
 *     cdef str mode = "fortran" if c_mode[0] == b'f' else "c"  # this often comes from a constant C string.
 */

static struct __pyx_array_obj *__pyx_array_new(PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, char *__pyx_v_format, char *__pyx_v_c_mode, char *__pyx_v_buf) {
  struct __pyx_array_obj *__pyx_v_result = 0;
  PyObject *__pyx_v_mode = 0;
  struct __pyx_array_obj *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("array_cwrapper", 1);

  /* "View.MemoryView":270
 * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, char *c_mode, char *buf):
 *     cdef array result
 *     cdef str mode = "fortran" if c_mode[0] == b'f' else "c"  # this often comes from a constant C string.             # <<<<<<<<<<<<<<
 * 
 *     if buf is NULL:
 */
  __pyx_t_2 = ((__pyx_v_c_mode[0]) == 'f');
  if (__pyx_t_2) {
    __Pyx_INCREF(__pyx_n_s_fortran);
    __pyx_t_1 = __pyx_n_s_fortran;
  } else {
    __Pyx_INCREF(__pyx_n_s_c);
    __pyx_t_1 = __pyx_n_s_c;
  }
  __pyx_v_mode = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "View.MemoryView":272
 *     cdef str mode = "fortran" if c_mode[0] == b'f' else "c"  # this often comes from a constant C string.
 * 
 *     if buf is NULL:             # <<<<<<<<<<<<<<
 *         result = array.__new__(array, shape, itemsize, format, mode)
 *     else:
 */
  __pyx_t_2 = (__pyx_v_buf == NULL);
  if (__pyx_t_2) {

    /* "View.MemoryView":273
 * 
 *     if buf is NULL:
 *         result = array.__new__(array, shape, itemsize, format, mode)             # <<<<<<<<<<<<<<
 *     else:
 *         result = array.__new__(array, shape, itemsize, format, mode, allocate_buffer=False)
 */
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 273, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 273, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 273, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_shape);
    __Pyx_GIVEREF(__pyx_v_shape);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_shape)) __PYX_ERR(3, 273, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(3, 273, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(3, 273, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_mode);
    __Pyx_GIVEREF(__pyx_v_mode);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_mode)) __PYX_ERR(3, 273, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_t_3 = ((PyObject *)__pyx_tp_new_array(((PyTypeObject *)__pyx_array_type), __pyx_t_4, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 273, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "View.MemoryView":272
 *     cdef str mode = "fortran" if c_mode[0] == b'f' else "c"  # this often comes from a constant C string.
 * 
 *     if buf is NULL:             # <<<<<<<<<<<<<<
 *         result = array.__new__(array, shape, itemsize, format, mode)
 *     else:
 */
    goto __pyx_L3;
  }

  /* "View.MemoryView":275
 *         result = array.__new__(array, shape, itemsize, format, mode)
 *     else:
 *         result = array.__new__(array, shape, itemsize, format, mode, allocate_buffer=False)             # <<<<<<<<<<<<<<
 *         result.data = buf
 * 
 */
  /*else*/ {
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_shape);
    __Pyx_GIVEREF(__pyx_v_shape);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_shape)) __PYX_ERR(3, 275, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3)) __PYX_ERR(3, 275, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4)) __PYX_ERR(3, 275, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_mode);
    __Pyx_GIVEREF(__pyx_v_mode);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_mode)) __PYX_ERR(3, 275, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_allocate_buffer, Py_False) < 0) __PYX_ERR(3, 275, __pyx_L1_error)
    __pyx_t_3 = ((PyObject *)__pyx_tp_new_array(((PyTypeObject *)__pyx_array_type), __pyx_t_1, __pyx_t_4)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 275, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "View.MemoryView":276
 *     else:
 *         result = array.__new__(array, shape, itemsize, format, mode, allocate_buffer=False)
 *         result.data = buf             # <<<<<<<<<<<<<<
 * 
 *     return result
 */
    __pyx_v_result->data = __pyx_v_buf;
  }
  __pyx_L3:;

  /* "View.MemoryView":278
 *         result.data = buf
 * 
 *     return result             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "View.MemoryView":268
 * 
 * @cname("__pyx_array_new")
 * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, char *c_mode, char *buf):             # <<<<<<<<<<<<<<
 *     cdef array result
 *     cdef str mode = "fortran" if c_mode[0] == b'f' else "c"  # this often comes from a constant C string.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("View.MemoryView.array_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_mode);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":304
 * cdef class Enum(object):
 *     cdef object name
 *     def __init__(self, name):             # <<<<<<<<<<<<<<
 *         self.name = name
 *     def __repr__(self):
 */

/* Python wrapper */
static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_name = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 304, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(3, 304, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 304, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("View.MemoryView.Enum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "View.MemoryView":305
 *     cdef object name
 *     def __init__(self, name):
 *         self.name = name             # <<<<<<<<<<<<<<
 *     def __repr__(self):
 *         return self.name
 */
  __Pyx_INCREF(__pyx_v_name);
  __Pyx_GIVEREF(__pyx_v_name);
  __Pyx_GOTREF(__pyx_v_self->name);
  __Pyx_DECREF(__pyx_v_self->name);
  __pyx_v_self->name = __pyx_v_name;

  /* "View.MemoryView":304
 * cdef class Enum(object):
 *     cdef object name
 *     def __init__(self, name):             # <<<<<<<<<<<<<<
 *         self.name = name
 *     def __repr__(self):
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":306
 *     def __init__(self, name):
 *         self.name = name
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
 */

/* Python wrapper */
static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__", 1);

  /* "View.MemoryView":307
 *         self.name = name
 *     def __repr__(self):
 *         return self.name             # <<<<<<<<<<<<<<
 * 
 * cdef generic = Enum("<strided and direct or indirect>")
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->name);
  __pyx_r = __pyx_v_self->name;
  goto __pyx_L0;

  /* "View.MemoryView":306
 *     def __init__(self, name):
 *         self.name = name
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf___pyx_MemviewEnum___reduce_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.name,)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->name);
  __Pyx_GIVEREF(__pyx_v_self->name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->name)) __PYX_ERR(3, 5, __pyx_L1_error);
  __pyx_v_state = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.name,)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = (self.name,)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict)) __PYX_ERR(3, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.name is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.name,)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.name is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, None), state
 */
  /*else*/ {
    __pyx_t_2 = (__pyx_v_self->name != Py_None);
    __pyx_v_use_setstate = __pyx_t_2;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.name is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(3, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_136983863);
    __Pyx_GIVEREF(__pyx_int_136983863);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_136983863)) __PYX_ERR(3, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None)) __PYX_ERR(3, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(3, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(3, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(3, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, None), state
 *     else:
 *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Enum__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(3, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_136983863);
    __Pyx_GIVEREF(__pyx_int_136983863);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_136983863)) __PYX_ERR(3, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(3, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(3, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(3, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("View.MemoryView.Enum.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Enum__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("View.MemoryView.Enum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf___pyx_MemviewEnum_2__setstate_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Enum__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(3, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_unpickle_Enum__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Enum__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("View.MemoryView.Enum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":349
 *     cdef __Pyx_TypeInfo *typeinfo
 * 
 *     def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False):             # <<<<<<<<<<<<<<
 *         self.obj = obj
 *         self.flags = flags
 */

/* Python wrapper */
static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_obj = 0;
  int __pyx_v_flags;
  int __pyx_v_dtype_is_object;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,&__pyx_n_s_flags,&__pyx_n_s_dtype_is_object,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_obj)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 349, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flags)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 349, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, 1); __PYX_ERR(3, 349, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dtype_is_object);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 349, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(3, 349, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_obj = values[0];
    __pyx_v_flags = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 349, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_dtype_is_object = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_dtype_is_object == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 349, __pyx_L3_error)
    } else {
      __pyx_v_dtype_is_object = ((int)0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 349, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_obj, __pyx_v_flags, __pyx_v_dtype_is_object);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  Py_intptr_t __pyx_t_4;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "View.MemoryView":350
 * 
 *     def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False):
 *         self.obj = obj             # <<<<<<<<<<<<<<
 *         self.flags = flags
 *         if type(self) is memoryview or obj is not None:
 */
  __Pyx_INCREF(__pyx_v_obj);
  __Pyx_GIVEREF(__pyx_v_obj);
  __Pyx_GOTREF(__pyx_v_self->obj);
  __Pyx_DECREF(__pyx_v_self->obj);
  __pyx_v_self->obj = __pyx_v_obj;

  /* "View.MemoryView":351
 *     def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False):
 *         self.obj = obj
 *         self.flags = flags             # <<<<<<<<<<<<<<
 *         if type(self) is memoryview or obj is not None:
 *             __Pyx_GetBuffer(obj, &self.view, flags)
 */
  __pyx_v_self->flags = __pyx_v_flags;

  /* "View.MemoryView":352
 *         self.obj = obj
 *         self.flags = flags
 *         if type(self) is memoryview or obj is not None:             # <<<<<<<<<<<<<<
 *             __Pyx_GetBuffer(obj, &self.view, flags)
 *             if <PyObject *> self.view.obj == NULL:
 */
  __pyx_t_2 = (((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))) == ((PyObject *)__pyx_memoryview_type));
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (__pyx_v_obj != Py_None);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "View.MemoryView":353
 *         self.flags = flags
 *         if type(self) is memoryview or obj is not None:
 *             __Pyx_GetBuffer(obj, &self.view, flags)             # <<<<<<<<<<<<<<
 *             if <PyObject *> self.view.obj == NULL:
 *                 (<__pyx_buffer *> &self.view).obj = Py_None
 */
    __pyx_t_3 = __Pyx_GetBuffer(__pyx_v_obj, (&__pyx_v_self->view), __pyx_v_flags); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 353, __pyx_L1_error)

    /* "View.MemoryView":354
 *         if type(self) is memoryview or obj is not None:
 *             __Pyx_GetBuffer(obj, &self.view, flags)
 *             if <PyObject *> self.view.obj == NULL:             # <<<<<<<<<<<<<<
 *                 (<__pyx_buffer *> &self.view).obj = Py_None
 *                 Py_INCREF(Py_None)
 */
    __pyx_t_1 = (((PyObject *)__pyx_v_self->view.obj) == NULL);
    if (__pyx_t_1) {

      /* "View.MemoryView":355
 *             __Pyx_GetBuffer(obj, &self.view, flags)
 *             if <PyObject *> self.view.obj == NULL:
 *                 (<__pyx_buffer *> &self.view).obj = Py_None             # <<<<<<<<<<<<<<
 *                 Py_INCREF(Py_None)
 * 
 */
      ((Py_buffer *)(&__pyx_v_self->view))->obj = Py_None;

      /* "View.MemoryView":356
 *             if <PyObject *> self.view.obj == NULL:
 *                 (<__pyx_buffer *> &self.view).obj = Py_None
 *                 Py_INCREF(Py_None)             # <<<<<<<<<<<<<<
 * 
 *         if not __PYX_CYTHON_ATOMICS_ENABLED():
 */
      Py_INCREF(Py_None);

      /* "View.MemoryView":354
 *         if type(self) is memoryview or obj is not None:
 *             __Pyx_GetBuffer(obj, &self.view, flags)
 *             if <PyObject *> self.view.obj == NULL:             # <<<<<<<<<<<<<<
 *                 (<__pyx_buffer *> &self.view).obj = Py_None
 *                 Py_INCREF(Py_None)
 */
    }

    /* "View.MemoryView":352
 *         self.obj = obj
 *         self.flags = flags
 *         if type(self) is memoryview or obj is not None:             # <<<<<<<<<<<<<<
 *             __Pyx_GetBuffer(obj, &self.view, flags)
 *             if <PyObject *> self.view.obj == NULL:
 */
  }

  /* "View.MemoryView":358
 *                 Py_INCREF(Py_None)
 * 
 *         if not __PYX_CYTHON_ATOMICS_ENABLED():             # <<<<<<<<<<<<<<
 *             global __pyx_memoryview_thread_locks_used
 *             if __pyx_memoryview_thread_locks_used < 8:
 */
  __pyx_t_1 = (!__PYX_CYTHON_ATOMICS_ENABLED());
  if (__pyx_t_1) {

    /* "View.MemoryView":360
 *         if not __PYX_CYTHON_ATOMICS_ENABLED():
 *             global __pyx_memoryview_thread_locks_used
 *             if __pyx_memoryview_thread_locks_used < 8:             # <<<<<<<<<<<<<<
 *                 self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
 *                 __pyx_memoryview_thread_locks_used += 1
 */
    __pyx_t_1 = (__pyx_memoryview_thread_locks_used < 8);
    if (__pyx_t_1) {

      /* "View.MemoryView":361
 *             global __pyx_memoryview_thread_locks_used
 *             if __pyx_memoryview_thread_locks_used < 8:
 *                 self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]             # <<<<<<<<<<<<<<
 *                 __pyx_memoryview_thread_locks_used += 1
 *             if self.lock is NULL:
 */
      __pyx_v_self->lock = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]);

      /* "View.MemoryView":362
 *             if __pyx_memoryview_thread_locks_used < 8:
 *                 self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
 *                 __pyx_memoryview_thread_locks_used += 1             # <<<<<<<<<<<<<<
 *             if self.lock is NULL:
 *                 self.lock = PyThread_allocate_lock()
 */
      __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used + 1);

      /* "View.MemoryView":360
 *         if not __PYX_CYTHON_ATOMICS_ENABLED():
 *             global __pyx_memoryview_thread_locks_used
 *             if __pyx_memoryview_thread_locks_used < 8:             # <<<<<<<<<<<<<<
 *                 self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
 *                 __pyx_memoryview_thread_locks_used += 1
 */
    }

    /* "View.MemoryView":363
 *                 self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
 *                 __pyx_memoryview_thread_locks_used += 1
 *             if self.lock is NULL:             # <<<<<<<<<<<<<<
 *                 self.lock = PyThread_allocate_lock()
 *                 if self.lock is NULL:
 */
    __pyx_t_1 = (__pyx_v_self->lock == NULL);
    if (__pyx_t_1) {

      /* "View.MemoryView":364
 *                 __pyx_memoryview_thread_locks_used += 1
 *             if self.lock is NULL:
 *                 self.lock = PyThread_allocate_lock()             # <<<<<<<<<<<<<<
 *                 if self.lock is NULL:
 *                     raise MemoryError
 */
      __pyx_v_self->lock = PyThread_allocate_lock();

      /* "View.MemoryView":365
 *             if self.lock is NULL:
 *                 self.lock = PyThread_allocate_lock()
 *                 if self.lock is NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError
 * 
 */
      __pyx_t_1 = (__pyx_v_self->lock == NULL);
      if (unlikely(__pyx_t_1)) {

        /* "View.MemoryView":366
 *                 self.lock = PyThread_allocate_lock()
 *                 if self.lock is NULL:
 *                     raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         if flags & PyBUF_FORMAT:
 */
        PyErr_NoMemory(); __PYX_ERR(3, 366, __pyx_L1_error)

        /* "View.MemoryView":365
 *             if self.lock is NULL:
 *                 self.lock = PyThread_allocate_lock()
 *                 if self.lock is NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError
 * 
 */
      }

      /* "View.MemoryView":363
 *                 self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
 *                 __pyx_memoryview_thread_locks_used += 1
 *             if self.lock is NULL:             # <<<<<<<<<<<<<<
 *                 self.lock = PyThread_allocate_lock()
 *                 if self.lock is NULL:
 */
    }

    /* "View.MemoryView":358
 *                 Py_INCREF(Py_None)
 * 
 *         if not __PYX_CYTHON_ATOMICS_ENABLED():             # <<<<<<<<<<<<<<
 *             global __pyx_memoryview_thread_locks_used
 *             if __pyx_memoryview_thread_locks_used < 8:
 */
  }

  /* "View.MemoryView":368
 *                     raise MemoryError
 * 
 *         if flags & PyBUF_FORMAT:             # <<<<<<<<<<<<<<
 *             self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0')
 *         else:
 */
  __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
  if (__pyx_t_1) {

    /* "View.MemoryView":369
 * 
 *         if flags & PyBUF_FORMAT:
 *             self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0')             # <<<<<<<<<<<<<<
 *         else:
 *             self.dtype_is_object = dtype_is_object
 */
    __pyx_t_2 = ((__pyx_v_self->view.format[0]) == 'O');
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L12_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_self->view.format[1]) == '\x00');
    __pyx_t_1 = __pyx_t_2;
    __pyx_L12_bool_binop_done:;
    __pyx_v_self->dtype_is_object = __pyx_t_1;

    /* "View.MemoryView":368
 *                     raise MemoryError
 * 
 *         if flags & PyBUF_FORMAT:             # <<<<<<<<<<<<<<
 *             self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0')
 *         else:
 */
    goto __pyx_L11;
  }

  /* "View.MemoryView":371
 *             self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0')
 *         else:
 *             self.dtype_is_object = dtype_is_object             # <<<<<<<<<<<<<<
 * 
 *         assert <Py_intptr_t><void*>(&self.acquisition_count) % sizeof(__pyx_atomic_int_type) == 0
 */
  /*else*/ {
    __pyx_v_self->dtype_is_object = __pyx_v_dtype_is_object;
  }
  __pyx_L11:;

  /* "View.MemoryView":373
 *             self.dtype_is_object = dtype_is_object
 * 
 *         assert <Py_intptr_t><void*>(&self.acquisition_count) % sizeof(__pyx_atomic_int_type) == 0             # <<<<<<<<<<<<<<
 *         self.typeinfo = NULL
 * 
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_4 = ((Py_intptr_t)((void *)(&__pyx_v_self->acquisition_count)));
    __pyx_t_5 = (sizeof(__pyx_atomic_int_type));
    if (unlikely(__pyx_t_5 == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
      __PYX_ERR(3, 373, __pyx_L1_error)
    }
    __pyx_t_1 = ((__pyx_t_4 % __pyx_t_5) == 0);
    if (unlikely(!__pyx_t_1)) {
      __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
      __PYX_ERR(3, 373, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(3, 373, __pyx_L1_error)
  #endif

  /* "View.MemoryView":374
 * 
 *         assert <Py_intptr_t><void*>(&self.acquisition_count) % sizeof(__pyx_atomic_int_type) == 0
 *         self.typeinfo = NULL             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(memoryview self):
 */
  __pyx_v_self->typeinfo = NULL;

  /* "View.MemoryView":349
 *     cdef __Pyx_TypeInfo *typeinfo
 * 
 *     def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False):             # <<<<<<<<<<<<<<
 *         self.obj = obj
 *         self.flags = flags
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":376
 *         self.typeinfo = NULL
 * 
 *     def __dealloc__(memoryview self):             # <<<<<<<<<<<<<<
 *         if self.obj is not None:
 *             __Pyx_ReleaseBuffer(&self.view)
 */

/* Python wrapper */
static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self) {
  int __pyx_v_i;
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyThread_type_lock __pyx_t_5;
  PyThread_type_lock __pyx_t_6;

  /* "View.MemoryView":377
 * 
 *     def __dealloc__(memoryview self):
 *         if self.obj is not None:             # <<<<<<<<<<<<<<
 *             __Pyx_ReleaseBuffer(&self.view)
 *         elif (<__pyx_buffer *> &self.view).obj == Py_None:
 */
  __pyx_t_1 = (__pyx_v_self->obj != Py_None);
  if (__pyx_t_1) {

    /* "View.MemoryView":378
 *     def __dealloc__(memoryview self):
 *         if self.obj is not None:
 *             __Pyx_ReleaseBuffer(&self.view)             # <<<<<<<<<<<<<<
 *         elif (<__pyx_buffer *> &self.view).obj == Py_None:
 * 
 */
    __Pyx_ReleaseBuffer((&__pyx_v_self->view));

    /* "View.MemoryView":377
 * 
 *     def __dealloc__(memoryview self):
 *         if self.obj is not None:             # <<<<<<<<<<<<<<
 *             __Pyx_ReleaseBuffer(&self.view)
 *         elif (<__pyx_buffer *> &self.view).obj == Py_None:
 */
    goto __pyx_L3;
  }

  /* "View.MemoryView":379
 *         if self.obj is not None:
 *             __Pyx_ReleaseBuffer(&self.view)
 *         elif (<__pyx_buffer *> &self.view).obj == Py_None:             # <<<<<<<<<<<<<<
 * 
 *             (<__pyx_buffer *> &self.view).obj = NULL
 */
  __pyx_t_1 = (((Py_buffer *)(&__pyx_v_self->view))->obj == Py_None);
  if (__pyx_t_1) {

    /* "View.MemoryView":381
 *         elif (<__pyx_buffer *> &self.view).obj == Py_None:
 * 
 *             (<__pyx_buffer *> &self.view).obj = NULL             # <<<<<<<<<<<<<<
 *             Py_DECREF(Py_None)
 * 
 */
    ((Py_buffer *)(&__pyx_v_self->view))->obj = NULL;

    /* "View.MemoryView":382
 * 
 *             (<__pyx_buffer *> &self.view).obj = NULL
 *             Py_DECREF(Py_None)             # <<<<<<<<<<<<<<
 * 
 *         cdef int i
 */
    Py_DECREF(Py_None);

    /* "View.MemoryView":379
 *         if self.obj is not None:
 *             __Pyx_ReleaseBuffer(&self.view)
 *         elif (<__pyx_buffer *> &self.view).obj == Py_None:             # <<<<<<<<<<<<<<
 * 
 *             (<__pyx_buffer *> &self.view).obj = NULL
 */
  }
  __pyx_L3:;

  /* "View.MemoryView":386
 *         cdef int i
 *         global __pyx_memoryview_thread_locks_used
 *         if self.lock != NULL:             # <<<<<<<<<<<<<<
 *             for i in range(__pyx_memoryview_thread_locks_used):
 *                 if __pyx_memoryview_thread_locks[i] is self.lock:
 */
  __pyx_t_1 = (__pyx_v_self->lock != NULL);
  if (__pyx_t_1) {

    /* "View.MemoryView":387
 *         global __pyx_memoryview_thread_locks_used
 *         if self.lock != NULL:
 *             for i in range(__pyx_memoryview_thread_locks_used):             # <<<<<<<<<<<<<<
 *                 if __pyx_memoryview_thread_locks[i] is self.lock:
 *                     __pyx_memoryview_thread_locks_used -= 1
 */
    __pyx_t_2 = __pyx_memoryview_thread_locks_used;
    __pyx_t_3 = __pyx_t_2;
    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
      __pyx_v_i = __pyx_t_4;

      /* "View.MemoryView":388
 *         if self.lock != NULL:
 *             for i in range(__pyx_memoryview_thread_locks_used):
 *                 if __pyx_memoryview_thread_locks[i] is self.lock:             # <<<<<<<<<<<<<<
 *                     __pyx_memoryview_thread_locks_used -= 1
 *                     if i != __pyx_memoryview_thread_locks_used:
 */
      __pyx_t_1 = ((__pyx_memoryview_thread_locks[__pyx_v_i]) == __pyx_v_self->lock);
      if (__pyx_t_1) {

        /* "View.MemoryView":389
 *             for i in range(__pyx_memoryview_thread_locks_used):
 *                 if __pyx_memoryview_thread_locks[i] is self.lock:
 *                     __pyx_memoryview_thread_locks_used -= 1             # <<<<<<<<<<<<<<
 *                     if i != __pyx_memoryview_thread_locks_used:
 *                         __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
 */
        __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used - 1);

        /* "View.MemoryView":390
 *                 if __pyx_memoryview_thread_locks[i] is self.lock:
 *                     __pyx_memoryview_thread_locks_used -= 1
 *                     if i != __pyx_memoryview_thread_locks_used:             # <<<<<<<<<<<<<<
 *                         __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
 *                             __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
 */
        __pyx_t_1 = (__pyx_v_i != __pyx_memoryview_thread_locks_used);
        if (__pyx_t_1) {

          /* "View.MemoryView":392
 *                     if i != __pyx_memoryview_thread_locks_used:
 *                         __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
 *                             __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])             # <<<<<<<<<<<<<<
 *                     break
 *             else:
 */
          __pyx_t_5 = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]);
          __pyx_t_6 = (__pyx_memoryview_thread_locks[__pyx_v_i]);

          /* "View.MemoryView":391
 *                     __pyx_memoryview_thread_locks_used -= 1
 *                     if i != __pyx_memoryview_thread_locks_used:
 *                         __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (             # <<<<<<<<<<<<<<
 *                             __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
 *                     break
 */
          (__pyx_memoryview_thread_locks[__pyx_v_i]) = __pyx_t_5;
          (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]) = __pyx_t_6;

          /* "View.MemoryView":390
 *                 if __pyx_memoryview_thread_locks[i] is self.lock:
 *                     __pyx_memoryview_thread_locks_used -= 1
 *                     if i != __pyx_memoryview_thread_locks_used:             # <<<<<<<<<<<<<<
 *                         __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
 *                             __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
 */
        }

        /* "View.MemoryView":393
 *                         __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
 *                             __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
 *                     break             # <<<<<<<<<<<<<<
 *             else:
 *                 PyThread_free_lock(self.lock)
 */
        goto __pyx_L6_break;

        /* "View.MemoryView":388
 *         if self.lock != NULL:
 *             for i in range(__pyx_memoryview_thread_locks_used):
 *                 if __pyx_memoryview_thread_locks[i] is self.lock:             # <<<<<<<<<<<<<<
 *                     __pyx_memoryview_thread_locks_used -= 1
 *                     if i != __pyx_memoryview_thread_locks_used:
 */
      }
    }
    /*else*/ {

      /* "View.MemoryView":395
 *                     break
 *             else:
 *                 PyThread_free_lock(self.lock)             # <<<<<<<<<<<<<<
 * 
 *     cdef char *get_item_pointer(memoryview self, object index) except NULL:
 */
      PyThread_free_lock(__pyx_v_self->lock);
    }
    __pyx_L6_break:;

    /* "View.MemoryView":386
 *         cdef int i
 *         global __pyx_memoryview_thread_locks_used
 *         if self.lock != NULL:             # <<<<<<<<<<<<<<
 *             for i in range(__pyx_memoryview_thread_locks_used):
 *                 if __pyx_memoryview_thread_locks[i] is self.lock:
 */
  }

  /* "View.MemoryView":376
 *         self.typeinfo = NULL
 * 
 *     def __dealloc__(memoryview self):             # <<<<<<<<<<<<<<
 *         if self.obj is not None:
 *             __Pyx_ReleaseBuffer(&self.view)
 */

  /* function exit code */
}

/* "View.MemoryView":397
 *                 PyThread_free_lock(self.lock)
 * 
 *     cdef char *get_item_pointer(memoryview self, object index) except NULL:             # <<<<<<<<<<<<<<
 *         cdef Py_ssize_t dim
 *         cdef char *itemp = <char *> self.view.buf
 */

static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) {
  Py_ssize_t __pyx_v_dim;
  char *__pyx_v_itemp;
  PyObject *__pyx_v_idx = NULL;
  char *__pyx_r;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  char *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_item_pointer", 1);

  /* "View.MemoryView":399
 *     cdef char *get_item_pointer(memoryview self, object index) except NULL:
 *         cdef Py_ssize_t dim
 *         cdef char *itemp = <char *> self.view.buf             # <<<<<<<<<<<<<<
 * 
 *         for dim, idx in enumerate(index):
 */
  __pyx_v_itemp = ((char *)__pyx_v_self->view.buf);

  /* "View.MemoryView":401
 *         cdef char *itemp = <char *> self.view.buf
 * 
 *         for dim, idx in enumerate(index):             # <<<<<<<<<<<<<<
 *             itemp = pybuffer_index(&self.view, itemp, idx, dim)
 * 
 */
  __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_v_index)) || PyTuple_CheckExact(__pyx_v_index)) {
    __pyx_t_2 = __pyx_v_index; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 401, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 401, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 401, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(3, 401, __pyx_L1_error)
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 401, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 401, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(3, 401, __pyx_L1_error)
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 401, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(3, 401, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_v_dim = __pyx_t_1;
    __pyx_t_1 = (__pyx_t_1 + 1);

    /* "View.MemoryView":402
 * 
 *         for dim, idx in enumerate(index):
 *             itemp = pybuffer_index(&self.view, itemp, idx, dim)             # <<<<<<<<<<<<<<
 * 
 *         return itemp
 */
    __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 402, __pyx_L1_error)
    __pyx_t_7 = __pyx_pybuffer_index((&__pyx_v_self->view), __pyx_v_itemp, __pyx_t_6, __pyx_v_dim); if (unlikely(__pyx_t_7 == ((char *)NULL))) __PYX_ERR(3, 402, __pyx_L1_error)
    __pyx_v_itemp = __pyx_t_7;

    /* "View.MemoryView":401
 *         cdef char *itemp = <char *> self.view.buf
 * 
 *         for dim, idx in enumerate(index):             # <<<<<<<<<<<<<<
 *             itemp = pybuffer_index(&self.view, itemp, idx, dim)
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "View.MemoryView":404
 *             itemp = pybuffer_index(&self.view, itemp, idx, dim)
 * 
 *         return itemp             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_itemp;
  goto __pyx_L0;

  /* "View.MemoryView":397
 *                 PyThread_free_lock(self.lock)
 * 
 *     cdef char *get_item_pointer(memoryview self, object index) except NULL:             # <<<<<<<<<<<<<<
 *         cdef Py_ssize_t dim
 *         cdef char *itemp = <char *> self.view.buf
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("View.MemoryView.memoryview.get_item_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_idx);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":407
 * 
 * 
 *     def __getitem__(memoryview self, object index):             # <<<<<<<<<<<<<<
 *         if index is Ellipsis:
 *             return self
 */

/* Python wrapper */
static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/
static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) {
  PyObject *__pyx_v_have_slices = NULL;
  PyObject *__pyx_v_indices = NULL;
  char *__pyx_v_itemp;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  char *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__getitem__", 1);

  /* "View.MemoryView":408
 * 
 *     def __getitem__(memoryview self, object index):
 *         if index is Ellipsis:             # <<<<<<<<<<<<<<
 *             return self
 * 
 */
  __pyx_t_1 = (__pyx_v_index == __pyx_builtin_Ellipsis);
  if (__pyx_t_1) {

    /* "View.MemoryView":409
 *     def __getitem__(memoryview self, object index):
 *         if index is Ellipsis:
 *             return self             # <<<<<<<<<<<<<<
 * 
 *         have_slices, indices = _unellipsify(index, self.view.ndim)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF((PyObject *)__pyx_v_self);
    __pyx_r = ((PyObject *)__pyx_v_self);
    goto __pyx_L0;

    /* "View.MemoryView":408
 * 
 *     def __getitem__(memoryview self, object index):
 *         if index is Ellipsis:             # <<<<<<<<<<<<<<
 *             return self
 * 
 */
  }

  /* "View.MemoryView":411
 *             return self
 * 
 *         have_slices, indices = _unellipsify(index, self.view.ndim)             # <<<<<<<<<<<<<<
 * 
 *         cdef char *itemp
 */
  __pyx_t_2 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (likely(__pyx_t_2 != Py_None)) {
    PyObject* sequence = __pyx_t_2;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(3, 411, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 411, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 411, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(3, 411, __pyx_L1_error)
  }
  __pyx_v_have_slices = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_v_indices = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "View.MemoryView":414
 * 
 *         cdef char *itemp
 *         if have_slices:             # <<<<<<<<<<<<<<
 *             return memview_slice(self, indices)
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(3, 414, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "View.MemoryView":415
 *         cdef char *itemp
 *         if have_slices:
 *             return memview_slice(self, indices)             # <<<<<<<<<<<<<<
 *         else:
 *             itemp = self.get_item_pointer(indices)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = ((PyObject *)__pyx_memview_slice(__pyx_v_self, __pyx_v_indices)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 415, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "View.MemoryView":414
 * 
 *         cdef char *itemp
 *         if have_slices:             # <<<<<<<<<<<<<<
 *             return memview_slice(self, indices)
 *         else:
 */
  }

  /* "View.MemoryView":417
 *             return memview_slice(self, indices)
 *         else:
 *             itemp = self.get_item_pointer(indices)             # <<<<<<<<<<<<<<
 *             return self.convert_item_to_object(itemp)
 * 
 */
  /*else*/ {
    __pyx_t_5 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_indices); if (unlikely(__pyx_t_5 == ((char *)NULL))) __PYX_ERR(3, 417, __pyx_L1_error)
    __pyx_v_itemp = __pyx_t_5;

    /* "View.MemoryView":418
 *         else:
 *             itemp = self.get_item_pointer(indices)
 *             return self.convert_item_to_object(itemp)             # <<<<<<<<<<<<<<
 * 
 *     def __setitem__(memoryview self, object index, object value):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->convert_item_to_object(__pyx_v_self, __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 418, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "View.MemoryView":407
 * 
 * 
 *     def __getitem__(memoryview self, object index):             # <<<<<<<<<<<<<<
 *         if index is Ellipsis:
 *             return self
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("View.MemoryView.memoryview.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_have_slices);
  __Pyx_XDECREF(__pyx_v_indices);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":420
 *             return self.convert_item_to_object(itemp)
 * 
 *     def __setitem__(memoryview self, object index, object value):             # <<<<<<<<<<<<<<
 *         if self.view.readonly:
 *             raise TypeError, "Cannot assign to read-only memoryview"
 */

/* Python wrapper */
static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/
static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) {
  PyObject *__pyx_v_have_slices = NULL;
  PyObject *__pyx_v_obj = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setitem__", 0);
  __Pyx_INCREF(__pyx_v_index);

  /* "View.MemoryView":421
 * 
 *     def __setitem__(memoryview self, object index, object value):
 *         if self.view.readonly:             # <<<<<<<<<<<<<<
 *             raise TypeError, "Cannot assign to read-only memoryview"
 * 
 */
  if (unlikely(__pyx_v_self->view.readonly)) {

    /* "View.MemoryView":422
 *     def __setitem__(memoryview self, object index, object value):
 *         if self.view.readonly:
 *             raise TypeError, "Cannot assign to read-only memoryview"             # <<<<<<<<<<<<<<
 * 
 *         have_slices, index = _unellipsify(index, self.view.ndim)
 */
    __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_Cannot_assign_to_read_only_memor, 0, 0);
    __PYX_ERR(3, 422, __pyx_L1_error)

    /* "View.MemoryView":421
 * 
 *     def __setitem__(memoryview self, object index, object value):
 *         if self.view.readonly:             # <<<<<<<<<<<<<<
 *             raise TypeError, "Cannot assign to read-only memoryview"
 * 
 */
  }

  /* "View.MemoryView":424
 *             raise TypeError, "Cannot assign to read-only memoryview"
 * 
 *         have_slices, index = _unellipsify(index, self.view.ndim)             # <<<<<<<<<<<<<<
 * 
 *         if have_slices:
 */
  __pyx_t_1 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(__pyx_t_1 != Py_None)) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(3, 424, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 424, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 424, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(3, 424, __pyx_L1_error)
  }
  __pyx_v_have_slices = __pyx_t_2;
  __pyx_t_2 = 0;
  __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_3);
  __pyx_t_3 = 0;

  /* "View.MemoryView":426
 *         have_slices, index = _unellipsify(index, self.view.ndim)
 * 
 *         if have_slices:             # <<<<<<<<<<<<<<
 *             obj = self.is_slice(value)
 *             if obj:
 */
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(3, 426, __pyx_L1_error)
  if (__pyx_t_4) {

    /* "View.MemoryView":427
 * 
 *         if have_slices:
 *             obj = self.is_slice(value)             # <<<<<<<<<<<<<<
 *             if obj:
 *                 self.setitem_slice_assignment(self[index], obj)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->is_slice(__pyx_v_self, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_obj = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "View.MemoryView":428
 *         if have_slices:
 *             obj = self.is_slice(value)
 *             if obj:             # <<<<<<<<<<<<<<
 *                 self.setitem_slice_assignment(self[index], obj)
 *             else:
 */
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_obj); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(3, 428, __pyx_L1_error)
    if (__pyx_t_4) {

      /* "View.MemoryView":429
 *             obj = self.is_slice(value)
 *             if obj:
 *                 self.setitem_slice_assignment(self[index], obj)             # <<<<<<<<<<<<<<
 *             else:
 *                 self.setitem_slice_assign_scalar(self[index], value)
 */
      __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 429, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assignment(__pyx_v_self, __pyx_t_1, __pyx_v_obj); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 429, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "View.MemoryView":428
 *         if have_slices:
 *             obj = self.is_slice(value)
 *             if obj:             # <<<<<<<<<<<<<<
 *                 self.setitem_slice_assignment(self[index], obj)
 *             else:
 */
      goto __pyx_L5;
    }

    /* "View.MemoryView":431
 *                 self.setitem_slice_assignment(self[index], obj)
 *             else:
 *                 self.setitem_slice_assign_scalar(self[index], value)             # <<<<<<<<<<<<<<
 *         else:
 *             self.setitem_indexed(index, value)
 */
    /*else*/ {
      __pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 431, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(3, 431, __pyx_L1_error)
      __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assign_scalar(__pyx_v_self, ((struct __pyx_memoryview_obj *)__pyx_t_3), __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 431, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L5:;

    /* "View.MemoryView":426
 *         have_slices, index = _unellipsify(index, self.view.ndim)
 * 
 *         if have_slices:             # <<<<<<<<<<<<<<
 *             obj = self.is_slice(value)
 *             if obj:
 */
    goto __pyx_L4;
  }

  /* "View.MemoryView":433
 *                 self.setitem_slice_assign_scalar(self[index], value)
 *         else:
 *             self.setitem_indexed(index, value)             # <<<<<<<<<<<<<<
 * 
 *     cdef is_slice(self, obj):
 */
  /*else*/ {
    __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_indexed(__pyx_v_self, __pyx_v_index, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L4:;

  /* "View.MemoryView":420
 *             return self.convert_item_to_object(itemp)
 * 
 *     def __setitem__(memoryview self, object index, object value):             # <<<<<<<<<<<<<<
 *         if self.view.readonly:
 *             raise TypeError, "Cannot assign to read-only memoryview"
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("View.MemoryView.memoryview.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_have_slices);
  __Pyx_XDECREF(__pyx_v_obj);
  __Pyx_XDECREF(__pyx_v_index);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":435
 *             self.setitem_indexed(index, value)
 * 
 *     cdef is_slice(self, obj):             # <<<<<<<<<<<<<<
 *         if not isinstance(obj, memoryview):
 *             try:
 */

static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_slice", 0);
  __Pyx_INCREF(__pyx_v_obj);

  /* "View.MemoryView":436
 * 
 *     cdef is_slice(self, obj):
 *         if not isinstance(obj, memoryview):             # <<<<<<<<<<<<<<
 *             try:
 *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_memoryview_type); 
  __pyx_t_2 = (!__pyx_t_1);
  if (__pyx_t_2) {

    /* "View.MemoryView":437
 *     cdef is_slice(self, obj):
 *         if not isinstance(obj, memoryview):
 *             try:             # <<<<<<<<<<<<<<
 *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
 *                                  self.dtype_is_object)
 */
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      /*try:*/ {

        /* "View.MemoryView":438
 *         if not isinstance(obj, memoryview):
 *             try:
 *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,             # <<<<<<<<<<<<<<
 *                                  self.dtype_is_object)
 *             except TypeError:
 */
        __pyx_t_6 = __Pyx_PyInt_From_int(((__pyx_v_self->flags & (~PyBUF_WRITABLE)) | PyBUF_ANY_CONTIGUOUS)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 438, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_6);

        /* "View.MemoryView":439
 *             try:
 *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
 *                                  self.dtype_is_object)             # <<<<<<<<<<<<<<
 *             except TypeError:
 *                 return None
 */
        __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 439, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_7);

        /* "View.MemoryView":438
 *         if not isinstance(obj, memoryview):
 *             try:
 *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,             # <<<<<<<<<<<<<<
 *                                  self.dtype_is_object)
 *             except TypeError:
 */
        __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 438, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_v_obj);
        __Pyx_GIVEREF(__pyx_v_obj);
        if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_obj)) __PYX_ERR(3, 438, __pyx_L4_error);
        __Pyx_GIVEREF(__pyx_t_6);
        if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6)) __PYX_ERR(3, 438, __pyx_L4_error);
        __Pyx_GIVEREF(__pyx_t_7);
        if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7)) __PYX_ERR(3, 438, __pyx_L4_error);
        __pyx_t_6 = 0;
        __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 438, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "View.MemoryView":437
 *     cdef is_slice(self, obj):
 *         if not isinstance(obj, memoryview):
 *             try:             # <<<<<<<<<<<<<<
 *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
 *                                  self.dtype_is_object)
 */
      }
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L9_try_end;
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "View.MemoryView":440
 *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
 *                                  self.dtype_is_object)
 *             except TypeError:             # <<<<<<<<<<<<<<
 *                 return None
 * 
 */
      __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError);
      if (__pyx_t_9) {
        __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(3, 440, __pyx_L6_except_error)
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);

        /* "View.MemoryView":441
 *                                  self.dtype_is_object)
 *             except TypeError:
 *                 return None             # <<<<<<<<<<<<<<
 * 
 *         return obj
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_r = Py_None; __Pyx_INCREF(Py_None);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L7_except_return;
      }
      goto __pyx_L6_except_error;

      /* "View.MemoryView":437
 *     cdef is_slice(self, obj):
 *         if not isinstance(obj, memoryview):
 *             try:             # <<<<<<<<<<<<<<
 *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
 *                                  self.dtype_is_object)
 */
      __pyx_L6_except_error:;
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
      goto __pyx_L1_error;
      __pyx_L7_except_return:;
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
      goto __pyx_L0;
      __pyx_L9_try_end:;
    }

    /* "View.MemoryView":436
 * 
 *     cdef is_slice(self, obj):
 *         if not isinstance(obj, memoryview):             # <<<<<<<<<<<<<<
 *             try:
 *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
 */
  }

  /* "View.MemoryView":443
 *                 return None
 * 
 *         return obj             # <<<<<<<<<<<<<<
 * 
 *     cdef setitem_slice_assignment(self, dst, src):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_obj);
  __pyx_r = __pyx_v_obj;
  goto __pyx_L0;

  /* "View.MemoryView":435
 *             self.setitem_indexed(index, value)
 * 
 *     cdef is_slice(self, obj):             # <<<<<<<<<<<<<<
 *         if not isinstance(obj, memoryview):
 *             try:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_obj);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":445
 *         return obj
 * 
 *     cdef setitem_slice_assignment(self, dst, src):             # <<<<<<<<<<<<<<
 *         cdef __Pyx_memviewslice dst_slice
 *         cdef __Pyx_memviewslice src_slice
 */

static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src) {
  __Pyx_memviewslice __pyx_v_dst_slice;
  __Pyx_memviewslice __pyx_v_src_slice;
  __Pyx_memviewslice __pyx_v_msrc;
  __Pyx_memviewslice __pyx_v_mdst;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_memviewslice *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setitem_slice_assignment", 1);

  /* "View.MemoryView":448
 *         cdef __Pyx_memviewslice dst_slice
 *         cdef __Pyx_memviewslice src_slice
 *         cdef __Pyx_memviewslice msrc = get_slice_from_memview(src, &src_slice)[0]             # <<<<<<<<<<<<<<
 *         cdef __Pyx_memviewslice mdst = get_slice_from_memview(dst, &dst_slice)[0]
 * 
 */
  if (!(likely(((__pyx_v_src) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_src, __pyx_memoryview_type))))) __PYX_ERR(3, 448, __pyx_L1_error)
  __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_src), (&__pyx_v_src_slice)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(3, 448, __pyx_L1_error)
  __pyx_v_msrc = (__pyx_t_1[0]);

  /* "View.MemoryView":449
 *         cdef __Pyx_memviewslice src_slice
 *         cdef __Pyx_memviewslice msrc = get_slice_from_memview(src, &src_slice)[0]
 *         cdef __Pyx_memviewslice mdst = get_slice_from_memview(dst, &dst_slice)[0]             # <<<<<<<<<<<<<<
 * 
 *         memoryview_copy_contents(msrc, mdst, src.ndim, dst.ndim, self.dtype_is_object)
 */
  if (!(likely(((__pyx_v_dst) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_dst, __pyx_memoryview_type))))) __PYX_ERR(3, 449, __pyx_L1_error)
  __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_dst), (&__pyx_v_dst_slice)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(3, 449, __pyx_L1_error)
  __pyx_v_mdst = (__pyx_t_1[0]);

  /* "View.MemoryView":451
 *         cdef __Pyx_memviewslice mdst = get_slice_from_memview(dst, &dst_slice)[0]
 * 
 *         memoryview_copy_contents(msrc, mdst, src.ndim, dst.ndim, self.dtype_is_object)             # <<<<<<<<<<<<<<
 * 
 *     cdef setitem_slice_assign_scalar(self, memoryview dst, value):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_src, __pyx_n_s_ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 451, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_dst, __pyx_n_s_ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 451, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __pyx_memoryview_copy_contents(__pyx_v_msrc, __pyx_v_mdst, __pyx_t_3, __pyx_t_4, __pyx_v_self->dtype_is_object); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(3, 451, __pyx_L1_error)

  /* "View.MemoryView":445
 *         return obj
 * 
 *     cdef setitem_slice_assignment(self, dst, src):             # <<<<<<<<<<<<<<
 *         cdef __Pyx_memviewslice dst_slice
 *         cdef __Pyx_memviewslice src_slice
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assignment", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":453
 *         memoryview_copy_contents(msrc, mdst, src.ndim, dst.ndim, self.dtype_is_object)
 * 
 *     cdef setitem_slice_assign_scalar(self, memoryview dst, value):             # <<<<<<<<<<<<<<
 *         cdef int array[128]
 *         cdef void *tmp = NULL
 */

static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value) {
  int __pyx_v_array[0x80];
  void *__pyx_v_tmp;
  void *__pyx_v_item;
  __Pyx_memviewslice *__pyx_v_dst_slice;
  __Pyx_memviewslice __pyx_v_tmp_slice;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_memviewslice *__pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  char const *__pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setitem_slice_assign_scalar", 1);

  /* "View.MemoryView":455
 *     cdef setitem_slice_assign_scalar(self, memoryview dst, value):
 *         cdef int array[128]
 *         cdef void *tmp = NULL             # <<<<<<<<<<<<<<
 *         cdef void *item
 * 
 */
  __pyx_v_tmp = NULL;

  /* "View.MemoryView":460
 *         cdef __Pyx_memviewslice *dst_slice
 *         cdef __Pyx_memviewslice tmp_slice
 *         dst_slice = get_slice_from_memview(dst, &tmp_slice)             # <<<<<<<<<<<<<<
 * 
 *         if <size_t>self.view.itemsize > sizeof(array):
 */
  __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_dst, (&__pyx_v_tmp_slice)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(3, 460, __pyx_L1_error)
  __pyx_v_dst_slice = __pyx_t_1;

  /* "View.MemoryView":462
 *         dst_slice = get_slice_from_memview(dst, &tmp_slice)
 * 
 *         if <size_t>self.view.itemsize > sizeof(array):             # <<<<<<<<<<<<<<
 *             tmp = PyMem_Malloc(self.view.itemsize)
 *             if tmp == NULL:
 */
  __pyx_t_2 = (((size_t)__pyx_v_self->view.itemsize) > (sizeof(__pyx_v_array)));
  if (__pyx_t_2) {

    /* "View.MemoryView":463
 * 
 *         if <size_t>self.view.itemsize > sizeof(array):
 *             tmp = PyMem_Malloc(self.view.itemsize)             # <<<<<<<<<<<<<<
 *             if tmp == NULL:
 *                 raise MemoryError
 */
    __pyx_v_tmp = PyMem_Malloc(__pyx_v_self->view.itemsize);

    /* "View.MemoryView":464
 *         if <size_t>self.view.itemsize > sizeof(array):
 *             tmp = PyMem_Malloc(self.view.itemsize)
 *             if tmp == NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError
 *             item = tmp
 */
    __pyx_t_2 = (__pyx_v_tmp == NULL);
    if (unlikely(__pyx_t_2)) {

      /* "View.MemoryView":465
 *             tmp = PyMem_Malloc(self.view.itemsize)
 *             if tmp == NULL:
 *                 raise MemoryError             # <<<<<<<<<<<<<<
 *             item = tmp
 *         else:
 */
      PyErr_NoMemory(); __PYX_ERR(3, 465, __pyx_L1_error)

      /* "View.MemoryView":464
 *         if <size_t>self.view.itemsize > sizeof(array):
 *             tmp = PyMem_Malloc(self.view.itemsize)
 *             if tmp == NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError
 *             item = tmp
 */
    }

    /* "View.MemoryView":466
 *             if tmp == NULL:
 *                 raise MemoryError
 *             item = tmp             # <<<<<<<<<<<<<<
 *         else:
 *             item = <void *> array
 */
    __pyx_v_item = __pyx_v_tmp;

    /* "View.MemoryView":462
 *         dst_slice = get_slice_from_memview(dst, &tmp_slice)
 * 
 *         if <size_t>self.view.itemsize > sizeof(array):             # <<<<<<<<<<<<<<
 *             tmp = PyMem_Malloc(self.view.itemsize)
 *             if tmp == NULL:
 */
    goto __pyx_L3;
  }

  /* "View.MemoryView":468
 *             item = tmp
 *         else:
 *             item = <void *> array             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
  /*else*/ {
    __pyx_v_item = ((void *)__pyx_v_array);
  }
  __pyx_L3:;

  /* "View.MemoryView":470
 *             item = <void *> array
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             if self.dtype_is_object:
 *                 (<PyObject **> item)[0] = <PyObject *> value
 */
  /*try:*/ {

    /* "View.MemoryView":471
 * 
 *         try:
 *             if self.dtype_is_object:             # <<<<<<<<<<<<<<
 *                 (<PyObject **> item)[0] = <PyObject *> value
 *             else:
 */
    if (__pyx_v_self->dtype_is_object) {

      /* "View.MemoryView":472
 *         try:
 *             if self.dtype_is_object:
 *                 (<PyObject **> item)[0] = <PyObject *> value             # <<<<<<<<<<<<<<
 *             else:
 *                 self.assign_item_from_object(<char *> item, value)
 */
      (((PyObject **)__pyx_v_item)[0]) = ((PyObject *)__pyx_v_value);

      /* "View.MemoryView":471
 * 
 *         try:
 *             if self.dtype_is_object:             # <<<<<<<<<<<<<<
 *                 (<PyObject **> item)[0] = <PyObject *> value
 *             else:
 */
      goto __pyx_L8;
    }

    /* "View.MemoryView":474
 *                 (<PyObject **> item)[0] = <PyObject *> value
 *             else:
 *                 self.assign_item_from_object(<char *> item, value)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    /*else*/ {
      __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, ((char *)__pyx_v_item), __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 474, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_L8:;

    /* "View.MemoryView":478
 * 
 * 
 *             if self.view.suboffsets != NULL:             # <<<<<<<<<<<<<<
 *                 assert_direct_dimensions(self.view.suboffsets, self.view.ndim)
 *             slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize,
 */
    __pyx_t_2 = (__pyx_v_self->view.suboffsets != NULL);
    if (__pyx_t_2) {

      /* "View.MemoryView":479
 * 
 *             if self.view.suboffsets != NULL:
 *                 assert_direct_dimensions(self.view.suboffsets, self.view.ndim)             # <<<<<<<<<<<<<<
 *             slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize,
 *                                 item, self.dtype_is_object)
 */
      __pyx_t_4 = assert_direct_dimensions(__pyx_v_self->view.suboffsets, __pyx_v_self->view.ndim); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 479, __pyx_L6_error)

      /* "View.MemoryView":478
 * 
 * 
 *             if self.view.suboffsets != NULL:             # <<<<<<<<<<<<<<
 *                 assert_direct_dimensions(self.view.suboffsets, self.view.ndim)
 *             slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize,
 */
    }

    /* "View.MemoryView":480
 *             if self.view.suboffsets != NULL:
 *                 assert_direct_dimensions(self.view.suboffsets, self.view.ndim)
 *             slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize,             # <<<<<<<<<<<<<<
 *                                 item, self.dtype_is_object)
 *         finally:
 */
    __pyx_memoryview_slice_assign_scalar(__pyx_v_dst_slice, __pyx_v_dst->view.ndim, __pyx_v_self->view.itemsize, __pyx_v_item, __pyx_v_self->dtype_is_object);
  }

  /* "View.MemoryView":483
 *                                 item, self.dtype_is_object)
 *         finally:
 *             PyMem_Free(tmp)             # <<<<<<<<<<<<<<
 * 
 *     cdef setitem_indexed(self, index, value):
 */
  /*finally:*/ {
    /*normal exit:*/{
      PyMem_Free(__pyx_v_tmp);
      goto __pyx_L7;
    }
    __pyx_L6_error:;
    /*exception exit:*/{
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
      if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_12);
      __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename;
      {
        PyMem_Free(__pyx_v_tmp);
      }
      if (PY_MAJOR_VERSION >= 3) {
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
      }
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0;
      __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6;
      goto __pyx_L1_error;
    }
    __pyx_L7:;
  }

  /* "View.MemoryView":453
 *         memoryview_copy_contents(msrc, mdst, src.ndim, dst.ndim, self.dtype_is_object)
 * 
 *     cdef setitem_slice_assign_scalar(self, memoryview dst, value):             # <<<<<<<<<<<<<<
 *         cdef int array[128]
 *         cdef void *tmp = NULL
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":485
 *             PyMem_Free(tmp)
 * 
 *     cdef setitem_indexed(self, index, value):             # <<<<<<<<<<<<<<
 *         cdef char *itemp = self.get_item_pointer(index)
 *         self.assign_item_from_object(itemp, value)
 */

static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) {
  char *__pyx_v_itemp;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  char *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setitem_indexed", 1);

  /* "View.MemoryView":486
 * 
 *     cdef setitem_indexed(self, index, value):
 *         cdef char *itemp = self.get_item_pointer(index)             # <<<<<<<<<<<<<<
 *         self.assign_item_from_object(itemp, value)
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_index); if (unlikely(__pyx_t_1 == ((char *)NULL))) __PYX_ERR(3, 486, __pyx_L1_error)
  __pyx_v_itemp = __pyx_t_1;

  /* "View.MemoryView":487
 *     cdef setitem_indexed(self, index, value):
 *         cdef char *itemp = self.get_item_pointer(index)
 *         self.assign_item_from_object(itemp, value)             # <<<<<<<<<<<<<<
 * 
 *     cdef convert_item_to_object(self, char *itemp):
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "View.MemoryView":485
 *             PyMem_Free(tmp)
 * 
 *     cdef setitem_indexed(self, index, value):             # <<<<<<<<<<<<<<
 *         cdef char *itemp = self.get_item_pointer(index)
 *         self.assign_item_from_object(itemp, value)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":489
 *         self.assign_item_from_object(itemp, value)
 * 
 *     cdef convert_item_to_object(self, char *itemp):             # <<<<<<<<<<<<<<
 *         """Only used if instantiated manually by the user, or if Cython doesn't
 *         know how to convert the type"""
 */

static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp) {
  PyObject *__pyx_v_struct = NULL;
  PyObject *__pyx_v_bytesitem = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("convert_item_to_object", 1);

  /* "View.MemoryView":492
 *         """Only used if instantiated manually by the user, or if Cython doesn't
 *         know how to convert the type"""
 *         import struct             # <<<<<<<<<<<<<<
 *         cdef bytes bytesitem
 * 
 */
  __pyx_t_1 = __Pyx_ImportDottedModule(__pyx_n_s_struct, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_struct = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "View.MemoryView":495
 *         cdef bytes bytesitem
 * 
 *         bytesitem = itemp[:self.view.itemsize]             # <<<<<<<<<<<<<<
 *         try:
 *             result = struct.unpack(self.view.format, bytesitem)
 */
  __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_itemp + 0, __pyx_v_self->view.itemsize - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_bytesitem = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "View.MemoryView":496
 * 
 *         bytesitem = itemp[:self.view.itemsize]
 *         try:             # <<<<<<<<<<<<<<
 *             result = struct.unpack(self.view.format, bytesitem)
 *         except struct.error:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    /*try:*/ {

      /* "View.MemoryView":497
 *         bytesitem = itemp[:self.view.itemsize]
 *         try:
 *             result = struct.unpack(self.view.format, bytesitem)             # <<<<<<<<<<<<<<
 *         except struct.error:
 *             raise ValueError, "Unable to convert item to object"
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_unpack); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 497, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 497, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = NULL;
      __pyx_t_8 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_8 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 2+__pyx_t_8);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 497, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __pyx_v_result = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "View.MemoryView":496
 * 
 *         bytesitem = itemp[:self.view.itemsize]
 *         try:             # <<<<<<<<<<<<<<
 *             result = struct.unpack(self.view.format, bytesitem)
 *         except struct.error:
 */
    }

    /* "View.MemoryView":501
 *             raise ValueError, "Unable to convert item to object"
 *         else:
 *             if len(self.view.format) == 1:             # <<<<<<<<<<<<<<
 *                 return result[0]
 *             return result
 */
    /*else:*/ {
      __pyx_t_9 = __Pyx_ssize_strlen(__pyx_v_self->view.format); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(3, 501, __pyx_L5_except_error)
      __pyx_t_10 = (__pyx_t_9 == 1);
      if (__pyx_t_10) {

        /* "View.MemoryView":502
 *         else:
 *             if len(self.view.format) == 1:
 *                 return result[0]             # <<<<<<<<<<<<<<
 *             return result
 * 
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_result, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 502, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_r = __pyx_t_1;
        __pyx_t_1 = 0;
        goto __pyx_L6_except_return;

        /* "View.MemoryView":501
 *             raise ValueError, "Unable to convert item to object"
 *         else:
 *             if len(self.view.format) == 1:             # <<<<<<<<<<<<<<
 *                 return result[0]
 *             return result
 */
      }

      /* "View.MemoryView":503
 *             if len(self.view.format) == 1:
 *                 return result[0]
 *             return result             # <<<<<<<<<<<<<<
 * 
 *     cdef assign_item_from_object(self, char *itemp, object value):
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_result);
      __pyx_r = __pyx_v_result;
      goto __pyx_L6_except_return;
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "View.MemoryView":498
 *         try:
 *             result = struct.unpack(self.view.format, bytesitem)
 *         except struct.error:             # <<<<<<<<<<<<<<
 *             raise ValueError, "Unable to convert item to object"
 *         else:
 */
    __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_5, &__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 498, __pyx_L5_except_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_ErrRestore(__pyx_t_1, __pyx_t_5, __pyx_t_6);
    __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0;
    if (__pyx_t_8) {
      __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(3, 498, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_1);

      /* "View.MemoryView":499
 *             result = struct.unpack(self.view.format, bytesitem)
 *         except struct.error:
 *             raise ValueError, "Unable to convert item to object"             # <<<<<<<<<<<<<<
 *         else:
 *             if len(self.view.format) == 1:
 */
      __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Unable_to_convert_item_to_object, 0, 0);
      __PYX_ERR(3, 499, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;

    /* "View.MemoryView":496
 * 
 *         bytesitem = itemp[:self.view.itemsize]
 *         try:             # <<<<<<<<<<<<<<
 *             result = struct.unpack(self.view.format, bytesitem)
 *         except struct.error:
 */
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
    goto __pyx_L1_error;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
    goto __pyx_L0;
  }

  /* "View.MemoryView":489
 *         self.assign_item_from_object(itemp, value)
 * 
 *     cdef convert_item_to_object(self, char *itemp):             # <<<<<<<<<<<<<<
 *         """Only used if instantiated manually by the user, or if Cython doesn't
 *         know how to convert the type"""
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_struct);
  __Pyx_XDECREF(__pyx_v_bytesitem);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":505
 *             return result
 * 
 *     cdef assign_item_from_object(self, char *itemp, object value):             # <<<<<<<<<<<<<<
 *         """Only used if instantiated manually by the user, or if Cython doesn't
 *         know how to convert the type"""
 */

static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) {
  PyObject *__pyx_v_struct = NULL;
  char __pyx_v_c;
  PyObject *__pyx_v_bytesvalue = 0;
  Py_ssize_t __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  char *__pyx_t_9;
  char *__pyx_t_10;
  char *__pyx_t_11;
  char *__pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("assign_item_from_object", 1);

  /* "View.MemoryView":508
 *         """Only used if instantiated manually by the user, or if Cython doesn't
 *         know how to convert the type"""
 *         import struct             # <<<<<<<<<<<<<<
 *         cdef char c
 *         cdef bytes bytesvalue
 */
  __pyx_t_1 = __Pyx_ImportDottedModule(__pyx_n_s_struct, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_struct = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "View.MemoryView":513
 *         cdef Py_ssize_t i
 * 
 *         if isinstance(value, tuple):             # <<<<<<<<<<<<<<
 *             bytesvalue = struct.pack(self.view.format, *value)
 *         else:
 */
  __pyx_t_2 = PyTuple_Check(__pyx_v_value); 
  if (__pyx_t_2) {

    /* "View.MemoryView":514
 * 
 *         if isinstance(value, tuple):
 *             bytesvalue = struct.pack(self.view.format, *value)             # <<<<<<<<<<<<<<
 *         else:
 *             bytesvalue = struct.pack(self.view.format, value)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(3, 514, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_3))) __PYX_ERR(3, 514, __pyx_L1_error)
    __pyx_v_bytesvalue = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "View.MemoryView":513
 *         cdef Py_ssize_t i
 * 
 *         if isinstance(value, tuple):             # <<<<<<<<<<<<<<
 *             bytesvalue = struct.pack(self.view.format, *value)
 *         else:
 */
    goto __pyx_L3;
  }

  /* "View.MemoryView":516
 *             bytesvalue = struct.pack(self.view.format, *value)
 *         else:
 *             bytesvalue = struct.pack(self.view.format, value)             # <<<<<<<<<<<<<<
 * 
 *         for i, c in enumerate(bytesvalue):
 */
  /*else*/ {
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 516, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 516, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_1, __pyx_v_value};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 516, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_3))) __PYX_ERR(3, 516, __pyx_L1_error)
    __pyx_v_bytesvalue = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;
  }
  __pyx_L3:;

  /* "View.MemoryView":518
 *             bytesvalue = struct.pack(self.view.format, value)
 * 
 *         for i, c in enumerate(bytesvalue):             # <<<<<<<<<<<<<<
 *             itemp[i] = c
 * 
 */
  __pyx_t_7 = 0;
  if (unlikely(__pyx_v_bytesvalue == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable");
    __PYX_ERR(3, 518, __pyx_L1_error)
  }
  __Pyx_INCREF(__pyx_v_bytesvalue);
  __pyx_t_8 = __pyx_v_bytesvalue;
  __pyx_t_10 = PyBytes_AS_STRING(__pyx_t_8);
  __pyx_t_11 = (__pyx_t_10 + PyBytes_GET_SIZE(__pyx_t_8));
  for (__pyx_t_12 = __pyx_t_10; __pyx_t_12 < __pyx_t_11; __pyx_t_12++) {
    __pyx_t_9 = __pyx_t_12;
    __pyx_v_c = (__pyx_t_9[0]);

    /* "View.MemoryView":519
 * 
 *         for i, c in enumerate(bytesvalue):
 *             itemp[i] = c             # <<<<<<<<<<<<<<
 * 
 *     @cname('getbuffer')
 */
    __pyx_v_i = __pyx_t_7;

    /* "View.MemoryView":518
 *             bytesvalue = struct.pack(self.view.format, value)
 * 
 *         for i, c in enumerate(bytesvalue):             # <<<<<<<<<<<<<<
 *             itemp[i] = c
 * 
 */
    __pyx_t_7 = (__pyx_t_7 + 1);

    /* "View.MemoryView":519
 * 
 *         for i, c in enumerate(bytesvalue):
 *             itemp[i] = c             # <<<<<<<<<<<<<<
 * 
 *     @cname('getbuffer')
 */
    (__pyx_v_itemp[__pyx_v_i]) = __pyx_v_c;
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "View.MemoryView":505
 *             return result
 * 
 *     cdef assign_item_from_object(self, char *itemp, object value):             # <<<<<<<<<<<<<<
 *         """Only used if instantiated manually by the user, or if Cython doesn't
 *         know how to convert the type"""
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("View.MemoryView.memoryview.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_struct);
  __Pyx_XDECREF(__pyx_v_bytesvalue);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":521
 *             itemp[i] = c
 * 
 *     @cname('getbuffer')             # <<<<<<<<<<<<<<
 *     def __getbuffer__(self, Py_buffer *info, int flags):
 *         if flags & PyBUF_WRITABLE and self.view.readonly:
 */

/* Python wrapper */
CYTHON_UNUSED static int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
CYTHON_UNUSED static int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t *__pyx_t_3;
  char *__pyx_t_4;
  void *__pyx_t_5;
  int __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (unlikely(__pyx_v_info == NULL)) {
    PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete");
    return -1;
  }
  __Pyx_RefNannySetupContext("__getbuffer__", 0);
  __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(__pyx_v_info->obj);

  /* "View.MemoryView":523
 *     @cname('getbuffer')
 *     def __getbuffer__(self, Py_buffer *info, int flags):
 *         if flags & PyBUF_WRITABLE and self.view.readonly:             # <<<<<<<<<<<<<<
 *             raise ValueError, "Cannot create writable memory view from read-only memoryview"
 * 
 */
  __pyx_t_2 = ((__pyx_v_flags & PyBUF_WRITABLE) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_1 = __pyx_v_self->view.readonly;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "View.MemoryView":524
 *     def __getbuffer__(self, Py_buffer *info, int flags):
 *         if flags & PyBUF_WRITABLE and self.view.readonly:
 *             raise ValueError, "Cannot create writable memory view from read-only memoryview"             # <<<<<<<<<<<<<<
 * 
 *         if flags & PyBUF_ND:
 */
    __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Cannot_create_writable_memory_vi, 0, 0);
    __PYX_ERR(3, 524, __pyx_L1_error)

    /* "View.MemoryView":523
 *     @cname('getbuffer')
 *     def __getbuffer__(self, Py_buffer *info, int flags):
 *         if flags & PyBUF_WRITABLE and self.view.readonly:             # <<<<<<<<<<<<<<
 *             raise ValueError, "Cannot create writable memory view from read-only memoryview"
 * 
 */
  }

  /* "View.MemoryView":526
 *             raise ValueError, "Cannot create writable memory view from read-only memoryview"
 * 
 *         if flags & PyBUF_ND:             # <<<<<<<<<<<<<<
 *             info.shape = self.view.shape
 *         else:
 */
  __pyx_t_1 = ((__pyx_v_flags & PyBUF_ND) != 0);
  if (__pyx_t_1) {

    /* "View.MemoryView":527
 * 
 *         if flags & PyBUF_ND:
 *             info.shape = self.view.shape             # <<<<<<<<<<<<<<
 *         else:
 *             info.shape = NULL
 */
    __pyx_t_3 = __pyx_v_self->view.shape;
    __pyx_v_info->shape = __pyx_t_3;

    /* "View.MemoryView":526
 *             raise ValueError, "Cannot create writable memory view from read-only memoryview"
 * 
 *         if flags & PyBUF_ND:             # <<<<<<<<<<<<<<
 *             info.shape = self.view.shape
 *         else:
 */
    goto __pyx_L6;
  }

  /* "View.MemoryView":529
 *             info.shape = self.view.shape
 *         else:
 *             info.shape = NULL             # <<<<<<<<<<<<<<
 * 
 *         if flags & PyBUF_STRIDES:
 */
  /*else*/ {
    __pyx_v_info->shape = NULL;
  }
  __pyx_L6:;

  /* "View.MemoryView":531
 *             info.shape = NULL
 * 
 *         if flags & PyBUF_STRIDES:             # <<<<<<<<<<<<<<
 *             info.strides = self.view.strides
 *         else:
 */
  __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0);
  if (__pyx_t_1) {

    /* "View.MemoryView":532
 * 
 *         if flags & PyBUF_STRIDES:
 *             info.strides = self.view.strides             # <<<<<<<<<<<<<<
 *         else:
 *             info.strides = NULL
 */
    __pyx_t_3 = __pyx_v_self->view.strides;
    __pyx_v_info->strides = __pyx_t_3;

    /* "View.MemoryView":531
 *             info.shape = NULL
 * 
 *         if flags & PyBUF_STRIDES:             # <<<<<<<<<<<<<<
 *             info.strides = self.view.strides
 *         else:
 */
    goto __pyx_L7;
  }

  /* "View.MemoryView":534
 *             info.strides = self.view.strides
 *         else:
 *             info.strides = NULL             # <<<<<<<<<<<<<<
 * 
 *         if flags & PyBUF_INDIRECT:
 */
  /*else*/ {
    __pyx_v_info->strides = NULL;
  }
  __pyx_L7:;

  /* "View.MemoryView":536
 *             info.strides = NULL
 * 
 *         if flags & PyBUF_INDIRECT:             # <<<<<<<<<<<<<<
 *             info.suboffsets = self.view.suboffsets
 *         else:
 */
  __pyx_t_1 = ((__pyx_v_flags & PyBUF_INDIRECT) != 0);
  if (__pyx_t_1) {

    /* "View.MemoryView":537
 * 
 *         if flags & PyBUF_INDIRECT:
 *             info.suboffsets = self.view.suboffsets             # <<<<<<<<<<<<<<
 *         else:
 *             info.suboffsets = NULL
 */
    __pyx_t_3 = __pyx_v_self->view.suboffsets;
    __pyx_v_info->suboffsets = __pyx_t_3;

    /* "View.MemoryView":536
 *             info.strides = NULL
 * 
 *         if flags & PyBUF_INDIRECT:             # <<<<<<<<<<<<<<
 *             info.suboffsets = self.view.suboffsets
 *         else:
 */
    goto __pyx_L8;
  }

  /* "View.MemoryView":539
 *             info.suboffsets = self.view.suboffsets
 *         else:
 *             info.suboffsets = NULL             # <<<<<<<<<<<<<<
 * 
 *         if flags & PyBUF_FORMAT:
 */
  /*else*/ {
    __pyx_v_info->suboffsets = NULL;
  }
  __pyx_L8:;

  /* "View.MemoryView":541
 *             info.suboffsets = NULL
 * 
 *         if flags & PyBUF_FORMAT:             # <<<<<<<<<<<<<<
 *             info.format = self.view.format
 *         else:
 */
  __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
  if (__pyx_t_1) {

    /* "View.MemoryView":542
 * 
 *         if flags & PyBUF_FORMAT:
 *             info.format = self.view.format             # <<<<<<<<<<<<<<
 *         else:
 *             info.format = NULL
 */
    __pyx_t_4 = __pyx_v_self->view.format;
    __pyx_v_info->format = __pyx_t_4;

    /* "View.MemoryView":541
 *             info.suboffsets = NULL
 * 
 *         if flags & PyBUF_FORMAT:             # <<<<<<<<<<<<<<
 *             info.format = self.view.format
 *         else:
 */
    goto __pyx_L9;
  }

  /* "View.MemoryView":544
 *             info.format = self.view.format
 *         else:
 *             info.format = NULL             # <<<<<<<<<<<<<<
 * 
 *         info.buf = self.view.buf
 */
  /*else*/ {
    __pyx_v_info->format = NULL;
  }
  __pyx_L9:;

  /* "View.MemoryView":546
 *             info.format = NULL
 * 
 *         info.buf = self.view.buf             # <<<<<<<<<<<<<<
 *         info.ndim = self.view.ndim
 *         info.itemsize = self.view.itemsize
 */
  __pyx_t_5 = __pyx_v_self->view.buf;
  __pyx_v_info->buf = __pyx_t_5;

  /* "View.MemoryView":547
 * 
 *         info.buf = self.view.buf
 *         info.ndim = self.view.ndim             # <<<<<<<<<<<<<<
 *         info.itemsize = self.view.itemsize
 *         info.len = self.view.len
 */
  __pyx_t_6 = __pyx_v_self->view.ndim;
  __pyx_v_info->ndim = __pyx_t_6;

  /* "View.MemoryView":548
 *         info.buf = self.view.buf
 *         info.ndim = self.view.ndim
 *         info.itemsize = self.view.itemsize             # <<<<<<<<<<<<<<
 *         info.len = self.view.len
 *         info.readonly = self.view.readonly
 */
  __pyx_t_7 = __pyx_v_self->view.itemsize;
  __pyx_v_info->itemsize = __pyx_t_7;

  /* "View.MemoryView":549
 *         info.ndim = self.view.ndim
 *         info.itemsize = self.view.itemsize
 *         info.len = self.view.len             # <<<<<<<<<<<<<<
 *         info.readonly = self.view.readonly
 *         info.obj = self
 */
  __pyx_t_7 = __pyx_v_self->view.len;
  __pyx_v_info->len = __pyx_t_7;

  /* "View.MemoryView":550
 *         info.itemsize = self.view.itemsize
 *         info.len = self.view.len
 *         info.readonly = self.view.readonly             # <<<<<<<<<<<<<<
 *         info.obj = self
 * 
 */
  __pyx_t_1 = __pyx_v_self->view.readonly;
  __pyx_v_info->readonly = __pyx_t_1;

  /* "View.MemoryView":551
 *         info.len = self.view.len
 *         info.readonly = self.view.readonly
 *         info.obj = self             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  __Pyx_GOTREF(__pyx_v_info->obj);
  __Pyx_DECREF(__pyx_v_info->obj);
  __pyx_v_info->obj = ((PyObject *)__pyx_v_self);

  /* "View.MemoryView":521
 *             itemp[i] = c
 * 
 *     @cname('getbuffer')             # <<<<<<<<<<<<<<
 *     def __getbuffer__(self, Py_buffer *info, int flags):
 *         if flags & PyBUF_WRITABLE and self.view.readonly:
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("View.MemoryView.memoryview.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  if (__pyx_v_info->obj != NULL) {
    __Pyx_GOTREF(__pyx_v_info->obj);
    __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
  }
  goto __pyx_L2;
  __pyx_L0:;
  if (__pyx_v_info->obj == Py_None) {
    __Pyx_GOTREF(__pyx_v_info->obj);
    __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
  }
  __pyx_L2:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":554
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def T(self):
 *         cdef _memoryviewslice result = memoryview_copy(self)
 */

/* Python wrapper */
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
  struct __pyx_memoryviewslice_obj *__pyx_v_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "View.MemoryView":556
 *     @property
 *     def T(self):
 *         cdef _memoryviewslice result = memoryview_copy(self)             # <<<<<<<<<<<<<<
 *         transpose_memslice(&result.from_slice)
 *         return result
 */
  __pyx_t_1 = __pyx_memoryview_copy_object(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_memoryviewslice_type))))) __PYX_ERR(3, 556, __pyx_L1_error)
  __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "View.MemoryView":557
 *     def T(self):
 *         cdef _memoryviewslice result = memoryview_copy(self)
 *         transpose_memslice(&result.from_slice)             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
  __pyx_t_2 = __pyx_memslice_transpose((&__pyx_v_result->from_slice)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(3, 557, __pyx_L1_error)

  /* "View.MemoryView":558
 *         cdef _memoryviewslice result = memoryview_copy(self)
 *         transpose_memslice(&result.from_slice)
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "View.MemoryView":554
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def T(self):
 *         cdef _memoryviewslice result = memoryview_copy(self)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("View.MemoryView.memoryview.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":560
 *         return result
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def base(self):
 *         return self._get_base()
 */

/* Python wrapper */
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "View.MemoryView":562
 *     @property
 *     def base(self):
 *         return self._get_base()             # <<<<<<<<<<<<<<
 * 
 *     cdef _get_base(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->_get_base(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":560
 *         return result
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def base(self):
 *         return self._get_base()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("View.MemoryView.memoryview.base.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":564
 *         return self._get_base()
 * 
 *     cdef _get_base(self):             # <<<<<<<<<<<<<<
 *         return self.obj
 * 
 */

static PyObject *__pyx_memoryview__get_base(struct __pyx_memoryview_obj *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_get_base", 1);

  /* "View.MemoryView":565
 * 
 *     cdef _get_base(self):
 *         return self.obj             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->obj);
  __pyx_r = __pyx_v_self->obj;
  goto __pyx_L0;

  /* "View.MemoryView":564
 *         return self._get_base()
 * 
 *     cdef _get_base(self):             # <<<<<<<<<<<<<<
 *         return self.obj
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":567
 *         return self.obj
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def shape(self):
 *         return tuple([length for length in self.view.shape[:self.view.ndim]])
 */

/* Python wrapper */
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
  Py_ssize_t __pyx_7genexpr__pyx_v_length;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t *__pyx_t_2;
  Py_ssize_t *__pyx_t_3;
  Py_ssize_t *__pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "View.MemoryView":569
 *     @property
 *     def shape(self):
 *         return tuple([length for length in self.view.shape[:self.view.ndim]])             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 569, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim);
    for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) {
      __pyx_t_2 = __pyx_t_4;
      __pyx_7genexpr__pyx_v_length = (__pyx_t_2[0]);
      __pyx_t_5 = PyInt_FromSsize_t(__pyx_7genexpr__pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 569, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(3, 569, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  } /* exit inner scope */
  __pyx_t_5 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":567
 *         return self.obj
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def shape(self):
 *         return tuple([length for length in self.view.shape[:self.view.ndim]])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("View.MemoryView.memoryview.shape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":571
 *         return tuple([length for length in self.view.shape[:self.view.ndim]])
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def strides(self):
 *         if self.view.strides == NULL:
 */

/* Python wrapper */
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
  Py_ssize_t __pyx_8genexpr1__pyx_v_stride;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t *__pyx_t_3;
  Py_ssize_t *__pyx_t_4;
  Py_ssize_t *__pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "View.MemoryView":573
 *     @property
 *     def strides(self):
 *         if self.view.strides == NULL:             # <<<<<<<<<<<<<<
 * 
 *             raise ValueError, "Buffer view does not expose strides"
 */
  __pyx_t_1 = (__pyx_v_self->view.strides == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "View.MemoryView":575
 *         if self.view.strides == NULL:
 * 
 *             raise ValueError, "Buffer view does not expose strides"             # <<<<<<<<<<<<<<
 * 
 *         return tuple([stride for stride in self.view.strides[:self.view.ndim]])
 */
    __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Buffer_view_does_not_expose_stri, 0, 0);
    __PYX_ERR(3, 575, __pyx_L1_error)

    /* "View.MemoryView":573
 *     @property
 *     def strides(self):
 *         if self.view.strides == NULL:             # <<<<<<<<<<<<<<
 * 
 *             raise ValueError, "Buffer view does not expose strides"
 */
  }

  /* "View.MemoryView":577
 *             raise ValueError, "Buffer view does not expose strides"
 * 
 *         return tuple([stride for stride in self.view.strides[:self.view.ndim]])             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  { /* enter inner scope */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = (__pyx_v_self->view.strides + __pyx_v_self->view.ndim);
    for (__pyx_t_5 = __pyx_v_self->view.strides; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) {
      __pyx_t_3 = __pyx_t_5;
      __pyx_8genexpr1__pyx_v_stride = (__pyx_t_3[0]);
      __pyx_t_6 = PyInt_FromSsize_t(__pyx_8genexpr1__pyx_v_stride); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 577, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(3, 577, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
  } /* exit inner scope */
  __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":571
 *         return tuple([length for length in self.view.shape[:self.view.ndim]])
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def strides(self):
 *         if self.view.strides == NULL:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("View.MemoryView.memoryview.strides.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":579
 *         return tuple([stride for stride in self.view.strides[:self.view.ndim]])
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def suboffsets(self):
 *         if self.view.suboffsets == NULL:
 */

/* Python wrapper */
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
  Py_ssize_t __pyx_8genexpr2__pyx_v_suboffset;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t *__pyx_t_3;
  Py_ssize_t *__pyx_t_4;
  Py_ssize_t *__pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "View.MemoryView":581
 *     @property
 *     def suboffsets(self):
 *         if self.view.suboffsets == NULL:             # <<<<<<<<<<<<<<
 *             return (-1,) * self.view.ndim
 * 
 */
  __pyx_t_1 = (__pyx_v_self->view.suboffsets == NULL);
  if (__pyx_t_1) {

    /* "View.MemoryView":582
 *     def suboffsets(self):
 *         if self.view.suboffsets == NULL:
 *             return (-1,) * self.view.ndim             # <<<<<<<<<<<<<<
 * 
 *         return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PySequence_Multiply(__pyx_tuple__4, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 582, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "View.MemoryView":581
 *     @property
 *     def suboffsets(self):
 *         if self.view.suboffsets == NULL:             # <<<<<<<<<<<<<<
 *             return (-1,) * self.view.ndim
 * 
 */
  }

  /* "View.MemoryView":584
 *             return (-1,) * self.view.ndim
 * 
 *         return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  { /* enter inner scope */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 584, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = (__pyx_v_self->view.suboffsets + __pyx_v_self->view.ndim);
    for (__pyx_t_5 = __pyx_v_self->view.suboffsets; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) {
      __pyx_t_3 = __pyx_t_5;
      __pyx_8genexpr2__pyx_v_suboffset = (__pyx_t_3[0]);
      __pyx_t_6 = PyInt_FromSsize_t(__pyx_8genexpr2__pyx_v_suboffset); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 584, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(3, 584, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
  } /* exit inner scope */
  __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":579
 *         return tuple([stride for stride in self.view.strides[:self.view.ndim]])
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def suboffsets(self):
 *         if self.view.suboffsets == NULL:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("View.MemoryView.memoryview.suboffsets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":586
 *         return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def ndim(self):
 *         return self.view.ndim
 */

/* Python wrapper */
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "View.MemoryView":588
 *     @property
 *     def ndim(self):
 *         return self.view.ndim             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":586
 *         return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def ndim(self):
 *         return self.view.ndim
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("View.MemoryView.memoryview.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":590
 *         return self.view.ndim
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def itemsize(self):
 *         return self.view.itemsize
 */

/* Python wrapper */
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "View.MemoryView":592
 *     @property
 *     def itemsize(self):
 *         return self.view.itemsize             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":590
 *         return self.view.ndim
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def itemsize(self):
 *         return self.view.itemsize
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("View.MemoryView.memoryview.itemsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":594
 *         return self.view.itemsize
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def nbytes(self):
 *         return self.size * self.view.itemsize
 */

/* Python wrapper */
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "View.MemoryView":596
 *     @property
 *     def nbytes(self):
 *         return self.size * self.view.itemsize             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":594
 *         return self.view.itemsize
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def nbytes(self):
 *         return self.size * self.view.itemsize
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("View.MemoryView.memoryview.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":598
 *         return self.size * self.view.itemsize
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def size(self):
 *         if self._size is None:
 */

/* Python wrapper */
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_length = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t *__pyx_t_2;
  Py_ssize_t *__pyx_t_3;
  Py_ssize_t *__pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "View.MemoryView":600
 *     @property
 *     def size(self):
 *         if self._size is None:             # <<<<<<<<<<<<<<
 *             result = 1
 * 
 */
  __pyx_t_1 = (__pyx_v_self->_size == Py_None);
  if (__pyx_t_1) {

    /* "View.MemoryView":601
 *     def size(self):
 *         if self._size is None:
 *             result = 1             # <<<<<<<<<<<<<<
 * 
 *             for length in self.view.shape[:self.view.ndim]:
 */
    __Pyx_INCREF(__pyx_int_1);
    __pyx_v_result = __pyx_int_1;

    /* "View.MemoryView":603
 *             result = 1
 * 
 *             for length in self.view.shape[:self.view.ndim]:             # <<<<<<<<<<<<<<
 *                 result *= length
 * 
 */
    __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim);
    for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) {
      __pyx_t_2 = __pyx_t_4;
      __pyx_t_5 = PyInt_FromSsize_t((__pyx_t_2[0])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 603, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_5);
      __pyx_t_5 = 0;

      /* "View.MemoryView":604
 * 
 *             for length in self.view.shape[:self.view.ndim]:
 *                 result *= length             # <<<<<<<<<<<<<<
 * 
 *             self._size = result
 */
      __pyx_t_5 = PyNumber_InPlaceMultiply(__pyx_v_result, __pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 604, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_5);
      __pyx_t_5 = 0;
    }

    /* "View.MemoryView":606
 *                 result *= length
 * 
 *             self._size = result             # <<<<<<<<<<<<<<
 * 
 *         return self._size
 */
    __Pyx_INCREF(__pyx_v_result);
    __Pyx_GIVEREF(__pyx_v_result);
    __Pyx_GOTREF(__pyx_v_self->_size);
    __Pyx_DECREF(__pyx_v_self->_size);
    __pyx_v_self->_size = __pyx_v_result;

    /* "View.MemoryView":600
 *     @property
 *     def size(self):
 *         if self._size is None:             # <<<<<<<<<<<<<<
 *             result = 1
 * 
 */
  }

  /* "View.MemoryView":608
 *             self._size = result
 * 
 *         return self._size             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_size);
  __pyx_r = __pyx_v_self->_size;
  goto __pyx_L0;

  /* "View.MemoryView":598
 *         return self.size * self.view.itemsize
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def size(self):
 *         if self._size is None:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("View.MemoryView.memoryview.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_length);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":610
 *         return self._size
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         if self.view.ndim >= 1:
 *             return self.view.shape[0]
 */

/* Python wrapper */
static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  int __pyx_t_1;

  /* "View.MemoryView":611
 * 
 *     def __len__(self):
 *         if self.view.ndim >= 1:             # <<<<<<<<<<<<<<
 *             return self.view.shape[0]
 * 
 */
  __pyx_t_1 = (__pyx_v_self->view.ndim >= 1);
  if (__pyx_t_1) {

    /* "View.MemoryView":612
 *     def __len__(self):
 *         if self.view.ndim >= 1:
 *             return self.view.shape[0]             # <<<<<<<<<<<<<<
 * 
 *         return 0
 */
    __pyx_r = (__pyx_v_self->view.shape[0]);
    goto __pyx_L0;

    /* "View.MemoryView":611
 * 
 *     def __len__(self):
 *         if self.view.ndim >= 1:             # <<<<<<<<<<<<<<
 *             return self.view.shape[0]
 * 
 */
  }

  /* "View.MemoryView":614
 *             return self.view.shape[0]
 * 
 *         return 0             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
 */
  __pyx_r = 0;
  goto __pyx_L0;

  /* "View.MemoryView":610
 *         return self._size
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         if self.view.ndim >= 1:
 *             return self.view.shape[0]
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "View.MemoryView":616
 *         return 0
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,
 *                                                id(self))
 */

/* Python wrapper */
static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 1);

  /* "View.MemoryView":617
 * 
 *     def __repr__(self):
 *         return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,             # <<<<<<<<<<<<<<
 *                                                id(self))
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "View.MemoryView":618
 *     def __repr__(self):
 *         return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,
 *                                                id(self))             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
 */
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "View.MemoryView":617
 * 
 *     def __repr__(self):
 *         return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,             # <<<<<<<<<<<<<<
 *                                                id(self))
 * 
 */
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(3, 617, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(3, 617, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":616
 *         return 0
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,
 *                                                id(self))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("View.MemoryView.memoryview.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":620
 *                                                id(self))
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return "<MemoryView of %r object>" % (self.base.__class__.__name__,)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 1);

  /* "View.MemoryView":621
 * 
 *     def __str__(self):
 *         return "<MemoryView of %r object>" % (self.base.__class__.__name__,)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(3, 621, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_object, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":620
 *                                                id(self))
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return "<MemoryView of %r object>" % (self.base.__class__.__name__,)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("View.MemoryView.memoryview.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":624
 * 
 * 
 *     def is_c_contig(self):             # <<<<<<<<<<<<<<
 *         cdef __Pyx_memviewslice *mslice
 *         cdef __Pyx_memviewslice tmp
 */

/* Python wrapper */
static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_c_contig (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("is_c_contig", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "is_c_contig", 0))) return NULL;
  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self) {
  __Pyx_memviewslice *__pyx_v_mslice;
  __Pyx_memviewslice __pyx_v_tmp;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_memviewslice *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_c_contig", 1);

  /* "View.MemoryView":627
 *         cdef __Pyx_memviewslice *mslice
 *         cdef __Pyx_memviewslice tmp
 *         mslice = get_slice_from_memview(self, &tmp)             # <<<<<<<<<<<<<<
 *         return slice_is_contig(mslice[0], 'C', self.view.ndim)
 * 
 */
  __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(3, 627, __pyx_L1_error)
  __pyx_v_mslice = __pyx_t_1;

  /* "View.MemoryView":628
 *         cdef __Pyx_memviewslice tmp
 *         mslice = get_slice_from_memview(self, &tmp)
 *         return slice_is_contig(mslice[0], 'C', self.view.ndim)             # <<<<<<<<<<<<<<
 * 
 *     def is_f_contig(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'C', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":624
 * 
 * 
 *     def is_c_contig(self):             # <<<<<<<<<<<<<<
 *         cdef __Pyx_memviewslice *mslice
 *         cdef __Pyx_memviewslice tmp
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("View.MemoryView.memoryview.is_c_contig", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":630
 *         return slice_is_contig(mslice[0], 'C', self.view.ndim)
 * 
 *     def is_f_contig(self):             # <<<<<<<<<<<<<<
 *         cdef __Pyx_memviewslice *mslice
 *         cdef __Pyx_memviewslice tmp
 */

/* Python wrapper */
static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_f_contig (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("is_f_contig", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "is_f_contig", 0))) return NULL;
  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self) {
  __Pyx_memviewslice *__pyx_v_mslice;
  __Pyx_memviewslice __pyx_v_tmp;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_memviewslice *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_f_contig", 1);

  /* "View.MemoryView":633
 *         cdef __Pyx_memviewslice *mslice
 *         cdef __Pyx_memviewslice tmp
 *         mslice = get_slice_from_memview(self, &tmp)             # <<<<<<<<<<<<<<
 *         return slice_is_contig(mslice[0], 'F', self.view.ndim)
 * 
 */
  __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(3, 633, __pyx_L1_error)
  __pyx_v_mslice = __pyx_t_1;

  /* "View.MemoryView":634
 *         cdef __Pyx_memviewslice tmp
 *         mslice = get_slice_from_memview(self, &tmp)
 *         return slice_is_contig(mslice[0], 'F', self.view.ndim)             # <<<<<<<<<<<<<<
 * 
 *     def copy(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'F', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 634, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":630
 *         return slice_is_contig(mslice[0], 'C', self.view.ndim)
 * 
 *     def is_f_contig(self):             # <<<<<<<<<<<<<<
 *         cdef __Pyx_memviewslice *mslice
 *         cdef __Pyx_memviewslice tmp
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("View.MemoryView.memoryview.is_f_contig", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":636
 *         return slice_is_contig(mslice[0], 'F', self.view.ndim)
 * 
 *     def copy(self):             # <<<<<<<<<<<<<<
 *         cdef __Pyx_memviewslice mslice
 *         cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS
 */

/* Python wrapper */
static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("copy (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "copy", 0))) return NULL;
  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self) {
  __Pyx_memviewslice __pyx_v_mslice;
  int __pyx_v_flags;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_memviewslice __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("copy", 1);

  /* "View.MemoryView":638
 *     def copy(self):
 *         cdef __Pyx_memviewslice mslice
 *         cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS             # <<<<<<<<<<<<<<
 * 
 *         slice_copy(self, &mslice)
 */
  __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_F_CONTIGUOUS));

  /* "View.MemoryView":640
 *         cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS
 * 
 *         slice_copy(self, &mslice)             # <<<<<<<<<<<<<<
 *         mslice = slice_copy_contig(&mslice, "c", self.view.ndim,
 *                                    self.view.itemsize,
 */
  __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_mslice));

  /* "View.MemoryView":641
 * 
 *         slice_copy(self, &mslice)
 *         mslice = slice_copy_contig(&mslice, "c", self.view.ndim,             # <<<<<<<<<<<<<<
 *                                    self.view.itemsize,
 *                                    flags|PyBUF_C_CONTIGUOUS,
 */
  __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_mslice), ((char *)"c"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_C_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 641, __pyx_L1_error)
  __pyx_v_mslice = __pyx_t_1;

  /* "View.MemoryView":646
 *                                    self.dtype_is_object)
 * 
 *         return memoryview_copy_from_slice(self, &mslice)             # <<<<<<<<<<<<<<
 * 
 *     def copy_fortran(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_mslice)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 646, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":636
 *         return slice_is_contig(mslice[0], 'F', self.view.ndim)
 * 
 *     def copy(self):             # <<<<<<<<<<<<<<
 *         cdef __Pyx_memviewslice mslice
 *         cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("View.MemoryView.memoryview.copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":648
 *         return memoryview_copy_from_slice(self, &mslice)
 * 
 *     def copy_fortran(self):             # <<<<<<<<<<<<<<
 *         cdef __Pyx_memviewslice src, dst
 *         cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS
 */

/* Python wrapper */
static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("copy_fortran (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("copy_fortran", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "copy_fortran", 0))) return NULL;
  __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self) {
  __Pyx_memviewslice __pyx_v_src;
  __Pyx_memviewslice __pyx_v_dst;
  int __pyx_v_flags;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_memviewslice __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("copy_fortran", 1);

  /* "View.MemoryView":650
 *     def copy_fortran(self):
 *         cdef __Pyx_memviewslice src, dst
 *         cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS             # <<<<<<<<<<<<<<
 * 
 *         slice_copy(self, &src)
 */
  __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_C_CONTIGUOUS));

  /* "View.MemoryView":652
 *         cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS
 * 
 *         slice_copy(self, &src)             # <<<<<<<<<<<<<<
 *         dst = slice_copy_contig(&src, "fortran", self.view.ndim,
 *                                 self.view.itemsize,
 */
  __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_src));

  /* "View.MemoryView":653
 * 
 *         slice_copy(self, &src)
 *         dst = slice_copy_contig(&src, "fortran", self.view.ndim,             # <<<<<<<<<<<<<<
 *                                 self.view.itemsize,
 *                                 flags|PyBUF_F_CONTIGUOUS,
 */
  __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_src), ((char *)"fortran"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_F_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 653, __pyx_L1_error)
  __pyx_v_dst = __pyx_t_1;

  /* "View.MemoryView":658
 *                                 self.dtype_is_object)
 * 
 *         return memoryview_copy_from_slice(self, &dst)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_dst)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":648
 *         return memoryview_copy_from_slice(self, &mslice)
 * 
 *     def copy_fortran(self):             # <<<<<<<<<<<<<<
 *         cdef __Pyx_memviewslice src, dst
 *         cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("View.MemoryView.memoryview.copy_fortran", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf___pyx_memoryview___reduce_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("View.MemoryView.memoryview.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("View.MemoryView.memoryview.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf___pyx_memoryview_2__setstate_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("View.MemoryView.memoryview.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":662
 * 
 * @cname('__pyx_memoryview_new')
 * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo):             # <<<<<<<<<<<<<<
 *     cdef memoryview result = memoryview(o, flags, dtype_is_object)
 *     result.typeinfo = typeinfo
 */

static PyObject *__pyx_memoryview_new(PyObject *__pyx_v_o, int __pyx_v_flags, int __pyx_v_dtype_is_object, __Pyx_TypeInfo *__pyx_v_typeinfo) {
  struct __pyx_memoryview_obj *__pyx_v_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("memoryview_cwrapper", 1);

  /* "View.MemoryView":663
 * @cname('__pyx_memoryview_new')
 * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo):
 *     cdef memoryview result = memoryview(o, flags, dtype_is_object)             # <<<<<<<<<<<<<<
 *     result.typeinfo = typeinfo
 *     return result
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_o);
  __Pyx_GIVEREF(__pyx_v_o);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_o)) __PYX_ERR(3, 663, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(3, 663, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(3, 663, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_result = ((struct __pyx_memoryview_obj *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "View.MemoryView":664
 * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo):
 *     cdef memoryview result = memoryview(o, flags, dtype_is_object)
 *     result.typeinfo = typeinfo             # <<<<<<<<<<<<<<
 *     return result
 * 
 */
  __pyx_v_result->typeinfo = __pyx_v_typeinfo;

  /* "View.MemoryView":665
 *     cdef memoryview result = memoryview(o, flags, dtype_is_object)
 *     result.typeinfo = typeinfo
 *     return result             # <<<<<<<<<<<<<<
 * 
 * @cname('__pyx_memoryview_check')
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "View.MemoryView":662
 * 
 * @cname('__pyx_memoryview_new')
 * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo):             # <<<<<<<<<<<<<<
 *     cdef memoryview result = memoryview(o, flags, dtype_is_object)
 *     result.typeinfo = typeinfo
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("View.MemoryView.memoryview_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":668
 * 
 * @cname('__pyx_memoryview_check')
 * cdef inline bint memoryview_check(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return isinstance(o, memoryview)
 * 
 */

static CYTHON_INLINE int __pyx_memoryview_check(PyObject *__pyx_v_o) {
  int __pyx_r;
  int __pyx_t_1;

  /* "View.MemoryView":669
 * @cname('__pyx_memoryview_check')
 * cdef inline bint memoryview_check(object o) noexcept:
 *     return isinstance(o, memoryview)             # <<<<<<<<<<<<<<
 * 
 * cdef tuple _unellipsify(object index, int ndim):
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_memoryview_type); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "View.MemoryView":668
 * 
 * @cname('__pyx_memoryview_check')
 * cdef inline bint memoryview_check(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return isinstance(o, memoryview)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "View.MemoryView":671
 *     return isinstance(o, memoryview)
 * 
 * cdef tuple _unellipsify(object index, int ndim):             # <<<<<<<<<<<<<<
 *     """
 *     Replace all ellipses with full slices and fill incomplete indices with
 */

static PyObject *_unellipsify(PyObject *__pyx_v_index, int __pyx_v_ndim) {
  Py_ssize_t __pyx_v_idx;
  PyObject *__pyx_v_tup = NULL;
  PyObject *__pyx_v_result = NULL;
  int __pyx_v_have_slices;
  int __pyx_v_seen_ellipsis;
  PyObject *__pyx_v_item = NULL;
  Py_ssize_t __pyx_v_nslices;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  Py_UCS4 __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_unellipsify", 1);

  /* "View.MemoryView":677
 *     """
 *     cdef Py_ssize_t idx
 *     tup = <tuple>index if isinstance(index, tuple) else (index,)             # <<<<<<<<<<<<<<
 * 
 *     result = [slice(None)] * ndim
 */
  __pyx_t_2 = PyTuple_Check(__pyx_v_index); 
  if (__pyx_t_2) {
    __Pyx_INCREF(((PyObject*)__pyx_v_index));
    __pyx_t_1 = __pyx_v_index;
  } else {
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_index);
    __Pyx_GIVEREF(__pyx_v_index);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_index)) __PYX_ERR(3, 677, __pyx_L1_error);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  }
  __pyx_v_tup = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "View.MemoryView":679
 *     tup = <tuple>index if isinstance(index, tuple) else (index,)
 * 
 *     result = [slice(None)] * ndim             # <<<<<<<<<<<<<<
 *     have_slices = False
 *     seen_ellipsis = False
 */
  __pyx_t_1 = PyList_New(1 * ((__pyx_v_ndim<0) ? 0:__pyx_v_ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < __pyx_v_ndim; __pyx_temp++) {
      __Pyx_INCREF(__pyx_slice__5);
      __Pyx_GIVEREF(__pyx_slice__5);
      if (__Pyx_PyList_SET_ITEM(__pyx_t_1, __pyx_temp, __pyx_slice__5)) __PYX_ERR(3, 679, __pyx_L1_error);
    }
  }
  __pyx_v_result = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "View.MemoryView":680
 * 
 *     result = [slice(None)] * ndim
 *     have_slices = False             # <<<<<<<<<<<<<<
 *     seen_ellipsis = False
 *     idx = 0
 */
  __pyx_v_have_slices = 0;

  /* "View.MemoryView":681
 *     result = [slice(None)] * ndim
 *     have_slices = False
 *     seen_ellipsis = False             # <<<<<<<<<<<<<<
 *     idx = 0
 *     for item in tup:
 */
  __pyx_v_seen_ellipsis = 0;

  /* "View.MemoryView":682
 *     have_slices = False
 *     seen_ellipsis = False
 *     idx = 0             # <<<<<<<<<<<<<<
 *     for item in tup:
 *         if item is Ellipsis:
 */
  __pyx_v_idx = 0;

  /* "View.MemoryView":683
 *     seen_ellipsis = False
 *     idx = 0
 *     for item in tup:             # <<<<<<<<<<<<<<
 *         if item is Ellipsis:
 *             if not seen_ellipsis:
 */
  if (unlikely(__pyx_v_tup == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(3, 683, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_v_tup; __Pyx_INCREF(__pyx_t_1);
  __pyx_t_4 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
      #if !CYTHON_ASSUME_SAFE_MACROS
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 683, __pyx_L1_error)
      #endif
      if (__pyx_t_4 >= __pyx_temp) break;
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(3, 683, __pyx_L1_error)
    #else
    __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 683, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "View.MemoryView":684
 *     idx = 0
 *     for item in tup:
 *         if item is Ellipsis:             # <<<<<<<<<<<<<<
 *             if not seen_ellipsis:
 *                 idx += ndim - len(tup)
 */
    __pyx_t_2 = (__pyx_v_item == __pyx_builtin_Ellipsis);
    if (__pyx_t_2) {

      /* "View.MemoryView":685
 *     for item in tup:
 *         if item is Ellipsis:
 *             if not seen_ellipsis:             # <<<<<<<<<<<<<<
 *                 idx += ndim - len(tup)
 *                 seen_ellipsis = True
 */
      __pyx_t_2 = (!__pyx_v_seen_ellipsis);
      if (__pyx_t_2) {

        /* "View.MemoryView":686
 *         if item is Ellipsis:
 *             if not seen_ellipsis:
 *                 idx += ndim - len(tup)             # <<<<<<<<<<<<<<
 *                 seen_ellipsis = True
 *             have_slices = True
 */
        if (unlikely(__pyx_v_tup == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
          __PYX_ERR(3, 686, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v_tup); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(3, 686, __pyx_L1_error)
        __pyx_v_idx = (__pyx_v_idx + (__pyx_v_ndim - __pyx_t_5));

        /* "View.MemoryView":687
 *             if not seen_ellipsis:
 *                 idx += ndim - len(tup)
 *                 seen_ellipsis = True             # <<<<<<<<<<<<<<
 *             have_slices = True
 *         else:
 */
        __pyx_v_seen_ellipsis = 1;

        /* "View.MemoryView":685
 *     for item in tup:
 *         if item is Ellipsis:
 *             if not seen_ellipsis:             # <<<<<<<<<<<<<<
 *                 idx += ndim - len(tup)
 *                 seen_ellipsis = True
 */
      }

      /* "View.MemoryView":688
 *                 idx += ndim - len(tup)
 *                 seen_ellipsis = True
 *             have_slices = True             # <<<<<<<<<<<<<<
 *         else:
 *             if isinstance(item, slice):
 */
      __pyx_v_have_slices = 1;

      /* "View.MemoryView":684
 *     idx = 0
 *     for item in tup:
 *         if item is Ellipsis:             # <<<<<<<<<<<<<<
 *             if not seen_ellipsis:
 *                 idx += ndim - len(tup)
 */
      goto __pyx_L5;
    }

    /* "View.MemoryView":690
 *             have_slices = True
 *         else:
 *             if isinstance(item, slice):             # <<<<<<<<<<<<<<
 *                 have_slices = True
 *             elif not PyIndex_Check(item):
 */
    /*else*/ {
      __pyx_t_2 = PySlice_Check(__pyx_v_item); 
      if (__pyx_t_2) {

        /* "View.MemoryView":691
 *         else:
 *             if isinstance(item, slice):
 *                 have_slices = True             # <<<<<<<<<<<<<<
 *             elif not PyIndex_Check(item):
 *                 raise TypeError, f"Cannot index with type '{type(item)}'"
 */
        __pyx_v_have_slices = 1;

        /* "View.MemoryView":690
 *             have_slices = True
 *         else:
 *             if isinstance(item, slice):             # <<<<<<<<<<<<<<
 *                 have_slices = True
 *             elif not PyIndex_Check(item):
 */
        goto __pyx_L7;
      }

      /* "View.MemoryView":692
 *             if isinstance(item, slice):
 *                 have_slices = True
 *             elif not PyIndex_Check(item):             # <<<<<<<<<<<<<<
 *                 raise TypeError, f"Cannot index with type '{type(item)}'"
 *             result[idx] = item
 */
      __pyx_t_2 = (!(PyIndex_Check(__pyx_v_item) != 0));
      if (unlikely(__pyx_t_2)) {

        /* "View.MemoryView":693
 *                 have_slices = True
 *             elif not PyIndex_Check(item):
 *                 raise TypeError, f"Cannot index with type '{type(item)}'"             # <<<<<<<<<<<<<<
 *             result[idx] = item
 *         idx += 1
 */
        __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 693, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_5 = 0;
        __pyx_t_6 = 127;
        __Pyx_INCREF(__pyx_kp_u_Cannot_index_with_type);
        __pyx_t_5 += 24;
        __Pyx_GIVEREF(__pyx_kp_u_Cannot_index_with_type);
        PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_Cannot_index_with_type);
        __pyx_t_7 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_item)), __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 693, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_6;
        __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
        __Pyx_GIVEREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7);
        __pyx_t_7 = 0;
        __Pyx_INCREF(__pyx_kp_u__6);
        __pyx_t_5 += 1;
        __Pyx_GIVEREF(__pyx_kp_u__6);
        PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u__6);
        __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 693, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_Raise(__pyx_builtin_TypeError, __pyx_t_7, 0, 0);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __PYX_ERR(3, 693, __pyx_L1_error)

        /* "View.MemoryView":692
 *             if isinstance(item, slice):
 *                 have_slices = True
 *             elif not PyIndex_Check(item):             # <<<<<<<<<<<<<<
 *                 raise TypeError, f"Cannot index with type '{type(item)}'"
 *             result[idx] = item
 */
      }
      __pyx_L7:;

      /* "View.MemoryView":694
 *             elif not PyIndex_Check(item):
 *                 raise TypeError, f"Cannot index with type '{type(item)}'"
 *             result[idx] = item             # <<<<<<<<<<<<<<
 *         idx += 1
 * 
 */
      if (unlikely((__Pyx_SetItemInt(__pyx_v_result, __pyx_v_idx, __pyx_v_item, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1) < 0))) __PYX_ERR(3, 694, __pyx_L1_error)
    }
    __pyx_L5:;

    /* "View.MemoryView":695
 *                 raise TypeError, f"Cannot index with type '{type(item)}'"
 *             result[idx] = item
 *         idx += 1             # <<<<<<<<<<<<<<
 * 
 *     nslices = ndim - idx
 */
    __pyx_v_idx = (__pyx_v_idx + 1);

    /* "View.MemoryView":683
 *     seen_ellipsis = False
 *     idx = 0
 *     for item in tup:             # <<<<<<<<<<<<<<
 *         if item is Ellipsis:
 *             if not seen_ellipsis:
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "View.MemoryView":697
 *         idx += 1
 * 
 *     nslices = ndim - idx             # <<<<<<<<<<<<<<
 *     return have_slices or nslices, tuple(result)
 * 
 */
  __pyx_v_nslices = (__pyx_v_ndim - __pyx_v_idx);

  /* "View.MemoryView":698
 * 
 *     nslices = ndim - idx
 *     return have_slices or nslices, tuple(result)             # <<<<<<<<<<<<<<
 * 
 * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:
 */
  __Pyx_XDECREF(__pyx_r);
  if (!__pyx_v_have_slices) {
  } else {
    __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_have_slices); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L9_bool_binop_done;
  }
  __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_nslices); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = __pyx_t_7;
  __pyx_t_7 = 0;
  __pyx_L9_bool_binop_done:;
  __pyx_t_7 = PyList_AsTuple(__pyx_v_result); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(3, 698, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7)) __PYX_ERR(3, 698, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_7 = 0;
  __pyx_r = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":671
 *     return isinstance(o, memoryview)
 * 
 * cdef tuple _unellipsify(object index, int ndim):             # <<<<<<<<<<<<<<
 *     """
 *     Replace all ellipses with full slices and fill incomplete indices with
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("View.MemoryView._unellipsify", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_tup);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":700
 *     return have_slices or nslices, tuple(result)
 * 
 * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:             # <<<<<<<<<<<<<<
 *     for suboffset in suboffsets[:ndim]:
 *         if suboffset >= 0:
 */

static int assert_direct_dimensions(Py_ssize_t *__pyx_v_suboffsets, int __pyx_v_ndim) {
  Py_ssize_t __pyx_v_suboffset;
  int __pyx_r;
  Py_ssize_t *__pyx_t_1;
  Py_ssize_t *__pyx_t_2;
  Py_ssize_t *__pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "View.MemoryView":701
 * 
 * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:
 *     for suboffset in suboffsets[:ndim]:             # <<<<<<<<<<<<<<
 *         if suboffset >= 0:
 *             raise ValueError, "Indirect dimensions not supported"
 */
  __pyx_t_2 = (__pyx_v_suboffsets + __pyx_v_ndim);
  for (__pyx_t_3 = __pyx_v_suboffsets; __pyx_t_3 < __pyx_t_2; __pyx_t_3++) {
    __pyx_t_1 = __pyx_t_3;
    __pyx_v_suboffset = (__pyx_t_1[0]);

    /* "View.MemoryView":702
 * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:
 *     for suboffset in suboffsets[:ndim]:
 *         if suboffset >= 0:             # <<<<<<<<<<<<<<
 *             raise ValueError, "Indirect dimensions not supported"
 *     return 0  # return type just used as an error flag
 */
    __pyx_t_4 = (__pyx_v_suboffset >= 0);
    if (unlikely(__pyx_t_4)) {

      /* "View.MemoryView":703
 *     for suboffset in suboffsets[:ndim]:
 *         if suboffset >= 0:
 *             raise ValueError, "Indirect dimensions not supported"             # <<<<<<<<<<<<<<
 *     return 0  # return type just used as an error flag
 * 
 */
      __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Indirect_dimensions_not_supporte, 0, 0);
      __PYX_ERR(3, 703, __pyx_L1_error)

      /* "View.MemoryView":702
 * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:
 *     for suboffset in suboffsets[:ndim]:
 *         if suboffset >= 0:             # <<<<<<<<<<<<<<
 *             raise ValueError, "Indirect dimensions not supported"
 *     return 0  # return type just used as an error flag
 */
    }
  }

  /* "View.MemoryView":704
 *         if suboffset >= 0:
 *             raise ValueError, "Indirect dimensions not supported"
 *     return 0  # return type just used as an error flag             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = 0;
  goto __pyx_L0;

  /* "View.MemoryView":700
 *     return have_slices or nslices, tuple(result)
 * 
 * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:             # <<<<<<<<<<<<<<
 *     for suboffset in suboffsets[:ndim]:
 *         if suboffset >= 0:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("View.MemoryView.assert_direct_dimensions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "View.MemoryView":711
 * 
 * @cname('__pyx_memview_slice')
 * cdef memoryview memview_slice(memoryview memview, object indices):             # <<<<<<<<<<<<<<
 *     cdef int new_ndim = 0, suboffset_dim = -1, dim
 *     cdef bint negative_step
 */

static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *__pyx_v_memview, PyObject *__pyx_v_indices) {
  int __pyx_v_new_ndim;
  int __pyx_v_suboffset_dim;
  int __pyx_v_dim;
  __Pyx_memviewslice __pyx_v_src;
  __Pyx_memviewslice __pyx_v_dst;
  __Pyx_memviewslice *__pyx_v_p_src;
  struct __pyx_memoryviewslice_obj *__pyx_v_memviewsliceobj = 0;
  __Pyx_memviewslice *__pyx_v_p_dst;
  int *__pyx_v_p_suboffset_dim;
  Py_ssize_t __pyx_v_start;
  Py_ssize_t __pyx_v_stop;
  Py_ssize_t __pyx_v_step;
  Py_ssize_t __pyx_v_cindex;
  int __pyx_v_have_start;
  int __pyx_v_have_stop;
  int __pyx_v_have_step;
  PyObject *__pyx_v_index = NULL;
  struct __pyx_memoryview_obj *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  struct __pyx_memoryview_obj *__pyx_t_3;
  char *__pyx_t_4;
  int __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  int __pyx_t_10;
  Py_ssize_t __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("memview_slice", 1);

  /* "View.MemoryView":712
 * @cname('__pyx_memview_slice')
 * cdef memoryview memview_slice(memoryview memview, object indices):
 *     cdef int new_ndim = 0, suboffset_dim = -1, dim             # <<<<<<<<<<<<<<
 *     cdef bint negative_step
 *     cdef __Pyx_memviewslice src, dst
 */
  __pyx_v_new_ndim = 0;
  __pyx_v_suboffset_dim = -1;

  /* "View.MemoryView":719
 * 
 * 
 *     memset(&dst, 0, sizeof(dst))             # <<<<<<<<<<<<<<
 * 
 *     cdef _memoryviewslice memviewsliceobj
 */
  (void)(memset((&__pyx_v_dst), 0, (sizeof(__pyx_v_dst))));

  /* "View.MemoryView":723
 *     cdef _memoryviewslice memviewsliceobj
 * 
 *     assert memview.view.ndim > 0             # <<<<<<<<<<<<<<
 * 
 *     if isinstance(memview, _memoryviewslice):
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_1 = (__pyx_v_memview->view.ndim > 0);
    if (unlikely(!__pyx_t_1)) {
      __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
      __PYX_ERR(3, 723, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(3, 723, __pyx_L1_error)
  #endif

  /* "View.MemoryView":725
 *     assert memview.view.ndim > 0
 * 
 *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
 *         memviewsliceobj = memview
 *         p_src = &memviewsliceobj.from_slice
 */
  __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); 
  if (__pyx_t_1) {

    /* "View.MemoryView":726
 * 
 *     if isinstance(memview, _memoryviewslice):
 *         memviewsliceobj = memview             # <<<<<<<<<<<<<<
 *         p_src = &memviewsliceobj.from_slice
 *     else:
 */
    if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(3, 726, __pyx_L1_error)
    __pyx_t_2 = ((PyObject *)__pyx_v_memview);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_memviewsliceobj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "View.MemoryView":727
 *     if isinstance(memview, _memoryviewslice):
 *         memviewsliceobj = memview
 *         p_src = &memviewsliceobj.from_slice             # <<<<<<<<<<<<<<
 *     else:
 *         slice_copy(memview, &src)
 */
    __pyx_v_p_src = (&__pyx_v_memviewsliceobj->from_slice);

    /* "View.MemoryView":725
 *     assert memview.view.ndim > 0
 * 
 *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
 *         memviewsliceobj = memview
 *         p_src = &memviewsliceobj.from_slice
 */
    goto __pyx_L3;
  }

  /* "View.MemoryView":729
 *         p_src = &memviewsliceobj.from_slice
 *     else:
 *         slice_copy(memview, &src)             # <<<<<<<<<<<<<<
 *         p_src = &src
 * 
 */
  /*else*/ {
    __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_src));

    /* "View.MemoryView":730
 *     else:
 *         slice_copy(memview, &src)
 *         p_src = &src             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_v_p_src = (&__pyx_v_src);
  }
  __pyx_L3:;

  /* "View.MemoryView":736
 * 
 * 
 *     dst.memview = p_src.memview             # <<<<<<<<<<<<<<
 *     dst.data = p_src.data
 * 
 */
  __pyx_t_3 = __pyx_v_p_src->memview;
  __pyx_v_dst.memview = __pyx_t_3;

  /* "View.MemoryView":737
 * 
 *     dst.memview = p_src.memview
 *     dst.data = p_src.data             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_4 = __pyx_v_p_src->data;
  __pyx_v_dst.data = __pyx_t_4;

  /* "View.MemoryView":742
 * 
 * 
 *     cdef __Pyx_memviewslice *p_dst = &dst             # <<<<<<<<<<<<<<
 *     cdef int *p_suboffset_dim = &suboffset_dim
 *     cdef Py_ssize_t start, stop, step, cindex
 */
  __pyx_v_p_dst = (&__pyx_v_dst);

  /* "View.MemoryView":743
 * 
 *     cdef __Pyx_memviewslice *p_dst = &dst
 *     cdef int *p_suboffset_dim = &suboffset_dim             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t start, stop, step, cindex
 *     cdef bint have_start, have_stop, have_step
 */
  __pyx_v_p_suboffset_dim = (&__pyx_v_suboffset_dim);

  /* "View.MemoryView":747
 *     cdef bint have_start, have_stop, have_step
 * 
 *     for dim, index in enumerate(indices):             # <<<<<<<<<<<<<<
 *         if PyIndex_Check(index):
 *             cindex = index
 */
  __pyx_t_5 = 0;
  if (likely(PyList_CheckExact(__pyx_v_indices)) || PyTuple_CheckExact(__pyx_v_indices)) {
    __pyx_t_2 = __pyx_v_indices; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_7 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_indices); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 747, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 747, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_7)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 747, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_8 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(3, 747, __pyx_L1_error)
        #else
        __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 747, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 747, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(3, 747, __pyx_L1_error)
        #else
        __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 747, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        #endif
      }
    } else {
      __pyx_t_8 = __pyx_t_7(__pyx_t_2);
      if (unlikely(!__pyx_t_8)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(3, 747, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_8);
    }
    __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_8);
    __pyx_t_8 = 0;
    __pyx_v_dim = __pyx_t_5;
    __pyx_t_5 = (__pyx_t_5 + 1);

    /* "View.MemoryView":748
 * 
 *     for dim, index in enumerate(indices):
 *         if PyIndex_Check(index):             # <<<<<<<<<<<<<<
 *             cindex = index
 *             slice_memviewslice(
 */
    __pyx_t_1 = (PyIndex_Check(__pyx_v_index) != 0);
    if (__pyx_t_1) {

      /* "View.MemoryView":749
 *     for dim, index in enumerate(indices):
 *         if PyIndex_Check(index):
 *             cindex = index             # <<<<<<<<<<<<<<
 *             slice_memviewslice(
 *                 p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim],
 */
      __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 749, __pyx_L1_error)
      __pyx_v_cindex = __pyx_t_9;

      /* "View.MemoryView":750
 *         if PyIndex_Check(index):
 *             cindex = index
 *             slice_memviewslice(             # <<<<<<<<<<<<<<
 *                 p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim],
 *                 dim, new_ndim, p_suboffset_dim,
 */
      __pyx_t_10 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_cindex, 0, 0, 0, 0, 0, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(3, 750, __pyx_L1_error)

      /* "View.MemoryView":748
 * 
 *     for dim, index in enumerate(indices):
 *         if PyIndex_Check(index):             # <<<<<<<<<<<<<<
 *             cindex = index
 *             slice_memviewslice(
 */
      goto __pyx_L6;
    }

    /* "View.MemoryView":756
 *                 0, 0, 0, # have_{start,stop,step}
 *                 False)
 *         elif index is None:             # <<<<<<<<<<<<<<
 *             p_dst.shape[new_ndim] = 1
 *             p_dst.strides[new_ndim] = 0
 */
    __pyx_t_1 = (__pyx_v_index == Py_None);
    if (__pyx_t_1) {

      /* "View.MemoryView":757
 *                 False)
 *         elif index is None:
 *             p_dst.shape[new_ndim] = 1             # <<<<<<<<<<<<<<
 *             p_dst.strides[new_ndim] = 0
 *             p_dst.suboffsets[new_ndim] = -1
 */
      (__pyx_v_p_dst->shape[__pyx_v_new_ndim]) = 1;

      /* "View.MemoryView":758
 *         elif index is None:
 *             p_dst.shape[new_ndim] = 1
 *             p_dst.strides[new_ndim] = 0             # <<<<<<<<<<<<<<
 *             p_dst.suboffsets[new_ndim] = -1
 *             new_ndim += 1
 */
      (__pyx_v_p_dst->strides[__pyx_v_new_ndim]) = 0;

      /* "View.MemoryView":759
 *             p_dst.shape[new_ndim] = 1
 *             p_dst.strides[new_ndim] = 0
 *             p_dst.suboffsets[new_ndim] = -1             # <<<<<<<<<<<<<<
 *             new_ndim += 1
 *         else:
 */
      (__pyx_v_p_dst->suboffsets[__pyx_v_new_ndim]) = -1L;

      /* "View.MemoryView":760
 *             p_dst.strides[new_ndim] = 0
 *             p_dst.suboffsets[new_ndim] = -1
 *             new_ndim += 1             # <<<<<<<<<<<<<<
 *         else:
 *             start = index.start or 0
 */
      __pyx_v_new_ndim = (__pyx_v_new_ndim + 1);

      /* "View.MemoryView":756
 *                 0, 0, 0, # have_{start,stop,step}
 *                 False)
 *         elif index is None:             # <<<<<<<<<<<<<<
 *             p_dst.shape[new_ndim] = 1
 *             p_dst.strides[new_ndim] = 0
 */
      goto __pyx_L6;
    }

    /* "View.MemoryView":762
 *             new_ndim += 1
 *         else:
 *             start = index.start or 0             # <<<<<<<<<<<<<<
 *             stop = index.stop or 0
 *             step = index.step or 0
 */
    /*else*/ {
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 762, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(3, 762, __pyx_L1_error)
      if (!__pyx_t_1) {
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else {
        __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 762, __pyx_L1_error)
        __pyx_t_9 = __pyx_t_11;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L7_bool_binop_done;
      }
      __pyx_t_9 = 0;
      __pyx_L7_bool_binop_done:;
      __pyx_v_start = __pyx_t_9;

      /* "View.MemoryView":763
 *         else:
 *             start = index.start or 0
 *             stop = index.stop or 0             # <<<<<<<<<<<<<<
 *             step = index.step or 0
 * 
 */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 763, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(3, 763, __pyx_L1_error)
      if (!__pyx_t_1) {
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else {
        __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 763, __pyx_L1_error)
        __pyx_t_9 = __pyx_t_11;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_9 = 0;
      __pyx_L9_bool_binop_done:;
      __pyx_v_stop = __pyx_t_9;

      /* "View.MemoryView":764
 *             start = index.start or 0
 *             stop = index.stop or 0
 *             step = index.step or 0             # <<<<<<<<<<<<<<
 * 
 *             have_start = index.start is not None
 */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 764, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(3, 764, __pyx_L1_error)
      if (!__pyx_t_1) {
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else {
        __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 764, __pyx_L1_error)
        __pyx_t_9 = __pyx_t_11;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L11_bool_binop_done;
      }
      __pyx_t_9 = 0;
      __pyx_L11_bool_binop_done:;
      __pyx_v_step = __pyx_t_9;

      /* "View.MemoryView":766
 *             step = index.step or 0
 * 
 *             have_start = index.start is not None             # <<<<<<<<<<<<<<
 *             have_stop = index.stop is not None
 *             have_step = index.step is not None
 */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 766, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = (__pyx_t_8 != Py_None);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_v_have_start = __pyx_t_1;

      /* "View.MemoryView":767
 * 
 *             have_start = index.start is not None
 *             have_stop = index.stop is not None             # <<<<<<<<<<<<<<
 *             have_step = index.step is not None
 * 
 */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 767, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = (__pyx_t_8 != Py_None);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_v_have_stop = __pyx_t_1;

      /* "View.MemoryView":768
 *             have_start = index.start is not None
 *             have_stop = index.stop is not None
 *             have_step = index.step is not None             # <<<<<<<<<<<<<<
 * 
 *             slice_memviewslice(
 */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 768, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = (__pyx_t_8 != Py_None);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_v_have_step = __pyx_t_1;

      /* "View.MemoryView":770
 *             have_step = index.step is not None
 * 
 *             slice_memviewslice(             # <<<<<<<<<<<<<<
 *                 p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim],
 *                 dim, new_ndim, p_suboffset_dim,
 */
      __pyx_t_10 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_have_start, __pyx_v_have_stop, __pyx_v_have_step, 1); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(3, 770, __pyx_L1_error)

      /* "View.MemoryView":776
 *                 have_start, have_stop, have_step,
 *                 True)
 *             new_ndim += 1             # <<<<<<<<<<<<<<
 * 
 *     if isinstance(memview, _memoryviewslice):
 */
      __pyx_v_new_ndim = (__pyx_v_new_ndim + 1);
    }
    __pyx_L6:;

    /* "View.MemoryView":747
 *     cdef bint have_start, have_stop, have_step
 * 
 *     for dim, index in enumerate(indices):             # <<<<<<<<<<<<<<
 *         if PyIndex_Check(index):
 *             cindex = index
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "View.MemoryView":778
 *             new_ndim += 1
 * 
 *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
 *         return memoryview_fromslice(dst, new_ndim,
 *                                     memviewsliceobj.to_object_func,
 */
  __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); 
  if (__pyx_t_1) {

    /* "View.MemoryView":779
 * 
 *     if isinstance(memview, _memoryviewslice):
 *         return memoryview_fromslice(dst, new_ndim,             # <<<<<<<<<<<<<<
 *                                     memviewsliceobj.to_object_func,
 *                                     memviewsliceobj.to_dtype_func,
 */
    __Pyx_XDECREF((PyObject *)__pyx_r);

    /* "View.MemoryView":780
 *     if isinstance(memview, _memoryviewslice):
 *         return memoryview_fromslice(dst, new_ndim,
 *                                     memviewsliceobj.to_object_func,             # <<<<<<<<<<<<<<
 *                                     memviewsliceobj.to_dtype_func,
 *                                     memview.dtype_is_object)
 */
    if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(3, 780, __pyx_L1_error) }

    /* "View.MemoryView":781
 *         return memoryview_fromslice(dst, new_ndim,
 *                                     memviewsliceobj.to_object_func,
 *                                     memviewsliceobj.to_dtype_func,             # <<<<<<<<<<<<<<
 *                                     memview.dtype_is_object)
 *     else:
 */
    if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(3, 781, __pyx_L1_error) }

    /* "View.MemoryView":779
 * 
 *     if isinstance(memview, _memoryviewslice):
 *         return memoryview_fromslice(dst, new_ndim,             # <<<<<<<<<<<<<<
 *                                     memviewsliceobj.to_object_func,
 *                                     memviewsliceobj.to_dtype_func,
 */
    __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, __pyx_v_memviewsliceobj->to_object_func, __pyx_v_memviewsliceobj->to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 779, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_memoryview_type))))) __PYX_ERR(3, 779, __pyx_L1_error)
    __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "View.MemoryView":778
 *             new_ndim += 1
 * 
 *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
 *         return memoryview_fromslice(dst, new_ndim,
 *                                     memviewsliceobj.to_object_func,
 */
  }

  /* "View.MemoryView":784
 *                                     memview.dtype_is_object)
 *     else:
 *         return memoryview_fromslice(dst, new_ndim, NULL, NULL,             # <<<<<<<<<<<<<<
 *                                     memview.dtype_is_object)
 * 
 */
  /*else*/ {
    __Pyx_XDECREF((PyObject *)__pyx_r);

    /* "View.MemoryView":785
 *     else:
 *         return memoryview_fromslice(dst, new_ndim, NULL, NULL,
 *                                     memview.dtype_is_object)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, NULL, NULL, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "View.MemoryView":784
 *                                     memview.dtype_is_object)
 *     else:
 *         return memoryview_fromslice(dst, new_ndim, NULL, NULL,             # <<<<<<<<<<<<<<
 *                                     memview.dtype_is_object)
 * 
 */
    if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_memoryview_type))))) __PYX_ERR(3, 784, __pyx_L1_error)
    __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "View.MemoryView":711
 * 
 * @cname('__pyx_memview_slice')
 * cdef memoryview memview_slice(memoryview memview, object indices):             # <<<<<<<<<<<<<<
 *     cdef int new_ndim = 0, suboffset_dim = -1, dim
 *     cdef bint negative_step
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("View.MemoryView.memview_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_memviewsliceobj);
  __Pyx_XDECREF(__pyx_v_index);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":793
 * 
 * @cname('__pyx_memoryview_slice_memviewslice')
 * cdef int slice_memviewslice(             # <<<<<<<<<<<<<<
 *         __Pyx_memviewslice *dst,
 *         Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset,
 */

static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *__pyx_v_dst, Py_ssize_t __pyx_v_shape, Py_ssize_t __pyx_v_stride, Py_ssize_t __pyx_v_suboffset, int __pyx_v_dim, int __pyx_v_new_ndim, int *__pyx_v_suboffset_dim, Py_ssize_t __pyx_v_start, Py_ssize_t __pyx_v_stop, Py_ssize_t __pyx_v_step, int __pyx_v_have_start, int __pyx_v_have_stop, int __pyx_v_have_step, int __pyx_v_is_slice) {
  Py_ssize_t __pyx_v_new_shape;
  int __pyx_v_negative_step;
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save;
  #endif

  /* "View.MemoryView":813
 *     cdef bint negative_step
 * 
 *     if not is_slice:             # <<<<<<<<<<<<<<
 * 
 *         if start < 0:
 */
  __pyx_t_1 = (!__pyx_v_is_slice);
  if (__pyx_t_1) {

    /* "View.MemoryView":815
 *     if not is_slice:
 * 
 *         if start < 0:             # <<<<<<<<<<<<<<
 *             start += shape
 *         if not 0 <= start < shape:
 */
    __pyx_t_1 = (__pyx_v_start < 0);
    if (__pyx_t_1) {

      /* "View.MemoryView":816
 * 
 *         if start < 0:
 *             start += shape             # <<<<<<<<<<<<<<
 *         if not 0 <= start < shape:
 *             _err_dim(PyExc_IndexError, "Index out of bounds (axis %d)", dim)
 */
      __pyx_v_start = (__pyx_v_start + __pyx_v_shape);

      /* "View.MemoryView":815
 *     if not is_slice:
 * 
 *         if start < 0:             # <<<<<<<<<<<<<<
 *             start += shape
 *         if not 0 <= start < shape:
 */
    }

    /* "View.MemoryView":817
 *         if start < 0:
 *             start += shape
 *         if not 0 <= start < shape:             # <<<<<<<<<<<<<<
 *             _err_dim(PyExc_IndexError, "Index out of bounds (axis %d)", dim)
 *     else:
 */
    __pyx_t_1 = (0 <= __pyx_v_start);
    if (__pyx_t_1) {
      __pyx_t_1 = (__pyx_v_start < __pyx_v_shape);
    }
    __pyx_t_2 = (!__pyx_t_1);
    if (__pyx_t_2) {

      /* "View.MemoryView":818
 *             start += shape
 *         if not 0 <= start < shape:
 *             _err_dim(PyExc_IndexError, "Index out of bounds (axis %d)", dim)             # <<<<<<<<<<<<<<
 *     else:
 * 
 */
      __pyx_t_3 = __pyx_memoryview_err_dim(PyExc_IndexError, __pyx_kp_s_Index_out_of_bounds_axis_d, __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 818, __pyx_L1_error)

      /* "View.MemoryView":817
 *         if start < 0:
 *             start += shape
 *         if not 0 <= start < shape:             # <<<<<<<<<<<<<<
 *             _err_dim(PyExc_IndexError, "Index out of bounds (axis %d)", dim)
 *     else:
 */
    }

    /* "View.MemoryView":813
 *     cdef bint negative_step
 * 
 *     if not is_slice:             # <<<<<<<<<<<<<<
 * 
 *         if start < 0:
 */
    goto __pyx_L3;
  }

  /* "View.MemoryView":821
 *     else:
 * 
 *         if have_step:             # <<<<<<<<<<<<<<
 *             negative_step = step < 0
 *             if step == 0:
 */
  /*else*/ {
    __pyx_t_2 = (__pyx_v_have_step != 0);
    if (__pyx_t_2) {

      /* "View.MemoryView":822
 * 
 *         if have_step:
 *             negative_step = step < 0             # <<<<<<<<<<<<<<
 *             if step == 0:
 *                 _err_dim(PyExc_ValueError, "Step may not be zero (axis %d)", dim)
 */
      __pyx_v_negative_step = (__pyx_v_step < 0);

      /* "View.MemoryView":823
 *         if have_step:
 *             negative_step = step < 0
 *             if step == 0:             # <<<<<<<<<<<<<<
 *                 _err_dim(PyExc_ValueError, "Step may not be zero (axis %d)", dim)
 *         else:
 */
      __pyx_t_2 = (__pyx_v_step == 0);
      if (__pyx_t_2) {

        /* "View.MemoryView":824
 *             negative_step = step < 0
 *             if step == 0:
 *                 _err_dim(PyExc_ValueError, "Step may not be zero (axis %d)", dim)             # <<<<<<<<<<<<<<
 *         else:
 *             negative_step = False
 */
        __pyx_t_3 = __pyx_memoryview_err_dim(PyExc_ValueError, __pyx_kp_s_Step_may_not_be_zero_axis_d, __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 824, __pyx_L1_error)

        /* "View.MemoryView":823
 *         if have_step:
 *             negative_step = step < 0
 *             if step == 0:             # <<<<<<<<<<<<<<
 *                 _err_dim(PyExc_ValueError, "Step may not be zero (axis %d)", dim)
 *         else:
 */
      }

      /* "View.MemoryView":821
 *     else:
 * 
 *         if have_step:             # <<<<<<<<<<<<<<
 *             negative_step = step < 0
 *             if step == 0:
 */
      goto __pyx_L6;
    }

    /* "View.MemoryView":826
 *                 _err_dim(PyExc_ValueError, "Step may not be zero (axis %d)", dim)
 *         else:
 *             negative_step = False             # <<<<<<<<<<<<<<
 *             step = 1
 * 
 */
    /*else*/ {
      __pyx_v_negative_step = 0;

      /* "View.MemoryView":827
 *         else:
 *             negative_step = False
 *             step = 1             # <<<<<<<<<<<<<<
 * 
 * 
 */
      __pyx_v_step = 1;
    }
    __pyx_L6:;

    /* "View.MemoryView":830
 * 
 * 
 *         if have_start:             # <<<<<<<<<<<<<<
 *             if start < 0:
 *                 start += shape
 */
    __pyx_t_2 = (__pyx_v_have_start != 0);
    if (__pyx_t_2) {

      /* "View.MemoryView":831
 * 
 *         if have_start:
 *             if start < 0:             # <<<<<<<<<<<<<<
 *                 start += shape
 *                 if start < 0:
 */
      __pyx_t_2 = (__pyx_v_start < 0);
      if (__pyx_t_2) {

        /* "View.MemoryView":832
 *         if have_start:
 *             if start < 0:
 *                 start += shape             # <<<<<<<<<<<<<<
 *                 if start < 0:
 *                     start = 0
 */
        __pyx_v_start = (__pyx_v_start + __pyx_v_shape);

        /* "View.MemoryView":833
 *             if start < 0:
 *                 start += shape
 *                 if start < 0:             # <<<<<<<<<<<<<<
 *                     start = 0
 *             elif start >= shape:
 */
        __pyx_t_2 = (__pyx_v_start < 0);
        if (__pyx_t_2) {

          /* "View.MemoryView":834
 *                 start += shape
 *                 if start < 0:
 *                     start = 0             # <<<<<<<<<<<<<<
 *             elif start >= shape:
 *                 if negative_step:
 */
          __pyx_v_start = 0;

          /* "View.MemoryView":833
 *             if start < 0:
 *                 start += shape
 *                 if start < 0:             # <<<<<<<<<<<<<<
 *                     start = 0
 *             elif start >= shape:
 */
        }

        /* "View.MemoryView":831
 * 
 *         if have_start:
 *             if start < 0:             # <<<<<<<<<<<<<<
 *                 start += shape
 *                 if start < 0:
 */
        goto __pyx_L9;
      }

      /* "View.MemoryView":835
 *                 if start < 0:
 *                     start = 0
 *             elif start >= shape:             # <<<<<<<<<<<<<<
 *                 if negative_step:
 *                     start = shape - 1
 */
      __pyx_t_2 = (__pyx_v_start >= __pyx_v_shape);
      if (__pyx_t_2) {

        /* "View.MemoryView":836
 *                     start = 0
 *             elif start >= shape:
 *                 if negative_step:             # <<<<<<<<<<<<<<
 *                     start = shape - 1
 *                 else:
 */
        if (__pyx_v_negative_step) {

          /* "View.MemoryView":837
 *             elif start >= shape:
 *                 if negative_step:
 *                     start = shape - 1             # <<<<<<<<<<<<<<
 *                 else:
 *                     start = shape
 */
          __pyx_v_start = (__pyx_v_shape - 1);

          /* "View.MemoryView":836
 *                     start = 0
 *             elif start >= shape:
 *                 if negative_step:             # <<<<<<<<<<<<<<
 *                     start = shape - 1
 *                 else:
 */
          goto __pyx_L11;
        }

        /* "View.MemoryView":839
 *                     start = shape - 1
 *                 else:
 *                     start = shape             # <<<<<<<<<<<<<<
 *         else:
 *             if negative_step:
 */
        /*else*/ {
          __pyx_v_start = __pyx_v_shape;
        }
        __pyx_L11:;

        /* "View.MemoryView":835
 *                 if start < 0:
 *                     start = 0
 *             elif start >= shape:             # <<<<<<<<<<<<<<
 *                 if negative_step:
 *                     start = shape - 1
 */
      }
      __pyx_L9:;

      /* "View.MemoryView":830
 * 
 * 
 *         if have_start:             # <<<<<<<<<<<<<<
 *             if start < 0:
 *                 start += shape
 */
      goto __pyx_L8;
    }

    /* "View.MemoryView":841
 *                     start = shape
 *         else:
 *             if negative_step:             # <<<<<<<<<<<<<<
 *                 start = shape - 1
 *             else:
 */
    /*else*/ {
      if (__pyx_v_negative_step) {

        /* "View.MemoryView":842
 *         else:
 *             if negative_step:
 *                 start = shape - 1             # <<<<<<<<<<<<<<
 *             else:
 *                 start = 0
 */
        __pyx_v_start = (__pyx_v_shape - 1);

        /* "View.MemoryView":841
 *                     start = shape
 *         else:
 *             if negative_step:             # <<<<<<<<<<<<<<
 *                 start = shape - 1
 *             else:
 */
        goto __pyx_L12;
      }

      /* "View.MemoryView":844
 *                 start = shape - 1
 *             else:
 *                 start = 0             # <<<<<<<<<<<<<<
 * 
 *         if have_stop:
 */
      /*else*/ {
        __pyx_v_start = 0;
      }
      __pyx_L12:;
    }
    __pyx_L8:;

    /* "View.MemoryView":846
 *                 start = 0
 * 
 *         if have_stop:             # <<<<<<<<<<<<<<
 *             if stop < 0:
 *                 stop += shape
 */
    __pyx_t_2 = (__pyx_v_have_stop != 0);
    if (__pyx_t_2) {

      /* "View.MemoryView":847
 * 
 *         if have_stop:
 *             if stop < 0:             # <<<<<<<<<<<<<<
 *                 stop += shape
 *                 if stop < 0:
 */
      __pyx_t_2 = (__pyx_v_stop < 0);
      if (__pyx_t_2) {

        /* "View.MemoryView":848
 *         if have_stop:
 *             if stop < 0:
 *                 stop += shape             # <<<<<<<<<<<<<<
 *                 if stop < 0:
 *                     stop = 0
 */
        __pyx_v_stop = (__pyx_v_stop + __pyx_v_shape);

        /* "View.MemoryView":849
 *             if stop < 0:
 *                 stop += shape
 *                 if stop < 0:             # <<<<<<<<<<<<<<
 *                     stop = 0
 *             elif stop > shape:
 */
        __pyx_t_2 = (__pyx_v_stop < 0);
        if (__pyx_t_2) {

          /* "View.MemoryView":850
 *                 stop += shape
 *                 if stop < 0:
 *                     stop = 0             # <<<<<<<<<<<<<<
 *             elif stop > shape:
 *                 stop = shape
 */
          __pyx_v_stop = 0;

          /* "View.MemoryView":849
 *             if stop < 0:
 *                 stop += shape
 *                 if stop < 0:             # <<<<<<<<<<<<<<
 *                     stop = 0
 *             elif stop > shape:
 */
        }

        /* "View.MemoryView":847
 * 
 *         if have_stop:
 *             if stop < 0:             # <<<<<<<<<<<<<<
 *                 stop += shape
 *                 if stop < 0:
 */
        goto __pyx_L14;
      }

      /* "View.MemoryView":851
 *                 if stop < 0:
 *                     stop = 0
 *             elif stop > shape:             # <<<<<<<<<<<<<<
 *                 stop = shape
 *         else:
 */
      __pyx_t_2 = (__pyx_v_stop > __pyx_v_shape);
      if (__pyx_t_2) {

        /* "View.MemoryView":852
 *                     stop = 0
 *             elif stop > shape:
 *                 stop = shape             # <<<<<<<<<<<<<<
 *         else:
 *             if negative_step:
 */
        __pyx_v_stop = __pyx_v_shape;

        /* "View.MemoryView":851
 *                 if stop < 0:
 *                     stop = 0
 *             elif stop > shape:             # <<<<<<<<<<<<<<
 *                 stop = shape
 *         else:
 */
      }
      __pyx_L14:;

      /* "View.MemoryView":846
 *                 start = 0
 * 
 *         if have_stop:             # <<<<<<<<<<<<<<
 *             if stop < 0:
 *                 stop += shape
 */
      goto __pyx_L13;
    }

    /* "View.MemoryView":854
 *                 stop = shape
 *         else:
 *             if negative_step:             # <<<<<<<<<<<<<<
 *                 stop = -1
 *             else:
 */
    /*else*/ {
      if (__pyx_v_negative_step) {

        /* "View.MemoryView":855
 *         else:
 *             if negative_step:
 *                 stop = -1             # <<<<<<<<<<<<<<
 *             else:
 *                 stop = shape
 */
        __pyx_v_stop = -1L;

        /* "View.MemoryView":854
 *                 stop = shape
 *         else:
 *             if negative_step:             # <<<<<<<<<<<<<<
 *                 stop = -1
 *             else:
 */
        goto __pyx_L16;
      }

      /* "View.MemoryView":857
 *                 stop = -1
 *             else:
 *                 stop = shape             # <<<<<<<<<<<<<<
 * 
 * 
 */
      /*else*/ {
        __pyx_v_stop = __pyx_v_shape;
      }
      __pyx_L16:;
    }
    __pyx_L13:;

    /* "View.MemoryView":861
 * 
 *         with cython.cdivision(True):
 *             new_shape = (stop - start) // step             # <<<<<<<<<<<<<<
 * 
 *             if (stop - start) - step * new_shape:
 */
    __pyx_v_new_shape = ((__pyx_v_stop - __pyx_v_start) / __pyx_v_step);

    /* "View.MemoryView":863
 *             new_shape = (stop - start) // step
 * 
 *             if (stop - start) - step * new_shape:             # <<<<<<<<<<<<<<
 *                 new_shape += 1
 * 
 */
    __pyx_t_2 = (((__pyx_v_stop - __pyx_v_start) - (__pyx_v_step * __pyx_v_new_shape)) != 0);
    if (__pyx_t_2) {

      /* "View.MemoryView":864
 * 
 *             if (stop - start) - step * new_shape:
 *                 new_shape += 1             # <<<<<<<<<<<<<<
 * 
 *         if new_shape < 0:
 */
      __pyx_v_new_shape = (__pyx_v_new_shape + 1);

      /* "View.MemoryView":863
 *             new_shape = (stop - start) // step
 * 
 *             if (stop - start) - step * new_shape:             # <<<<<<<<<<<<<<
 *                 new_shape += 1
 * 
 */
    }

    /* "View.MemoryView":866
 *                 new_shape += 1
 * 
 *         if new_shape < 0:             # <<<<<<<<<<<<<<
 *             new_shape = 0
 * 
 */
    __pyx_t_2 = (__pyx_v_new_shape < 0);
    if (__pyx_t_2) {

      /* "View.MemoryView":867
 * 
 *         if new_shape < 0:
 *             new_shape = 0             # <<<<<<<<<<<<<<
 * 
 * 
 */
      __pyx_v_new_shape = 0;

      /* "View.MemoryView":866
 *                 new_shape += 1
 * 
 *         if new_shape < 0:             # <<<<<<<<<<<<<<
 *             new_shape = 0
 * 
 */
    }

    /* "View.MemoryView":870
 * 
 * 
 *         dst.strides[new_ndim] = stride * step             # <<<<<<<<<<<<<<
 *         dst.shape[new_ndim] = new_shape
 *         dst.suboffsets[new_ndim] = suboffset
 */
    (__pyx_v_dst->strides[__pyx_v_new_ndim]) = (__pyx_v_stride * __pyx_v_step);

    /* "View.MemoryView":871
 * 
 *         dst.strides[new_ndim] = stride * step
 *         dst.shape[new_ndim] = new_shape             # <<<<<<<<<<<<<<
 *         dst.suboffsets[new_ndim] = suboffset
 * 
 */
    (__pyx_v_dst->shape[__pyx_v_new_ndim]) = __pyx_v_new_shape;

    /* "View.MemoryView":872
 *         dst.strides[new_ndim] = stride * step
 *         dst.shape[new_ndim] = new_shape
 *         dst.suboffsets[new_ndim] = suboffset             # <<<<<<<<<<<<<<
 * 
 * 
 */
    (__pyx_v_dst->suboffsets[__pyx_v_new_ndim]) = __pyx_v_suboffset;
  }
  __pyx_L3:;

  /* "View.MemoryView":875
 * 
 * 
 *     if suboffset_dim[0] < 0:             # <<<<<<<<<<<<<<
 *         dst.data += start * stride
 *     else:
 */
  __pyx_t_2 = ((__pyx_v_suboffset_dim[0]) < 0);
  if (__pyx_t_2) {

    /* "View.MemoryView":876
 * 
 *     if suboffset_dim[0] < 0:
 *         dst.data += start * stride             # <<<<<<<<<<<<<<
 *     else:
 *         dst.suboffsets[suboffset_dim[0]] += start * stride
 */
    __pyx_v_dst->data = (__pyx_v_dst->data + (__pyx_v_start * __pyx_v_stride));

    /* "View.MemoryView":875
 * 
 * 
 *     if suboffset_dim[0] < 0:             # <<<<<<<<<<<<<<
 *         dst.data += start * stride
 *     else:
 */
    goto __pyx_L19;
  }

  /* "View.MemoryView":878
 *         dst.data += start * stride
 *     else:
 *         dst.suboffsets[suboffset_dim[0]] += start * stride             # <<<<<<<<<<<<<<
 * 
 *     if suboffset >= 0:
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_suboffset_dim[0]);
    (__pyx_v_dst->suboffsets[__pyx_t_3]) = ((__pyx_v_dst->suboffsets[__pyx_t_3]) + (__pyx_v_start * __pyx_v_stride));
  }
  __pyx_L19:;

  /* "View.MemoryView":880
 *         dst.suboffsets[suboffset_dim[0]] += start * stride
 * 
 *     if suboffset >= 0:             # <<<<<<<<<<<<<<
 *         if not is_slice:
 *             if new_ndim == 0:
 */
  __pyx_t_2 = (__pyx_v_suboffset >= 0);
  if (__pyx_t_2) {

    /* "View.MemoryView":881
 * 
 *     if suboffset >= 0:
 *         if not is_slice:             # <<<<<<<<<<<<<<
 *             if new_ndim == 0:
 *                 dst.data = (<char **> dst.data)[0] + suboffset
 */
    __pyx_t_2 = (!__pyx_v_is_slice);
    if (__pyx_t_2) {

      /* "View.MemoryView":882
 *     if suboffset >= 0:
 *         if not is_slice:
 *             if new_ndim == 0:             # <<<<<<<<<<<<<<
 *                 dst.data = (<char **> dst.data)[0] + suboffset
 *             else:
 */
      __pyx_t_2 = (__pyx_v_new_ndim == 0);
      if (__pyx_t_2) {

        /* "View.MemoryView":883
 *         if not is_slice:
 *             if new_ndim == 0:
 *                 dst.data = (<char **> dst.data)[0] + suboffset             # <<<<<<<<<<<<<<
 *             else:
 *                 _err_dim(PyExc_IndexError, "All dimensions preceding dimension %d "
 */
        __pyx_v_dst->data = ((((char **)__pyx_v_dst->data)[0]) + __pyx_v_suboffset);

        /* "View.MemoryView":882
 *     if suboffset >= 0:
 *         if not is_slice:
 *             if new_ndim == 0:             # <<<<<<<<<<<<<<
 *                 dst.data = (<char **> dst.data)[0] + suboffset
 *             else:
 */
        goto __pyx_L22;
      }

      /* "View.MemoryView":885
 *                 dst.data = (<char **> dst.data)[0] + suboffset
 *             else:
 *                 _err_dim(PyExc_IndexError, "All dimensions preceding dimension %d "             # <<<<<<<<<<<<<<
 *                                      "must be indexed and not sliced", dim)
 *         else:
 */
      /*else*/ {

        /* "View.MemoryView":886
 *             else:
 *                 _err_dim(PyExc_IndexError, "All dimensions preceding dimension %d "
 *                                      "must be indexed and not sliced", dim)             # <<<<<<<<<<<<<<
 *         else:
 *             suboffset_dim[0] = new_ndim
 */
        __pyx_t_3 = __pyx_memoryview_err_dim(PyExc_IndexError, __pyx_kp_s_All_dimensions_preceding_dimensi, __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 885, __pyx_L1_error)
      }
      __pyx_L22:;

      /* "View.MemoryView":881
 * 
 *     if suboffset >= 0:
 *         if not is_slice:             # <<<<<<<<<<<<<<
 *             if new_ndim == 0:
 *                 dst.data = (<char **> dst.data)[0] + suboffset
 */
      goto __pyx_L21;
    }

    /* "View.MemoryView":888
 *                                      "must be indexed and not sliced", dim)
 *         else:
 *             suboffset_dim[0] = new_ndim             # <<<<<<<<<<<<<<
 * 
 *     return 0
 */
    /*else*/ {
      (__pyx_v_suboffset_dim[0]) = __pyx_v_new_ndim;
    }
    __pyx_L21:;

    /* "View.MemoryView":880
 *         dst.suboffsets[suboffset_dim[0]] += start * stride
 * 
 *     if suboffset >= 0:             # <<<<<<<<<<<<<<
 *         if not is_slice:
 *             if new_ndim == 0:
 */
  }

  /* "View.MemoryView":890
 *             suboffset_dim[0] = new_ndim
 * 
 *     return 0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = 0;
  goto __pyx_L0;

  /* "View.MemoryView":793
 * 
 * @cname('__pyx_memoryview_slice_memviewslice')
 * cdef int slice_memviewslice(             # <<<<<<<<<<<<<<
 *         __Pyx_memviewslice *dst,
 *         Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset,
 */

  /* function exit code */
  __pyx_L1_error:;
  #ifdef WITH_THREAD
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_AddTraceback("View.MemoryView.slice_memviewslice", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  __pyx_L0:;
  return __pyx_r;
}

/* "View.MemoryView":896
 * 
 * @cname('__pyx_pybuffer_index')
 * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index,             # <<<<<<<<<<<<<<
 *                           Py_ssize_t dim) except NULL:
 *     cdef Py_ssize_t shape, stride, suboffset = -1
 */

static char *__pyx_pybuffer_index(Py_buffer *__pyx_v_view, char *__pyx_v_bufp, Py_ssize_t __pyx_v_index, Py_ssize_t __pyx_v_dim) {
  Py_ssize_t __pyx_v_shape;
  Py_ssize_t __pyx_v_stride;
  Py_ssize_t __pyx_v_suboffset;
  Py_ssize_t __pyx_v_itemsize;
  char *__pyx_v_resultp;
  char *__pyx_r;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  Py_UCS4 __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pybuffer_index", 1);

  /* "View.MemoryView":898
 * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index,
 *                           Py_ssize_t dim) except NULL:
 *     cdef Py_ssize_t shape, stride, suboffset = -1             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t itemsize = view.itemsize
 *     cdef char *resultp
 */
  __pyx_v_suboffset = -1L;

  /* "View.MemoryView":899
 *                           Py_ssize_t dim) except NULL:
 *     cdef Py_ssize_t shape, stride, suboffset = -1
 *     cdef Py_ssize_t itemsize = view.itemsize             # <<<<<<<<<<<<<<
 *     cdef char *resultp
 * 
 */
  __pyx_t_1 = __pyx_v_view->itemsize;
  __pyx_v_itemsize = __pyx_t_1;

  /* "View.MemoryView":902
 *     cdef char *resultp
 * 
 *     if view.ndim == 0:             # <<<<<<<<<<<<<<
 *         shape = view.len // itemsize
 *         stride = itemsize
 */
  __pyx_t_2 = (__pyx_v_view->ndim == 0);
  if (__pyx_t_2) {

    /* "View.MemoryView":903
 * 
 *     if view.ndim == 0:
 *         shape = view.len // itemsize             # <<<<<<<<<<<<<<
 *         stride = itemsize
 *     else:
 */
    if (unlikely(__pyx_v_itemsize == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
      __PYX_ERR(3, 903, __pyx_L1_error)
    }
    else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1)  && unlikely(__Pyx_UNARY_NEG_WOULD_OVERFLOW(__pyx_v_view->len))) {
      PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
      __PYX_ERR(3, 903, __pyx_L1_error)
    }
    __pyx_v_shape = __Pyx_div_Py_ssize_t(__pyx_v_view->len, __pyx_v_itemsize);

    /* "View.MemoryView":904
 *     if view.ndim == 0:
 *         shape = view.len // itemsize
 *         stride = itemsize             # <<<<<<<<<<<<<<
 *     else:
 *         shape = view.shape[dim]
 */
    __pyx_v_stride = __pyx_v_itemsize;

    /* "View.MemoryView":902
 *     cdef char *resultp
 * 
 *     if view.ndim == 0:             # <<<<<<<<<<<<<<
 *         shape = view.len // itemsize
 *         stride = itemsize
 */
    goto __pyx_L3;
  }

  /* "View.MemoryView":906
 *         stride = itemsize
 *     else:
 *         shape = view.shape[dim]             # <<<<<<<<<<<<<<
 *         stride = view.strides[dim]
 *         if view.suboffsets != NULL:
 */
  /*else*/ {
    __pyx_v_shape = (__pyx_v_view->shape[__pyx_v_dim]);

    /* "View.MemoryView":907
 *     else:
 *         shape = view.shape[dim]
 *         stride = view.strides[dim]             # <<<<<<<<<<<<<<
 *         if view.suboffsets != NULL:
 *             suboffset = view.suboffsets[dim]
 */
    __pyx_v_stride = (__pyx_v_view->strides[__pyx_v_dim]);

    /* "View.MemoryView":908
 *         shape = view.shape[dim]
 *         stride = view.strides[dim]
 *         if view.suboffsets != NULL:             # <<<<<<<<<<<<<<
 *             suboffset = view.suboffsets[dim]
 * 
 */
    __pyx_t_2 = (__pyx_v_view->suboffsets != NULL);
    if (__pyx_t_2) {

      /* "View.MemoryView":909
 *         stride = view.strides[dim]
 *         if view.suboffsets != NULL:
 *             suboffset = view.suboffsets[dim]             # <<<<<<<<<<<<<<
 * 
 *     if index < 0:
 */
      __pyx_v_suboffset = (__pyx_v_view->suboffsets[__pyx_v_dim]);

      /* "View.MemoryView":908
 *         shape = view.shape[dim]
 *         stride = view.strides[dim]
 *         if view.suboffsets != NULL:             # <<<<<<<<<<<<<<
 *             suboffset = view.suboffsets[dim]
 * 
 */
    }
  }
  __pyx_L3:;

  /* "View.MemoryView":911
 *             suboffset = view.suboffsets[dim]
 * 
 *     if index < 0:             # <<<<<<<<<<<<<<
 *         index += view.shape[dim]
 *         if index < 0:
 */
  __pyx_t_2 = (__pyx_v_index < 0);
  if (__pyx_t_2) {

    /* "View.MemoryView":912
 * 
 *     if index < 0:
 *         index += view.shape[dim]             # <<<<<<<<<<<<<<
 *         if index < 0:
 *             raise IndexError, f"Out of bounds on buffer access (axis {dim})"
 */
    __pyx_v_index = (__pyx_v_index + (__pyx_v_view->shape[__pyx_v_dim]));

    /* "View.MemoryView":913
 *     if index < 0:
 *         index += view.shape[dim]
 *         if index < 0:             # <<<<<<<<<<<<<<
 *             raise IndexError, f"Out of bounds on buffer access (axis {dim})"
 * 
 */
    __pyx_t_2 = (__pyx_v_index < 0);
    if (unlikely(__pyx_t_2)) {

      /* "View.MemoryView":914
 *         index += view.shape[dim]
 *         if index < 0:
 *             raise IndexError, f"Out of bounds on buffer access (axis {dim})"             # <<<<<<<<<<<<<<
 * 
 *     if index >= shape:
 */
      __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 914, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = 0;
      __pyx_t_4 = 127;
      __Pyx_INCREF(__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
      __pyx_t_1 += 37;
      __Pyx_GIVEREF(__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_Out_of_bounds_on_buffer_access_a);
      __pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_dim, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 914, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5);
      __pyx_t_5 = 0;
      __Pyx_INCREF(__pyx_kp_u__7);
      __pyx_t_1 += 1;
      __Pyx_GIVEREF(__pyx_kp_u__7);
      PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u__7);
      __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 914, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_builtin_IndexError, __pyx_t_5, 0, 0);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __PYX_ERR(3, 914, __pyx_L1_error)

      /* "View.MemoryView":913
 *     if index < 0:
 *         index += view.shape[dim]
 *         if index < 0:             # <<<<<<<<<<<<<<
 *             raise IndexError, f"Out of bounds on buffer access (axis {dim})"
 * 
 */
    }

    /* "View.MemoryView":911
 *             suboffset = view.suboffsets[dim]
 * 
 *     if index < 0:             # <<<<<<<<<<<<<<
 *         index += view.shape[dim]
 *         if index < 0:
 */
  }

  /* "View.MemoryView":916
 *             raise IndexError, f"Out of bounds on buffer access (axis {dim})"
 * 
 *     if index >= shape:             # <<<<<<<<<<<<<<
 *         raise IndexError, f"Out of bounds on buffer access (axis {dim})"
 * 
 */
  __pyx_t_2 = (__pyx_v_index >= __pyx_v_shape);
  if (unlikely(__pyx_t_2)) {

    /* "View.MemoryView":917
 * 
 *     if index >= shape:
 *         raise IndexError, f"Out of bounds on buffer access (axis {dim})"             # <<<<<<<<<<<<<<
 * 
 *     resultp = bufp + index * stride
 */
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 917, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = 0;
    __pyx_t_4 = 127;
    __Pyx_INCREF(__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
    __pyx_t_1 += 37;
    __Pyx_GIVEREF(__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_kp_u_Out_of_bounds_on_buffer_access_a);
    __pyx_t_3 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_dim, 0, ' ', 'd'); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 917, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
    __pyx_t_3 = 0;
    __Pyx_INCREF(__pyx_kp_u__7);
    __pyx_t_1 += 1;
    __Pyx_GIVEREF(__pyx_kp_u__7);
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_kp_u__7);
    __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 917, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_builtin_IndexError, __pyx_t_3, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(3, 917, __pyx_L1_error)

    /* "View.MemoryView":916
 *             raise IndexError, f"Out of bounds on buffer access (axis {dim})"
 * 
 *     if index >= shape:             # <<<<<<<<<<<<<<
 *         raise IndexError, f"Out of bounds on buffer access (axis {dim})"
 * 
 */
  }

  /* "View.MemoryView":919
 *         raise IndexError, f"Out of bounds on buffer access (axis {dim})"
 * 
 *     resultp = bufp + index * stride             # <<<<<<<<<<<<<<
 *     if suboffset >= 0:
 *         resultp = (<char **> resultp)[0] + suboffset
 */
  __pyx_v_resultp = (__pyx_v_bufp + (__pyx_v_index * __pyx_v_stride));

  /* "View.MemoryView":920
 * 
 *     resultp = bufp + index * stride
 *     if suboffset >= 0:             # <<<<<<<<<<<<<<
 *         resultp = (<char **> resultp)[0] + suboffset
 * 
 */
  __pyx_t_2 = (__pyx_v_suboffset >= 0);
  if (__pyx_t_2) {

    /* "View.MemoryView":921
 *     resultp = bufp + index * stride
 *     if suboffset >= 0:
 *         resultp = (<char **> resultp)[0] + suboffset             # <<<<<<<<<<<<<<
 * 
 *     return resultp
 */
    __pyx_v_resultp = ((((char **)__pyx_v_resultp)[0]) + __pyx_v_suboffset);

    /* "View.MemoryView":920
 * 
 *     resultp = bufp + index * stride
 *     if suboffset >= 0:             # <<<<<<<<<<<<<<
 *         resultp = (<char **> resultp)[0] + suboffset
 * 
 */
  }

  /* "View.MemoryView":923
 *         resultp = (<char **> resultp)[0] + suboffset
 * 
 *     return resultp             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_resultp;
  goto __pyx_L0;

  /* "View.MemoryView":896
 * 
 * @cname('__pyx_pybuffer_index')
 * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index,             # <<<<<<<<<<<<<<
 *                           Py_ssize_t dim) except NULL:
 *     cdef Py_ssize_t shape, stride, suboffset = -1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("View.MemoryView.pybuffer_index", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":929
 * 
 * @cname('__pyx_memslice_transpose')
 * cdef int transpose_memslice(__Pyx_memviewslice *memslice) except -1 nogil:             # <<<<<<<<<<<<<<
 *     cdef int ndim = memslice.memview.view.ndim
 * 
 */

static int __pyx_memslice_transpose(__Pyx_memviewslice *__pyx_v_memslice) {
  int __pyx_v_ndim;
  Py_ssize_t *__pyx_v_shape;
  Py_ssize_t *__pyx_v_strides;
  int __pyx_v_i;
  int __pyx_v_j;
  int __pyx_r;
  int __pyx_t_1;
  Py_ssize_t *__pyx_t_2;
  long __pyx_t_3;
  long __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save;
  #endif

  /* "View.MemoryView":930
 * @cname('__pyx_memslice_transpose')
 * cdef int transpose_memslice(__Pyx_memviewslice *memslice) except -1 nogil:
 *     cdef int ndim = memslice.memview.view.ndim             # <<<<<<<<<<<<<<
 * 
 *     cdef Py_ssize_t *shape = memslice.shape
 */
  __pyx_t_1 = __pyx_v_memslice->memview->view.ndim;
  __pyx_v_ndim = __pyx_t_1;

  /* "View.MemoryView":932
 *     cdef int ndim = memslice.memview.view.ndim
 * 
 *     cdef Py_ssize_t *shape = memslice.shape             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t *strides = memslice.strides
 * 
 */
  __pyx_t_2 = __pyx_v_memslice->shape;
  __pyx_v_shape = __pyx_t_2;

  /* "View.MemoryView":933
 * 
 *     cdef Py_ssize_t *shape = memslice.shape
 *     cdef Py_ssize_t *strides = memslice.strides             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = __pyx_v_memslice->strides;
  __pyx_v_strides = __pyx_t_2;

  /* "View.MemoryView":937
 * 
 *     cdef int i, j
 *     for i in range(ndim // 2):             # <<<<<<<<<<<<<<
 *         j = ndim - 1 - i
 *         strides[i], strides[j] = strides[j], strides[i]
 */
  __pyx_t_3 = __Pyx_div_long(__pyx_v_ndim, 2);
  __pyx_t_4 = __pyx_t_3;
  for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_4; __pyx_t_1+=1) {
    __pyx_v_i = __pyx_t_1;

    /* "View.MemoryView":938
 *     cdef int i, j
 *     for i in range(ndim // 2):
 *         j = ndim - 1 - i             # <<<<<<<<<<<<<<
 *         strides[i], strides[j] = strides[j], strides[i]
 *         shape[i], shape[j] = shape[j], shape[i]
 */
    __pyx_v_j = ((__pyx_v_ndim - 1) - __pyx_v_i);

    /* "View.MemoryView":939
 *     for i in range(ndim // 2):
 *         j = ndim - 1 - i
 *         strides[i], strides[j] = strides[j], strides[i]             # <<<<<<<<<<<<<<
 *         shape[i], shape[j] = shape[j], shape[i]
 * 
 */
    __pyx_t_5 = (__pyx_v_strides[__pyx_v_j]);
    __pyx_t_6 = (__pyx_v_strides[__pyx_v_i]);
    (__pyx_v_strides[__pyx_v_i]) = __pyx_t_5;
    (__pyx_v_strides[__pyx_v_j]) = __pyx_t_6;

    /* "View.MemoryView":940
 *         j = ndim - 1 - i
 *         strides[i], strides[j] = strides[j], strides[i]
 *         shape[i], shape[j] = shape[j], shape[i]             # <<<<<<<<<<<<<<
 * 
 *         if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0:
 */
    __pyx_t_6 = (__pyx_v_shape[__pyx_v_j]);
    __pyx_t_5 = (__pyx_v_shape[__pyx_v_i]);
    (__pyx_v_shape[__pyx_v_i]) = __pyx_t_6;
    (__pyx_v_shape[__pyx_v_j]) = __pyx_t_5;

    /* "View.MemoryView":942
 *         shape[i], shape[j] = shape[j], shape[i]
 * 
 *         if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0:             # <<<<<<<<<<<<<<
 *             _err(PyExc_ValueError, "Cannot transpose memoryview with indirect dimensions")
 * 
 */
    __pyx_t_8 = ((__pyx_v_memslice->suboffsets[__pyx_v_i]) >= 0);
    if (!__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_8 = ((__pyx_v_memslice->suboffsets[__pyx_v_j]) >= 0);
    __pyx_t_7 = __pyx_t_8;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_7) {

      /* "View.MemoryView":943
 * 
 *         if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0:
 *             _err(PyExc_ValueError, "Cannot transpose memoryview with indirect dimensions")             # <<<<<<<<<<<<<<
 * 
 *     return 0
 */
      __pyx_t_9 = __pyx_memoryview_err(PyExc_ValueError, __pyx_kp_s_Cannot_transpose_memoryview_with); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(3, 943, __pyx_L1_error)

      /* "View.MemoryView":942
 *         shape[i], shape[j] = shape[j], shape[i]
 * 
 *         if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0:             # <<<<<<<<<<<<<<
 *             _err(PyExc_ValueError, "Cannot transpose memoryview with indirect dimensions")
 * 
 */
    }
  }

  /* "View.MemoryView":945
 *             _err(PyExc_ValueError, "Cannot transpose memoryview with indirect dimensions")
 * 
 *     return 0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = 0;
  goto __pyx_L0;

  /* "View.MemoryView":929
 * 
 * @cname('__pyx_memslice_transpose')
 * cdef int transpose_memslice(__Pyx_memviewslice *memslice) except -1 nogil:             # <<<<<<<<<<<<<<
 *     cdef int ndim = memslice.memview.view.ndim
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  #ifdef WITH_THREAD
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_AddTraceback("View.MemoryView.transpose_memslice", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  __pyx_L0:;
  return __pyx_r;
}

/* "View.MemoryView":963
 *     cdef int (*to_dtype_func)(char *, object) except 0
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         __PYX_XCLEAR_MEMVIEW(&self.from_slice, 1)
 * 
 */

/* Python wrapper */
static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self) {

  /* "View.MemoryView":964
 * 
 *     def __dealloc__(self):
 *         __PYX_XCLEAR_MEMVIEW(&self.from_slice, 1)             # <<<<<<<<<<<<<<
 * 
 *     cdef convert_item_to_object(self, char *itemp):
 */
  __PYX_XCLEAR_MEMVIEW((&__pyx_v_self->from_slice), 1);

  /* "View.MemoryView":963
 *     cdef int (*to_dtype_func)(char *, object) except 0
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         __PYX_XCLEAR_MEMVIEW(&self.from_slice, 1)
 * 
 */

  /* function exit code */
}

/* "View.MemoryView":966
 *         __PYX_XCLEAR_MEMVIEW(&self.from_slice, 1)
 * 
 *     cdef convert_item_to_object(self, char *itemp):             # <<<<<<<<<<<<<<
 *         if self.to_object_func != NULL:
 *             return self.to_object_func(itemp)
 */

static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("convert_item_to_object", 1);

  /* "View.MemoryView":967
 * 
 *     cdef convert_item_to_object(self, char *itemp):
 *         if self.to_object_func != NULL:             # <<<<<<<<<<<<<<
 *             return self.to_object_func(itemp)
 *         else:
 */
  __pyx_t_1 = (__pyx_v_self->to_object_func != NULL);
  if (__pyx_t_1) {

    /* "View.MemoryView":968
 *     cdef convert_item_to_object(self, char *itemp):
 *         if self.to_object_func != NULL:
 *             return self.to_object_func(itemp)             # <<<<<<<<<<<<<<
 *         else:
 *             return memoryview.convert_item_to_object(self, itemp)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_v_self->to_object_func(__pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 968, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "View.MemoryView":967
 * 
 *     cdef convert_item_to_object(self, char *itemp):
 *         if self.to_object_func != NULL:             # <<<<<<<<<<<<<<
 *             return self.to_object_func(itemp)
 *         else:
 */
  }

  /* "View.MemoryView":970
 *             return self.to_object_func(itemp)
 *         else:
 *             return memoryview.convert_item_to_object(self, itemp)             # <<<<<<<<<<<<<<
 * 
 *     cdef assign_item_from_object(self, char *itemp, object value):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_memoryview_convert_item_to_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "View.MemoryView":966
 *         __PYX_XCLEAR_MEMVIEW(&self.from_slice, 1)
 * 
 *     cdef convert_item_to_object(self, char *itemp):             # <<<<<<<<<<<<<<
 *         if self.to_object_func != NULL:
 *             return self.to_object_func(itemp)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("View.MemoryView._memoryviewslice.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":972
 *             return memoryview.convert_item_to_object(self, itemp)
 * 
 *     cdef assign_item_from_object(self, char *itemp, object value):             # <<<<<<<<<<<<<<
 *         if self.to_dtype_func != NULL:
 *             self.to_dtype_func(itemp, value)
 */

static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("assign_item_from_object", 1);

  /* "View.MemoryView":973
 * 
 *     cdef assign_item_from_object(self, char *itemp, object value):
 *         if self.to_dtype_func != NULL:             # <<<<<<<<<<<<<<
 *             self.to_dtype_func(itemp, value)
 *         else:
 */
  __pyx_t_1 = (__pyx_v_self->to_dtype_func != NULL);
  if (__pyx_t_1) {

    /* "View.MemoryView":974
 *     cdef assign_item_from_object(self, char *itemp, object value):
 *         if self.to_dtype_func != NULL:
 *             self.to_dtype_func(itemp, value)             # <<<<<<<<<<<<<<
 *         else:
 *             memoryview.assign_item_from_object(self, itemp, value)
 */
    __pyx_t_2 = __pyx_v_self->to_dtype_func(__pyx_v_itemp, __pyx_v_value); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(3, 974, __pyx_L1_error)

    /* "View.MemoryView":973
 * 
 *     cdef assign_item_from_object(self, char *itemp, object value):
 *         if self.to_dtype_func != NULL:             # <<<<<<<<<<<<<<
 *             self.to_dtype_func(itemp, value)
 *         else:
 */
    goto __pyx_L3;
  }

  /* "View.MemoryView":976
 *             self.to_dtype_func(itemp, value)
 *         else:
 *             memoryview.assign_item_from_object(self, itemp, value)             # <<<<<<<<<<<<<<
 * 
 *     cdef _get_base(self):
 */
  /*else*/ {
    __pyx_t_3 = __pyx_memoryview_assign_item_from_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 976, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L3:;

  /* "View.MemoryView":972
 *             return memoryview.convert_item_to_object(self, itemp)
 * 
 *     cdef assign_item_from_object(self, char *itemp, object value):             # <<<<<<<<<<<<<<
 *         if self.to_dtype_func != NULL:
 *             self.to_dtype_func(itemp, value)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("View.MemoryView._memoryviewslice.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":978
 *             memoryview.assign_item_from_object(self, itemp, value)
 * 
 *     cdef _get_base(self):             # <<<<<<<<<<<<<<
 *         return self.from_object
 * 
 */

static PyObject *__pyx_memoryviewslice__get_base(struct __pyx_memoryviewslice_obj *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_get_base", 1);

  /* "View.MemoryView":979
 * 
 *     cdef _get_base(self):
 *         return self.from_object             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->from_object);
  __pyx_r = __pyx_v_self->from_object;
  goto __pyx_L0;

  /* "View.MemoryView":978
 *             memoryview.assign_item_from_object(self, itemp, value)
 * 
 *     cdef _get_base(self):             # <<<<<<<<<<<<<<
 *         return self.from_object
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf___pyx_memoryviewslice___reduce_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf___pyx_memoryviewslice_2__setstate_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":999
 * 
 * @cname('__pyx_memoryview_fromslice')
 * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice,             # <<<<<<<<<<<<<<
 *                           int ndim,
 *                           object (*to_object_func)(char *),
 */

static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice __pyx_v_memviewslice, int __pyx_v_ndim, PyObject *(*__pyx_v_to_object_func)(char *), int (*__pyx_v_to_dtype_func)(char *, PyObject *), int __pyx_v_dtype_is_object) {
  struct __pyx_memoryviewslice_obj *__pyx_v_result = 0;
  Py_ssize_t __pyx_v_suboffset;
  PyObject *__pyx_v_length = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_TypeInfo *__pyx_t_4;
  Py_buffer __pyx_t_5;
  Py_ssize_t *__pyx_t_6;
  Py_ssize_t *__pyx_t_7;
  Py_ssize_t *__pyx_t_8;
  Py_ssize_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("memoryview_fromslice", 1);

  /* "View.MemoryView":1007
 *     cdef _memoryviewslice result
 * 
 *     if <PyObject *> memviewslice.memview == Py_None:             # <<<<<<<<<<<<<<
 *         return None
 * 
 */
  __pyx_t_1 = (((PyObject *)__pyx_v_memviewslice.memview) == Py_None);
  if (__pyx_t_1) {

    /* "View.MemoryView":1008
 * 
 *     if <PyObject *> memviewslice.memview == Py_None:
 *         return None             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "View.MemoryView":1007
 *     cdef _memoryviewslice result
 * 
 *     if <PyObject *> memviewslice.memview == Py_None:             # <<<<<<<<<<<<<<
 *         return None
 * 
 */
  }

  /* "View.MemoryView":1013
 * 
 * 
 *     result = _memoryviewslice.__new__(_memoryviewslice, None, 0, dtype_is_object)             # <<<<<<<<<<<<<<
 * 
 *     result.from_slice = memviewslice
 */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 1013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, Py_None)) __PYX_ERR(3, 1013, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0)) __PYX_ERR(3, 1013, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(3, 1013, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = ((PyObject *)__pyx_tp_new__memoryviewslice(((PyTypeObject *)__pyx_memoryviewslice_type), __pyx_t_3, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 1013, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "View.MemoryView":1015
 *     result = _memoryviewslice.__new__(_memoryviewslice, None, 0, dtype_is_object)
 * 
 *     result.from_slice = memviewslice             # <<<<<<<<<<<<<<
 *     __PYX_INC_MEMVIEW(&memviewslice, 1)
 * 
 */
  __pyx_v_result->from_slice = __pyx_v_memviewslice;

  /* "View.MemoryView":1016
 * 
 *     result.from_slice = memviewslice
 *     __PYX_INC_MEMVIEW(&memviewslice, 1)             # <<<<<<<<<<<<<<
 * 
 *     result.from_object = (<memoryview> memviewslice.memview)._get_base()
 */
  __PYX_INC_MEMVIEW((&__pyx_v_memviewslice), 1);

  /* "View.MemoryView":1018
 *     __PYX_INC_MEMVIEW(&memviewslice, 1)
 * 
 *     result.from_object = (<memoryview> memviewslice.memview)._get_base()             # <<<<<<<<<<<<<<
 *     result.typeinfo = memviewslice.memview.typeinfo
 * 
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)->__pyx_vtab)->_get_base(((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 1018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_result->from_object);
  __Pyx_DECREF(__pyx_v_result->from_object);
  __pyx_v_result->from_object = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "View.MemoryView":1019
 * 
 *     result.from_object = (<memoryview> memviewslice.memview)._get_base()
 *     result.typeinfo = memviewslice.memview.typeinfo             # <<<<<<<<<<<<<<
 * 
 *     result.view = memviewslice.memview.view
 */
  __pyx_t_4 = __pyx_v_memviewslice.memview->typeinfo;
  __pyx_v_result->__pyx_base.typeinfo = __pyx_t_4;

  /* "View.MemoryView":1021
 *     result.typeinfo = memviewslice.memview.typeinfo
 * 
 *     result.view = memviewslice.memview.view             # <<<<<<<<<<<<<<
 *     result.view.buf = <void *> memviewslice.data
 *     result.view.ndim = ndim
 */
  __pyx_t_5 = __pyx_v_memviewslice.memview->view;
  __pyx_v_result->__pyx_base.view = __pyx_t_5;

  /* "View.MemoryView":1022
 * 
 *     result.view = memviewslice.memview.view
 *     result.view.buf = <void *> memviewslice.data             # <<<<<<<<<<<<<<
 *     result.view.ndim = ndim
 *     (<__pyx_buffer *> &result.view).obj = Py_None
 */
  __pyx_v_result->__pyx_base.view.buf = ((void *)__pyx_v_memviewslice.data);

  /* "View.MemoryView":1023
 *     result.view = memviewslice.memview.view
 *     result.view.buf = <void *> memviewslice.data
 *     result.view.ndim = ndim             # <<<<<<<<<<<<<<
 *     (<__pyx_buffer *> &result.view).obj = Py_None
 *     Py_INCREF(Py_None)
 */
  __pyx_v_result->__pyx_base.view.ndim = __pyx_v_ndim;

  /* "View.MemoryView":1024
 *     result.view.buf = <void *> memviewslice.data
 *     result.view.ndim = ndim
 *     (<__pyx_buffer *> &result.view).obj = Py_None             # <<<<<<<<<<<<<<
 *     Py_INCREF(Py_None)
 * 
 */
  ((Py_buffer *)(&__pyx_v_result->__pyx_base.view))->obj = Py_None;

  /* "View.MemoryView":1025
 *     result.view.ndim = ndim
 *     (<__pyx_buffer *> &result.view).obj = Py_None
 *     Py_INCREF(Py_None)             # <<<<<<<<<<<<<<
 * 
 *     if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE:
 */
  Py_INCREF(Py_None);

  /* "View.MemoryView":1027
 *     Py_INCREF(Py_None)
 * 
 *     if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE:             # <<<<<<<<<<<<<<
 *         result.flags = PyBUF_RECORDS
 *     else:
 */
  __pyx_t_1 = ((((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)->flags & PyBUF_WRITABLE) != 0);
  if (__pyx_t_1) {

    /* "View.MemoryView":1028
 * 
 *     if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE:
 *         result.flags = PyBUF_RECORDS             # <<<<<<<<<<<<<<
 *     else:
 *         result.flags = PyBUF_RECORDS_RO
 */
    __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS;

    /* "View.MemoryView":1027
 *     Py_INCREF(Py_None)
 * 
 *     if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE:             # <<<<<<<<<<<<<<
 *         result.flags = PyBUF_RECORDS
 *     else:
 */
    goto __pyx_L4;
  }

  /* "View.MemoryView":1030
 *         result.flags = PyBUF_RECORDS
 *     else:
 *         result.flags = PyBUF_RECORDS_RO             # <<<<<<<<<<<<<<
 * 
 *     result.view.shape = <Py_ssize_t *> result.from_slice.shape
 */
  /*else*/ {
    __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS_RO;
  }
  __pyx_L4:;

  /* "View.MemoryView":1032
 *         result.flags = PyBUF_RECORDS_RO
 * 
 *     result.view.shape = <Py_ssize_t *> result.from_slice.shape             # <<<<<<<<<<<<<<
 *     result.view.strides = <Py_ssize_t *> result.from_slice.strides
 * 
 */
  __pyx_v_result->__pyx_base.view.shape = ((Py_ssize_t *)__pyx_v_result->from_slice.shape);

  /* "View.MemoryView":1033
 * 
 *     result.view.shape = <Py_ssize_t *> result.from_slice.shape
 *     result.view.strides = <Py_ssize_t *> result.from_slice.strides             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_result->__pyx_base.view.strides = ((Py_ssize_t *)__pyx_v_result->from_slice.strides);

  /* "View.MemoryView":1036
 * 
 * 
 *     result.view.suboffsets = NULL             # <<<<<<<<<<<<<<
 *     for suboffset in result.from_slice.suboffsets[:ndim]:
 *         if suboffset >= 0:
 */
  __pyx_v_result->__pyx_base.view.suboffsets = NULL;

  /* "View.MemoryView":1037
 * 
 *     result.view.suboffsets = NULL
 *     for suboffset in result.from_slice.suboffsets[:ndim]:             # <<<<<<<<<<<<<<
 *         if suboffset >= 0:
 *             result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
 */
  __pyx_t_7 = (__pyx_v_result->from_slice.suboffsets + __pyx_v_ndim);
  for (__pyx_t_8 = __pyx_v_result->from_slice.suboffsets; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) {
    __pyx_t_6 = __pyx_t_8;
    __pyx_v_suboffset = (__pyx_t_6[0]);

    /* "View.MemoryView":1038
 *     result.view.suboffsets = NULL
 *     for suboffset in result.from_slice.suboffsets[:ndim]:
 *         if suboffset >= 0:             # <<<<<<<<<<<<<<
 *             result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
 *             break
 */
    __pyx_t_1 = (__pyx_v_suboffset >= 0);
    if (__pyx_t_1) {

      /* "View.MemoryView":1039
 *     for suboffset in result.from_slice.suboffsets[:ndim]:
 *         if suboffset >= 0:
 *             result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets             # <<<<<<<<<<<<<<
 *             break
 * 
 */
      __pyx_v_result->__pyx_base.view.suboffsets = ((Py_ssize_t *)__pyx_v_result->from_slice.suboffsets);

      /* "View.MemoryView":1040
 *         if suboffset >= 0:
 *             result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
 *             break             # <<<<<<<<<<<<<<
 * 
 *     result.view.len = result.view.itemsize
 */
      goto __pyx_L6_break;

      /* "View.MemoryView":1038
 *     result.view.suboffsets = NULL
 *     for suboffset in result.from_slice.suboffsets[:ndim]:
 *         if suboffset >= 0:             # <<<<<<<<<<<<<<
 *             result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
 *             break
 */
    }
  }
  __pyx_L6_break:;

  /* "View.MemoryView":1042
 *             break
 * 
 *     result.view.len = result.view.itemsize             # <<<<<<<<<<<<<<
 *     for length in result.view.shape[:ndim]:
 *         result.view.len *= length
 */
  __pyx_t_9 = __pyx_v_result->__pyx_base.view.itemsize;
  __pyx_v_result->__pyx_base.view.len = __pyx_t_9;

  /* "View.MemoryView":1043
 * 
 *     result.view.len = result.view.itemsize
 *     for length in result.view.shape[:ndim]:             # <<<<<<<<<<<<<<
 *         result.view.len *= length
 * 
 */
  __pyx_t_7 = (__pyx_v_result->__pyx_base.view.shape + __pyx_v_ndim);
  for (__pyx_t_8 = __pyx_v_result->__pyx_base.view.shape; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) {
    __pyx_t_6 = __pyx_t_8;
    __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_6[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 1043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "View.MemoryView":1044
 *     result.view.len = result.view.itemsize
 *     for length in result.view.shape[:ndim]:
 *         result.view.len *= length             # <<<<<<<<<<<<<<
 * 
 *     result.to_object_func = to_object_func
 */
    __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_result->__pyx_base.view.len); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 1044, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyNumber_InPlaceMultiply(__pyx_t_2, __pyx_v_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1044, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 1044, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_result->__pyx_base.view.len = __pyx_t_9;
  }

  /* "View.MemoryView":1046
 *         result.view.len *= length
 * 
 *     result.to_object_func = to_object_func             # <<<<<<<<<<<<<<
 *     result.to_dtype_func = to_dtype_func
 * 
 */
  __pyx_v_result->to_object_func = __pyx_v_to_object_func;

  /* "View.MemoryView":1047
 * 
 *     result.to_object_func = to_object_func
 *     result.to_dtype_func = to_dtype_func             # <<<<<<<<<<<<<<
 * 
 *     return result
 */
  __pyx_v_result->to_dtype_func = __pyx_v_to_dtype_func;

  /* "View.MemoryView":1049
 *     result.to_dtype_func = to_dtype_func
 * 
 *     return result             # <<<<<<<<<<<<<<
 * 
 * @cname('__pyx_memoryview_get_slice_from_memoryview')
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "View.MemoryView":999
 * 
 * @cname('__pyx_memoryview_fromslice')
 * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice,             # <<<<<<<<<<<<<<
 *                           int ndim,
 *                           object (*to_object_func)(char *),
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("View.MemoryView.memoryview_fromslice", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_length);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":1052
 * 
 * @cname('__pyx_memoryview_get_slice_from_memoryview')
 * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview,             # <<<<<<<<<<<<<<
 *                                                    __Pyx_memviewslice *mslice) except NULL:
 *     cdef _memoryviewslice obj
 */

static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_mslice) {
  struct __pyx_memoryviewslice_obj *__pyx_v_obj = 0;
  __Pyx_memviewslice *__pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_slice_from_memview", 1);

  /* "View.MemoryView":1055
 *                                                    __Pyx_memviewslice *mslice) except NULL:
 *     cdef _memoryviewslice obj
 *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
 *         obj = memview
 *         return &obj.from_slice
 */
  __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); 
  if (__pyx_t_1) {

    /* "View.MemoryView":1056
 *     cdef _memoryviewslice obj
 *     if isinstance(memview, _memoryviewslice):
 *         obj = memview             # <<<<<<<<<<<<<<
 *         return &obj.from_slice
 *     else:
 */
    if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(3, 1056, __pyx_L1_error)
    __pyx_t_2 = ((PyObject *)__pyx_v_memview);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_obj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "View.MemoryView":1057
 *     if isinstance(memview, _memoryviewslice):
 *         obj = memview
 *         return &obj.from_slice             # <<<<<<<<<<<<<<
 *     else:
 *         slice_copy(memview, mslice)
 */
    __pyx_r = (&__pyx_v_obj->from_slice);
    goto __pyx_L0;

    /* "View.MemoryView":1055
 *                                                    __Pyx_memviewslice *mslice) except NULL:
 *     cdef _memoryviewslice obj
 *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
 *         obj = memview
 *         return &obj.from_slice
 */
  }

  /* "View.MemoryView":1059
 *         return &obj.from_slice
 *     else:
 *         slice_copy(memview, mslice)             # <<<<<<<<<<<<<<
 *         return mslice
 * 
 */
  /*else*/ {
    __pyx_memoryview_slice_copy(__pyx_v_memview, __pyx_v_mslice);

    /* "View.MemoryView":1060
 *     else:
 *         slice_copy(memview, mslice)
 *         return mslice             # <<<<<<<<<<<<<<
 * 
 * @cname('__pyx_memoryview_slice_copy')
 */
    __pyx_r = __pyx_v_mslice;
    goto __pyx_L0;
  }

  /* "View.MemoryView":1052
 * 
 * @cname('__pyx_memoryview_get_slice_from_memoryview')
 * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview,             # <<<<<<<<<<<<<<
 *                                                    __Pyx_memviewslice *mslice) except NULL:
 *     cdef _memoryviewslice obj
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("View.MemoryView.get_slice_from_memview", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_obj);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":1063
 * 
 * @cname('__pyx_memoryview_slice_copy')
 * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst) noexcept:             # <<<<<<<<<<<<<<
 *     cdef int dim
 *     cdef (Py_ssize_t*) shape, strides, suboffsets
 */

static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_dst) {
  int __pyx_v_dim;
  Py_ssize_t *__pyx_v_shape;
  Py_ssize_t *__pyx_v_strides;
  Py_ssize_t *__pyx_v_suboffsets;
  Py_ssize_t *__pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;

  /* "View.MemoryView":1067
 *     cdef (Py_ssize_t*) shape, strides, suboffsets
 * 
 *     shape = memview.view.shape             # <<<<<<<<<<<<<<
 *     strides = memview.view.strides
 *     suboffsets = memview.view.suboffsets
 */
  __pyx_t_1 = __pyx_v_memview->view.shape;
  __pyx_v_shape = __pyx_t_1;

  /* "View.MemoryView":1068
 * 
 *     shape = memview.view.shape
 *     strides = memview.view.strides             # <<<<<<<<<<<<<<
 *     suboffsets = memview.view.suboffsets
 * 
 */
  __pyx_t_1 = __pyx_v_memview->view.strides;
  __pyx_v_strides = __pyx_t_1;

  /* "View.MemoryView":1069
 *     shape = memview.view.shape
 *     strides = memview.view.strides
 *     suboffsets = memview.view.suboffsets             # <<<<<<<<<<<<<<
 * 
 *     dst.memview = <__pyx_memoryview *> memview
 */
  __pyx_t_1 = __pyx_v_memview->view.suboffsets;
  __pyx_v_suboffsets = __pyx_t_1;

  /* "View.MemoryView":1071
 *     suboffsets = memview.view.suboffsets
 * 
 *     dst.memview = <__pyx_memoryview *> memview             # <<<<<<<<<<<<<<
 *     dst.data = <char *> memview.view.buf
 * 
 */
  __pyx_v_dst->memview = ((struct __pyx_memoryview_obj *)__pyx_v_memview);

  /* "View.MemoryView":1072
 * 
 *     dst.memview = <__pyx_memoryview *> memview
 *     dst.data = <char *> memview.view.buf             # <<<<<<<<<<<<<<
 * 
 *     for dim in range(memview.view.ndim):
 */
  __pyx_v_dst->data = ((char *)__pyx_v_memview->view.buf);

  /* "View.MemoryView":1074
 *     dst.data = <char *> memview.view.buf
 * 
 *     for dim in range(memview.view.ndim):             # <<<<<<<<<<<<<<
 *         dst.shape[dim] = shape[dim]
 *         dst.strides[dim] = strides[dim]
 */
  __pyx_t_2 = __pyx_v_memview->view.ndim;
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_dim = __pyx_t_4;

    /* "View.MemoryView":1075
 * 
 *     for dim in range(memview.view.ndim):
 *         dst.shape[dim] = shape[dim]             # <<<<<<<<<<<<<<
 *         dst.strides[dim] = strides[dim]
 *         dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1
 */
    (__pyx_v_dst->shape[__pyx_v_dim]) = (__pyx_v_shape[__pyx_v_dim]);

    /* "View.MemoryView":1076
 *     for dim in range(memview.view.ndim):
 *         dst.shape[dim] = shape[dim]
 *         dst.strides[dim] = strides[dim]             # <<<<<<<<<<<<<<
 *         dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1
 * 
 */
    (__pyx_v_dst->strides[__pyx_v_dim]) = (__pyx_v_strides[__pyx_v_dim]);

    /* "View.MemoryView":1077
 *         dst.shape[dim] = shape[dim]
 *         dst.strides[dim] = strides[dim]
 *         dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1             # <<<<<<<<<<<<<<
 * 
 * @cname('__pyx_memoryview_copy_object')
 */
    __pyx_t_6 = (__pyx_v_suboffsets != 0);
    if (__pyx_t_6) {
      __pyx_t_5 = (__pyx_v_suboffsets[__pyx_v_dim]);
    } else {
      __pyx_t_5 = -1L;
    }
    (__pyx_v_dst->suboffsets[__pyx_v_dim]) = __pyx_t_5;
  }

  /* "View.MemoryView":1063
 * 
 * @cname('__pyx_memoryview_slice_copy')
 * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst) noexcept:             # <<<<<<<<<<<<<<
 *     cdef int dim
 *     cdef (Py_ssize_t*) shape, strides, suboffsets
 */

  /* function exit code */
}

/* "View.MemoryView":1080
 * 
 * @cname('__pyx_memoryview_copy_object')
 * cdef memoryview_copy(memoryview memview):             # <<<<<<<<<<<<<<
 *     "Create a new memoryview object"
 *     cdef __Pyx_memviewslice memviewslice
 */

static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *__pyx_v_memview) {
  __Pyx_memviewslice __pyx_v_memviewslice;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("memoryview_copy", 1);

  /* "View.MemoryView":1083
 *     "Create a new memoryview object"
 *     cdef __Pyx_memviewslice memviewslice
 *     slice_copy(memview, &memviewslice)             # <<<<<<<<<<<<<<
 *     return memoryview_copy_from_slice(memview, &memviewslice)
 * 
 */
  __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_memviewslice));

  /* "View.MemoryView":1084
 *     cdef __Pyx_memviewslice memviewslice
 *     slice_copy(memview, &memviewslice)
 *     return memoryview_copy_from_slice(memview, &memviewslice)             # <<<<<<<<<<<<<<
 * 
 * @cname('__pyx_memoryview_copy_object_from_slice')
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_memoryview_copy_object_from_slice(__pyx_v_memview, (&__pyx_v_memviewslice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1084, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":1080
 * 
 * @cname('__pyx_memoryview_copy_object')
 * cdef memoryview_copy(memoryview memview):             # <<<<<<<<<<<<<<
 *     "Create a new memoryview object"
 *     cdef __Pyx_memviewslice memviewslice
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("View.MemoryView.memoryview_copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":1087
 * 
 * @cname('__pyx_memoryview_copy_object_from_slice')
 * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice):             # <<<<<<<<<<<<<<
 *     """
 *     Create a new memoryview object from a given memoryview object and slice.
 */

static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_memviewslice) {
  PyObject *(*__pyx_v_to_object_func)(char *);
  int (*__pyx_v_to_dtype_func)(char *, PyObject *);
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *(*__pyx_t_2)(char *);
  int (*__pyx_t_3)(char *, PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("memoryview_copy_from_slice", 1);

  /* "View.MemoryView":1094
 *     cdef int (*to_dtype_func)(char *, object) except 0
 * 
 *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
 *         to_object_func = (<_memoryviewslice> memview).to_object_func
 *         to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
 */
  __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); 
  if (__pyx_t_1) {

    /* "View.MemoryView":1095
 * 
 *     if isinstance(memview, _memoryviewslice):
 *         to_object_func = (<_memoryviewslice> memview).to_object_func             # <<<<<<<<<<<<<<
 *         to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
 *     else:
 */
    __pyx_t_2 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_object_func;
    __pyx_v_to_object_func = __pyx_t_2;

    /* "View.MemoryView":1096
 *     if isinstance(memview, _memoryviewslice):
 *         to_object_func = (<_memoryviewslice> memview).to_object_func
 *         to_dtype_func = (<_memoryviewslice> memview).to_dtype_func             # <<<<<<<<<<<<<<
 *     else:
 *         to_object_func = NULL
 */
    __pyx_t_3 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_dtype_func;
    __pyx_v_to_dtype_func = __pyx_t_3;

    /* "View.MemoryView":1094
 *     cdef int (*to_dtype_func)(char *, object) except 0
 * 
 *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
 *         to_object_func = (<_memoryviewslice> memview).to_object_func
 *         to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
 */
    goto __pyx_L3;
  }

  /* "View.MemoryView":1098
 *         to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
 *     else:
 *         to_object_func = NULL             # <<<<<<<<<<<<<<
 *         to_dtype_func = NULL
 * 
 */
  /*else*/ {
    __pyx_v_to_object_func = NULL;

    /* "View.MemoryView":1099
 *     else:
 *         to_object_func = NULL
 *         to_dtype_func = NULL             # <<<<<<<<<<<<<<
 * 
 *     return memoryview_fromslice(memviewslice[0], memview.view.ndim,
 */
    __pyx_v_to_dtype_func = NULL;
  }
  __pyx_L3:;

  /* "View.MemoryView":1101
 *         to_dtype_func = NULL
 * 
 *     return memoryview_fromslice(memviewslice[0], memview.view.ndim,             # <<<<<<<<<<<<<<
 *                                 to_object_func, to_dtype_func,
 *                                 memview.dtype_is_object)
 */
  __Pyx_XDECREF(__pyx_r);

  /* "View.MemoryView":1103
 *     return memoryview_fromslice(memviewslice[0], memview.view.ndim,
 *                                 to_object_func, to_dtype_func,
 *                                 memview.dtype_is_object)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_4 = __pyx_memoryview_fromslice((__pyx_v_memviewslice[0]), __pyx_v_memview->view.ndim, __pyx_v_to_object_func, __pyx_v_to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "View.MemoryView":1087
 * 
 * @cname('__pyx_memoryview_copy_object_from_slice')
 * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice):             # <<<<<<<<<<<<<<
 *     """
 *     Create a new memoryview object from a given memoryview object and slice.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("View.MemoryView.memoryview_copy_from_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "View.MemoryView":1109
 * 
 * 
 * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) noexcept nogil:             # <<<<<<<<<<<<<<
 *     return -arg if arg < 0 else arg
 * 
 */

static Py_ssize_t abs_py_ssize_t(Py_ssize_t __pyx_v_arg) {
  Py_ssize_t __pyx_r;
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;

  /* "View.MemoryView":1110
 * 
 * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) noexcept nogil:
 *     return -arg if arg < 0 else arg             # <<<<<<<<<<<<<<
 * 
 * @cname('__pyx_get_best_slice_order')
 */
  __pyx_t_2 = (__pyx_v_arg < 0);
  if (__pyx_t_2) {
    __pyx_t_1 = (-__pyx_v_arg);
  } else {
    __pyx_t_1 = __pyx_v_arg;
  }
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "View.MemoryView":1109
 * 
 * 
 * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) noexcept nogil:             # <<<<<<<<<<<<<<
 *     return -arg if arg < 0 else arg
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "View.MemoryView":1113
 * 
 * @cname('__pyx_get_best_slice_order')
 * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) noexcept nogil:             # <<<<<<<<<<<<<<
 *     """
 *     Figure out the best memory access order for a given slice.
 */

static char __pyx_get_best_slice_order(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim) {
  int __pyx_v_i;
  Py_ssize_t __pyx_v_c_stride;
  Py_ssize_t __pyx_v_f_stride;
  char __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;

  /* "View.MemoryView":1118
 *     """
 *     cdef int i
 *     cdef Py_ssize_t c_stride = 0             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t f_stride = 0
 * 
 */
  __pyx_v_c_stride = 0;

  /* "View.MemoryView":1119
 *     cdef int i
 *     cdef Py_ssize_t c_stride = 0
 *     cdef Py_ssize_t f_stride = 0             # <<<<<<<<<<<<<<
 * 
 *     for i in range(ndim - 1, -1, -1):
 */
  __pyx_v_f_stride = 0;

  /* "View.MemoryView":1121
 *     cdef Py_ssize_t f_stride = 0
 * 
 *     for i in range(ndim - 1, -1, -1):             # <<<<<<<<<<<<<<
 *         if mslice.shape[i] > 1:
 *             c_stride = mslice.strides[i]
 */
  for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) {
    __pyx_v_i = __pyx_t_1;

    /* "View.MemoryView":1122
 * 
 *     for i in range(ndim - 1, -1, -1):
 *         if mslice.shape[i] > 1:             # <<<<<<<<<<<<<<
 *             c_stride = mslice.strides[i]
 *             break
 */
    __pyx_t_2 = ((__pyx_v_mslice->shape[__pyx_v_i]) > 1);
    if (__pyx_t_2) {

      /* "View.MemoryView":1123
 *     for i in range(ndim - 1, -1, -1):
 *         if mslice.shape[i] > 1:
 *             c_stride = mslice.strides[i]             # <<<<<<<<<<<<<<
 *             break
 * 
 */
      __pyx_v_c_stride = (__pyx_v_mslice->strides[__pyx_v_i]);

      /* "View.MemoryView":1124
 *         if mslice.shape[i] > 1:
 *             c_stride = mslice.strides[i]
 *             break             # <<<<<<<<<<<<<<
 * 
 *     for i in range(ndim):
 */
      goto __pyx_L4_break;

      /* "View.MemoryView":1122
 * 
 *     for i in range(ndim - 1, -1, -1):
 *         if mslice.shape[i] > 1:             # <<<<<<<<<<<<<<
 *             c_stride = mslice.strides[i]
 *             break
 */
    }
  }
  __pyx_L4_break:;

  /* "View.MemoryView":1126
 *             break
 * 
 *     for i in range(ndim):             # <<<<<<<<<<<<<<
 *         if mslice.shape[i] > 1:
 *             f_stride = mslice.strides[i]
 */
  __pyx_t_1 = __pyx_v_ndim;
  __pyx_t_3 = __pyx_t_1;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "View.MemoryView":1127
 * 
 *     for i in range(ndim):
 *         if mslice.shape[i] > 1:             # <<<<<<<<<<<<<<
 *             f_stride = mslice.strides[i]
 *             break
 */
    __pyx_t_2 = ((__pyx_v_mslice->shape[__pyx_v_i]) > 1);
    if (__pyx_t_2) {

      /* "View.MemoryView":1128
 *     for i in range(ndim):
 *         if mslice.shape[i] > 1:
 *             f_stride = mslice.strides[i]             # <<<<<<<<<<<<<<
 *             break
 * 
 */
      __pyx_v_f_stride = (__pyx_v_mslice->strides[__pyx_v_i]);

      /* "View.MemoryView":1129
 *         if mslice.shape[i] > 1:
 *             f_stride = mslice.strides[i]
 *             break             # <<<<<<<<<<<<<<
 * 
 *     if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride):
 */
      goto __pyx_L7_break;

      /* "View.MemoryView":1127
 * 
 *     for i in range(ndim):
 *         if mslice.shape[i] > 1:             # <<<<<<<<<<<<<<
 *             f_stride = mslice.strides[i]
 *             break
 */
    }
  }
  __pyx_L7_break:;

  /* "View.MemoryView":1131
 *             break
 * 
 *     if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride):             # <<<<<<<<<<<<<<
 *         return 'C'
 *     else:
 */
  __pyx_t_2 = (abs_py_ssize_t(__pyx_v_c_stride) <= abs_py_ssize_t(__pyx_v_f_stride));
  if (__pyx_t_2) {

    /* "View.MemoryView":1132
 * 
 *     if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride):
 *         return 'C'             # <<<<<<<<<<<<<<
 *     else:
 *         return 'F'
 */
    __pyx_r = 'C';
    goto __pyx_L0;

    /* "View.MemoryView":1131
 *             break
 * 
 *     if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride):             # <<<<<<<<<<<<<<
 *         return 'C'
 *     else:
 */
  }

  /* "View.MemoryView":1134
 *         return 'C'
 *     else:
 *         return 'F'             # <<<<<<<<<<<<<<
 * 
 * @cython.cdivision(True)
 */
  /*else*/ {
    __pyx_r = 'F';
    goto __pyx_L0;
  }

  /* "View.MemoryView":1113
 * 
 * @cname('__pyx_get_best_slice_order')
 * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) noexcept nogil:             # <<<<<<<<<<<<<<
 *     """
 *     Figure out the best memory access order for a given slice.
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "View.MemoryView":1137
 * 
 * @cython.cdivision(True)
 * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides,             # <<<<<<<<<<<<<<
 *                                    char *dst_data, Py_ssize_t *dst_strides,
 *                                    Py_ssize_t *src_shape, Py_ssize_t *dst_shape,
 */

static void _copy_strided_to_strided(char *__pyx_v_src_data, Py_ssize_t *__pyx_v_src_strides, char *__pyx_v_dst_data, Py_ssize_t *__pyx_v_dst_strides, Py_ssize_t *__pyx_v_src_shape, Py_ssize_t *__pyx_v_dst_shape, int __pyx_v_ndim, size_t __pyx_v_itemsize) {
  CYTHON_UNUSED Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED Py_ssize_t __pyx_v_src_extent;
  Py_ssize_t __pyx_v_dst_extent;
  Py_ssize_t __pyx_v_src_stride;
  Py_ssize_t __pyx_v_dst_stride;
  int __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;

  /* "View.MemoryView":1144
 * 
 *     cdef Py_ssize_t i
 *     cdef Py_ssize_t src_extent = src_shape[0]             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t dst_extent = dst_shape[0]
 *     cdef Py_ssize_t src_stride = src_strides[0]
 */
  __pyx_v_src_extent = (__pyx_v_src_shape[0]);

  /* "View.MemoryView":1145
 *     cdef Py_ssize_t i
 *     cdef Py_ssize_t src_extent = src_shape[0]
 *     cdef Py_ssize_t dst_extent = dst_shape[0]             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t src_stride = src_strides[0]
 *     cdef Py_ssize_t dst_stride = dst_strides[0]
 */
  __pyx_v_dst_extent = (__pyx_v_dst_shape[0]);

  /* "View.MemoryView":1146
 *     cdef Py_ssize_t src_extent = src_shape[0]
 *     cdef Py_ssize_t dst_extent = dst_shape[0]
 *     cdef Py_ssize_t src_stride = src_strides[0]             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t dst_stride = dst_strides[0]
 * 
 */
  __pyx_v_src_stride = (__pyx_v_src_strides[0]);

  /* "View.MemoryView":1147
 *     cdef Py_ssize_t dst_extent = dst_shape[0]
 *     cdef Py_ssize_t src_stride = src_strides[0]
 *     cdef Py_ssize_t dst_stride = dst_strides[0]             # <<<<<<<<<<<<<<
 * 
 *     if ndim == 1:
 */
  __pyx_v_dst_stride = (__pyx_v_dst_strides[0]);

  /* "View.MemoryView":1149
 *     cdef Py_ssize_t dst_stride = dst_strides[0]
 * 
 *     if ndim == 1:             # <<<<<<<<<<<<<<
 *         if (src_stride > 0 and dst_stride > 0 and
 *             <size_t> src_stride == itemsize == <size_t> dst_stride):
 */
  __pyx_t_1 = (__pyx_v_ndim == 1);
  if (__pyx_t_1) {

    /* "View.MemoryView":1150
 * 
 *     if ndim == 1:
 *         if (src_stride > 0 and dst_stride > 0 and             # <<<<<<<<<<<<<<
 *             <size_t> src_stride == itemsize == <size_t> dst_stride):
 *             memcpy(dst_data, src_data, itemsize * dst_extent)
 */
    __pyx_t_2 = (__pyx_v_src_stride > 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_2 = (__pyx_v_dst_stride > 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L5_bool_binop_done;
    }

    /* "View.MemoryView":1151
 *     if ndim == 1:
 *         if (src_stride > 0 and dst_stride > 0 and
 *             <size_t> src_stride == itemsize == <size_t> dst_stride):             # <<<<<<<<<<<<<<
 *             memcpy(dst_data, src_data, itemsize * dst_extent)
 *         else:
 */
    __pyx_t_2 = (((size_t)__pyx_v_src_stride) == __pyx_v_itemsize);
    if (__pyx_t_2) {
      __pyx_t_2 = (__pyx_v_itemsize == ((size_t)__pyx_v_dst_stride));
    }
    __pyx_t_1 = __pyx_t_2;
    __pyx_L5_bool_binop_done:;

    /* "View.MemoryView":1150
 * 
 *     if ndim == 1:
 *         if (src_stride > 0 and dst_stride > 0 and             # <<<<<<<<<<<<<<
 *             <size_t> src_stride == itemsize == <size_t> dst_stride):
 *             memcpy(dst_data, src_data, itemsize * dst_extent)
 */
    if (__pyx_t_1) {

      /* "View.MemoryView":1152
 *         if (src_stride > 0 and dst_stride > 0 and
 *             <size_t> src_stride == itemsize == <size_t> dst_stride):
 *             memcpy(dst_data, src_data, itemsize * dst_extent)             # <<<<<<<<<<<<<<
 *         else:
 *             for i in range(dst_extent):
 */
      (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, (__pyx_v_itemsize * __pyx_v_dst_extent)));

      /* "View.MemoryView":1150
 * 
 *     if ndim == 1:
 *         if (src_stride > 0 and dst_stride > 0 and             # <<<<<<<<<<<<<<
 *             <size_t> src_stride == itemsize == <size_t> dst_stride):
 *             memcpy(dst_data, src_data, itemsize * dst_extent)
 */
      goto __pyx_L4;
    }

    /* "View.MemoryView":1154
 *             memcpy(dst_data, src_data, itemsize * dst_extent)
 *         else:
 *             for i in range(dst_extent):             # <<<<<<<<<<<<<<
 *                 memcpy(dst_data, src_data, itemsize)
 *                 src_data += src_stride
 */
    /*else*/ {
      __pyx_t_3 = __pyx_v_dst_extent;
      __pyx_t_4 = __pyx_t_3;
      for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
        __pyx_v_i = __pyx_t_5;

        /* "View.MemoryView":1155
 *         else:
 *             for i in range(dst_extent):
 *                 memcpy(dst_data, src_data, itemsize)             # <<<<<<<<<<<<<<
 *                 src_data += src_stride
 *                 dst_data += dst_stride
 */
        (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, __pyx_v_itemsize));

        /* "View.MemoryView":1156
 *             for i in range(dst_extent):
 *                 memcpy(dst_data, src_data, itemsize)
 *                 src_data += src_stride             # <<<<<<<<<<<<<<
 *                 dst_data += dst_stride
 *     else:
 */
        __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride);

        /* "View.MemoryView":1157
 *                 memcpy(dst_data, src_data, itemsize)
 *                 src_data += src_stride
 *                 dst_data += dst_stride             # <<<<<<<<<<<<<<
 *     else:
 *         for i in range(dst_extent):
 */
        __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride);
      }
    }
    __pyx_L4:;

    /* "View.MemoryView":1149
 *     cdef Py_ssize_t dst_stride = dst_strides[0]
 * 
 *     if ndim == 1:             # <<<<<<<<<<<<<<
 *         if (src_stride > 0 and dst_stride > 0 and
 *             <size_t> src_stride == itemsize == <size_t> dst_stride):
 */
    goto __pyx_L3;
  }

  /* "View.MemoryView":1159
 *                 dst_data += dst_stride
 *     else:
 *         for i in range(dst_extent):             # <<<<<<<<<<<<<<
 *             _copy_strided_to_strided(src_data, src_strides + 1,
 *                                      dst_data, dst_strides + 1,
 */
  /*else*/ {
    __pyx_t_3 = __pyx_v_dst_extent;
    __pyx_t_4 = __pyx_t_3;
    for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
      __pyx_v_i = __pyx_t_5;

      /* "View.MemoryView":1160
 *     else:
 *         for i in range(dst_extent):
 *             _copy_strided_to_strided(src_data, src_strides + 1,             # <<<<<<<<<<<<<<
 *                                      dst_data, dst_strides + 1,
 *                                      src_shape + 1, dst_shape + 1,
 */
      _copy_strided_to_strided(__pyx_v_src_data, (__pyx_v_src_strides + 1), __pyx_v_dst_data, (__pyx_v_dst_strides + 1), (__pyx_v_src_shape + 1), (__pyx_v_dst_shape + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize);

      /* "View.MemoryView":1164
 *                                      src_shape + 1, dst_shape + 1,
 *                                      ndim - 1, itemsize)
 *             src_data += src_stride             # <<<<<<<<<<<<<<
 *             dst_data += dst_stride
 * 
 */
      __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride);

      /* "View.MemoryView":1165
 *                                      ndim - 1, itemsize)
 *             src_data += src_stride
 *             dst_data += dst_stride             # <<<<<<<<<<<<<<
 * 
 * cdef void copy_strided_to_strided(__Pyx_memviewslice *src,
 */
      __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride);
    }
  }
  __pyx_L3:;

  /* "View.MemoryView":1137
 * 
 * @cython.cdivision(True)
 * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides,             # <<<<<<<<<<<<<<
 *                                    char *dst_data, Py_ssize_t *dst_strides,
 *                                    Py_ssize_t *src_shape, Py_ssize_t *dst_shape,
 */

  /* function exit code */
}

/* "View.MemoryView":1167
 *             dst_data += dst_stride
 * 
 * cdef void copy_strided_to_strided(__Pyx_memviewslice *src,             # <<<<<<<<<<<<<<
 *                                   __Pyx_memviewslice *dst,
 *                                   int ndim, size_t itemsize) noexcept nogil:
 */

static void copy_strided_to_strided(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize) {

  /* "View.MemoryView":1170
 *                                   __Pyx_memviewslice *dst,
 *                                   int ndim, size_t itemsize) noexcept nogil:
 *     _copy_strided_to_strided(src.data, src.strides, dst.data, dst.strides,             # <<<<<<<<<<<<<<
 *                              src.shape, dst.shape, ndim, itemsize)
 * 
 */
  _copy_strided_to_strided(__pyx_v_src->data, __pyx_v_src->strides, __pyx_v_dst->data, __pyx_v_dst->strides, __pyx_v_src->shape, __pyx_v_dst->shape, __pyx_v_ndim, __pyx_v_itemsize);

  /* "View.MemoryView":1167
 *             dst_data += dst_stride
 * 
 * cdef void copy_strided_to_strided(__Pyx_memviewslice *src,             # <<<<<<<<<<<<<<
 *                                   __Pyx_memviewslice *dst,
 *                                   int ndim, size_t itemsize) noexcept nogil:
 */

  /* function exit code */
}

/* "View.MemoryView":1174
 * 
 * @cname('__pyx_memoryview_slice_get_size')
 * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) noexcept nogil:             # <<<<<<<<<<<<<<
 *     "Return the size of the memory occupied by the slice in number of bytes"
 *     cdef Py_ssize_t shape, size = src.memview.view.itemsize
 */

static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *__pyx_v_src, int __pyx_v_ndim) {
  Py_ssize_t __pyx_v_shape;
  Py_ssize_t __pyx_v_size;
  Py_ssize_t __pyx_r;
  Py_ssize_t __pyx_t_1;
  Py_ssize_t *__pyx_t_2;
  Py_ssize_t *__pyx_t_3;
  Py_ssize_t *__pyx_t_4;

  /* "View.MemoryView":1176
 * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) noexcept nogil:
 *     "Return the size of the memory occupied by the slice in number of bytes"
 *     cdef Py_ssize_t shape, size = src.memview.view.itemsize             # <<<<<<<<<<<<<<
 * 
 *     for shape in src.shape[:ndim]:
 */
  __pyx_t_1 = __pyx_v_src->memview->view.itemsize;
  __pyx_v_size = __pyx_t_1;

  /* "View.MemoryView":1178
 *     cdef Py_ssize_t shape, size = src.memview.view.itemsize
 * 
 *     for shape in src.shape[:ndim]:             # <<<<<<<<<<<<<<
 *         size *= shape
 * 
 */
  __pyx_t_3 = (__pyx_v_src->shape + __pyx_v_ndim);
  for (__pyx_t_4 = __pyx_v_src->shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) {
    __pyx_t_2 = __pyx_t_4;
    __pyx_v_shape = (__pyx_t_2[0]);

    /* "View.MemoryView":1179
 * 
 *     for shape in src.shape[:ndim]:
 *         size *= shape             # <<<<<<<<<<<<<<
 * 
 *     return size
 */
    __pyx_v_size = (__pyx_v_size * __pyx_v_shape);
  }

  /* "View.MemoryView":1181
 *         size *= shape
 * 
 *     return size             # <<<<<<<<<<<<<<
 * 
 * @cname('__pyx_fill_contig_strides_array')
 */
  __pyx_r = __pyx_v_size;
  goto __pyx_L0;

  /* "View.MemoryView":1174
 * 
 * @cname('__pyx_memoryview_slice_get_size')
 * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) noexcept nogil:             # <<<<<<<<<<<<<<
 *     "Return the size of the memory occupied by the slice in number of bytes"
 *     cdef Py_ssize_t shape, size = src.memview.view.itemsize
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "View.MemoryView":1184
 * 
 * @cname('__pyx_fill_contig_strides_array')
 * cdef Py_ssize_t fill_contig_strides_array(             # <<<<<<<<<<<<<<
 *                 Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride,
 *                 int ndim, char order) noexcept nogil:
 */

static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, Py_ssize_t __pyx_v_stride, int __pyx_v_ndim, char __pyx_v_order) {
  int __pyx_v_idx;
  Py_ssize_t __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;

  /* "View.MemoryView":1193
 *     cdef int idx
 * 
 *     if order == 'F':             # <<<<<<<<<<<<<<
 *         for idx in range(ndim):
 *             strides[idx] = stride
 */
  __pyx_t_1 = (__pyx_v_order == 'F');
  if (__pyx_t_1) {

    /* "View.MemoryView":1194
 * 
 *     if order == 'F':
 *         for idx in range(ndim):             # <<<<<<<<<<<<<<
 *             strides[idx] = stride
 *             stride *= shape[idx]
 */
    __pyx_t_2 = __pyx_v_ndim;
    __pyx_t_3 = __pyx_t_2;
    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
      __pyx_v_idx = __pyx_t_4;

      /* "View.MemoryView":1195
 *     if order == 'F':
 *         for idx in range(ndim):
 *             strides[idx] = stride             # <<<<<<<<<<<<<<
 *             stride *= shape[idx]
 *     else:
 */
      (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride;

      /* "View.MemoryView":1196
 *         for idx in range(ndim):
 *             strides[idx] = stride
 *             stride *= shape[idx]             # <<<<<<<<<<<<<<
 *     else:
 *         for idx in range(ndim - 1, -1, -1):
 */
      __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx]));
    }

    /* "View.MemoryView":1193
 *     cdef int idx
 * 
 *     if order == 'F':             # <<<<<<<<<<<<<<
 *         for idx in range(ndim):
 *             strides[idx] = stride
 */
    goto __pyx_L3;
  }

  /* "View.MemoryView":1198
 *             stride *= shape[idx]
 *     else:
 *         for idx in range(ndim - 1, -1, -1):             # <<<<<<<<<<<<<<
 *             strides[idx] = stride
 *             stride *= shape[idx]
 */
  /*else*/ {
    for (__pyx_t_2 = (__pyx_v_ndim - 1); __pyx_t_2 > -1; __pyx_t_2-=1) {
      __pyx_v_idx = __pyx_t_2;

      /* "View.MemoryView":1199
 *     else:
 *         for idx in range(ndim - 1, -1, -1):
 *             strides[idx] = stride             # <<<<<<<<<<<<<<
 *             stride *= shape[idx]
 * 
 */
      (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride;

      /* "View.MemoryView":1200
 *         for idx in range(ndim - 1, -1, -1):
 *             strides[idx] = stride
 *             stride *= shape[idx]             # <<<<<<<<<<<<<<
 * 
 *     return stride
 */
      __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx]));
    }
  }
  __pyx_L3:;

  /* "View.MemoryView":1202
 *             stride *= shape[idx]
 * 
 *     return stride             # <<<<<<<<<<<<<<
 * 
 * @cname('__pyx_memoryview_copy_data_to_temp')
 */
  __pyx_r = __pyx_v_stride;
  goto __pyx_L0;

  /* "View.MemoryView":1184
 * 
 * @cname('__pyx_fill_contig_strides_array')
 * cdef Py_ssize_t fill_contig_strides_array(             # <<<<<<<<<<<<<<
 *                 Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride,
 *                 int ndim, char order) noexcept nogil:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "View.MemoryView":1205
 * 
 * @cname('__pyx_memoryview_copy_data_to_temp')
 * cdef void *copy_data_to_temp(__Pyx_memviewslice *src,             # <<<<<<<<<<<<<<
 *                              __Pyx_memviewslice *tmpslice,
 *                              char order,
 */

static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_tmpslice, char __pyx_v_order, int __pyx_v_ndim) {
  int __pyx_v_i;
  void *__pyx_v_result;
  size_t __pyx_v_itemsize;
  size_t __pyx_v_size;
  void *__pyx_r;
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  struct __pyx_memoryview_obj *__pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save;
  #endif

  /* "View.MemoryView":1216
 *     cdef void *result
 * 
 *     cdef size_t itemsize = src.memview.view.itemsize             # <<<<<<<<<<<<<<
 *     cdef size_t size = slice_get_size(src, ndim)
 * 
 */
  __pyx_t_1 = __pyx_v_src->memview->view.itemsize;
  __pyx_v_itemsize = __pyx_t_1;

  /* "View.MemoryView":1217
 * 
 *     cdef size_t itemsize = src.memview.view.itemsize
 *     cdef size_t size = slice_get_size(src, ndim)             # <<<<<<<<<<<<<<
 * 
 *     result = malloc(size)
 */
  __pyx_v_size = __pyx_memoryview_slice_get_size(__pyx_v_src, __pyx_v_ndim);

  /* "View.MemoryView":1219
 *     cdef size_t size = slice_get_size(src, ndim)
 * 
 *     result = malloc(size)             # <<<<<<<<<<<<<<
 *     if not result:
 *         _err_no_memory()
 */
  __pyx_v_result = malloc(__pyx_v_size);

  /* "View.MemoryView":1220
 * 
 *     result = malloc(size)
 *     if not result:             # <<<<<<<<<<<<<<
 *         _err_no_memory()
 * 
 */
  __pyx_t_2 = (!(__pyx_v_result != 0));
  if (__pyx_t_2) {

    /* "View.MemoryView":1221
 *     result = malloc(size)
 *     if not result:
 *         _err_no_memory()             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_3 = __pyx_memoryview_err_no_memory(); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 1221, __pyx_L1_error)

    /* "View.MemoryView":1220
 * 
 *     result = malloc(size)
 *     if not result:             # <<<<<<<<<<<<<<
 *         _err_no_memory()
 * 
 */
  }

  /* "View.MemoryView":1224
 * 
 * 
 *     tmpslice.data = <char *> result             # <<<<<<<<<<<<<<
 *     tmpslice.memview = src.memview
 *     for i in range(ndim):
 */
  __pyx_v_tmpslice->data = ((char *)__pyx_v_result);

  /* "View.MemoryView":1225
 * 
 *     tmpslice.data = <char *> result
 *     tmpslice.memview = src.memview             # <<<<<<<<<<<<<<
 *     for i in range(ndim):
 *         tmpslice.shape[i] = src.shape[i]
 */
  __pyx_t_4 = __pyx_v_src->memview;
  __pyx_v_tmpslice->memview = __pyx_t_4;

  /* "View.MemoryView":1226
 *     tmpslice.data = <char *> result
 *     tmpslice.memview = src.memview
 *     for i in range(ndim):             # <<<<<<<<<<<<<<
 *         tmpslice.shape[i] = src.shape[i]
 *         tmpslice.suboffsets[i] = -1
 */
  __pyx_t_3 = __pyx_v_ndim;
  __pyx_t_5 = __pyx_t_3;
  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
    __pyx_v_i = __pyx_t_6;

    /* "View.MemoryView":1227
 *     tmpslice.memview = src.memview
 *     for i in range(ndim):
 *         tmpslice.shape[i] = src.shape[i]             # <<<<<<<<<<<<<<
 *         tmpslice.suboffsets[i] = -1
 * 
 */
    (__pyx_v_tmpslice->shape[__pyx_v_i]) = (__pyx_v_src->shape[__pyx_v_i]);

    /* "View.MemoryView":1228
 *     for i in range(ndim):
 *         tmpslice.shape[i] = src.shape[i]
 *         tmpslice.suboffsets[i] = -1             # <<<<<<<<<<<<<<
 * 
 *     fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, ndim, order)
 */
    (__pyx_v_tmpslice->suboffsets[__pyx_v_i]) = -1L;
  }

  /* "View.MemoryView":1230
 *         tmpslice.suboffsets[i] = -1
 * 
 *     fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, ndim, order)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  (void)(__pyx_fill_contig_strides_array((&(__pyx_v_tmpslice->shape[0])), (&(__pyx_v_tmpslice->strides[0])), __pyx_v_itemsize, __pyx_v_ndim, __pyx_v_order));

  /* "View.MemoryView":1233
 * 
 * 
 *     for i in range(ndim):             # <<<<<<<<<<<<<<
 *         if tmpslice.shape[i] == 1:
 *             tmpslice.strides[i] = 0
 */
  __pyx_t_3 = __pyx_v_ndim;
  __pyx_t_5 = __pyx_t_3;
  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
    __pyx_v_i = __pyx_t_6;

    /* "View.MemoryView":1234
 * 
 *     for i in range(ndim):
 *         if tmpslice.shape[i] == 1:             # <<<<<<<<<<<<<<
 *             tmpslice.strides[i] = 0
 * 
 */
    __pyx_t_2 = ((__pyx_v_tmpslice->shape[__pyx_v_i]) == 1);
    if (__pyx_t_2) {

      /* "View.MemoryView":1235
 *     for i in range(ndim):
 *         if tmpslice.shape[i] == 1:
 *             tmpslice.strides[i] = 0             # <<<<<<<<<<<<<<
 * 
 *     if slice_is_contig(src[0], order, ndim):
 */
      (__pyx_v_tmpslice->strides[__pyx_v_i]) = 0;

      /* "View.MemoryView":1234
 * 
 *     for i in range(ndim):
 *         if tmpslice.shape[i] == 1:             # <<<<<<<<<<<<<<
 *             tmpslice.strides[i] = 0
 * 
 */
    }
  }

  /* "View.MemoryView":1237
 *             tmpslice.strides[i] = 0
 * 
 *     if slice_is_contig(src[0], order, ndim):             # <<<<<<<<<<<<<<
 *         memcpy(result, src.data, size)
 *     else:
 */
  __pyx_t_2 = __pyx_memviewslice_is_contig((__pyx_v_src[0]), __pyx_v_order, __pyx_v_ndim);
  if (__pyx_t_2) {

    /* "View.MemoryView":1238
 * 
 *     if slice_is_contig(src[0], order, ndim):
 *         memcpy(result, src.data, size)             # <<<<<<<<<<<<<<
 *     else:
 *         copy_strided_to_strided(src, tmpslice, ndim, itemsize)
 */
    (void)(memcpy(__pyx_v_result, __pyx_v_src->data, __pyx_v_size));

    /* "View.MemoryView":1237
 *             tmpslice.strides[i] = 0
 * 
 *     if slice_is_contig(src[0], order, ndim):             # <<<<<<<<<<<<<<
 *         memcpy(result, src.data, size)
 *     else:
 */
    goto __pyx_L9;
  }

  /* "View.MemoryView":1240
 *         memcpy(result, src.data, size)
 *     else:
 *         copy_strided_to_strided(src, tmpslice, ndim, itemsize)             # <<<<<<<<<<<<<<
 * 
 *     return result
 */
  /*else*/ {
    copy_strided_to_strided(__pyx_v_src, __pyx_v_tmpslice, __pyx_v_ndim, __pyx_v_itemsize);
  }
  __pyx_L9:;

  /* "View.MemoryView":1242
 *         copy_strided_to_strided(src, tmpslice, ndim, itemsize)
 * 
 *     return result             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "View.MemoryView":1205
 * 
 * @cname('__pyx_memoryview_copy_data_to_temp')
 * cdef void *copy_data_to_temp(__Pyx_memviewslice *src,             # <<<<<<<<<<<<<<
 *                              __Pyx_memviewslice *tmpslice,
 *                              char order,
 */

  /* function exit code */
  __pyx_L1_error:;
  #ifdef WITH_THREAD
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_AddTraceback("View.MemoryView.copy_data_to_temp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  __pyx_L0:;
  return __pyx_r;
}

/* "View.MemoryView":1247
 * 
 * @cname('__pyx_memoryview_err_extents')
 * cdef int _err_extents(int i, Py_ssize_t extent1,             # <<<<<<<<<<<<<<
 *                              Py_ssize_t extent2) except -1 with gil:
 *     raise ValueError, f"got differing extents in dimension {i} (got {extent1} and {extent2})"
 */

static int __pyx_memoryview_err_extents(int __pyx_v_i, Py_ssize_t __pyx_v_extent1, Py_ssize_t __pyx_v_extent2) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  Py_UCS4 __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("_err_extents", 0);

  /* "View.MemoryView":1249
 * cdef int _err_extents(int i, Py_ssize_t extent1,
 *                              Py_ssize_t extent2) except -1 with gil:
 *     raise ValueError, f"got differing extents in dimension {i} (got {extent1} and {extent2})"             # <<<<<<<<<<<<<<
 * 
 * @cname('__pyx_memoryview_err_dim')
 */
  __pyx_t_1 = PyTuple_New(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = 0;
  __pyx_t_3 = 127;
  __Pyx_INCREF(__pyx_kp_u_got_differing_extents_in_dimensi);
  __pyx_t_2 += 35;
  __Pyx_GIVEREF(__pyx_kp_u_got_differing_extents_in_dimensi);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_got_differing_extents_in_dimensi);
  __pyx_t_4 = __Pyx_PyUnicode_From_int(__pyx_v_i, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4);
  __pyx_t_4 = 0;
  __Pyx_INCREF(__pyx_kp_u_got);
  __pyx_t_2 += 6;
  __Pyx_GIVEREF(__pyx_kp_u_got);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_got);
  __pyx_t_4 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_extent1, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_4);
  __pyx_t_4 = 0;
  __Pyx_INCREF(__pyx_kp_u_and);
  __pyx_t_2 += 5;
  __Pyx_GIVEREF(__pyx_kp_u_and);
  PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u_and);
  __pyx_t_4 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_extent2, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_t_4);
  __pyx_t_4 = 0;
  __Pyx_INCREF(__pyx_kp_u__7);
  __pyx_t_2 += 1;
  __Pyx_GIVEREF(__pyx_kp_u__7);
  PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_kp_u__7);
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 7, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_4, 0, 0);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __PYX_ERR(3, 1249, __pyx_L1_error)

  /* "View.MemoryView":1247
 * 
 * @cname('__pyx_memoryview_err_extents')
 * cdef int _err_extents(int i, Py_ssize_t extent1,             # <<<<<<<<<<<<<<
 *                              Py_ssize_t extent2) except -1 with gil:
 *     raise ValueError, f"got differing extents in dimension {i} (got {extent1} and {extent2})"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("View.MemoryView._err_extents", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  return __pyx_r;
}

/* "View.MemoryView":1252
 * 
 * @cname('__pyx_memoryview_err_dim')
 * cdef int _err_dim(PyObject *error, str msg, int dim) except -1 with gil:             # <<<<<<<<<<<<<<
 *     raise <object>error, msg % dim
 * 
 */

static int __pyx_memoryview_err_dim(PyObject *__pyx_v_error, PyObject *__pyx_v_msg, int __pyx_v_dim) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("_err_dim", 0);
  __Pyx_INCREF(__pyx_v_msg);

  /* "View.MemoryView":1253
 * @cname('__pyx_memoryview_err_dim')
 * cdef int _err_dim(PyObject *error, str msg, int dim) except -1 with gil:
 *     raise <object>error, msg % dim             # <<<<<<<<<<<<<<
 * 
 * @cname('__pyx_memoryview_err')
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_dim); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_v_msg, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 1253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(((PyObject *)__pyx_v_error), __pyx_t_2, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(3, 1253, __pyx_L1_error)

  /* "View.MemoryView":1252
 * 
 * @cname('__pyx_memoryview_err_dim')
 * cdef int _err_dim(PyObject *error, str msg, int dim) except -1 with gil:             # <<<<<<<<<<<<<<
 *     raise <object>error, msg % dim
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("View.MemoryView._err_dim", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __Pyx_XDECREF(__pyx_v_msg);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  return __pyx_r;
}

/* "View.MemoryView":1256
 * 
 * @cname('__pyx_memoryview_err')
 * cdef int _err(PyObject *error, str msg) except -1 with gil:             # <<<<<<<<<<<<<<
 *     raise <object>error, msg
 * 
 */

static int __pyx_memoryview_err(PyObject *__pyx_v_error, PyObject *__pyx_v_msg) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("_err", 0);
  __Pyx_INCREF(__pyx_v_msg);

  /* "View.MemoryView":1257
 * @cname('__pyx_memoryview_err')
 * cdef int _err(PyObject *error, str msg) except -1 with gil:
 *     raise <object>error, msg             # <<<<<<<<<<<<<<
 * 
 * @cname('__pyx_memoryview_err_no_memory')
 */
  __Pyx_Raise(((PyObject *)__pyx_v_error), __pyx_v_msg, 0, 0);
  __PYX_ERR(3, 1257, __pyx_L1_error)

  /* "View.MemoryView":1256
 * 
 * @cname('__pyx_memoryview_err')
 * cdef int _err(PyObject *error, str msg) except -1 with gil:             # <<<<<<<<<<<<<<
 *     raise <object>error, msg
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("View.MemoryView._err", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __Pyx_XDECREF(__pyx_v_msg);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  return __pyx_r;
}

/* "View.MemoryView":1260
 * 
 * @cname('__pyx_memoryview_err_no_memory')
 * cdef int _err_no_memory() except -1 with gil:             # <<<<<<<<<<<<<<
 *     raise MemoryError
 * 
 */

static int __pyx_memoryview_err_no_memory(void) {
  int __pyx_r;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif

  /* "View.MemoryView":1261
 * @cname('__pyx_memoryview_err_no_memory')
 * cdef int _err_no_memory() except -1 with gil:
 *     raise MemoryError             # <<<<<<<<<<<<<<
 * 
 * 
 */
  PyErr_NoMemory(); __PYX_ERR(3, 1261, __pyx_L1_error)

  /* "View.MemoryView":1260
 * 
 * @cname('__pyx_memoryview_err_no_memory')
 * cdef int _err_no_memory() except -1 with gil:             # <<<<<<<<<<<<<<
 *     raise MemoryError
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("View.MemoryView._err_no_memory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  return __pyx_r;
}

/* "View.MemoryView":1265
 * 
 * @cname('__pyx_memoryview_copy_contents')
 * cdef int memoryview_copy_contents(__Pyx_memviewslice src,             # <<<<<<<<<<<<<<
 *                                   __Pyx_memviewslice dst,
 *                                   int src_ndim, int dst_ndim,
 */

static int __pyx_memoryview_copy_contents(__Pyx_memviewslice __pyx_v_src, __Pyx_memviewslice __pyx_v_dst, int __pyx_v_src_ndim, int __pyx_v_dst_ndim, int __pyx_v_dtype_is_object) {
  void *__pyx_v_tmpdata;
  size_t __pyx_v_itemsize;
  int __pyx_v_i;
  char __pyx_v_order;
  int __pyx_v_broadcasting;
  int __pyx_v_direct_copy;
  __Pyx_memviewslice __pyx_v_tmp;
  int __pyx_v_ndim;
  int __pyx_r;
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  void *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save;
  #endif

  /* "View.MemoryView":1273
 *     Check for overlapping memory and verify the shapes.
 *     """
 *     cdef void *tmpdata = NULL             # <<<<<<<<<<<<<<
 *     cdef size_t itemsize = src.memview.view.itemsize
 *     cdef int i
 */
  __pyx_v_tmpdata = NULL;

  /* "View.MemoryView":1274
 *     """
 *     cdef void *tmpdata = NULL
 *     cdef size_t itemsize = src.memview.view.itemsize             # <<<<<<<<<<<<<<
 *     cdef int i
 *     cdef char order = get_best_order(&src, src_ndim)
 */
  __pyx_t_1 = __pyx_v_src.memview->view.itemsize;
  __pyx_v_itemsize = __pyx_t_1;

  /* "View.MemoryView":1276
 *     cdef size_t itemsize = src.memview.view.itemsize
 *     cdef int i
 *     cdef char order = get_best_order(&src, src_ndim)             # <<<<<<<<<<<<<<
 *     cdef bint broadcasting = False
 *     cdef bint direct_copy = False
 */
  __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_src), __pyx_v_src_ndim);

  /* "View.MemoryView":1277
 *     cdef int i
 *     cdef char order = get_best_order(&src, src_ndim)
 *     cdef bint broadcasting = False             # <<<<<<<<<<<<<<
 *     cdef bint direct_copy = False
 *     cdef __Pyx_memviewslice tmp
 */
  __pyx_v_broadcasting = 0;

  /* "View.MemoryView":1278
 *     cdef char order = get_best_order(&src, src_ndim)
 *     cdef bint broadcasting = False
 *     cdef bint direct_copy = False             # <<<<<<<<<<<<<<
 *     cdef __Pyx_memviewslice tmp
 * 
 */
  __pyx_v_direct_copy = 0;

  /* "View.MemoryView":1281
 *     cdef __Pyx_memviewslice tmp
 * 
 *     if src_ndim < dst_ndim:             # <<<<<<<<<<<<<<
 *         broadcast_leading(&src, src_ndim, dst_ndim)
 *     elif dst_ndim < src_ndim:
 */
  __pyx_t_2 = (__pyx_v_src_ndim < __pyx_v_dst_ndim);
  if (__pyx_t_2) {

    /* "View.MemoryView":1282
 * 
 *     if src_ndim < dst_ndim:
 *         broadcast_leading(&src, src_ndim, dst_ndim)             # <<<<<<<<<<<<<<
 *     elif dst_ndim < src_ndim:
 *         broadcast_leading(&dst, dst_ndim, src_ndim)
 */
    __pyx_memoryview_broadcast_leading((&__pyx_v_src), __pyx_v_src_ndim, __pyx_v_dst_ndim);

    /* "View.MemoryView":1281
 *     cdef __Pyx_memviewslice tmp
 * 
 *     if src_ndim < dst_ndim:             # <<<<<<<<<<<<<<
 *         broadcast_leading(&src, src_ndim, dst_ndim)
 *     elif dst_ndim < src_ndim:
 */
    goto __pyx_L3;
  }

  /* "View.MemoryView":1283
 *     if src_ndim < dst_ndim:
 *         broadcast_leading(&src, src_ndim, dst_ndim)
 *     elif dst_ndim < src_ndim:             # <<<<<<<<<<<<<<
 *         broadcast_leading(&dst, dst_ndim, src_ndim)
 * 
 */
  __pyx_t_2 = (__pyx_v_dst_ndim < __pyx_v_src_ndim);
  if (__pyx_t_2) {

    /* "View.MemoryView":1284
 *         broadcast_leading(&src, src_ndim, dst_ndim)
 *     elif dst_ndim < src_ndim:
 *         broadcast_leading(&dst, dst_ndim, src_ndim)             # <<<<<<<<<<<<<<
 * 
 *     cdef int ndim = max(src_ndim, dst_ndim)
 */
    __pyx_memoryview_broadcast_leading((&__pyx_v_dst), __pyx_v_dst_ndim, __pyx_v_src_ndim);

    /* "View.MemoryView":1283
 *     if src_ndim < dst_ndim:
 *         broadcast_leading(&src, src_ndim, dst_ndim)
 *     elif dst_ndim < src_ndim:             # <<<<<<<<<<<<<<
 *         broadcast_leading(&dst, dst_ndim, src_ndim)
 * 
 */
  }
  __pyx_L3:;

  /* "View.MemoryView":1286
 *         broadcast_leading(&dst, dst_ndim, src_ndim)
 * 
 *     cdef int ndim = max(src_ndim, dst_ndim)             # <<<<<<<<<<<<<<
 * 
 *     for i in range(ndim):
 */
  __pyx_t_3 = __pyx_v_dst_ndim;
  __pyx_t_4 = __pyx_v_src_ndim;
  __pyx_t_2 = (__pyx_t_3 > __pyx_t_4);
  if (__pyx_t_2) {
    __pyx_t_5 = __pyx_t_3;
  } else {
    __pyx_t_5 = __pyx_t_4;
  }
  __pyx_v_ndim = __pyx_t_5;

  /* "View.MemoryView":1288
 *     cdef int ndim = max(src_ndim, dst_ndim)
 * 
 *     for i in range(ndim):             # <<<<<<<<<<<<<<
 *         if src.shape[i] != dst.shape[i]:
 *             if src.shape[i] == 1:
 */
  __pyx_t_5 = __pyx_v_ndim;
  __pyx_t_3 = __pyx_t_5;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "View.MemoryView":1289
 * 
 *     for i in range(ndim):
 *         if src.shape[i] != dst.shape[i]:             # <<<<<<<<<<<<<<
 *             if src.shape[i] == 1:
 *                 broadcasting = True
 */
    __pyx_t_2 = ((__pyx_v_src.shape[__pyx_v_i]) != (__pyx_v_dst.shape[__pyx_v_i]));
    if (__pyx_t_2) {

      /* "View.MemoryView":1290
 *     for i in range(ndim):
 *         if src.shape[i] != dst.shape[i]:
 *             if src.shape[i] == 1:             # <<<<<<<<<<<<<<
 *                 broadcasting = True
 *                 src.strides[i] = 0
 */
      __pyx_t_2 = ((__pyx_v_src.shape[__pyx_v_i]) == 1);
      if (__pyx_t_2) {

        /* "View.MemoryView":1291
 *         if src.shape[i] != dst.shape[i]:
 *             if src.shape[i] == 1:
 *                 broadcasting = True             # <<<<<<<<<<<<<<
 *                 src.strides[i] = 0
 *             else:
 */
        __pyx_v_broadcasting = 1;

        /* "View.MemoryView":1292
 *             if src.shape[i] == 1:
 *                 broadcasting = True
 *                 src.strides[i] = 0             # <<<<<<<<<<<<<<
 *             else:
 *                 _err_extents(i, dst.shape[i], src.shape[i])
 */
        (__pyx_v_src.strides[__pyx_v_i]) = 0;

        /* "View.MemoryView":1290
 *     for i in range(ndim):
 *         if src.shape[i] != dst.shape[i]:
 *             if src.shape[i] == 1:             # <<<<<<<<<<<<<<
 *                 broadcasting = True
 *                 src.strides[i] = 0
 */
        goto __pyx_L7;
      }

      /* "View.MemoryView":1294
 *                 src.strides[i] = 0
 *             else:
 *                 _err_extents(i, dst.shape[i], src.shape[i])             # <<<<<<<<<<<<<<
 * 
 *         if src.suboffsets[i] >= 0:
 */
      /*else*/ {
        __pyx_t_6 = __pyx_memoryview_err_extents(__pyx_v_i, (__pyx_v_dst.shape[__pyx_v_i]), (__pyx_v_src.shape[__pyx_v_i])); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 1294, __pyx_L1_error)
      }
      __pyx_L7:;

      /* "View.MemoryView":1289
 * 
 *     for i in range(ndim):
 *         if src.shape[i] != dst.shape[i]:             # <<<<<<<<<<<<<<
 *             if src.shape[i] == 1:
 *                 broadcasting = True
 */
    }

    /* "View.MemoryView":1296
 *                 _err_extents(i, dst.shape[i], src.shape[i])
 * 
 *         if src.suboffsets[i] >= 0:             # <<<<<<<<<<<<<<
 *             _err_dim(PyExc_ValueError, "Dimension %d is not direct", i)
 * 
 */
    __pyx_t_2 = ((__pyx_v_src.suboffsets[__pyx_v_i]) >= 0);
    if (__pyx_t_2) {

      /* "View.MemoryView":1297
 * 
 *         if src.suboffsets[i] >= 0:
 *             _err_dim(PyExc_ValueError, "Dimension %d is not direct", i)             # <<<<<<<<<<<<<<
 * 
 *     if slices_overlap(&src, &dst, ndim, itemsize):
 */
      __pyx_t_6 = __pyx_memoryview_err_dim(PyExc_ValueError, __pyx_kp_s_Dimension_d_is_not_direct, __pyx_v_i); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 1297, __pyx_L1_error)

      /* "View.MemoryView":1296
 *                 _err_extents(i, dst.shape[i], src.shape[i])
 * 
 *         if src.suboffsets[i] >= 0:             # <<<<<<<<<<<<<<
 *             _err_dim(PyExc_ValueError, "Dimension %d is not direct", i)
 * 
 */
    }
  }

  /* "View.MemoryView":1299
 *             _err_dim(PyExc_ValueError, "Dimension %d is not direct", i)
 * 
 *     if slices_overlap(&src, &dst, ndim, itemsize):             # <<<<<<<<<<<<<<
 * 
 *         if not slice_is_contig(src, order, ndim):
 */
  __pyx_t_2 = __pyx_slices_overlap((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize);
  if (__pyx_t_2) {

    /* "View.MemoryView":1301
 *     if slices_overlap(&src, &dst, ndim, itemsize):
 * 
 *         if not slice_is_contig(src, order, ndim):             # <<<<<<<<<<<<<<
 *             order = get_best_order(&dst, ndim)
 * 
 */
    __pyx_t_2 = (!__pyx_memviewslice_is_contig(__pyx_v_src, __pyx_v_order, __pyx_v_ndim));
    if (__pyx_t_2) {

      /* "View.MemoryView":1302
 * 
 *         if not slice_is_contig(src, order, ndim):
 *             order = get_best_order(&dst, ndim)             # <<<<<<<<<<<<<<
 * 
 *         tmpdata = copy_data_to_temp(&src, &tmp, order, ndim)
 */
      __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim);

      /* "View.MemoryView":1301
 *     if slices_overlap(&src, &dst, ndim, itemsize):
 * 
 *         if not slice_is_contig(src, order, ndim):             # <<<<<<<<<<<<<<
 *             order = get_best_order(&dst, ndim)
 * 
 */
    }

    /* "View.MemoryView":1304
 *             order = get_best_order(&dst, ndim)
 * 
 *         tmpdata = copy_data_to_temp(&src, &tmp, order, ndim)             # <<<<<<<<<<<<<<
 *         src = tmp
 * 
 */
    __pyx_t_7 = __pyx_memoryview_copy_data_to_temp((&__pyx_v_src), (&__pyx_v_tmp), __pyx_v_order, __pyx_v_ndim); if (unlikely(__pyx_t_7 == ((void *)NULL))) __PYX_ERR(3, 1304, __pyx_L1_error)
    __pyx_v_tmpdata = __pyx_t_7;

    /* "View.MemoryView":1305
 * 
 *         tmpdata = copy_data_to_temp(&src, &tmp, order, ndim)
 *         src = tmp             # <<<<<<<<<<<<<<
 * 
 *     if not broadcasting:
 */
    __pyx_v_src = __pyx_v_tmp;

    /* "View.MemoryView":1299
 *             _err_dim(PyExc_ValueError, "Dimension %d is not direct", i)
 * 
 *     if slices_overlap(&src, &dst, ndim, itemsize):             # <<<<<<<<<<<<<<
 * 
 *         if not slice_is_contig(src, order, ndim):
 */
  }

  /* "View.MemoryView":1307
 *         src = tmp
 * 
 *     if not broadcasting:             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = (!__pyx_v_broadcasting);
  if (__pyx_t_2) {

    /* "View.MemoryView":1310
 * 
 * 
 *         if slice_is_contig(src, 'C', ndim):             # <<<<<<<<<<<<<<
 *             direct_copy = slice_is_contig(dst, 'C', ndim)
 *         elif slice_is_contig(src, 'F', ndim):
 */
    __pyx_t_2 = __pyx_memviewslice_is_contig(__pyx_v_src, 'C', __pyx_v_ndim);
    if (__pyx_t_2) {

      /* "View.MemoryView":1311
 * 
 *         if slice_is_contig(src, 'C', ndim):
 *             direct_copy = slice_is_contig(dst, 'C', ndim)             # <<<<<<<<<<<<<<
 *         elif slice_is_contig(src, 'F', ndim):
 *             direct_copy = slice_is_contig(dst, 'F', ndim)
 */
      __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'C', __pyx_v_ndim);

      /* "View.MemoryView":1310
 * 
 * 
 *         if slice_is_contig(src, 'C', ndim):             # <<<<<<<<<<<<<<
 *             direct_copy = slice_is_contig(dst, 'C', ndim)
 *         elif slice_is_contig(src, 'F', ndim):
 */
      goto __pyx_L12;
    }

    /* "View.MemoryView":1312
 *         if slice_is_contig(src, 'C', ndim):
 *             direct_copy = slice_is_contig(dst, 'C', ndim)
 *         elif slice_is_contig(src, 'F', ndim):             # <<<<<<<<<<<<<<
 *             direct_copy = slice_is_contig(dst, 'F', ndim)
 * 
 */
    __pyx_t_2 = __pyx_memviewslice_is_contig(__pyx_v_src, 'F', __pyx_v_ndim);
    if (__pyx_t_2) {

      /* "View.MemoryView":1313
 *             direct_copy = slice_is_contig(dst, 'C', ndim)
 *         elif slice_is_contig(src, 'F', ndim):
 *             direct_copy = slice_is_contig(dst, 'F', ndim)             # <<<<<<<<<<<<<<
 * 
 *         if direct_copy:
 */
      __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'F', __pyx_v_ndim);

      /* "View.MemoryView":1312
 *         if slice_is_contig(src, 'C', ndim):
 *             direct_copy = slice_is_contig(dst, 'C', ndim)
 *         elif slice_is_contig(src, 'F', ndim):             # <<<<<<<<<<<<<<
 *             direct_copy = slice_is_contig(dst, 'F', ndim)
 * 
 */
    }
    __pyx_L12:;

    /* "View.MemoryView":1315
 *             direct_copy = slice_is_contig(dst, 'F', ndim)
 * 
 *         if direct_copy:             # <<<<<<<<<<<<<<
 * 
 *             refcount_copying(&dst, dtype_is_object, ndim, inc=False)
 */
    if (__pyx_v_direct_copy) {

      /* "View.MemoryView":1317
 *         if direct_copy:
 * 
 *             refcount_copying(&dst, dtype_is_object, ndim, inc=False)             # <<<<<<<<<<<<<<
 *             memcpy(dst.data, src.data, slice_get_size(&src, ndim))
 *             refcount_copying(&dst, dtype_is_object, ndim, inc=True)
 */
      __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0);

      /* "View.MemoryView":1318
 * 
 *             refcount_copying(&dst, dtype_is_object, ndim, inc=False)
 *             memcpy(dst.data, src.data, slice_get_size(&src, ndim))             # <<<<<<<<<<<<<<
 *             refcount_copying(&dst, dtype_is_object, ndim, inc=True)
 *             free(tmpdata)
 */
      (void)(memcpy(__pyx_v_dst.data, __pyx_v_src.data, __pyx_memoryview_slice_get_size((&__pyx_v_src), __pyx_v_ndim)));

      /* "View.MemoryView":1319
 *             refcount_copying(&dst, dtype_is_object, ndim, inc=False)
 *             memcpy(dst.data, src.data, slice_get_size(&src, ndim))
 *             refcount_copying(&dst, dtype_is_object, ndim, inc=True)             # <<<<<<<<<<<<<<
 *             free(tmpdata)
 *             return 0
 */
      __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1);

      /* "View.MemoryView":1320
 *             memcpy(dst.data, src.data, slice_get_size(&src, ndim))
 *             refcount_copying(&dst, dtype_is_object, ndim, inc=True)
 *             free(tmpdata)             # <<<<<<<<<<<<<<
 *             return 0
 * 
 */
      free(__pyx_v_tmpdata);

      /* "View.MemoryView":1321
 *             refcount_copying(&dst, dtype_is_object, ndim, inc=True)
 *             free(tmpdata)
 *             return 0             # <<<<<<<<<<<<<<
 * 
 *     if order == 'F' == get_best_order(&dst, ndim):
 */
      __pyx_r = 0;
      goto __pyx_L0;

      /* "View.MemoryView":1315
 *             direct_copy = slice_is_contig(dst, 'F', ndim)
 * 
 *         if direct_copy:             # <<<<<<<<<<<<<<
 * 
 *             refcount_copying(&dst, dtype_is_object, ndim, inc=False)
 */
    }

    /* "View.MemoryView":1307
 *         src = tmp
 * 
 *     if not broadcasting:             # <<<<<<<<<<<<<<
 * 
 * 
 */
  }

  /* "View.MemoryView":1323
 *             return 0
 * 
 *     if order == 'F' == get_best_order(&dst, ndim):             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = (__pyx_v_order == 'F');
  if (__pyx_t_2) {
    __pyx_t_2 = ('F' == __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim));
  }
  if (__pyx_t_2) {

    /* "View.MemoryView":1326
 * 
 * 
 *         transpose_memslice(&src)             # <<<<<<<<<<<<<<
 *         transpose_memslice(&dst)
 * 
 */
    __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_src)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(3, 1326, __pyx_L1_error)

    /* "View.MemoryView":1327
 * 
 *         transpose_memslice(&src)
 *         transpose_memslice(&dst)             # <<<<<<<<<<<<<<
 * 
 *     refcount_copying(&dst, dtype_is_object, ndim, inc=False)
 */
    __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_dst)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(3, 1327, __pyx_L1_error)

    /* "View.MemoryView":1323
 *             return 0
 * 
 *     if order == 'F' == get_best_order(&dst, ndim):             # <<<<<<<<<<<<<<
 * 
 * 
 */
  }

  /* "View.MemoryView":1329
 *         transpose_memslice(&dst)
 * 
 *     refcount_copying(&dst, dtype_is_object, ndim, inc=False)             # <<<<<<<<<<<<<<
 *     copy_strided_to_strided(&src, &dst, ndim, itemsize)
 *     refcount_copying(&dst, dtype_is_object, ndim, inc=True)
 */
  __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0);

  /* "View.MemoryView":1330
 * 
 *     refcount_copying(&dst, dtype_is_object, ndim, inc=False)
 *     copy_strided_to_strided(&src, &dst, ndim, itemsize)             # <<<<<<<<<<<<<<
 *     refcount_copying(&dst, dtype_is_object, ndim, inc=True)
 * 
 */
  copy_strided_to_strided((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize);

  /* "View.MemoryView":1331
 *     refcount_copying(&dst, dtype_is_object, ndim, inc=False)
 *     copy_strided_to_strided(&src, &dst, ndim, itemsize)
 *     refcount_copying(&dst, dtype_is_object, ndim, inc=True)             # <<<<<<<<<<<<<<
 * 
 *     free(tmpdata)
 */
  __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1);

  /* "View.MemoryView":1333
 *     refcount_copying(&dst, dtype_is_object, ndim, inc=True)
 * 
 *     free(tmpdata)             # <<<<<<<<<<<<<<
 *     return 0
 * 
 */
  free(__pyx_v_tmpdata);

  /* "View.MemoryView":1334
 * 
 *     free(tmpdata)
 *     return 0             # <<<<<<<<<<<<<<
 * 
 * @cname('__pyx_memoryview_broadcast_leading')
 */
  __pyx_r = 0;
  goto __pyx_L0;

  /* "View.MemoryView":1265
 * 
 * @cname('__pyx_memoryview_copy_contents')
 * cdef int memoryview_copy_contents(__Pyx_memviewslice src,             # <<<<<<<<<<<<<<
 *                                   __Pyx_memviewslice dst,
 *                                   int src_ndim, int dst_ndim,
 */

  /* function exit code */
  __pyx_L1_error:;
  #ifdef WITH_THREAD
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_AddTraceback("View.MemoryView.memoryview_copy_contents", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  __pyx_L0:;
  return __pyx_r;
}

/* "View.MemoryView":1337
 * 
 * @cname('__pyx_memoryview_broadcast_leading')
 * cdef void broadcast_leading(__Pyx_memviewslice *mslice,             # <<<<<<<<<<<<<<
 *                             int ndim,
 *                             int ndim_other) noexcept nogil:
 */

static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim, int __pyx_v_ndim_other) {
  int __pyx_v_i;
  int __pyx_v_offset;
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;

  /* "View.MemoryView":1341
 *                             int ndim_other) noexcept nogil:
 *     cdef int i
 *     cdef int offset = ndim_other - ndim             # <<<<<<<<<<<<<<
 * 
 *     for i in range(ndim - 1, -1, -1):
 */
  __pyx_v_offset = (__pyx_v_ndim_other - __pyx_v_ndim);

  /* "View.MemoryView":1343
 *     cdef int offset = ndim_other - ndim
 * 
 *     for i in range(ndim - 1, -1, -1):             # <<<<<<<<<<<<<<
 *         mslice.shape[i + offset] = mslice.shape[i]
 *         mslice.strides[i + offset] = mslice.strides[i]
 */
  for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) {
    __pyx_v_i = __pyx_t_1;

    /* "View.MemoryView":1344
 * 
 *     for i in range(ndim - 1, -1, -1):
 *         mslice.shape[i + offset] = mslice.shape[i]             # <<<<<<<<<<<<<<
 *         mslice.strides[i + offset] = mslice.strides[i]
 *         mslice.suboffsets[i + offset] = mslice.suboffsets[i]
 */
    (__pyx_v_mslice->shape[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->shape[__pyx_v_i]);

    /* "View.MemoryView":1345
 *     for i in range(ndim - 1, -1, -1):
 *         mslice.shape[i + offset] = mslice.shape[i]
 *         mslice.strides[i + offset] = mslice.strides[i]             # <<<<<<<<<<<<<<
 *         mslice.suboffsets[i + offset] = mslice.suboffsets[i]
 * 
 */
    (__pyx_v_mslice->strides[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->strides[__pyx_v_i]);

    /* "View.MemoryView":1346
 *         mslice.shape[i + offset] = mslice.shape[i]
 *         mslice.strides[i + offset] = mslice.strides[i]
 *         mslice.suboffsets[i + offset] = mslice.suboffsets[i]             # <<<<<<<<<<<<<<
 * 
 *     for i in range(offset):
 */
    (__pyx_v_mslice->suboffsets[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->suboffsets[__pyx_v_i]);
  }

  /* "View.MemoryView":1348
 *         mslice.suboffsets[i + offset] = mslice.suboffsets[i]
 * 
 *     for i in range(offset):             # <<<<<<<<<<<<<<
 *         mslice.shape[i] = 1
 *         mslice.strides[i] = mslice.strides[0]
 */
  __pyx_t_1 = __pyx_v_offset;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_i = __pyx_t_3;

    /* "View.MemoryView":1349
 * 
 *     for i in range(offset):
 *         mslice.shape[i] = 1             # <<<<<<<<<<<<<<
 *         mslice.strides[i] = mslice.strides[0]
 *         mslice.suboffsets[i] = -1
 */
    (__pyx_v_mslice->shape[__pyx_v_i]) = 1;

    /* "View.MemoryView":1350
 *     for i in range(offset):
 *         mslice.shape[i] = 1
 *         mslice.strides[i] = mslice.strides[0]             # <<<<<<<<<<<<<<
 *         mslice.suboffsets[i] = -1
 * 
 */
    (__pyx_v_mslice->strides[__pyx_v_i]) = (__pyx_v_mslice->strides[0]);

    /* "View.MemoryView":1351
 *         mslice.shape[i] = 1
 *         mslice.strides[i] = mslice.strides[0]
 *         mslice.suboffsets[i] = -1             # <<<<<<<<<<<<<<
 * 
 * 
 */
    (__pyx_v_mslice->suboffsets[__pyx_v_i]) = -1L;
  }

  /* "View.MemoryView":1337
 * 
 * @cname('__pyx_memoryview_broadcast_leading')
 * cdef void broadcast_leading(__Pyx_memviewslice *mslice,             # <<<<<<<<<<<<<<
 *                             int ndim,
 *                             int ndim_other) noexcept nogil:
 */

  /* function exit code */
}

/* "View.MemoryView":1359
 * 
 * @cname('__pyx_memoryview_refcount_copying')
 * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, int ndim, bint inc) noexcept nogil:             # <<<<<<<<<<<<<<
 * 
 *     if dtype_is_object:
 */

static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_dtype_is_object, int __pyx_v_ndim, int __pyx_v_inc) {

  /* "View.MemoryView":1361
 * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, int ndim, bint inc) noexcept nogil:
 * 
 *     if dtype_is_object:             # <<<<<<<<<<<<<<
 *         refcount_objects_in_slice_with_gil(dst.data, dst.shape, dst.strides, ndim, inc)
 * 
 */
  if (__pyx_v_dtype_is_object) {

    /* "View.MemoryView":1362
 * 
 *     if dtype_is_object:
 *         refcount_objects_in_slice_with_gil(dst.data, dst.shape, dst.strides, ndim, inc)             # <<<<<<<<<<<<<<
 * 
 * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil')
 */
    __pyx_memoryview_refcount_objects_in_slice_with_gil(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_inc);

    /* "View.MemoryView":1361
 * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, int ndim, bint inc) noexcept nogil:
 * 
 *     if dtype_is_object:             # <<<<<<<<<<<<<<
 *         refcount_objects_in_slice_with_gil(dst.data, dst.shape, dst.strides, ndim, inc)
 * 
 */
  }

  /* "View.MemoryView":1359
 * 
 * @cname('__pyx_memoryview_refcount_copying')
 * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, int ndim, bint inc) noexcept nogil:             # <<<<<<<<<<<<<<
 * 
 *     if dtype_is_object:
 */

  /* function exit code */
}

/* "View.MemoryView":1365
 * 
 * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil')
 * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape,             # <<<<<<<<<<<<<<
 *                                              Py_ssize_t *strides, int ndim,
 *                                              bint inc) noexcept with gil:
 */

static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) {
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif

  /* "View.MemoryView":1368
 *                                              Py_ssize_t *strides, int ndim,
 *                                              bint inc) noexcept with gil:
 *     refcount_objects_in_slice(data, shape, strides, ndim, inc)             # <<<<<<<<<<<<<<
 * 
 * @cname('__pyx_memoryview_refcount_objects_in_slice')
 */
  __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, __pyx_v_shape, __pyx_v_strides, __pyx_v_ndim, __pyx_v_inc);

  /* "View.MemoryView":1365
 * 
 * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil')
 * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape,             # <<<<<<<<<<<<<<
 *                                              Py_ssize_t *strides, int ndim,
 *                                              bint inc) noexcept with gil:
 */

  /* function exit code */
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "View.MemoryView":1371
 * 
 * @cname('__pyx_memoryview_refcount_objects_in_slice')
 * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape,             # <<<<<<<<<<<<<<
 *                                     Py_ssize_t *strides, int ndim, bint inc) noexcept:
 *     cdef Py_ssize_t i
 */

static void __pyx_memoryview_refcount_objects_in_slice(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) {
  CYTHON_UNUSED Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_stride;
  Py_ssize_t __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;

  /* "View.MemoryView":1374
 *                                     Py_ssize_t *strides, int ndim, bint inc) noexcept:
 *     cdef Py_ssize_t i
 *     cdef Py_ssize_t stride = strides[0]             # <<<<<<<<<<<<<<
 * 
 *     for i in range(shape[0]):
 */
  __pyx_v_stride = (__pyx_v_strides[0]);

  /* "View.MemoryView":1376
 *     cdef Py_ssize_t stride = strides[0]
 * 
 *     for i in range(shape[0]):             # <<<<<<<<<<<<<<
 *         if ndim == 1:
 *             if inc:
 */
  __pyx_t_1 = (__pyx_v_shape[0]);
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_i = __pyx_t_3;

    /* "View.MemoryView":1377
 * 
 *     for i in range(shape[0]):
 *         if ndim == 1:             # <<<<<<<<<<<<<<
 *             if inc:
 *                 Py_INCREF((<PyObject **> data)[0])
 */
    __pyx_t_4 = (__pyx_v_ndim == 1);
    if (__pyx_t_4) {

      /* "View.MemoryView":1378
 *     for i in range(shape[0]):
 *         if ndim == 1:
 *             if inc:             # <<<<<<<<<<<<<<
 *                 Py_INCREF((<PyObject **> data)[0])
 *             else:
 */
      if (__pyx_v_inc) {

        /* "View.MemoryView":1379
 *         if ndim == 1:
 *             if inc:
 *                 Py_INCREF((<PyObject **> data)[0])             # <<<<<<<<<<<<<<
 *             else:
 *                 Py_DECREF((<PyObject **> data)[0])
 */
        Py_INCREF((((PyObject **)__pyx_v_data)[0]));

        /* "View.MemoryView":1378
 *     for i in range(shape[0]):
 *         if ndim == 1:
 *             if inc:             # <<<<<<<<<<<<<<
 *                 Py_INCREF((<PyObject **> data)[0])
 *             else:
 */
        goto __pyx_L6;
      }

      /* "View.MemoryView":1381
 *                 Py_INCREF((<PyObject **> data)[0])
 *             else:
 *                 Py_DECREF((<PyObject **> data)[0])             # <<<<<<<<<<<<<<
 *         else:
 *             refcount_objects_in_slice(data, shape + 1, strides + 1, ndim - 1, inc)
 */
      /*else*/ {
        Py_DECREF((((PyObject **)__pyx_v_data)[0]));
      }
      __pyx_L6:;

      /* "View.MemoryView":1377
 * 
 *     for i in range(shape[0]):
 *         if ndim == 1:             # <<<<<<<<<<<<<<
 *             if inc:
 *                 Py_INCREF((<PyObject **> data)[0])
 */
      goto __pyx_L5;
    }

    /* "View.MemoryView":1383
 *                 Py_DECREF((<PyObject **> data)[0])
 *         else:
 *             refcount_objects_in_slice(data, shape + 1, strides + 1, ndim - 1, inc)             # <<<<<<<<<<<<<<
 * 
 *         data += stride
 */
    /*else*/ {
      __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_inc);
    }
    __pyx_L5:;

    /* "View.MemoryView":1385
 *             refcount_objects_in_slice(data, shape + 1, strides + 1, ndim - 1, inc)
 * 
 *         data += stride             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_v_data = (__pyx_v_data + __pyx_v_stride);
  }

  /* "View.MemoryView":1371
 * 
 * @cname('__pyx_memoryview_refcount_objects_in_slice')
 * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape,             # <<<<<<<<<<<<<<
 *                                     Py_ssize_t *strides, int ndim, bint inc) noexcept:
 *     cdef Py_ssize_t i
 */

  /* function exit code */
}

/* "View.MemoryView":1391
 * 
 * @cname('__pyx_memoryview_slice_assign_scalar')
 * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim,             # <<<<<<<<<<<<<<
 *                               size_t itemsize, void *item,
 *                               bint dtype_is_object) noexcept nogil:
 */

static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item, int __pyx_v_dtype_is_object) {

  /* "View.MemoryView":1394
 *                               size_t itemsize, void *item,
 *                               bint dtype_is_object) noexcept nogil:
 *     refcount_copying(dst, dtype_is_object, ndim, inc=False)             # <<<<<<<<<<<<<<
 *     _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, itemsize, item)
 *     refcount_copying(dst, dtype_is_object, ndim, inc=True)
 */
  __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 0);

  /* "View.MemoryView":1395
 *                               bint dtype_is_object) noexcept nogil:
 *     refcount_copying(dst, dtype_is_object, ndim, inc=False)
 *     _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, itemsize, item)             # <<<<<<<<<<<<<<
 *     refcount_copying(dst, dtype_is_object, ndim, inc=True)
 * 
 */
  __pyx_memoryview__slice_assign_scalar(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_itemsize, __pyx_v_item);

  /* "View.MemoryView":1396
 *     refcount_copying(dst, dtype_is_object, ndim, inc=False)
 *     _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, itemsize, item)
 *     refcount_copying(dst, dtype_is_object, ndim, inc=True)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 1);

  /* "View.MemoryView":1391
 * 
 * @cname('__pyx_memoryview_slice_assign_scalar')
 * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim,             # <<<<<<<<<<<<<<
 *                               size_t itemsize, void *item,
 *                               bint dtype_is_object) noexcept nogil:
 */

  /* function exit code */
}

/* "View.MemoryView":1400
 * 
 * @cname('__pyx_memoryview__slice_assign_scalar')
 * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape,             # <<<<<<<<<<<<<<
 *                               Py_ssize_t *strides, int ndim,
 *                               size_t itemsize, void *item) noexcept nogil:
 */

static void __pyx_memoryview__slice_assign_scalar(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item) {
  CYTHON_UNUSED Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_stride;
  Py_ssize_t __pyx_v_extent;
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;

  /* "View.MemoryView":1404
 *                               size_t itemsize, void *item) noexcept nogil:
 *     cdef Py_ssize_t i
 *     cdef Py_ssize_t stride = strides[0]             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t extent = shape[0]
 * 
 */
  __pyx_v_stride = (__pyx_v_strides[0]);

  /* "View.MemoryView":1405
 *     cdef Py_ssize_t i
 *     cdef Py_ssize_t stride = strides[0]
 *     cdef Py_ssize_t extent = shape[0]             # <<<<<<<<<<<<<<
 * 
 *     if ndim == 1:
 */
  __pyx_v_extent = (__pyx_v_shape[0]);

  /* "View.MemoryView":1407
 *     cdef Py_ssize_t extent = shape[0]
 * 
 *     if ndim == 1:             # <<<<<<<<<<<<<<
 *         for i in range(extent):
 *             memcpy(data, item, itemsize)
 */
  __pyx_t_1 = (__pyx_v_ndim == 1);
  if (__pyx_t_1) {

    /* "View.MemoryView":1408
 * 
 *     if ndim == 1:
 *         for i in range(extent):             # <<<<<<<<<<<<<<
 *             memcpy(data, item, itemsize)
 *             data += stride
 */
    __pyx_t_2 = __pyx_v_extent;
    __pyx_t_3 = __pyx_t_2;
    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
      __pyx_v_i = __pyx_t_4;

      /* "View.MemoryView":1409
 *     if ndim == 1:
 *         for i in range(extent):
 *             memcpy(data, item, itemsize)             # <<<<<<<<<<<<<<
 *             data += stride
 *     else:
 */
      (void)(memcpy(__pyx_v_data, __pyx_v_item, __pyx_v_itemsize));

      /* "View.MemoryView":1410
 *         for i in range(extent):
 *             memcpy(data, item, itemsize)
 *             data += stride             # <<<<<<<<<<<<<<
 *     else:
 *         for i in range(extent):
 */
      __pyx_v_data = (__pyx_v_data + __pyx_v_stride);
    }

    /* "View.MemoryView":1407
 *     cdef Py_ssize_t extent = shape[0]
 * 
 *     if ndim == 1:             # <<<<<<<<<<<<<<
 *         for i in range(extent):
 *             memcpy(data, item, itemsize)
 */
    goto __pyx_L3;
  }

  /* "View.MemoryView":1412
 *             data += stride
 *     else:
 *         for i in range(extent):             # <<<<<<<<<<<<<<
 *             _slice_assign_scalar(data, shape + 1, strides + 1, ndim - 1, itemsize, item)
 *             data += stride
 */
  /*else*/ {
    __pyx_t_2 = __pyx_v_extent;
    __pyx_t_3 = __pyx_t_2;
    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
      __pyx_v_i = __pyx_t_4;

      /* "View.MemoryView":1413
 *     else:
 *         for i in range(extent):
 *             _slice_assign_scalar(data, shape + 1, strides + 1, ndim - 1, itemsize, item)             # <<<<<<<<<<<<<<
 *             data += stride
 * 
 */
      __pyx_memoryview__slice_assign_scalar(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize, __pyx_v_item);

      /* "View.MemoryView":1414
 *         for i in range(extent):
 *             _slice_assign_scalar(data, shape + 1, strides + 1, ndim - 1, itemsize, item)
 *             data += stride             # <<<<<<<<<<<<<<
 * 
 * 
 */
      __pyx_v_data = (__pyx_v_data + __pyx_v_stride);
    }
  }
  __pyx_L3:;

  /* "View.MemoryView":1400
 * 
 * @cname('__pyx_memoryview__slice_assign_scalar')
 * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape,             # <<<<<<<<<<<<<<
 *                               Py_ssize_t *strides, int ndim,
 *                               size_t itemsize, void *item) noexcept nogil:
 */

  /* function exit code */
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum = {"__pyx_unpickle_Enum", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Enum (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 1); __PYX_ERR(3, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 2); __PYX_ERR(3, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Enum") < 0)) __PYX_ERR(3, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(3, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Enum", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x82a3537, 0x6ae9995, 0xb068931):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__8, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(3, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x82a3537, 0x6ae9995, 0xb068931):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
 *     __pyx_result = Enum.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(3, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x82a3537, 0x6ae9995, 0xb068931):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Enum.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(3, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x82a3537, 0x6ae9995, 0xb068931):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
 *     __pyx_result = Enum.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_MemviewEnum_type), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
 *     __pyx_result = Enum.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Enum.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(3, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_unpickle_Enum__set_state(((struct __pyx_MemviewEnum_obj *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
 *     __pyx_result = Enum.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
 *     __pyx_result.name = __pyx_state[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.name = __pyx_state[0]
 *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Enum__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
 *     __pyx_result.name = __pyx_state[0]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[1])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(3, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->name);
  __Pyx_DECREF(__pyx_v___pyx_result->name);
  __pyx_v___pyx_result->name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
 *     __pyx_result.name = __pyx_state[0]
 *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[1])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(3, 13, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(3, 13, __pyx_L1_error)
  __pyx_t_4 = (__pyx_t_3 > 1);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 13, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":14
 *     __pyx_result.name = __pyx_state[0]
 *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[1])             # <<<<<<<<<<<<<<
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_update); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(3, 14, __pyx_L1_error)
    }
    __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
 *     __pyx_result.name = __pyx_state[0]
 *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[1])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.name = __pyx_state[0]
 *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "BufferFormatFromTypeInfo":1450
 * 
 * @cname('__pyx_format_from_typeinfo')
 * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type):             # <<<<<<<<<<<<<<
 *     cdef __Pyx_StructField *field
 *     cdef __pyx_typeinfo_string fmt
 */

static PyObject *__pyx_format_from_typeinfo(__Pyx_TypeInfo *__pyx_v_type) {
  __Pyx_StructField *__pyx_v_field;
  struct __pyx_typeinfo_string __pyx_v_fmt;
  PyObject *__pyx_v_part = 0;
  PyObject *__pyx_v_result = 0;
  PyObject *__pyx_v_alignment = NULL;
  PyObject *__pyx_v_parts = NULL;
  PyObject *__pyx_v_extents = NULL;
  Py_ssize_t __pyx_7genexpr__pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_StructField *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  Py_UCS4 __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("format_from_typeinfo", 1);

  /* "BufferFormatFromTypeInfo":1456
 *     cdef Py_ssize_t i
 * 
 *     if type.typegroup == 'S':             # <<<<<<<<<<<<<<
 *         assert type.fields != NULL
 *         assert type.fields.type != NULL
 */
  __pyx_t_1 = (__pyx_v_type->typegroup == 'S');
  if (__pyx_t_1) {

    /* "BufferFormatFromTypeInfo":1457
 * 
 *     if type.typegroup == 'S':
 *         assert type.fields != NULL             # <<<<<<<<<<<<<<
 *         assert type.fields.type != NULL
 * 
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    if (unlikely(__pyx_assertions_enabled())) {
      __pyx_t_1 = (__pyx_v_type->fields != NULL);
      if (unlikely(!__pyx_t_1)) {
        __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
        __PYX_ERR(3, 1457, __pyx_L1_error)
      }
    }
    #else
    if ((1)); else __PYX_ERR(3, 1457, __pyx_L1_error)
    #endif

    /* "BufferFormatFromTypeInfo":1458
 *     if type.typegroup == 'S':
 *         assert type.fields != NULL
 *         assert type.fields.type != NULL             # <<<<<<<<<<<<<<
 * 
 *         if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT:
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    if (unlikely(__pyx_assertions_enabled())) {
      __pyx_t_1 = (__pyx_v_type->fields->type != NULL);
      if (unlikely(!__pyx_t_1)) {
        __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
        __PYX_ERR(3, 1458, __pyx_L1_error)
      }
    }
    #else
    if ((1)); else __PYX_ERR(3, 1458, __pyx_L1_error)
    #endif

    /* "BufferFormatFromTypeInfo":1460
 *         assert type.fields.type != NULL
 * 
 *         if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT:             # <<<<<<<<<<<<<<
 *             alignment = b'^'
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_type->flags & __PYX_BUF_FLAGS_PACKED_STRUCT) != 0);
    if (__pyx_t_1) {

      /* "BufferFormatFromTypeInfo":1461
 * 
 *         if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT:
 *             alignment = b'^'             # <<<<<<<<<<<<<<
 *         else:
 *             alignment = b''
 */
      __Pyx_INCREF(__pyx_kp_b__9);
      __pyx_v_alignment = __pyx_kp_b__9;

      /* "BufferFormatFromTypeInfo":1460
 *         assert type.fields.type != NULL
 * 
 *         if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT:             # <<<<<<<<<<<<<<
 *             alignment = b'^'
 *         else:
 */
      goto __pyx_L4;
    }

    /* "BufferFormatFromTypeInfo":1463
 *             alignment = b'^'
 *         else:
 *             alignment = b''             # <<<<<<<<<<<<<<
 * 
 *         parts = [b"T{"]
 */
    /*else*/ {
      __Pyx_INCREF(__pyx_kp_b__10);
      __pyx_v_alignment = __pyx_kp_b__10;
    }
    __pyx_L4:;

    /* "BufferFormatFromTypeInfo":1465
 *             alignment = b''
 * 
 *         parts = [b"T{"]             # <<<<<<<<<<<<<<
 *         field = type.fields
 * 
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 1465, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_kp_b_T);
    __Pyx_GIVEREF(__pyx_kp_b_T);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_kp_b_T)) __PYX_ERR(3, 1465, __pyx_L1_error);
    __pyx_v_parts = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "BufferFormatFromTypeInfo":1466
 * 
 *         parts = [b"T{"]
 *         field = type.fields             # <<<<<<<<<<<<<<
 * 
 *         while field.type:
 */
    __pyx_t_3 = __pyx_v_type->fields;
    __pyx_v_field = __pyx_t_3;

    /* "BufferFormatFromTypeInfo":1468
 *         field = type.fields
 * 
 *         while field.type:             # <<<<<<<<<<<<<<
 *             part = format_from_typeinfo(field.type)
 *             parts.append(part + b':' + field.name + b':')
 */
    while (1) {
      __pyx_t_1 = (__pyx_v_field->type != 0);
      if (!__pyx_t_1) break;

      /* "BufferFormatFromTypeInfo":1469
 * 
 *         while field.type:
 *             part = format_from_typeinfo(field.type)             # <<<<<<<<<<<<<<
 *             parts.append(part + b':' + field.name + b':')
 *             field += 1
 */
      __pyx_t_2 = __pyx_format_from_typeinfo(__pyx_v_field->type); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 1469, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_XDECREF_SET(__pyx_v_part, ((PyObject*)__pyx_t_2));
      __pyx_t_2 = 0;

      /* "BufferFormatFromTypeInfo":1470
 *         while field.type:
 *             part = format_from_typeinfo(field.type)
 *             parts.append(part + b':' + field.name + b':')             # <<<<<<<<<<<<<<
 *             field += 1
 * 
 */
      __pyx_t_2 = PyNumber_Add(__pyx_v_part, __pyx_kp_b__11); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 1470, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_field->name); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1470, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyNumber_Add(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 1470, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_Add(__pyx_t_5, __pyx_kp_b__11); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1470, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_parts, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 1470, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "BufferFormatFromTypeInfo":1471
 *             part = format_from_typeinfo(field.type)
 *             parts.append(part + b':' + field.name + b':')
 *             field += 1             # <<<<<<<<<<<<<<
 * 
 *         result = alignment.join(parts) + b'}'
 */
      __pyx_v_field = (__pyx_v_field + 1);
    }

    /* "BufferFormatFromTypeInfo":1473
 *             field += 1
 * 
 *         result = alignment.join(parts) + b'}'             # <<<<<<<<<<<<<<
 *     else:
 *         fmt = __Pyx_TypeInfoToFormat(type)
 */
    __pyx_t_4 = __Pyx_PyBytes_Join(__pyx_v_alignment, __pyx_v_parts); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1473, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_kp_b__12); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 1473, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (!(likely(PyBytes_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_5))) __PYX_ERR(3, 1473, __pyx_L1_error)
    __pyx_v_result = ((PyObject*)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "BufferFormatFromTypeInfo":1456
 *     cdef Py_ssize_t i
 * 
 *     if type.typegroup == 'S':             # <<<<<<<<<<<<<<
 *         assert type.fields != NULL
 *         assert type.fields.type != NULL
 */
    goto __pyx_L3;
  }

  /* "BufferFormatFromTypeInfo":1475
 *         result = alignment.join(parts) + b'}'
 *     else:
 *         fmt = __Pyx_TypeInfoToFormat(type)             # <<<<<<<<<<<<<<
 *         result = fmt.string
 *         if type.arraysize[0]:
 */
  /*else*/ {
    __pyx_v_fmt = __Pyx_TypeInfoToFormat(__pyx_v_type);

    /* "BufferFormatFromTypeInfo":1476
 *     else:
 *         fmt = __Pyx_TypeInfoToFormat(type)
 *         result = fmt.string             # <<<<<<<<<<<<<<
 *         if type.arraysize[0]:
 *             extents = [f"{type.arraysize[i]}" for i in range(type.ndim)]
 */
    __pyx_t_5 = __Pyx_PyObject_FromString(__pyx_v_fmt.string); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 1476, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_result = ((PyObject*)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "BufferFormatFromTypeInfo":1477
 *         fmt = __Pyx_TypeInfoToFormat(type)
 *         result = fmt.string
 *         if type.arraysize[0]:             # <<<<<<<<<<<<<<
 *             extents = [f"{type.arraysize[i]}" for i in range(type.ndim)]
 *             result = f"({u','.join(extents)})".encode('ascii') + result
 */
    __pyx_t_1 = ((__pyx_v_type->arraysize[0]) != 0);
    if (__pyx_t_1) {

      /* "BufferFormatFromTypeInfo":1478
 *         result = fmt.string
 *         if type.arraysize[0]:
 *             extents = [f"{type.arraysize[i]}" for i in range(type.ndim)]             # <<<<<<<<<<<<<<
 *             result = f"({u','.join(extents)})".encode('ascii') + result
 * 
 */
      { /* enter inner scope */
        __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 1478, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __pyx_v_type->ndim;
        __pyx_t_8 = __pyx_t_7;
        for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
          __pyx_7genexpr__pyx_v_i = __pyx_t_9;
          __pyx_t_4 = __Pyx_PyUnicode_From_size_t((__pyx_v_type->arraysize[__pyx_7genexpr__pyx_v_i]), 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1478, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_4))) __PYX_ERR(3, 1478, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
      } /* exit inner scope */
      __pyx_v_extents = ((PyObject*)__pyx_t_5);
      __pyx_t_5 = 0;

      /* "BufferFormatFromTypeInfo":1479
 *         if type.arraysize[0]:
 *             extents = [f"{type.arraysize[i]}" for i in range(type.ndim)]
 *             result = f"({u','.join(extents)})".encode('ascii') + result             # <<<<<<<<<<<<<<
 * 
 *     return result
 */
      __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 1479, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_9 = 0;
      __pyx_t_10 = 127;
      __Pyx_INCREF(__pyx_kp_u__13);
      __pyx_t_9 += 1;
      __Pyx_GIVEREF(__pyx_kp_u__13);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_kp_u__13);
      __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__14, __pyx_v_extents); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1479, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_10 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_10) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_10;
      __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
      __pyx_t_4 = 0;
      __Pyx_INCREF(__pyx_kp_u__7);
      __pyx_t_9 += 1;
      __Pyx_GIVEREF(__pyx_kp_u__7);
      PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_kp_u__7);
      __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1479, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyUnicode_AsASCIIString(((PyObject*)__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 1479, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_Add(__pyx_t_5, __pyx_v_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1479, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (!(likely(PyBytes_CheckExact(__pyx_t_4)) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_4))) __PYX_ERR(3, 1479, __pyx_L1_error)
      __Pyx_DECREF_SET(__pyx_v_result, ((PyObject*)__pyx_t_4));
      __pyx_t_4 = 0;

      /* "BufferFormatFromTypeInfo":1477
 *         fmt = __Pyx_TypeInfoToFormat(type)
 *         result = fmt.string
 *         if type.arraysize[0]:             # <<<<<<<<<<<<<<
 *             extents = [f"{type.arraysize[i]}" for i in range(type.ndim)]
 *             result = f"({u','.join(extents)})".encode('ascii') + result
 */
    }
  }
  __pyx_L3:;

  /* "BufferFormatFromTypeInfo":1481
 *             result = f"({u','.join(extents)})".encode('ascii') + result
 * 
 *     return result             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "BufferFormatFromTypeInfo":1450
 * 
 * @cname('__pyx_format_from_typeinfo')
 * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type):             # <<<<<<<<<<<<<<
 *     cdef __Pyx_StructField *field
 *     cdef __pyx_typeinfo_string fmt
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("BufferFormatFromTypeInfo.format_from_typeinfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_part);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_alignment);
  __Pyx_XDECREF(__pyx_v_parts);
  __Pyx_XDECREF(__pyx_v_extents);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":287
 * 
 *         @property
 *         cdef inline npy_intp itemsize(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             return PyDataType_ELSIZE(self)
 * 
 */

static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_Descr *__pyx_v_self) {
  npy_intp __pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":288
 *         @property
 *         cdef inline npy_intp itemsize(self) noexcept nogil:
 *             return PyDataType_ELSIZE(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyDataType_ELSIZE(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":287
 * 
 *         @property
 *         cdef inline npy_intp itemsize(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             return PyDataType_ELSIZE(self)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":291
 * 
 *         @property
 *         cdef inline npy_intp alignment(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             return PyDataType_ALIGNMENT(self)
 * 
 */

static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment_alignment(PyArray_Descr *__pyx_v_self) {
  npy_intp __pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":292
 *         @property
 *         cdef inline npy_intp alignment(self) noexcept nogil:
 *             return PyDataType_ALIGNMENT(self)             # <<<<<<<<<<<<<<
 * 
 *         # Use fields/names with care as they may be NULL.  You must check
 */
  __pyx_r = PyDataType_ALIGNMENT(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":291
 * 
 *         @property
 *         cdef inline npy_intp alignment(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             return PyDataType_ALIGNMENT(self)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":297
 *         # for this using PyDataType_HASFIELDS.
 *         @property
 *         cdef inline object fields(self):             # <<<<<<<<<<<<<<
 *             return <object>PyDataType_FIELDS(self)
 * 
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Descr *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  __Pyx_RefNannySetupContext("fields", 1);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":298
 *         @property
 *         cdef inline object fields(self):
 *             return <object>PyDataType_FIELDS(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyDataType_FIELDS(__pyx_v_self);
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":297
 *         # for this using PyDataType_HASFIELDS.
 *         @property
 *         cdef inline object fields(self):             # <<<<<<<<<<<<<<
 *             return <object>PyDataType_FIELDS(self)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":301
 * 
 *         @property
 *         cdef inline tuple names(self):             # <<<<<<<<<<<<<<
 *             return <tuple>PyDataType_NAMES(self)
 * 
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  __Pyx_RefNannySetupContext("names", 1);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":302
 *         @property
 *         cdef inline tuple names(self):
 *             return <tuple>PyDataType_NAMES(self)             # <<<<<<<<<<<<<<
 * 
 *         # Use PyDataType_HASSUBARRAY to test whether this field is
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyDataType_NAMES(__pyx_v_self);
  __Pyx_INCREF(((PyObject*)__pyx_t_1));
  __pyx_r = ((PyObject*)__pyx_t_1);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":301
 * 
 *         @property
 *         cdef inline tuple names(self):             # <<<<<<<<<<<<<<
 *             return <tuple>PyDataType_NAMES(self)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":308
 *         # this field via the inline helper method PyDataType_SHAPE.
 *         @property
 *         cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             return PyDataType_SUBARRAY(self)
 * 
 */

static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray_subarray(PyArray_Descr *__pyx_v_self) {
  PyArray_ArrayDescr *__pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":309
 *         @property
 *         cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:
 *             return PyDataType_SUBARRAY(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyDataType_SUBARRAY(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":308
 *         # this field via the inline helper method PyDataType_SHAPE.
 *         @property
 *         cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             return PyDataType_SUBARRAY(self)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":312
 * 
 *         @property
 *         cdef inline npy_uint64 flags(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """The data types flags."""
 *             return PyDataType_FLAGS(self)
 */

static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags_flags(PyArray_Descr *__pyx_v_self) {
  npy_uint64 __pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":314
 *         cdef inline npy_uint64 flags(self) noexcept nogil:
 *             """The data types flags."""
 *             return PyDataType_FLAGS(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = PyDataType_FLAGS(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":312
 * 
 *         @property
 *         cdef inline npy_uint64 flags(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """The data types flags."""
 *             return PyDataType_FLAGS(self)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":324
 * 
 *         @property
 *         cdef inline int numiter(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """The number of arrays that need to be broadcast to the same shape."""
 *             return PyArray_MultiIter_NUMITER(self)
 */

static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter_numiter(PyArrayMultiIterObject *__pyx_v_self) {
  int __pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":326
 *         cdef inline int numiter(self) noexcept nogil:
 *             """The number of arrays that need to be broadcast to the same shape."""
 *             return PyArray_MultiIter_NUMITER(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyArray_MultiIter_NUMITER(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":324
 * 
 *         @property
 *         cdef inline int numiter(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """The number of arrays that need to be broadcast to the same shape."""
 *             return PyArray_MultiIter_NUMITER(self)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":329
 * 
 *         @property
 *         cdef inline npy_intp size(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """The total broadcasted size."""
 *             return PyArray_MultiIter_SIZE(self)
 */

static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size_size(PyArrayMultiIterObject *__pyx_v_self) {
  npy_intp __pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":331
 *         cdef inline npy_intp size(self) noexcept nogil:
 *             """The total broadcasted size."""
 *             return PyArray_MultiIter_SIZE(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyArray_MultiIter_SIZE(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":329
 * 
 *         @property
 *         cdef inline npy_intp size(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """The total broadcasted size."""
 *             return PyArray_MultiIter_SIZE(self)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":334
 * 
 *         @property
 *         cdef inline npy_intp index(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """The current (1-d) index into the broadcasted result."""
 *             return PyArray_MultiIter_INDEX(self)
 */

static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index_index(PyArrayMultiIterObject *__pyx_v_self) {
  npy_intp __pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":336
 *         cdef inline npy_intp index(self) noexcept nogil:
 *             """The current (1-d) index into the broadcasted result."""
 *             return PyArray_MultiIter_INDEX(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyArray_MultiIter_INDEX(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":334
 * 
 *         @property
 *         cdef inline npy_intp index(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """The current (1-d) index into the broadcasted result."""
 *             return PyArray_MultiIter_INDEX(self)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":339
 * 
 *         @property
 *         cdef inline int nd(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """The number of dimensions in the broadcasted result."""
 *             return PyArray_MultiIter_NDIM(self)
 */

static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd_nd(PyArrayMultiIterObject *__pyx_v_self) {
  int __pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":341
 *         cdef inline int nd(self) noexcept nogil:
 *             """The number of dimensions in the broadcasted result."""
 *             return PyArray_MultiIter_NDIM(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyArray_MultiIter_NDIM(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":339
 * 
 *         @property
 *         cdef inline int nd(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """The number of dimensions in the broadcasted result."""
 *             return PyArray_MultiIter_NDIM(self)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":344
 * 
 *         @property
 *         cdef inline npy_intp* dimensions(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """The shape of the broadcasted result."""
 *             return PyArray_MultiIter_DIMS(self)
 */

static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions_dimensions(PyArrayMultiIterObject *__pyx_v_self) {
  npy_intp *__pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":346
 *         cdef inline npy_intp* dimensions(self) noexcept nogil:
 *             """The shape of the broadcasted result."""
 *             return PyArray_MultiIter_DIMS(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyArray_MultiIter_DIMS(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":344
 * 
 *         @property
 *         cdef inline npy_intp* dimensions(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """The shape of the broadcasted result."""
 *             return PyArray_MultiIter_DIMS(self)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":349
 * 
 *         @property
 *         cdef inline void** iters(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
 *             On return, the iterators are adjusted for broadcasting."""
 */

static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters_iters(PyArrayMultiIterObject *__pyx_v_self) {
  void **__pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":352
 *             """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
 *             On return, the iterators are adjusted for broadcasting."""
 *             return PyArray_MultiIter_ITERS(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = PyArray_MultiIter_ITERS(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":349
 * 
 *         @property
 *         cdef inline void** iters(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
 *             On return, the iterators are adjusted for broadcasting."""
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":367
 * 
 *         @property
 *         cdef inline PyObject* base(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """Returns a borrowed reference to the object owning the data/memory.
 *             """
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject *__pyx_v_self) {
  PyObject *__pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":370
 *             """Returns a borrowed reference to the object owning the data/memory.
 *             """
 *             return PyArray_BASE(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyArray_BASE(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":367
 * 
 *         @property
 *         cdef inline PyObject* base(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """Returns a borrowed reference to the object owning the data/memory.
 *             """
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":373
 * 
 *         @property
 *         cdef inline dtype descr(self):             # <<<<<<<<<<<<<<
 *             """Returns an owned reference to the dtype of the array.
 *             """
 */

static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArrayObject *__pyx_v_self) {
  PyArray_Descr *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyArray_Descr *__pyx_t_1;
  __Pyx_RefNannySetupContext("descr", 1);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":376
 *             """Returns an owned reference to the dtype of the array.
 *             """
 *             return <dtype>PyArray_DESCR(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyArray_DESCR(__pyx_v_self);
  __Pyx_INCREF((PyObject *)((PyArray_Descr *)__pyx_t_1));
  __pyx_r = ((PyArray_Descr *)__pyx_t_1);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":373
 * 
 *         @property
 *         cdef inline dtype descr(self):             # <<<<<<<<<<<<<<
 *             """Returns an owned reference to the dtype of the array.
 *             """
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":379
 * 
 *         @property
 *         cdef inline int ndim(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """Returns the number of dimensions in the array.
 *             """
 */

static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx_v_self) {
  int __pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":382
 *             """Returns the number of dimensions in the array.
 *             """
 *             return PyArray_NDIM(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyArray_NDIM(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":379
 * 
 *         @property
 *         cdef inline int ndim(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """Returns the number of dimensions in the array.
 *             """
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":385
 * 
 *         @property
 *         cdef inline npy_intp *shape(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """Returns a pointer to the dimensions/shape of the array.
 *             The number of elements matches the number of dimensions of the array (ndim).
 */

static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObject *__pyx_v_self) {
  npy_intp *__pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":390
 *             Can return NULL for 0-dimensional arrays.
 *             """
 *             return PyArray_DIMS(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyArray_DIMS(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":385
 * 
 *         @property
 *         cdef inline npy_intp *shape(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """Returns a pointer to the dimensions/shape of the array.
 *             The number of elements matches the number of dimensions of the array (ndim).
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":393
 * 
 *         @property
 *         cdef inline npy_intp *strides(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """Returns a pointer to the strides of the array.
 *             The number of elements matches the number of dimensions of the array (ndim).
 */

static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayObject *__pyx_v_self) {
  npy_intp *__pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":397
 *             The number of elements matches the number of dimensions of the array (ndim).
 *             """
 *             return PyArray_STRIDES(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyArray_STRIDES(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":393
 * 
 *         @property
 *         cdef inline npy_intp *strides(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """Returns a pointer to the strides of the array.
 *             The number of elements matches the number of dimensions of the array (ndim).
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":400
 * 
 *         @property
 *         cdef inline npy_intp size(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """Returns the total size (in number of elements) of the array.
 *             """
 */

static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *__pyx_v_self) {
  npy_intp __pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":403
 *             """Returns the total size (in number of elements) of the array.
 *             """
 *             return PyArray_SIZE(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyArray_SIZE(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":400
 * 
 *         @property
 *         cdef inline npy_intp size(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """Returns the total size (in number of elements) of the array.
 *             """
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":406
 * 
 *         @property
 *         cdef inline char* data(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """The pointer to the data buffer as a char*.
 *             This is provided for legacy reasons to avoid direct struct field access.
 */

static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__pyx_v_self) {
  char *__pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":412
 *             of `PyArray_DATA()` instead, which returns a 'void*'.
 *             """
 *             return PyArray_BYTES(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = PyArray_BYTES(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":406
 * 
 *         @property
 *         cdef inline char* data(self) noexcept nogil:             # <<<<<<<<<<<<<<
 *             """The pointer to the data buffer as a char*.
 *             This is provided for legacy reasons to avoid direct struct field access.
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":824
 * ctypedef long double complex clongdouble_t
 * 
 * cdef inline object PyArray_MultiIterNew1(a):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(1, <void*>a)
 * 
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 1);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":825
 * 
 * cdef inline object PyArray_MultiIterNew1(a):
 *     return PyArray_MultiIterNew(1, <void*>a)             # <<<<<<<<<<<<<<
 * 
 * cdef inline object PyArray_MultiIterNew2(a, b):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":824
 * ctypedef long double complex clongdouble_t
 * 
 * cdef inline object PyArray_MultiIterNew1(a):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(1, <void*>a)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":827
 *     return PyArray_MultiIterNew(1, <void*>a)
 * 
 * cdef inline object PyArray_MultiIterNew2(a, b):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
 * 
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 1);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":828
 * 
 * cdef inline object PyArray_MultiIterNew2(a, b):
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)             # <<<<<<<<<<<<<<
 * 
 * cdef inline object PyArray_MultiIterNew3(a, b, c):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":827
 *     return PyArray_MultiIterNew(1, <void*>a)
 * 
 * cdef inline object PyArray_MultiIterNew2(a, b):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":830
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
 * 
 * cdef inline object PyArray_MultiIterNew3(a, b, c):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
 * 
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 1);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":831
 * 
 * cdef inline object PyArray_MultiIterNew3(a, b, c):
 *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)             # <<<<<<<<<<<<<<
 * 
 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":830
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
 * 
 * cdef inline object PyArray_MultiIterNew3(a, b, c):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":833
 *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
 * 
 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
 * 
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 1);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":834
 * 
 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
 *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)             # <<<<<<<<<<<<<<
 * 
 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":833
 *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
 * 
 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":836
 *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
 * 
 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
 * 
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 1);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":837
 * 
 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)             # <<<<<<<<<<<<<<
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":836
 *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
 * 
 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":839
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):             # <<<<<<<<<<<<<<
 *     if PyDataType_HASSUBARRAY(d):
 *         return <tuple>d.subarray.shape
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2;
  __Pyx_RefNannySetupContext("PyDataType_SHAPE", 1);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":840
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):
 *     if PyDataType_HASSUBARRAY(d):             # <<<<<<<<<<<<<<
 *         return <tuple>d.subarray.shape
 *     else:
 */
  __pyx_t_1 = PyDataType_HASSUBARRAY(__pyx_v_d);
  if (__pyx_t_1) {

    /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":841
 * cdef inline tuple PyDataType_SHAPE(dtype d):
 *     if PyDataType_HASSUBARRAY(d):
 *         return <tuple>d.subarray.shape             # <<<<<<<<<<<<<<
 *     else:
 *         return ()
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_5numpy_5dtype_8subarray_subarray(__pyx_v_d)->shape;
    __Pyx_INCREF(((PyObject*)__pyx_t_2));
    __pyx_r = ((PyObject*)__pyx_t_2);
    goto __pyx_L0;

    /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":840
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):
 *     if PyDataType_HASSUBARRAY(d):             # <<<<<<<<<<<<<<
 *         return <tuple>d.subarray.shape
 *     else:
 */
  }

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":843
 *         return <tuple>d.subarray.shape
 *     else:
 *         return ()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_empty_tuple);
    __pyx_r = __pyx_empty_tuple;
    goto __pyx_L0;
  }

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":839
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):             # <<<<<<<<<<<<<<
 *     if PyDataType_HASSUBARRAY(d):
 *         return <tuple>d.subarray.shape
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1027
 *     int _import_umath() except -1
 * 
 * cdef inline void set_array_base(ndarray arr, object base) except *:             # <<<<<<<<<<<<<<
 *     Py_INCREF(base) # important to do this before stealing the reference below!
 *     PyArray_SetBaseObject(arr, base)
 */

static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) {
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1028
 * 
 * cdef inline void set_array_base(ndarray arr, object base) except *:
 *     Py_INCREF(base) # important to do this before stealing the reference below!             # <<<<<<<<<<<<<<
 *     PyArray_SetBaseObject(arr, base)
 * 
 */
  Py_INCREF(__pyx_v_base);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1029
 * cdef inline void set_array_base(ndarray arr, object base) except *:
 *     Py_INCREF(base) # important to do this before stealing the reference below!
 *     PyArray_SetBaseObject(arr, base)             # <<<<<<<<<<<<<<
 * 
 * cdef inline object get_array_base(ndarray arr):
 */
  __pyx_t_1 = PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(8, 1029, __pyx_L1_error)

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1027
 *     int _import_umath() except -1
 * 
 * cdef inline void set_array_base(ndarray arr, object base) except *:             # <<<<<<<<<<<<<<
 *     Py_INCREF(base) # important to do this before stealing the reference below!
 *     PyArray_SetBaseObject(arr, base)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("numpy.set_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1031
 *     PyArray_SetBaseObject(arr, base)
 * 
 * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
 *     base = PyArray_BASE(arr)
 *     if base is NULL:
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {
  PyObject *__pyx_v_base;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("get_array_base", 1);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1032
 * 
 * cdef inline object get_array_base(ndarray arr):
 *     base = PyArray_BASE(arr)             # <<<<<<<<<<<<<<
 *     if base is NULL:
 *         return None
 */
  __pyx_v_base = PyArray_BASE(__pyx_v_arr);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1033
 * cdef inline object get_array_base(ndarray arr):
 *     base = PyArray_BASE(arr)
 *     if base is NULL:             # <<<<<<<<<<<<<<
 *         return None
 *     return <object>base
 */
  __pyx_t_1 = (__pyx_v_base == NULL);
  if (__pyx_t_1) {

    /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1034
 *     base = PyArray_BASE(arr)
 *     if base is NULL:
 *         return None             # <<<<<<<<<<<<<<
 *     return <object>base
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1033
 * cdef inline object get_array_base(ndarray arr):
 *     base = PyArray_BASE(arr)
 *     if base is NULL:             # <<<<<<<<<<<<<<
 *         return None
 *     return <object>base
 */
  }

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1035
 *     if base is NULL:
 *         return None
 *     return <object>base             # <<<<<<<<<<<<<<
 * 
 * # Versions of the import_* functions which are more suitable for
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_base));
  __pyx_r = ((PyObject *)__pyx_v_base);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1031
 *     PyArray_SetBaseObject(arr, base)
 * 
 * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
 *     base = PyArray_BASE(arr)
 *     if base is NULL:
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1039
 * # Versions of the import_* functions which are more suitable for
 * # Cython code.
 * cdef inline int import_array() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         __pyx_import_array()
 */

static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("import_array", 1);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1040
 * # Cython code.
 * cdef inline int import_array() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         __pyx_import_array()
 *     except Exception:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1041
 * cdef inline int import_array() except -1:
 *     try:
 *         __pyx_import_array()             # <<<<<<<<<<<<<<
 *     except Exception:
 *         raise ImportError("numpy._core.multiarray failed to import")
 */
      __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(8, 1041, __pyx_L3_error)

      /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1040
 * # Cython code.
 * cdef inline int import_array() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         __pyx_import_array()
 *     except Exception:
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1042
 *     try:
 *         __pyx_import_array()
 *     except Exception:             # <<<<<<<<<<<<<<
 *         raise ImportError("numpy._core.multiarray failed to import")
 * 
 */
    __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
    if (__pyx_t_4) {
      __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(8, 1042, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);

      /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1043
 *         __pyx_import_array()
 *     except Exception:
 *         raise ImportError("numpy._core.multiarray failed to import")             # <<<<<<<<<<<<<<
 * 
 * cdef inline int import_umath() except -1:
 */
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(8, 1043, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(8, 1043, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;

    /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1040
 * # Cython code.
 * cdef inline int import_array() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         __pyx_import_array()
 *     except Exception:
 */
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1039
 * # Versions of the import_* functions which are more suitable for
 * # Cython code.
 * cdef inline int import_array() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         __pyx_import_array()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1045
 *         raise ImportError("numpy._core.multiarray failed to import")
 * 
 * cdef inline int import_umath() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         _import_umath()
 */

static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("import_umath", 1);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1046
 * 
 * cdef inline int import_umath() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1047
 * cdef inline int import_umath() except -1:
 *     try:
 *         _import_umath()             # <<<<<<<<<<<<<<
 *     except Exception:
 *         raise ImportError("numpy._core.umath failed to import")
 */
      __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(8, 1047, __pyx_L3_error)

      /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1046
 * 
 * cdef inline int import_umath() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1048
 *     try:
 *         _import_umath()
 *     except Exception:             # <<<<<<<<<<<<<<
 *         raise ImportError("numpy._core.umath failed to import")
 * 
 */
    __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
    if (__pyx_t_4) {
      __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(8, 1048, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);

      /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1049
 *         _import_umath()
 *     except Exception:
 *         raise ImportError("numpy._core.umath failed to import")             # <<<<<<<<<<<<<<
 * 
 * cdef inline int import_ufunc() except -1:
 */
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(8, 1049, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(8, 1049, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;

    /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1046
 * 
 * cdef inline int import_umath() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1045
 *         raise ImportError("numpy._core.multiarray failed to import")
 * 
 * cdef inline int import_umath() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         _import_umath()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1051
 *         raise ImportError("numpy._core.umath failed to import")
 * 
 * cdef inline int import_ufunc() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         _import_umath()
 */

static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("import_ufunc", 1);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1052
 * 
 * cdef inline int import_ufunc() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1053
 * cdef inline int import_ufunc() except -1:
 *     try:
 *         _import_umath()             # <<<<<<<<<<<<<<
 *     except Exception:
 *         raise ImportError("numpy._core.umath failed to import")
 */
      __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(8, 1053, __pyx_L3_error)

      /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1052
 * 
 * cdef inline int import_ufunc() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1054
 *     try:
 *         _import_umath()
 *     except Exception:             # <<<<<<<<<<<<<<
 *         raise ImportError("numpy._core.umath failed to import")
 * 
 */
    __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
    if (__pyx_t_4) {
      __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(8, 1054, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);

      /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1055
 *         _import_umath()
 *     except Exception:
 *         raise ImportError("numpy._core.umath failed to import")             # <<<<<<<<<<<<<<
 * 
 * 
 */
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(8, 1055, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(8, 1055, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;

    /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1052
 * 
 * cdef inline int import_ufunc() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1051
 *         raise ImportError("numpy._core.umath failed to import")
 * 
 * cdef inline int import_ufunc() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         _import_umath()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1058
 * 
 * 
 * cdef inline bint is_timedelta64_object(object obj) noexcept:             # <<<<<<<<<<<<<<
 *     """
 *     Cython equivalent of `isinstance(obj, np.timedelta64)`
 */

static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) {
  int __pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1070
 *     bool
 *     """
 *     return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type));
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1058
 * 
 * 
 * cdef inline bint is_timedelta64_object(object obj) noexcept:             # <<<<<<<<<<<<<<
 *     """
 *     Cython equivalent of `isinstance(obj, np.timedelta64)`
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1073
 * 
 * 
 * cdef inline bint is_datetime64_object(object obj) noexcept:             # <<<<<<<<<<<<<<
 *     """
 *     Cython equivalent of `isinstance(obj, np.datetime64)`
 */

static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) {
  int __pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1085
 *     bool
 *     """
 *     return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type));
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1073
 * 
 * 
 * cdef inline bint is_datetime64_object(object obj) noexcept:             # <<<<<<<<<<<<<<
 *     """
 *     Cython equivalent of `isinstance(obj, np.datetime64)`
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1088
 * 
 * 
 * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil:             # <<<<<<<<<<<<<<
 *     """
 *     returns the int64 value underlying scalar numpy datetime64 object
 */

static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) {
  npy_datetime __pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1095
 *     also needed.  That can be found using `get_datetime64_unit`.
 *     """
 *     return (<PyDatetimeScalarObject*>obj).obval             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval;
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1088
 * 
 * 
 * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil:             # <<<<<<<<<<<<<<
 *     """
 *     returns the int64 value underlying scalar numpy datetime64 object
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1098
 * 
 * 
 * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil:             # <<<<<<<<<<<<<<
 *     """
 *     returns the int64 value underlying scalar numpy timedelta64 object
 */

static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) {
  npy_timedelta __pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1102
 *     returns the int64 value underlying scalar numpy timedelta64 object
 *     """
 *     return (<PyTimedeltaScalarObject*>obj).obval             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval;
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1098
 * 
 * 
 * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil:             # <<<<<<<<<<<<<<
 *     """
 *     returns the int64 value underlying scalar numpy timedelta64 object
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1105
 * 
 * 
 * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil:             # <<<<<<<<<<<<<<
 *     """
 *     returns the unit part of the dtype for a numpy datetime64 object.
 */

static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) {
  NPY_DATETIMEUNIT __pyx_r;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1109
 *     returns the unit part of the dtype for a numpy datetime64 object.
 *     """
 *     return <NPY_DATETIMEUNIT>(<PyDatetimeScalarObject*>obj).obmeta.base             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base);
  goto __pyx_L0;

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1105
 * 
 * 
 * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil:             # <<<<<<<<<<<<<<
 *     """
 *     returns the unit part of the dtype for a numpy datetime64 object.
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":16
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":17
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":16
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":20
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":21
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjLROpt* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":20
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":23
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjLROpt* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_9PyMjLROpt__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjLROpt *__pyx_v_p) {

  /* "mujoco_py/generated/wrappers.pxi":25
 *     cdef void _set(self, mjLROpt* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":23
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjLROpt* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
}

/* "mujoco_py/generated/wrappers.pxi":29
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mode(self): return self.ptr.mode
 *     @mode.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_4mode_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_4mode_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_4mode___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_4mode___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":30
 * 
 *     @property
 *     def mode(self): return self.ptr.mode             # <<<<<<<<<<<<<<
 *     @mode.setter
 *     def mode(self, int x): self.ptr.mode = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":29
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mode(self): return self.ptr.mode
 *     @mode.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.mode.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":31
 *     @property
 *     def mode(self): return self.ptr.mode
 *     @mode.setter             # <<<<<<<<<<<<<<
 *     def mode(self, int x): self.ptr.mode = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_4mode_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_4mode_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 32, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.mode.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_4mode_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_4mode_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":32
 *     def mode(self): return self.ptr.mode
 *     @mode.setter
 *     def mode(self, int x): self.ptr.mode = x             # <<<<<<<<<<<<<<
 *     @property
 *     def useexisting(self): return self.ptr.useexisting
 */
  __pyx_v_self->ptr->mode = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":31
 *     @property
 *     def mode(self): return self.ptr.mode
 *     @mode.setter             # <<<<<<<<<<<<<<
 *     def mode(self, int x): self.ptr.mode = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":33
 *     @mode.setter
 *     def mode(self, int x): self.ptr.mode = x
 *     @property             # <<<<<<<<<<<<<<
 *     def useexisting(self): return self.ptr.useexisting
 *     @useexisting.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_11useexisting_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_11useexisting_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_11useexisting___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_11useexisting___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":34
 *     def mode(self, int x): self.ptr.mode = x
 *     @property
 *     def useexisting(self): return self.ptr.useexisting             # <<<<<<<<<<<<<<
 *     @useexisting.setter
 *     def useexisting(self, int x): self.ptr.useexisting = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->useexisting); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":33
 *     @mode.setter
 *     def mode(self, int x): self.ptr.mode = x
 *     @property             # <<<<<<<<<<<<<<
 *     def useexisting(self): return self.ptr.useexisting
 *     @useexisting.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.useexisting.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":35
 *     @property
 *     def useexisting(self): return self.ptr.useexisting
 *     @useexisting.setter             # <<<<<<<<<<<<<<
 *     def useexisting(self, int x): self.ptr.useexisting = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_11useexisting_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_11useexisting_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 36, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.useexisting.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_11useexisting_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_11useexisting_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":36
 *     def useexisting(self): return self.ptr.useexisting
 *     @useexisting.setter
 *     def useexisting(self, int x): self.ptr.useexisting = x             # <<<<<<<<<<<<<<
 *     @property
 *     def uselimit(self): return self.ptr.uselimit
 */
  __pyx_v_self->ptr->useexisting = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":35
 *     @property
 *     def useexisting(self): return self.ptr.useexisting
 *     @useexisting.setter             # <<<<<<<<<<<<<<
 *     def useexisting(self, int x): self.ptr.useexisting = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":37
 *     @useexisting.setter
 *     def useexisting(self, int x): self.ptr.useexisting = x
 *     @property             # <<<<<<<<<<<<<<
 *     def uselimit(self): return self.ptr.uselimit
 *     @uselimit.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8uselimit_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8uselimit_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8uselimit___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8uselimit___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":38
 *     def useexisting(self, int x): self.ptr.useexisting = x
 *     @property
 *     def uselimit(self): return self.ptr.uselimit             # <<<<<<<<<<<<<<
 *     @uselimit.setter
 *     def uselimit(self, int x): self.ptr.uselimit = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->uselimit); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":37
 *     @useexisting.setter
 *     def useexisting(self, int x): self.ptr.useexisting = x
 *     @property             # <<<<<<<<<<<<<<
 *     def uselimit(self): return self.ptr.uselimit
 *     @uselimit.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.uselimit.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":39
 *     @property
 *     def uselimit(self): return self.ptr.uselimit
 *     @uselimit.setter             # <<<<<<<<<<<<<<
 *     def uselimit(self, int x): self.ptr.uselimit = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8uselimit_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8uselimit_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 40, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.uselimit.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8uselimit_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8uselimit_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":40
 *     def uselimit(self): return self.ptr.uselimit
 *     @uselimit.setter
 *     def uselimit(self, int x): self.ptr.uselimit = x             # <<<<<<<<<<<<<<
 *     @property
 *     def accel(self): return self.ptr.accel
 */
  __pyx_v_self->ptr->uselimit = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":39
 *     @property
 *     def uselimit(self): return self.ptr.uselimit
 *     @uselimit.setter             # <<<<<<<<<<<<<<
 *     def uselimit(self, int x): self.ptr.uselimit = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":41
 *     @uselimit.setter
 *     def uselimit(self, int x): self.ptr.uselimit = x
 *     @property             # <<<<<<<<<<<<<<
 *     def accel(self): return self.ptr.accel
 *     @accel.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_5accel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_5accel_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_5accel___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_5accel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":42
 *     def uselimit(self, int x): self.ptr.uselimit = x
 *     @property
 *     def accel(self): return self.ptr.accel             # <<<<<<<<<<<<<<
 *     @accel.setter
 *     def accel(self, mjtNum x): self.ptr.accel = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->accel); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":41
 *     @uselimit.setter
 *     def uselimit(self, int x): self.ptr.uselimit = x
 *     @property             # <<<<<<<<<<<<<<
 *     def accel(self): return self.ptr.accel
 *     @accel.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.accel.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":43
 *     @property
 *     def accel(self): return self.ptr.accel
 *     @accel.setter             # <<<<<<<<<<<<<<
 *     def accel(self, mjtNum x): self.ptr.accel = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_5accel_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_5accel_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 44, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.accel.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_5accel_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_5accel_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":44
 *     def accel(self): return self.ptr.accel
 *     @accel.setter
 *     def accel(self, mjtNum x): self.ptr.accel = x             # <<<<<<<<<<<<<<
 *     @property
 *     def maxforce(self): return self.ptr.maxforce
 */
  __pyx_v_self->ptr->accel = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":43
 *     @property
 *     def accel(self): return self.ptr.accel
 *     @accel.setter             # <<<<<<<<<<<<<<
 *     def accel(self, mjtNum x): self.ptr.accel = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":45
 *     @accel.setter
 *     def accel(self, mjtNum x): self.ptr.accel = x
 *     @property             # <<<<<<<<<<<<<<
 *     def maxforce(self): return self.ptr.maxforce
 *     @maxforce.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8maxforce_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8maxforce_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8maxforce___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8maxforce___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":46
 *     def accel(self, mjtNum x): self.ptr.accel = x
 *     @property
 *     def maxforce(self): return self.ptr.maxforce             # <<<<<<<<<<<<<<
 *     @maxforce.setter
 *     def maxforce(self, mjtNum x): self.ptr.maxforce = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->maxforce); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":45
 *     @accel.setter
 *     def accel(self, mjtNum x): self.ptr.accel = x
 *     @property             # <<<<<<<<<<<<<<
 *     def maxforce(self): return self.ptr.maxforce
 *     @maxforce.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.maxforce.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":47
 *     @property
 *     def maxforce(self): return self.ptr.maxforce
 *     @maxforce.setter             # <<<<<<<<<<<<<<
 *     def maxforce(self, mjtNum x): self.ptr.maxforce = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8maxforce_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8maxforce_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 48, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.maxforce.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8maxforce_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8maxforce_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":48
 *     def maxforce(self): return self.ptr.maxforce
 *     @maxforce.setter
 *     def maxforce(self, mjtNum x): self.ptr.maxforce = x             # <<<<<<<<<<<<<<
 *     @property
 *     def timeconst(self): return self.ptr.timeconst
 */
  __pyx_v_self->ptr->maxforce = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":47
 *     @property
 *     def maxforce(self): return self.ptr.maxforce
 *     @maxforce.setter             # <<<<<<<<<<<<<<
 *     def maxforce(self, mjtNum x): self.ptr.maxforce = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":49
 *     @maxforce.setter
 *     def maxforce(self, mjtNum x): self.ptr.maxforce = x
 *     @property             # <<<<<<<<<<<<<<
 *     def timeconst(self): return self.ptr.timeconst
 *     @timeconst.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_9timeconst_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_9timeconst_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_9timeconst___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_9timeconst___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":50
 *     def maxforce(self, mjtNum x): self.ptr.maxforce = x
 *     @property
 *     def timeconst(self): return self.ptr.timeconst             # <<<<<<<<<<<<<<
 *     @timeconst.setter
 *     def timeconst(self, mjtNum x): self.ptr.timeconst = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->timeconst); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":49
 *     @maxforce.setter
 *     def maxforce(self, mjtNum x): self.ptr.maxforce = x
 *     @property             # <<<<<<<<<<<<<<
 *     def timeconst(self): return self.ptr.timeconst
 *     @timeconst.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.timeconst.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":51
 *     @property
 *     def timeconst(self): return self.ptr.timeconst
 *     @timeconst.setter             # <<<<<<<<<<<<<<
 *     def timeconst(self, mjtNum x): self.ptr.timeconst = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_9timeconst_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_9timeconst_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 52, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.timeconst.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_9timeconst_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_9timeconst_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":52
 *     def timeconst(self): return self.ptr.timeconst
 *     @timeconst.setter
 *     def timeconst(self, mjtNum x): self.ptr.timeconst = x             # <<<<<<<<<<<<<<
 *     @property
 *     def timestep(self): return self.ptr.timestep
 */
  __pyx_v_self->ptr->timeconst = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":51
 *     @property
 *     def timeconst(self): return self.ptr.timeconst
 *     @timeconst.setter             # <<<<<<<<<<<<<<
 *     def timeconst(self, mjtNum x): self.ptr.timeconst = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":53
 *     @timeconst.setter
 *     def timeconst(self, mjtNum x): self.ptr.timeconst = x
 *     @property             # <<<<<<<<<<<<<<
 *     def timestep(self): return self.ptr.timestep
 *     @timestep.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8timestep_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8timestep_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8timestep___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8timestep___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":54
 *     def timeconst(self, mjtNum x): self.ptr.timeconst = x
 *     @property
 *     def timestep(self): return self.ptr.timestep             # <<<<<<<<<<<<<<
 *     @timestep.setter
 *     def timestep(self, mjtNum x): self.ptr.timestep = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->timestep); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":53
 *     @timeconst.setter
 *     def timeconst(self, mjtNum x): self.ptr.timeconst = x
 *     @property             # <<<<<<<<<<<<<<
 *     def timestep(self): return self.ptr.timestep
 *     @timestep.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.timestep.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":55
 *     @property
 *     def timestep(self): return self.ptr.timestep
 *     @timestep.setter             # <<<<<<<<<<<<<<
 *     def timestep(self, mjtNum x): self.ptr.timestep = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8timestep_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8timestep_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 56, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.timestep.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8timestep_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8timestep_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":56
 *     def timestep(self): return self.ptr.timestep
 *     @timestep.setter
 *     def timestep(self, mjtNum x): self.ptr.timestep = x             # <<<<<<<<<<<<<<
 *     @property
 *     def inttotal(self): return self.ptr.inttotal
 */
  __pyx_v_self->ptr->timestep = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":55
 *     @property
 *     def timestep(self): return self.ptr.timestep
 *     @timestep.setter             # <<<<<<<<<<<<<<
 *     def timestep(self, mjtNum x): self.ptr.timestep = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":57
 *     @timestep.setter
 *     def timestep(self, mjtNum x): self.ptr.timestep = x
 *     @property             # <<<<<<<<<<<<<<
 *     def inttotal(self): return self.ptr.inttotal
 *     @inttotal.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8inttotal_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8inttotal_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8inttotal___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8inttotal___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":58
 *     def timestep(self, mjtNum x): self.ptr.timestep = x
 *     @property
 *     def inttotal(self): return self.ptr.inttotal             # <<<<<<<<<<<<<<
 *     @inttotal.setter
 *     def inttotal(self, mjtNum x): self.ptr.inttotal = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->inttotal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":57
 *     @timestep.setter
 *     def timestep(self, mjtNum x): self.ptr.timestep = x
 *     @property             # <<<<<<<<<<<<<<
 *     def inttotal(self): return self.ptr.inttotal
 *     @inttotal.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.inttotal.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":59
 *     @property
 *     def inttotal(self): return self.ptr.inttotal
 *     @inttotal.setter             # <<<<<<<<<<<<<<
 *     def inttotal(self, mjtNum x): self.ptr.inttotal = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8inttotal_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8inttotal_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 60, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.inttotal.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8inttotal_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8inttotal_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":60
 *     def inttotal(self): return self.ptr.inttotal
 *     @inttotal.setter
 *     def inttotal(self, mjtNum x): self.ptr.inttotal = x             # <<<<<<<<<<<<<<
 *     @property
 *     def inteval(self): return self.ptr.inteval
 */
  __pyx_v_self->ptr->inttotal = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":59
 *     @property
 *     def inttotal(self): return self.ptr.inttotal
 *     @inttotal.setter             # <<<<<<<<<<<<<<
 *     def inttotal(self, mjtNum x): self.ptr.inttotal = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":61
 *     @inttotal.setter
 *     def inttotal(self, mjtNum x): self.ptr.inttotal = x
 *     @property             # <<<<<<<<<<<<<<
 *     def inteval(self): return self.ptr.inteval
 *     @inteval.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_7inteval_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_7inteval_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_7inteval___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_7inteval___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":62
 *     def inttotal(self, mjtNum x): self.ptr.inttotal = x
 *     @property
 *     def inteval(self): return self.ptr.inteval             # <<<<<<<<<<<<<<
 *     @inteval.setter
 *     def inteval(self, mjtNum x): self.ptr.inteval = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->inteval); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":61
 *     @inttotal.setter
 *     def inttotal(self, mjtNum x): self.ptr.inttotal = x
 *     @property             # <<<<<<<<<<<<<<
 *     def inteval(self): return self.ptr.inteval
 *     @inteval.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.inteval.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":63
 *     @property
 *     def inteval(self): return self.ptr.inteval
 *     @inteval.setter             # <<<<<<<<<<<<<<
 *     def inteval(self, mjtNum x): self.ptr.inteval = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_7inteval_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_7inteval_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 64, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.inteval.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_7inteval_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_7inteval_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":64
 *     def inteval(self): return self.ptr.inteval
 *     @inteval.setter
 *     def inteval(self, mjtNum x): self.ptr.inteval = x             # <<<<<<<<<<<<<<
 *     @property
 *     def tolrange(self): return self.ptr.tolrange
 */
  __pyx_v_self->ptr->inteval = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":63
 *     @property
 *     def inteval(self): return self.ptr.inteval
 *     @inteval.setter             # <<<<<<<<<<<<<<
 *     def inteval(self, mjtNum x): self.ptr.inteval = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":65
 *     @inteval.setter
 *     def inteval(self, mjtNum x): self.ptr.inteval = x
 *     @property             # <<<<<<<<<<<<<<
 *     def tolrange(self): return self.ptr.tolrange
 *     @tolrange.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8tolrange_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8tolrange_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8tolrange___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8tolrange___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":66
 *     def inteval(self, mjtNum x): self.ptr.inteval = x
 *     @property
 *     def tolrange(self): return self.ptr.tolrange             # <<<<<<<<<<<<<<
 *     @tolrange.setter
 *     def tolrange(self, mjtNum x): self.ptr.tolrange = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->tolrange); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":65
 *     @inteval.setter
 *     def inteval(self, mjtNum x): self.ptr.inteval = x
 *     @property             # <<<<<<<<<<<<<<
 *     def tolrange(self): return self.ptr.tolrange
 *     @tolrange.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.tolrange.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":67
 *     @property
 *     def tolrange(self): return self.ptr.tolrange
 *     @tolrange.setter             # <<<<<<<<<<<<<<
 *     def tolrange(self, mjtNum x): self.ptr.tolrange = x
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8tolrange_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8tolrange_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 68, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.tolrange.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8tolrange_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_8tolrange_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":68
 *     def tolrange(self): return self.ptr.tolrange
 *     @tolrange.setter
 *     def tolrange(self, mjtNum x): self.ptr.tolrange = x             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjLROpt WrapMjLROpt(mjLROpt* p):
 */
  __pyx_v_self->ptr->tolrange = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":67
 *     @property
 *     def tolrange(self): return self.ptr.tolrange
 *     @tolrange.setter             # <<<<<<<<<<<<<<
 *     def tolrange(self, mjtNum x): self.ptr.tolrange = x
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjLROpt_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjLROpt_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjLROpt_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjLROpt.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":70
 *     def tolrange(self, mjtNum x): self.ptr.tolrange = x
 * 
 * cdef PyMjLROpt WrapMjLROpt(mjLROpt* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjLROpt o = PyMjLROpt()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_f_9mujoco_py_4cymj_WrapMjLROpt(mjLROpt *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjLROpt", 1);

  /* "mujoco_py/generated/wrappers.pxi":71
 * 
 * cdef PyMjLROpt WrapMjLROpt(mjLROpt* p):
 *     cdef PyMjLROpt o = PyMjLROpt()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjLROpt)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":72
 * cdef PyMjLROpt WrapMjLROpt(mjLROpt* p):
 *     cdef PyMjLROpt o = PyMjLROpt()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjLROpt *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":73
 *     cdef PyMjLROpt o = PyMjLROpt()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjVFS(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":70
 *     def tolrange(self, mjtNum x): self.ptr.tolrange = x
 * 
 * cdef PyMjLROpt WrapMjLROpt(mjLROpt* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjLROpt o = PyMjLROpt()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjLROpt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":82
 *     cdef np.ndarray _filename
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = <mjVFS*> PyMem_Malloc(sizeof(mjVFS))
 *         if not self.ptr:
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_7PyMjVFS_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_7PyMjVFS_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_7PyMjVFS___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_7PyMjVFS___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "mujoco_py/generated/wrappers.pxi":83
 * 
 *     def __cinit__(self):
 *         self.ptr = <mjVFS*> PyMem_Malloc(sizeof(mjVFS))             # <<<<<<<<<<<<<<
 *         if not self.ptr:
 *             raise MemoryError()
 */
  __pyx_v_self->ptr = ((mjVFS *)PyMem_Malloc((sizeof(mjVFS))));

  /* "mujoco_py/generated/wrappers.pxi":84
 *     def __cinit__(self):
 *         self.ptr = <mjVFS*> PyMem_Malloc(sizeof(mjVFS))
 *         if not self.ptr:             # <<<<<<<<<<<<<<
 *             raise MemoryError()
 * 
 */
  __pyx_t_1 = (!(__pyx_v_self->ptr != 0));
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":85
 *         self.ptr = <mjVFS*> PyMem_Malloc(sizeof(mjVFS))
 *         if not self.ptr:
 *             raise MemoryError()             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
    PyErr_NoMemory(); __PYX_ERR(4, 85, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":84
 *     def __cinit__(self):
 *         self.ptr = <mjVFS*> PyMem_Malloc(sizeof(mjVFS))
 *         if not self.ptr:             # <<<<<<<<<<<<<<
 *             raise MemoryError()
 * 
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":82
 *     cdef np.ndarray _filename
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = <mjVFS*> PyMem_Malloc(sizeof(mjVFS))
 *         if not self.ptr:
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVFS.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":87
 *             raise MemoryError()
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         PyMem_Free(self.ptr)
 * 
 */

/* Python wrapper */
static void __pyx_pw_9mujoco_py_4cymj_7PyMjVFS_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_9mujoco_py_4cymj_7PyMjVFS_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_9mujoco_py_4cymj_7PyMjVFS_2__dealloc__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_9mujoco_py_4cymj_7PyMjVFS_2__dealloc__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self) {

  /* "mujoco_py/generated/wrappers.pxi":88
 * 
 *     def __dealloc__(self):
 *         PyMem_Free(self.ptr)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  PyMem_Free(__pyx_v_self->ptr);

  /* "mujoco_py/generated/wrappers.pxi":87
 *             raise MemoryError()
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         PyMem_Free(self.ptr)
 * 
 */

  /* function exit code */
}

/* "mujoco_py/generated/wrappers.pxi":91
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_7PyMjVFS_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_7PyMjVFS_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":92
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjVFS* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 92, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":91
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVFS.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":94
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVFS* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_7PyMjVFS__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self, mjVFS *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":96
 *     cdef void _set(self, mjVFS* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":99
 * 
 * 
 *         self._filesize = _wrap_int_1d(&p.filesize[0], 2000)             # <<<<<<<<<<<<<<
 *         self._filename = _wrap_char_2d(&p.filename[0][0], 2000, 1000)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d((&(__pyx_v_p->filesize[0])), 0x7D0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_filesize);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_filesize);
  __pyx_v_self->_filesize = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":100
 * 
 *         self._filesize = _wrap_int_1d(&p.filesize[0], 2000)
 *         self._filename = _wrap_char_2d(&p.filename[0][0], 2000, 1000)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_char_2d((&((__pyx_v_p->filename[0])[0])), 0x7D0, 0x3E8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_filename);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_filename);
  __pyx_v_self->_filename = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":94
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVFS* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjVFS._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":102
 *         self._filename = _wrap_char_2d(&p.filename[0][0], 2000, 1000)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def nfile(self): return self.ptr.nfile
 *     @nfile.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_5nfile_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_5nfile_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_7PyMjVFS_5nfile___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_7PyMjVFS_5nfile___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":103
 * 
 *     @property
 *     def nfile(self): return self.ptr.nfile             # <<<<<<<<<<<<<<
 *     @nfile.setter
 *     def nfile(self, int x): self.ptr.nfile = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nfile); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":102
 *         self._filename = _wrap_char_2d(&p.filename[0][0], 2000, 1000)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def nfile(self): return self.ptr.nfile
 *     @nfile.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVFS.nfile.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":104
 *     @property
 *     def nfile(self): return self.ptr.nfile
 *     @nfile.setter             # <<<<<<<<<<<<<<
 *     def nfile(self, int x): self.ptr.nfile = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_7PyMjVFS_5nfile_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_7PyMjVFS_5nfile_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 105, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVFS.nfile.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_7PyMjVFS_5nfile_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_7PyMjVFS_5nfile_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":105
 *     def nfile(self): return self.ptr.nfile
 *     @nfile.setter
 *     def nfile(self, int x): self.ptr.nfile = x             # <<<<<<<<<<<<<<
 *     @property
 *     def filesize(self): return self._filesize
 */
  __pyx_v_self->ptr->nfile = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":104
 *     @property
 *     def nfile(self): return self.ptr.nfile
 *     @nfile.setter             # <<<<<<<<<<<<<<
 *     def nfile(self, int x): self.ptr.nfile = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":106
 *     @nfile.setter
 *     def nfile(self, int x): self.ptr.nfile = x
 *     @property             # <<<<<<<<<<<<<<
 *     def filesize(self): return self._filesize
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_8filesize_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_8filesize_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_7PyMjVFS_8filesize___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_7PyMjVFS_8filesize___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":107
 *     def nfile(self, int x): self.ptr.nfile = x
 *     @property
 *     def filesize(self): return self._filesize             # <<<<<<<<<<<<<<
 *     @property
 *     def filename(self): return self._filename
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_filesize);
  __pyx_r = ((PyObject *)__pyx_v_self->_filesize);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":106
 *     @nfile.setter
 *     def nfile(self, int x): self.ptr.nfile = x
 *     @property             # <<<<<<<<<<<<<<
 *     def filesize(self): return self._filesize
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":108
 *     @property
 *     def filesize(self): return self._filesize
 *     @property             # <<<<<<<<<<<<<<
 *     def filename(self): return self._filename
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_8filename_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_8filename_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_7PyMjVFS_8filename___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_7PyMjVFS_8filename___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":109
 *     def filesize(self): return self._filesize
 *     @property
 *     def filename(self): return self._filename             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjVFS WrapMjVFS(mjVFS* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_filename);
  __pyx_r = ((PyObject *)__pyx_v_self->_filename);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":108
 *     @property
 *     def filesize(self): return self._filesize
 *     @property             # <<<<<<<<<<<<<<
 *     def filename(self): return self._filename
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_7PyMjVFS_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_7PyMjVFS_4__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_7PyMjVFS_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVFS.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_7PyMjVFS_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVFS.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_7PyMjVFS_6__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_7PyMjVFS_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVFS.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":111
 *     def filename(self): return self._filename
 * 
 * cdef PyMjVFS WrapMjVFS(mjVFS* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVFS o = PyMjVFS()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_f_9mujoco_py_4cymj_WrapMjVFS(mjVFS *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjVFS", 1);

  /* "mujoco_py/generated/wrappers.pxi":112
 * 
 * cdef PyMjVFS WrapMjVFS(mjVFS* p):
 *     cdef PyMjVFS o = PyMjVFS()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjVFS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":113
 * cdef PyMjVFS WrapMjVFS(mjVFS* p):
 *     cdef PyMjVFS o = PyMjVFS()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVFS *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":114
 *     cdef PyMjVFS o = PyMjVFS()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjOption(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":111
 *     def filename(self): return self._filename
 * 
 * cdef PyMjVFS WrapMjVFS(mjVFS* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVFS o = PyMjVFS()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjVFS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":126
 *     cdef np.ndarray _o_solimp
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":127
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":126
 *     cdef np.ndarray _o_solimp
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":130
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":131
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjOption* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":130
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":133
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjOption* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_10PyMjOption__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjOption *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":135
 *     cdef void _set(self, mjOption* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":138
 * 
 * 
 *         self._gravity = _wrap_mjtNum_1d(&p.gravity[0], 3)             # <<<<<<<<<<<<<<
 *         self._wind = _wrap_mjtNum_1d(&p.wind[0], 3)
 *         self._magnetic = _wrap_mjtNum_1d(&p.magnetic[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->gravity[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_gravity);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_gravity);
  __pyx_v_self->_gravity = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":139
 * 
 *         self._gravity = _wrap_mjtNum_1d(&p.gravity[0], 3)
 *         self._wind = _wrap_mjtNum_1d(&p.wind[0], 3)             # <<<<<<<<<<<<<<
 *         self._magnetic = _wrap_mjtNum_1d(&p.magnetic[0], 3)
 *         self._o_solref = _wrap_mjtNum_1d(&p.o_solref[0], 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->wind[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_wind);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_wind);
  __pyx_v_self->_wind = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":140
 *         self._gravity = _wrap_mjtNum_1d(&p.gravity[0], 3)
 *         self._wind = _wrap_mjtNum_1d(&p.wind[0], 3)
 *         self._magnetic = _wrap_mjtNum_1d(&p.magnetic[0], 3)             # <<<<<<<<<<<<<<
 *         self._o_solref = _wrap_mjtNum_1d(&p.o_solref[0], 2)
 *         self._o_solimp = _wrap_mjtNum_1d(&p.o_solimp[0], 5)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->magnetic[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_magnetic);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_magnetic);
  __pyx_v_self->_magnetic = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":141
 *         self._wind = _wrap_mjtNum_1d(&p.wind[0], 3)
 *         self._magnetic = _wrap_mjtNum_1d(&p.magnetic[0], 3)
 *         self._o_solref = _wrap_mjtNum_1d(&p.o_solref[0], 2)             # <<<<<<<<<<<<<<
 *         self._o_solimp = _wrap_mjtNum_1d(&p.o_solimp[0], 5)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->o_solref[0])), 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_o_solref);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_o_solref);
  __pyx_v_self->_o_solref = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":142
 *         self._magnetic = _wrap_mjtNum_1d(&p.magnetic[0], 3)
 *         self._o_solref = _wrap_mjtNum_1d(&p.o_solref[0], 2)
 *         self._o_solimp = _wrap_mjtNum_1d(&p.o_solimp[0], 5)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->o_solimp[0])), 5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_o_solimp);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_o_solimp);
  __pyx_v_self->_o_solimp = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":133
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjOption* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjOption._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":144
 *         self._o_solimp = _wrap_mjtNum_1d(&p.o_solimp[0], 5)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def timestep(self): return self.ptr.timestep
 *     @timestep.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_8timestep_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_8timestep_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8timestep___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_8timestep___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":145
 * 
 *     @property
 *     def timestep(self): return self.ptr.timestep             # <<<<<<<<<<<<<<
 *     @timestep.setter
 *     def timestep(self, mjtNum x): self.ptr.timestep = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->timestep); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":144
 *         self._o_solimp = _wrap_mjtNum_1d(&p.o_solimp[0], 5)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def timestep(self): return self.ptr.timestep
 *     @timestep.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.timestep.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":146
 *     @property
 *     def timestep(self): return self.ptr.timestep
 *     @timestep.setter             # <<<<<<<<<<<<<<
 *     def timestep(self, mjtNum x): self.ptr.timestep = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8timestep_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8timestep_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 147, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.timestep.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8timestep_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8timestep_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":147
 *     def timestep(self): return self.ptr.timestep
 *     @timestep.setter
 *     def timestep(self, mjtNum x): self.ptr.timestep = x             # <<<<<<<<<<<<<<
 *     @property
 *     def apirate(self): return self.ptr.apirate
 */
  __pyx_v_self->ptr->timestep = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":146
 *     @property
 *     def timestep(self): return self.ptr.timestep
 *     @timestep.setter             # <<<<<<<<<<<<<<
 *     def timestep(self, mjtNum x): self.ptr.timestep = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":148
 *     @timestep.setter
 *     def timestep(self, mjtNum x): self.ptr.timestep = x
 *     @property             # <<<<<<<<<<<<<<
 *     def apirate(self): return self.ptr.apirate
 *     @apirate.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_7apirate_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_7apirate_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_7apirate___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_7apirate___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":149
 *     def timestep(self, mjtNum x): self.ptr.timestep = x
 *     @property
 *     def apirate(self): return self.ptr.apirate             # <<<<<<<<<<<<<<
 *     @apirate.setter
 *     def apirate(self, mjtNum x): self.ptr.apirate = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->apirate); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":148
 *     @timestep.setter
 *     def timestep(self, mjtNum x): self.ptr.timestep = x
 *     @property             # <<<<<<<<<<<<<<
 *     def apirate(self): return self.ptr.apirate
 *     @apirate.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.apirate.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":150
 *     @property
 *     def apirate(self): return self.ptr.apirate
 *     @apirate.setter             # <<<<<<<<<<<<<<
 *     def apirate(self, mjtNum x): self.ptr.apirate = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_7apirate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_7apirate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 151, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.apirate.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_7apirate_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_7apirate_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":151
 *     def apirate(self): return self.ptr.apirate
 *     @apirate.setter
 *     def apirate(self, mjtNum x): self.ptr.apirate = x             # <<<<<<<<<<<<<<
 *     @property
 *     def impratio(self): return self.ptr.impratio
 */
  __pyx_v_self->ptr->apirate = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":150
 *     @property
 *     def apirate(self): return self.ptr.apirate
 *     @apirate.setter             # <<<<<<<<<<<<<<
 *     def apirate(self, mjtNum x): self.ptr.apirate = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":152
 *     @apirate.setter
 *     def apirate(self, mjtNum x): self.ptr.apirate = x
 *     @property             # <<<<<<<<<<<<<<
 *     def impratio(self): return self.ptr.impratio
 *     @impratio.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_8impratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_8impratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8impratio___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_8impratio___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":153
 *     def apirate(self, mjtNum x): self.ptr.apirate = x
 *     @property
 *     def impratio(self): return self.ptr.impratio             # <<<<<<<<<<<<<<
 *     @impratio.setter
 *     def impratio(self, mjtNum x): self.ptr.impratio = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->impratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":152
 *     @apirate.setter
 *     def apirate(self, mjtNum x): self.ptr.apirate = x
 *     @property             # <<<<<<<<<<<<<<
 *     def impratio(self): return self.ptr.impratio
 *     @impratio.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.impratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":154
 *     @property
 *     def impratio(self): return self.ptr.impratio
 *     @impratio.setter             # <<<<<<<<<<<<<<
 *     def impratio(self, mjtNum x): self.ptr.impratio = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8impratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8impratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 155, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.impratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8impratio_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8impratio_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":155
 *     def impratio(self): return self.ptr.impratio
 *     @impratio.setter
 *     def impratio(self, mjtNum x): self.ptr.impratio = x             # <<<<<<<<<<<<<<
 *     @property
 *     def tolerance(self): return self.ptr.tolerance
 */
  __pyx_v_self->ptr->impratio = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":154
 *     @property
 *     def impratio(self): return self.ptr.impratio
 *     @impratio.setter             # <<<<<<<<<<<<<<
 *     def impratio(self, mjtNum x): self.ptr.impratio = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":156
 *     @impratio.setter
 *     def impratio(self, mjtNum x): self.ptr.impratio = x
 *     @property             # <<<<<<<<<<<<<<
 *     def tolerance(self): return self.ptr.tolerance
 *     @tolerance.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_9tolerance_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_9tolerance_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_9tolerance___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_9tolerance___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":157
 *     def impratio(self, mjtNum x): self.ptr.impratio = x
 *     @property
 *     def tolerance(self): return self.ptr.tolerance             # <<<<<<<<<<<<<<
 *     @tolerance.setter
 *     def tolerance(self, mjtNum x): self.ptr.tolerance = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->tolerance); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":156
 *     @impratio.setter
 *     def impratio(self, mjtNum x): self.ptr.impratio = x
 *     @property             # <<<<<<<<<<<<<<
 *     def tolerance(self): return self.ptr.tolerance
 *     @tolerance.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.tolerance.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":158
 *     @property
 *     def tolerance(self): return self.ptr.tolerance
 *     @tolerance.setter             # <<<<<<<<<<<<<<
 *     def tolerance(self, mjtNum x): self.ptr.tolerance = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_9tolerance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_9tolerance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 159, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.tolerance.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_9tolerance_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_9tolerance_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":159
 *     def tolerance(self): return self.ptr.tolerance
 *     @tolerance.setter
 *     def tolerance(self, mjtNum x): self.ptr.tolerance = x             # <<<<<<<<<<<<<<
 *     @property
 *     def noslip_tolerance(self): return self.ptr.noslip_tolerance
 */
  __pyx_v_self->ptr->tolerance = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":158
 *     @property
 *     def tolerance(self): return self.ptr.tolerance
 *     @tolerance.setter             # <<<<<<<<<<<<<<
 *     def tolerance(self, mjtNum x): self.ptr.tolerance = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":160
 *     @tolerance.setter
 *     def tolerance(self, mjtNum x): self.ptr.tolerance = x
 *     @property             # <<<<<<<<<<<<<<
 *     def noslip_tolerance(self): return self.ptr.noslip_tolerance
 *     @noslip_tolerance.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_16noslip_tolerance_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_16noslip_tolerance_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_16noslip_tolerance___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_16noslip_tolerance___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":161
 *     def tolerance(self, mjtNum x): self.ptr.tolerance = x
 *     @property
 *     def noslip_tolerance(self): return self.ptr.noslip_tolerance             # <<<<<<<<<<<<<<
 *     @noslip_tolerance.setter
 *     def noslip_tolerance(self, mjtNum x): self.ptr.noslip_tolerance = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->noslip_tolerance); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":160
 *     @tolerance.setter
 *     def tolerance(self, mjtNum x): self.ptr.tolerance = x
 *     @property             # <<<<<<<<<<<<<<
 *     def noslip_tolerance(self): return self.ptr.noslip_tolerance
 *     @noslip_tolerance.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.noslip_tolerance.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":162
 *     @property
 *     def noslip_tolerance(self): return self.ptr.noslip_tolerance
 *     @noslip_tolerance.setter             # <<<<<<<<<<<<<<
 *     def noslip_tolerance(self, mjtNum x): self.ptr.noslip_tolerance = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_16noslip_tolerance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_16noslip_tolerance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 163, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.noslip_tolerance.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_16noslip_tolerance_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_16noslip_tolerance_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":163
 *     def noslip_tolerance(self): return self.ptr.noslip_tolerance
 *     @noslip_tolerance.setter
 *     def noslip_tolerance(self, mjtNum x): self.ptr.noslip_tolerance = x             # <<<<<<<<<<<<<<
 *     @property
 *     def mpr_tolerance(self): return self.ptr.mpr_tolerance
 */
  __pyx_v_self->ptr->noslip_tolerance = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":162
 *     @property
 *     def noslip_tolerance(self): return self.ptr.noslip_tolerance
 *     @noslip_tolerance.setter             # <<<<<<<<<<<<<<
 *     def noslip_tolerance(self, mjtNum x): self.ptr.noslip_tolerance = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":164
 *     @noslip_tolerance.setter
 *     def noslip_tolerance(self, mjtNum x): self.ptr.noslip_tolerance = x
 *     @property             # <<<<<<<<<<<<<<
 *     def mpr_tolerance(self): return self.ptr.mpr_tolerance
 *     @mpr_tolerance.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_13mpr_tolerance_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_13mpr_tolerance_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_13mpr_tolerance___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_13mpr_tolerance___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":165
 *     def noslip_tolerance(self, mjtNum x): self.ptr.noslip_tolerance = x
 *     @property
 *     def mpr_tolerance(self): return self.ptr.mpr_tolerance             # <<<<<<<<<<<<<<
 *     @mpr_tolerance.setter
 *     def mpr_tolerance(self, mjtNum x): self.ptr.mpr_tolerance = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->mpr_tolerance); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":164
 *     @noslip_tolerance.setter
 *     def noslip_tolerance(self, mjtNum x): self.ptr.noslip_tolerance = x
 *     @property             # <<<<<<<<<<<<<<
 *     def mpr_tolerance(self): return self.ptr.mpr_tolerance
 *     @mpr_tolerance.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.mpr_tolerance.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":166
 *     @property
 *     def mpr_tolerance(self): return self.ptr.mpr_tolerance
 *     @mpr_tolerance.setter             # <<<<<<<<<<<<<<
 *     def mpr_tolerance(self, mjtNum x): self.ptr.mpr_tolerance = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_13mpr_tolerance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_13mpr_tolerance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 167, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.mpr_tolerance.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_13mpr_tolerance_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_13mpr_tolerance_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":167
 *     def mpr_tolerance(self): return self.ptr.mpr_tolerance
 *     @mpr_tolerance.setter
 *     def mpr_tolerance(self, mjtNum x): self.ptr.mpr_tolerance = x             # <<<<<<<<<<<<<<
 *     @property
 *     def density(self): return self.ptr.density
 */
  __pyx_v_self->ptr->mpr_tolerance = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":166
 *     @property
 *     def mpr_tolerance(self): return self.ptr.mpr_tolerance
 *     @mpr_tolerance.setter             # <<<<<<<<<<<<<<
 *     def mpr_tolerance(self, mjtNum x): self.ptr.mpr_tolerance = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":168
 *     @mpr_tolerance.setter
 *     def mpr_tolerance(self, mjtNum x): self.ptr.mpr_tolerance = x
 *     @property             # <<<<<<<<<<<<<<
 *     def density(self): return self.ptr.density
 *     @density.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_7density_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_7density_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_7density___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_7density___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":169
 *     def mpr_tolerance(self, mjtNum x): self.ptr.mpr_tolerance = x
 *     @property
 *     def density(self): return self.ptr.density             # <<<<<<<<<<<<<<
 *     @density.setter
 *     def density(self, mjtNum x): self.ptr.density = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->density); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":168
 *     @mpr_tolerance.setter
 *     def mpr_tolerance(self, mjtNum x): self.ptr.mpr_tolerance = x
 *     @property             # <<<<<<<<<<<<<<
 *     def density(self): return self.ptr.density
 *     @density.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.density.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":170
 *     @property
 *     def density(self): return self.ptr.density
 *     @density.setter             # <<<<<<<<<<<<<<
 *     def density(self, mjtNum x): self.ptr.density = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_7density_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_7density_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 171, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.density.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_7density_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_7density_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":171
 *     def density(self): return self.ptr.density
 *     @density.setter
 *     def density(self, mjtNum x): self.ptr.density = x             # <<<<<<<<<<<<<<
 *     @property
 *     def viscosity(self): return self.ptr.viscosity
 */
  __pyx_v_self->ptr->density = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":170
 *     @property
 *     def density(self): return self.ptr.density
 *     @density.setter             # <<<<<<<<<<<<<<
 *     def density(self, mjtNum x): self.ptr.density = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":172
 *     @density.setter
 *     def density(self, mjtNum x): self.ptr.density = x
 *     @property             # <<<<<<<<<<<<<<
 *     def viscosity(self): return self.ptr.viscosity
 *     @viscosity.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_9viscosity_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_9viscosity_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_9viscosity___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_9viscosity___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":173
 *     def density(self, mjtNum x): self.ptr.density = x
 *     @property
 *     def viscosity(self): return self.ptr.viscosity             # <<<<<<<<<<<<<<
 *     @viscosity.setter
 *     def viscosity(self, mjtNum x): self.ptr.viscosity = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->viscosity); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":172
 *     @density.setter
 *     def density(self, mjtNum x): self.ptr.density = x
 *     @property             # <<<<<<<<<<<<<<
 *     def viscosity(self): return self.ptr.viscosity
 *     @viscosity.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.viscosity.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":174
 *     @property
 *     def viscosity(self): return self.ptr.viscosity
 *     @viscosity.setter             # <<<<<<<<<<<<<<
 *     def viscosity(self, mjtNum x): self.ptr.viscosity = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_9viscosity_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_9viscosity_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 175, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.viscosity.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_9viscosity_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_9viscosity_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":175
 *     def viscosity(self): return self.ptr.viscosity
 *     @viscosity.setter
 *     def viscosity(self, mjtNum x): self.ptr.viscosity = x             # <<<<<<<<<<<<<<
 *     @property
 *     def o_margin(self): return self.ptr.o_margin
 */
  __pyx_v_self->ptr->viscosity = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":174
 *     @property
 *     def viscosity(self): return self.ptr.viscosity
 *     @viscosity.setter             # <<<<<<<<<<<<<<
 *     def viscosity(self, mjtNum x): self.ptr.viscosity = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":176
 *     @viscosity.setter
 *     def viscosity(self, mjtNum x): self.ptr.viscosity = x
 *     @property             # <<<<<<<<<<<<<<
 *     def o_margin(self): return self.ptr.o_margin
 *     @o_margin.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_8o_margin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_8o_margin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8o_margin___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_8o_margin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":177
 *     def viscosity(self, mjtNum x): self.ptr.viscosity = x
 *     @property
 *     def o_margin(self): return self.ptr.o_margin             # <<<<<<<<<<<<<<
 *     @o_margin.setter
 *     def o_margin(self, mjtNum x): self.ptr.o_margin = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->o_margin); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":176
 *     @viscosity.setter
 *     def viscosity(self, mjtNum x): self.ptr.viscosity = x
 *     @property             # <<<<<<<<<<<<<<
 *     def o_margin(self): return self.ptr.o_margin
 *     @o_margin.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.o_margin.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":178
 *     @property
 *     def o_margin(self): return self.ptr.o_margin
 *     @o_margin.setter             # <<<<<<<<<<<<<<
 *     def o_margin(self, mjtNum x): self.ptr.o_margin = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8o_margin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8o_margin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 179, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.o_margin.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8o_margin_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8o_margin_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":179
 *     def o_margin(self): return self.ptr.o_margin
 *     @o_margin.setter
 *     def o_margin(self, mjtNum x): self.ptr.o_margin = x             # <<<<<<<<<<<<<<
 *     @property
 *     def integrator(self): return self.ptr.integrator
 */
  __pyx_v_self->ptr->o_margin = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":178
 *     @property
 *     def o_margin(self): return self.ptr.o_margin
 *     @o_margin.setter             # <<<<<<<<<<<<<<
 *     def o_margin(self, mjtNum x): self.ptr.o_margin = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":180
 *     @o_margin.setter
 *     def o_margin(self, mjtNum x): self.ptr.o_margin = x
 *     @property             # <<<<<<<<<<<<<<
 *     def integrator(self): return self.ptr.integrator
 *     @integrator.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_10integrator_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_10integrator_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_10integrator___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_10integrator___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":181
 *     def o_margin(self, mjtNum x): self.ptr.o_margin = x
 *     @property
 *     def integrator(self): return self.ptr.integrator             # <<<<<<<<<<<<<<
 *     @integrator.setter
 *     def integrator(self, int x): self.ptr.integrator = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->integrator); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":180
 *     @o_margin.setter
 *     def o_margin(self, mjtNum x): self.ptr.o_margin = x
 *     @property             # <<<<<<<<<<<<<<
 *     def integrator(self): return self.ptr.integrator
 *     @integrator.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.integrator.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":182
 *     @property
 *     def integrator(self): return self.ptr.integrator
 *     @integrator.setter             # <<<<<<<<<<<<<<
 *     def integrator(self, int x): self.ptr.integrator = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_10integrator_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_10integrator_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 183, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.integrator.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_10integrator_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_10integrator_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":183
 *     def integrator(self): return self.ptr.integrator
 *     @integrator.setter
 *     def integrator(self, int x): self.ptr.integrator = x             # <<<<<<<<<<<<<<
 *     @property
 *     def collision(self): return self.ptr.collision
 */
  __pyx_v_self->ptr->integrator = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":182
 *     @property
 *     def integrator(self): return self.ptr.integrator
 *     @integrator.setter             # <<<<<<<<<<<<<<
 *     def integrator(self, int x): self.ptr.integrator = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":184
 *     @integrator.setter
 *     def integrator(self, int x): self.ptr.integrator = x
 *     @property             # <<<<<<<<<<<<<<
 *     def collision(self): return self.ptr.collision
 *     @collision.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_9collision_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_9collision_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_9collision___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_9collision___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":185
 *     def integrator(self, int x): self.ptr.integrator = x
 *     @property
 *     def collision(self): return self.ptr.collision             # <<<<<<<<<<<<<<
 *     @collision.setter
 *     def collision(self, int x): self.ptr.collision = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->collision); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":184
 *     @integrator.setter
 *     def integrator(self, int x): self.ptr.integrator = x
 *     @property             # <<<<<<<<<<<<<<
 *     def collision(self): return self.ptr.collision
 *     @collision.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.collision.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":186
 *     @property
 *     def collision(self): return self.ptr.collision
 *     @collision.setter             # <<<<<<<<<<<<<<
 *     def collision(self, int x): self.ptr.collision = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_9collision_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_9collision_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 187, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.collision.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_9collision_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_9collision_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":187
 *     def collision(self): return self.ptr.collision
 *     @collision.setter
 *     def collision(self, int x): self.ptr.collision = x             # <<<<<<<<<<<<<<
 *     @property
 *     def cone(self): return self.ptr.cone
 */
  __pyx_v_self->ptr->collision = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":186
 *     @property
 *     def collision(self): return self.ptr.collision
 *     @collision.setter             # <<<<<<<<<<<<<<
 *     def collision(self, int x): self.ptr.collision = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":188
 *     @collision.setter
 *     def collision(self, int x): self.ptr.collision = x
 *     @property             # <<<<<<<<<<<<<<
 *     def cone(self): return self.ptr.cone
 *     @cone.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_4cone_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_4cone_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_4cone___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_4cone___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":189
 *     def collision(self, int x): self.ptr.collision = x
 *     @property
 *     def cone(self): return self.ptr.cone             # <<<<<<<<<<<<<<
 *     @cone.setter
 *     def cone(self, int x): self.ptr.cone = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->cone); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":188
 *     @collision.setter
 *     def collision(self, int x): self.ptr.collision = x
 *     @property             # <<<<<<<<<<<<<<
 *     def cone(self): return self.ptr.cone
 *     @cone.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.cone.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":190
 *     @property
 *     def cone(self): return self.ptr.cone
 *     @cone.setter             # <<<<<<<<<<<<<<
 *     def cone(self, int x): self.ptr.cone = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_4cone_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_4cone_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 191, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.cone.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_4cone_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_4cone_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":191
 *     def cone(self): return self.ptr.cone
 *     @cone.setter
 *     def cone(self, int x): self.ptr.cone = x             # <<<<<<<<<<<<<<
 *     @property
 *     def jacobian(self): return self.ptr.jacobian
 */
  __pyx_v_self->ptr->cone = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":190
 *     @property
 *     def cone(self): return self.ptr.cone
 *     @cone.setter             # <<<<<<<<<<<<<<
 *     def cone(self, int x): self.ptr.cone = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":192
 *     @cone.setter
 *     def cone(self, int x): self.ptr.cone = x
 *     @property             # <<<<<<<<<<<<<<
 *     def jacobian(self): return self.ptr.jacobian
 *     @jacobian.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_8jacobian_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_8jacobian_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8jacobian___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_8jacobian___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":193
 *     def cone(self, int x): self.ptr.cone = x
 *     @property
 *     def jacobian(self): return self.ptr.jacobian             # <<<<<<<<<<<<<<
 *     @jacobian.setter
 *     def jacobian(self, int x): self.ptr.jacobian = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->jacobian); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":192
 *     @cone.setter
 *     def cone(self, int x): self.ptr.cone = x
 *     @property             # <<<<<<<<<<<<<<
 *     def jacobian(self): return self.ptr.jacobian
 *     @jacobian.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.jacobian.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":194
 *     @property
 *     def jacobian(self): return self.ptr.jacobian
 *     @jacobian.setter             # <<<<<<<<<<<<<<
 *     def jacobian(self, int x): self.ptr.jacobian = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8jacobian_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8jacobian_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 195, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.jacobian.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8jacobian_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8jacobian_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":195
 *     def jacobian(self): return self.ptr.jacobian
 *     @jacobian.setter
 *     def jacobian(self, int x): self.ptr.jacobian = x             # <<<<<<<<<<<<<<
 *     @property
 *     def solver(self): return self.ptr.solver
 */
  __pyx_v_self->ptr->jacobian = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":194
 *     @property
 *     def jacobian(self): return self.ptr.jacobian
 *     @jacobian.setter             # <<<<<<<<<<<<<<
 *     def jacobian(self, int x): self.ptr.jacobian = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":196
 *     @jacobian.setter
 *     def jacobian(self, int x): self.ptr.jacobian = x
 *     @property             # <<<<<<<<<<<<<<
 *     def solver(self): return self.ptr.solver
 *     @solver.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_6solver_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_6solver_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_6solver___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_6solver___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":197
 *     def jacobian(self, int x): self.ptr.jacobian = x
 *     @property
 *     def solver(self): return self.ptr.solver             # <<<<<<<<<<<<<<
 *     @solver.setter
 *     def solver(self, int x): self.ptr.solver = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->solver); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":196
 *     @jacobian.setter
 *     def jacobian(self, int x): self.ptr.jacobian = x
 *     @property             # <<<<<<<<<<<<<<
 *     def solver(self): return self.ptr.solver
 *     @solver.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.solver.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":198
 *     @property
 *     def solver(self): return self.ptr.solver
 *     @solver.setter             # <<<<<<<<<<<<<<
 *     def solver(self, int x): self.ptr.solver = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_6solver_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_6solver_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 199, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.solver.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_6solver_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_6solver_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":199
 *     def solver(self): return self.ptr.solver
 *     @solver.setter
 *     def solver(self, int x): self.ptr.solver = x             # <<<<<<<<<<<<<<
 *     @property
 *     def iterations(self): return self.ptr.iterations
 */
  __pyx_v_self->ptr->solver = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":198
 *     @property
 *     def solver(self): return self.ptr.solver
 *     @solver.setter             # <<<<<<<<<<<<<<
 *     def solver(self, int x): self.ptr.solver = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":200
 *     @solver.setter
 *     def solver(self, int x): self.ptr.solver = x
 *     @property             # <<<<<<<<<<<<<<
 *     def iterations(self): return self.ptr.iterations
 *     @iterations.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_10iterations_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_10iterations_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_10iterations___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_10iterations___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":201
 *     def solver(self, int x): self.ptr.solver = x
 *     @property
 *     def iterations(self): return self.ptr.iterations             # <<<<<<<<<<<<<<
 *     @iterations.setter
 *     def iterations(self, int x): self.ptr.iterations = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->iterations); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":200
 *     @solver.setter
 *     def solver(self, int x): self.ptr.solver = x
 *     @property             # <<<<<<<<<<<<<<
 *     def iterations(self): return self.ptr.iterations
 *     @iterations.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.iterations.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":202
 *     @property
 *     def iterations(self): return self.ptr.iterations
 *     @iterations.setter             # <<<<<<<<<<<<<<
 *     def iterations(self, int x): self.ptr.iterations = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_10iterations_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_10iterations_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 203, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.iterations.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_10iterations_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_10iterations_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":203
 *     def iterations(self): return self.ptr.iterations
 *     @iterations.setter
 *     def iterations(self, int x): self.ptr.iterations = x             # <<<<<<<<<<<<<<
 *     @property
 *     def noslip_iterations(self): return self.ptr.noslip_iterations
 */
  __pyx_v_self->ptr->iterations = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":202
 *     @property
 *     def iterations(self): return self.ptr.iterations
 *     @iterations.setter             # <<<<<<<<<<<<<<
 *     def iterations(self, int x): self.ptr.iterations = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":204
 *     @iterations.setter
 *     def iterations(self, int x): self.ptr.iterations = x
 *     @property             # <<<<<<<<<<<<<<
 *     def noslip_iterations(self): return self.ptr.noslip_iterations
 *     @noslip_iterations.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_17noslip_iterations_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_17noslip_iterations_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_17noslip_iterations___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_17noslip_iterations___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":205
 *     def iterations(self, int x): self.ptr.iterations = x
 *     @property
 *     def noslip_iterations(self): return self.ptr.noslip_iterations             # <<<<<<<<<<<<<<
 *     @noslip_iterations.setter
 *     def noslip_iterations(self, int x): self.ptr.noslip_iterations = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->noslip_iterations); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":204
 *     @iterations.setter
 *     def iterations(self, int x): self.ptr.iterations = x
 *     @property             # <<<<<<<<<<<<<<
 *     def noslip_iterations(self): return self.ptr.noslip_iterations
 *     @noslip_iterations.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.noslip_iterations.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":206
 *     @property
 *     def noslip_iterations(self): return self.ptr.noslip_iterations
 *     @noslip_iterations.setter             # <<<<<<<<<<<<<<
 *     def noslip_iterations(self, int x): self.ptr.noslip_iterations = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_17noslip_iterations_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_17noslip_iterations_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 207, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.noslip_iterations.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_17noslip_iterations_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_17noslip_iterations_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":207
 *     def noslip_iterations(self): return self.ptr.noslip_iterations
 *     @noslip_iterations.setter
 *     def noslip_iterations(self, int x): self.ptr.noslip_iterations = x             # <<<<<<<<<<<<<<
 *     @property
 *     def mpr_iterations(self): return self.ptr.mpr_iterations
 */
  __pyx_v_self->ptr->noslip_iterations = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":206
 *     @property
 *     def noslip_iterations(self): return self.ptr.noslip_iterations
 *     @noslip_iterations.setter             # <<<<<<<<<<<<<<
 *     def noslip_iterations(self, int x): self.ptr.noslip_iterations = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":208
 *     @noslip_iterations.setter
 *     def noslip_iterations(self, int x): self.ptr.noslip_iterations = x
 *     @property             # <<<<<<<<<<<<<<
 *     def mpr_iterations(self): return self.ptr.mpr_iterations
 *     @mpr_iterations.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_14mpr_iterations_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_14mpr_iterations_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_14mpr_iterations___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_14mpr_iterations___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":209
 *     def noslip_iterations(self, int x): self.ptr.noslip_iterations = x
 *     @property
 *     def mpr_iterations(self): return self.ptr.mpr_iterations             # <<<<<<<<<<<<<<
 *     @mpr_iterations.setter
 *     def mpr_iterations(self, int x): self.ptr.mpr_iterations = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->mpr_iterations); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":208
 *     @noslip_iterations.setter
 *     def noslip_iterations(self, int x): self.ptr.noslip_iterations = x
 *     @property             # <<<<<<<<<<<<<<
 *     def mpr_iterations(self): return self.ptr.mpr_iterations
 *     @mpr_iterations.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.mpr_iterations.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":210
 *     @property
 *     def mpr_iterations(self): return self.ptr.mpr_iterations
 *     @mpr_iterations.setter             # <<<<<<<<<<<<<<
 *     def mpr_iterations(self, int x): self.ptr.mpr_iterations = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_14mpr_iterations_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_14mpr_iterations_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 211, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.mpr_iterations.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_14mpr_iterations_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_14mpr_iterations_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":211
 *     def mpr_iterations(self): return self.ptr.mpr_iterations
 *     @mpr_iterations.setter
 *     def mpr_iterations(self, int x): self.ptr.mpr_iterations = x             # <<<<<<<<<<<<<<
 *     @property
 *     def disableflags(self): return self.ptr.disableflags
 */
  __pyx_v_self->ptr->mpr_iterations = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":210
 *     @property
 *     def mpr_iterations(self): return self.ptr.mpr_iterations
 *     @mpr_iterations.setter             # <<<<<<<<<<<<<<
 *     def mpr_iterations(self, int x): self.ptr.mpr_iterations = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":212
 *     @mpr_iterations.setter
 *     def mpr_iterations(self, int x): self.ptr.mpr_iterations = x
 *     @property             # <<<<<<<<<<<<<<
 *     def disableflags(self): return self.ptr.disableflags
 *     @disableflags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_12disableflags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_12disableflags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_12disableflags___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_12disableflags___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":213
 *     def mpr_iterations(self, int x): self.ptr.mpr_iterations = x
 *     @property
 *     def disableflags(self): return self.ptr.disableflags             # <<<<<<<<<<<<<<
 *     @disableflags.setter
 *     def disableflags(self, int x): self.ptr.disableflags = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->disableflags); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":212
 *     @mpr_iterations.setter
 *     def mpr_iterations(self, int x): self.ptr.mpr_iterations = x
 *     @property             # <<<<<<<<<<<<<<
 *     def disableflags(self): return self.ptr.disableflags
 *     @disableflags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.disableflags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":214
 *     @property
 *     def disableflags(self): return self.ptr.disableflags
 *     @disableflags.setter             # <<<<<<<<<<<<<<
 *     def disableflags(self, int x): self.ptr.disableflags = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_12disableflags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_12disableflags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 215, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.disableflags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_12disableflags_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_12disableflags_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":215
 *     def disableflags(self): return self.ptr.disableflags
 *     @disableflags.setter
 *     def disableflags(self, int x): self.ptr.disableflags = x             # <<<<<<<<<<<<<<
 *     @property
 *     def enableflags(self): return self.ptr.enableflags
 */
  __pyx_v_self->ptr->disableflags = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":214
 *     @property
 *     def disableflags(self): return self.ptr.disableflags
 *     @disableflags.setter             # <<<<<<<<<<<<<<
 *     def disableflags(self, int x): self.ptr.disableflags = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":216
 *     @disableflags.setter
 *     def disableflags(self, int x): self.ptr.disableflags = x
 *     @property             # <<<<<<<<<<<<<<
 *     def enableflags(self): return self.ptr.enableflags
 *     @enableflags.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_11enableflags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_11enableflags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_11enableflags___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_11enableflags___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":217
 *     def disableflags(self, int x): self.ptr.disableflags = x
 *     @property
 *     def enableflags(self): return self.ptr.enableflags             # <<<<<<<<<<<<<<
 *     @enableflags.setter
 *     def enableflags(self, int x): self.ptr.enableflags = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->enableflags); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":216
 *     @disableflags.setter
 *     def disableflags(self, int x): self.ptr.disableflags = x
 *     @property             # <<<<<<<<<<<<<<
 *     def enableflags(self): return self.ptr.enableflags
 *     @enableflags.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.enableflags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":218
 *     @property
 *     def enableflags(self): return self.ptr.enableflags
 *     @enableflags.setter             # <<<<<<<<<<<<<<
 *     def enableflags(self, int x): self.ptr.enableflags = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_11enableflags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjOption_11enableflags_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 219, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.enableflags.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_11enableflags_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjOption_11enableflags_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":219
 *     def enableflags(self): return self.ptr.enableflags
 *     @enableflags.setter
 *     def enableflags(self, int x): self.ptr.enableflags = x             # <<<<<<<<<<<<<<
 *     @property
 *     def gravity(self): return self._gravity
 */
  __pyx_v_self->ptr->enableflags = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":218
 *     @property
 *     def enableflags(self): return self.ptr.enableflags
 *     @enableflags.setter             # <<<<<<<<<<<<<<
 *     def enableflags(self, int x): self.ptr.enableflags = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":220
 *     @enableflags.setter
 *     def enableflags(self, int x): self.ptr.enableflags = x
 *     @property             # <<<<<<<<<<<<<<
 *     def gravity(self): return self._gravity
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_7gravity_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_7gravity_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_7gravity___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_7gravity___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":221
 *     def enableflags(self, int x): self.ptr.enableflags = x
 *     @property
 *     def gravity(self): return self._gravity             # <<<<<<<<<<<<<<
 *     @property
 *     def wind(self): return self._wind
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_gravity);
  __pyx_r = ((PyObject *)__pyx_v_self->_gravity);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":220
 *     @enableflags.setter
 *     def enableflags(self, int x): self.ptr.enableflags = x
 *     @property             # <<<<<<<<<<<<<<
 *     def gravity(self): return self._gravity
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":222
 *     @property
 *     def gravity(self): return self._gravity
 *     @property             # <<<<<<<<<<<<<<
 *     def wind(self): return self._wind
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_4wind_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_4wind_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_4wind___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_4wind___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":223
 *     def gravity(self): return self._gravity
 *     @property
 *     def wind(self): return self._wind             # <<<<<<<<<<<<<<
 *     @property
 *     def magnetic(self): return self._magnetic
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_wind);
  __pyx_r = ((PyObject *)__pyx_v_self->_wind);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":222
 *     @property
 *     def gravity(self): return self._gravity
 *     @property             # <<<<<<<<<<<<<<
 *     def wind(self): return self._wind
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":224
 *     @property
 *     def wind(self): return self._wind
 *     @property             # <<<<<<<<<<<<<<
 *     def magnetic(self): return self._magnetic
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_8magnetic_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_8magnetic_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8magnetic___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_8magnetic___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":225
 *     def wind(self): return self._wind
 *     @property
 *     def magnetic(self): return self._magnetic             # <<<<<<<<<<<<<<
 *     @property
 *     def o_solref(self): return self._o_solref
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_magnetic);
  __pyx_r = ((PyObject *)__pyx_v_self->_magnetic);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":224
 *     @property
 *     def wind(self): return self._wind
 *     @property             # <<<<<<<<<<<<<<
 *     def magnetic(self): return self._magnetic
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":226
 *     @property
 *     def magnetic(self): return self._magnetic
 *     @property             # <<<<<<<<<<<<<<
 *     def o_solref(self): return self._o_solref
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_8o_solref_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_8o_solref_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8o_solref___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_8o_solref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":227
 *     def magnetic(self): return self._magnetic
 *     @property
 *     def o_solref(self): return self._o_solref             # <<<<<<<<<<<<<<
 *     @property
 *     def o_solimp(self): return self._o_solimp
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_o_solref);
  __pyx_r = ((PyObject *)__pyx_v_self->_o_solref);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":226
 *     @property
 *     def magnetic(self): return self._magnetic
 *     @property             # <<<<<<<<<<<<<<
 *     def o_solref(self): return self._o_solref
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":228
 *     @property
 *     def o_solref(self): return self._o_solref
 *     @property             # <<<<<<<<<<<<<<
 *     def o_solimp(self): return self._o_solimp
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_8o_solimp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_8o_solimp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_8o_solimp___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_8o_solimp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":229
 *     def o_solref(self): return self._o_solref
 *     @property
 *     def o_solimp(self): return self._o_solimp             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjOption WrapMjOption(mjOption* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_o_solimp);
  __pyx_r = ((PyObject *)__pyx_v_self->_o_solimp);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":228
 *     @property
 *     def o_solref(self): return self._o_solref
 *     @property             # <<<<<<<<<<<<<<
 *     def o_solimp(self): return self._o_solimp
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10PyMjOption_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjOption_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10PyMjOption_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjOption_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjOption_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjOption_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjOption_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjOption.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":231
 *     def o_solimp(self): return self._o_solimp
 * 
 * cdef PyMjOption WrapMjOption(mjOption* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjOption o = PyMjOption()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_f_9mujoco_py_4cymj_WrapMjOption(mjOption *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjOption", 1);

  /* "mujoco_py/generated/wrappers.pxi":232
 * 
 * cdef PyMjOption WrapMjOption(mjOption* p):
 *     cdef PyMjOption o = PyMjOption()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjOption)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":233
 * cdef PyMjOption WrapMjOption(mjOption* p):
 *     cdef PyMjOption o = PyMjOption()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjOption *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":234
 *     cdef PyMjOption o = PyMjOption()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjVisual(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":231
 *     def o_solimp(self): return self._o_solimp
 * 
 * cdef PyMjOption WrapMjOption(mjOption* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjOption o = PyMjOption()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjOption", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":247
 *     cdef PyMjVisual_rgba _rgba
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjVisual_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjVisual_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjVisual___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjVisual___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":248
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":247
 *     cdef PyMjVisual_rgba _rgba
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":251
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjVisual_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":252
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjVisual* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":251
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":254
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVisual* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_10PyMjVisual__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self, mjVisual *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":256
 *     cdef void _set(self, mjVisual* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":259
 * 
 * 
 *         self._global_ = WrapMjVisual_global_(&p.global_)             # <<<<<<<<<<<<<<
 *         self._quality = WrapMjVisual_quality(&p.quality)
 *         self._headlight = WrapMjVisual_headlight(&p.headlight)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjVisual_global_((&__pyx_v_p->global))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_global_);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_global_);
  __pyx_v_self->_global_ = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":260
 * 
 *         self._global_ = WrapMjVisual_global_(&p.global_)
 *         self._quality = WrapMjVisual_quality(&p.quality)             # <<<<<<<<<<<<<<
 *         self._headlight = WrapMjVisual_headlight(&p.headlight)
 *         self._map = WrapMjVisual_map(&p.map)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjVisual_quality((&__pyx_v_p->quality))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_quality);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_quality);
  __pyx_v_self->_quality = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":261
 *         self._global_ = WrapMjVisual_global_(&p.global_)
 *         self._quality = WrapMjVisual_quality(&p.quality)
 *         self._headlight = WrapMjVisual_headlight(&p.headlight)             # <<<<<<<<<<<<<<
 *         self._map = WrapMjVisual_map(&p.map)
 *         self._scale = WrapMjVisual_scale(&p.scale)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjVisual_headlight((&__pyx_v_p->headlight))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_headlight);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_headlight);
  __pyx_v_self->_headlight = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":262
 *         self._quality = WrapMjVisual_quality(&p.quality)
 *         self._headlight = WrapMjVisual_headlight(&p.headlight)
 *         self._map = WrapMjVisual_map(&p.map)             # <<<<<<<<<<<<<<
 *         self._scale = WrapMjVisual_scale(&p.scale)
 *         self._rgba = WrapMjVisual_rgba(&p.rgba)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjVisual_map((&__pyx_v_p->map))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_map);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_map);
  __pyx_v_self->_map = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":263
 *         self._headlight = WrapMjVisual_headlight(&p.headlight)
 *         self._map = WrapMjVisual_map(&p.map)
 *         self._scale = WrapMjVisual_scale(&p.scale)             # <<<<<<<<<<<<<<
 *         self._rgba = WrapMjVisual_rgba(&p.rgba)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjVisual_scale((&__pyx_v_p->scale))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_scale);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_scale);
  __pyx_v_self->_scale = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":264
 *         self._map = WrapMjVisual_map(&p.map)
 *         self._scale = WrapMjVisual_scale(&p.scale)
 *         self._rgba = WrapMjVisual_rgba(&p.rgba)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjVisual_rgba((&__pyx_v_p->rgba))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_rgba);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_rgba);
  __pyx_v_self->_rgba = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":254
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVisual* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjVisual._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":266
 *         self._rgba = WrapMjVisual_rgba(&p.rgba)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def global_(self): return self._global_
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_7global__1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_7global__1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjVisual_7global____get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_7global____get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":267
 * 
 *     @property
 *     def global_(self): return self._global_             # <<<<<<<<<<<<<<
 *     @property
 *     def quality(self): return self._quality
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_global_);
  __pyx_r = ((PyObject *)__pyx_v_self->_global_);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":266
 *         self._rgba = WrapMjVisual_rgba(&p.rgba)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def global_(self): return self._global_
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":268
 *     @property
 *     def global_(self): return self._global_
 *     @property             # <<<<<<<<<<<<<<
 *     def quality(self): return self._quality
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_7quality_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_7quality_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjVisual_7quality___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_7quality___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":269
 *     def global_(self): return self._global_
 *     @property
 *     def quality(self): return self._quality             # <<<<<<<<<<<<<<
 *     @property
 *     def headlight(self): return self._headlight
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_quality);
  __pyx_r = ((PyObject *)__pyx_v_self->_quality);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":268
 *     @property
 *     def global_(self): return self._global_
 *     @property             # <<<<<<<<<<<<<<
 *     def quality(self): return self._quality
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":270
 *     @property
 *     def quality(self): return self._quality
 *     @property             # <<<<<<<<<<<<<<
 *     def headlight(self): return self._headlight
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_9headlight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_9headlight_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjVisual_9headlight___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_9headlight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":271
 *     def quality(self): return self._quality
 *     @property
 *     def headlight(self): return self._headlight             # <<<<<<<<<<<<<<
 *     @property
 *     def map(self): return self._map
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_headlight);
  __pyx_r = ((PyObject *)__pyx_v_self->_headlight);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":270
 *     @property
 *     def quality(self): return self._quality
 *     @property             # <<<<<<<<<<<<<<
 *     def headlight(self): return self._headlight
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":272
 *     @property
 *     def headlight(self): return self._headlight
 *     @property             # <<<<<<<<<<<<<<
 *     def map(self): return self._map
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_3map_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_3map_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjVisual_3map___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_3map___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":273
 *     def headlight(self): return self._headlight
 *     @property
 *     def map(self): return self._map             # <<<<<<<<<<<<<<
 *     @property
 *     def scale(self): return self._scale
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_map);
  __pyx_r = ((PyObject *)__pyx_v_self->_map);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":272
 *     @property
 *     def headlight(self): return self._headlight
 *     @property             # <<<<<<<<<<<<<<
 *     def map(self): return self._map
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":274
 *     @property
 *     def map(self): return self._map
 *     @property             # <<<<<<<<<<<<<<
 *     def scale(self): return self._scale
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_5scale_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_5scale_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjVisual_5scale___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_5scale___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":275
 *     def map(self): return self._map
 *     @property
 *     def scale(self): return self._scale             # <<<<<<<<<<<<<<
 *     @property
 *     def rgba(self): return self._rgba
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_scale);
  __pyx_r = ((PyObject *)__pyx_v_self->_scale);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":274
 *     @property
 *     def map(self): return self._map
 *     @property             # <<<<<<<<<<<<<<
 *     def scale(self): return self._scale
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":276
 *     @property
 *     def scale(self): return self._scale
 *     @property             # <<<<<<<<<<<<<<
 *     def rgba(self): return self._rgba
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_4rgba_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_4rgba_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjVisual_4rgba___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_4rgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":277
 *     def scale(self): return self._scale
 *     @property
 *     def rgba(self): return self._rgba             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjVisual WrapMjVisual(mjVisual* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_rgba);
  __pyx_r = ((PyObject *)__pyx_v_self->_rgba);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":276
 *     @property
 *     def scale(self): return self._scale
 *     @property             # <<<<<<<<<<<<<<
 *     def rgba(self): return self._rgba
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10PyMjVisual_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjVisual_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10PyMjVisual_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjVisual_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjVisual_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":279
 *     def rgba(self): return self._rgba
 * 
 * cdef PyMjVisual WrapMjVisual(mjVisual* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVisual o = PyMjVisual()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_f_9mujoco_py_4cymj_WrapMjVisual(mjVisual *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjVisual", 1);

  /* "mujoco_py/generated/wrappers.pxi":280
 * 
 * cdef PyMjVisual WrapMjVisual(mjVisual* p):
 *     cdef PyMjVisual o = PyMjVisual()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjVisual)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":281
 * cdef PyMjVisual WrapMjVisual(mjVisual* p):
 *     cdef PyMjVisual o = PyMjVisual()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":282
 *     cdef PyMjVisual o = PyMjVisual()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjVisual_global_(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":279
 *     def rgba(self): return self._rgba
 * 
 * cdef PyMjVisual WrapMjVisual(mjVisual* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVisual o = PyMjVisual()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjVisual", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":289
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global____cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global____cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":290
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":289
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":293
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":294
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjVisual_global_* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":293
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":296
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVisual_global_* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_18PyMjVisual_global___set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, struct __pyx_t_9mujoco_py_4cymj_mjVisual_global_ *__pyx_v_p) {

  /* "mujoco_py/generated/wrappers.pxi":298
 *     cdef void _set(self, mjVisual_global_* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":296
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVisual_global_* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
}

/* "mujoco_py/generated/wrappers.pxi":302
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def fovy(self): return self.ptr.fovy
 *     @fovy.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__4fovy_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__4fovy_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__4fovy___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__4fovy___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":303
 * 
 *     @property
 *     def fovy(self): return self.ptr.fovy             # <<<<<<<<<<<<<<
 *     @fovy.setter
 *     def fovy(self, float x): self.ptr.fovy = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->fovy); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":302
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def fovy(self): return self.ptr.fovy
 *     @fovy.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.fovy.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":304
 *     @property
 *     def fovy(self): return self.ptr.fovy
 *     @fovy.setter             # <<<<<<<<<<<<<<
 *     def fovy(self, float x): self.ptr.fovy = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__4fovy_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__4fovy_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 305, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.fovy.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__4fovy_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__4fovy_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":305
 *     def fovy(self): return self.ptr.fovy
 *     @fovy.setter
 *     def fovy(self, float x): self.ptr.fovy = x             # <<<<<<<<<<<<<<
 *     @property
 *     def ipd(self): return self.ptr.ipd
 */
  __pyx_v_self->ptr->fovy = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":304
 *     @property
 *     def fovy(self): return self.ptr.fovy
 *     @fovy.setter             # <<<<<<<<<<<<<<
 *     def fovy(self, float x): self.ptr.fovy = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":306
 *     @fovy.setter
 *     def fovy(self, float x): self.ptr.fovy = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ipd(self): return self.ptr.ipd
 *     @ipd.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__3ipd_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__3ipd_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__3ipd___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__3ipd___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":307
 *     def fovy(self, float x): self.ptr.fovy = x
 *     @property
 *     def ipd(self): return self.ptr.ipd             # <<<<<<<<<<<<<<
 *     @ipd.setter
 *     def ipd(self, float x): self.ptr.ipd = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->ipd); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":306
 *     @fovy.setter
 *     def fovy(self, float x): self.ptr.fovy = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ipd(self): return self.ptr.ipd
 *     @ipd.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.ipd.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":308
 *     @property
 *     def ipd(self): return self.ptr.ipd
 *     @ipd.setter             # <<<<<<<<<<<<<<
 *     def ipd(self, float x): self.ptr.ipd = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__3ipd_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__3ipd_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 309, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.ipd.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__3ipd_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__3ipd_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":309
 *     def ipd(self): return self.ptr.ipd
 *     @ipd.setter
 *     def ipd(self, float x): self.ptr.ipd = x             # <<<<<<<<<<<<<<
 *     @property
 *     def linewidth(self): return self.ptr.linewidth
 */
  __pyx_v_self->ptr->ipd = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":308
 *     @property
 *     def ipd(self): return self.ptr.ipd
 *     @ipd.setter             # <<<<<<<<<<<<<<
 *     def ipd(self, float x): self.ptr.ipd = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":310
 *     @ipd.setter
 *     def ipd(self, float x): self.ptr.ipd = x
 *     @property             # <<<<<<<<<<<<<<
 *     def linewidth(self): return self.ptr.linewidth
 *     @linewidth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__9linewidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__9linewidth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__9linewidth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__9linewidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":311
 *     def ipd(self, float x): self.ptr.ipd = x
 *     @property
 *     def linewidth(self): return self.ptr.linewidth             # <<<<<<<<<<<<<<
 *     @linewidth.setter
 *     def linewidth(self, float x): self.ptr.linewidth = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->linewidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":310
 *     @ipd.setter
 *     def ipd(self, float x): self.ptr.ipd = x
 *     @property             # <<<<<<<<<<<<<<
 *     def linewidth(self): return self.ptr.linewidth
 *     @linewidth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.linewidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":312
 *     @property
 *     def linewidth(self): return self.ptr.linewidth
 *     @linewidth.setter             # <<<<<<<<<<<<<<
 *     def linewidth(self, float x): self.ptr.linewidth = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__9linewidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__9linewidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 313, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.linewidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__9linewidth_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__9linewidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":313
 *     def linewidth(self): return self.ptr.linewidth
 *     @linewidth.setter
 *     def linewidth(self, float x): self.ptr.linewidth = x             # <<<<<<<<<<<<<<
 *     @property
 *     def glow(self): return self.ptr.glow
 */
  __pyx_v_self->ptr->linewidth = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":312
 *     @property
 *     def linewidth(self): return self.ptr.linewidth
 *     @linewidth.setter             # <<<<<<<<<<<<<<
 *     def linewidth(self, float x): self.ptr.linewidth = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":314
 *     @linewidth.setter
 *     def linewidth(self, float x): self.ptr.linewidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def glow(self): return self.ptr.glow
 *     @glow.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__4glow_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__4glow_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__4glow___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__4glow___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":315
 *     def linewidth(self, float x): self.ptr.linewidth = x
 *     @property
 *     def glow(self): return self.ptr.glow             # <<<<<<<<<<<<<<
 *     @glow.setter
 *     def glow(self, float x): self.ptr.glow = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->glow); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":314
 *     @linewidth.setter
 *     def linewidth(self, float x): self.ptr.linewidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def glow(self): return self.ptr.glow
 *     @glow.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.glow.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":316
 *     @property
 *     def glow(self): return self.ptr.glow
 *     @glow.setter             # <<<<<<<<<<<<<<
 *     def glow(self, float x): self.ptr.glow = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__4glow_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__4glow_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 317, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.glow.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__4glow_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__4glow_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":317
 *     def glow(self): return self.ptr.glow
 *     @glow.setter
 *     def glow(self, float x): self.ptr.glow = x             # <<<<<<<<<<<<<<
 *     @property
 *     def offwidth(self): return self.ptr.offwidth
 */
  __pyx_v_self->ptr->glow = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":316
 *     @property
 *     def glow(self): return self.ptr.glow
 *     @glow.setter             # <<<<<<<<<<<<<<
 *     def glow(self, float x): self.ptr.glow = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":318
 *     @glow.setter
 *     def glow(self, float x): self.ptr.glow = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offwidth(self): return self.ptr.offwidth
 *     @offwidth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__8offwidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__8offwidth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__8offwidth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__8offwidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":319
 *     def glow(self, float x): self.ptr.glow = x
 *     @property
 *     def offwidth(self): return self.ptr.offwidth             # <<<<<<<<<<<<<<
 *     @offwidth.setter
 *     def offwidth(self, int x): self.ptr.offwidth = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->offwidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":318
 *     @glow.setter
 *     def glow(self, float x): self.ptr.glow = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offwidth(self): return self.ptr.offwidth
 *     @offwidth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.offwidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":320
 *     @property
 *     def offwidth(self): return self.ptr.offwidth
 *     @offwidth.setter             # <<<<<<<<<<<<<<
 *     def offwidth(self, int x): self.ptr.offwidth = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__8offwidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__8offwidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 321, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.offwidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__8offwidth_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__8offwidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":321
 *     def offwidth(self): return self.ptr.offwidth
 *     @offwidth.setter
 *     def offwidth(self, int x): self.ptr.offwidth = x             # <<<<<<<<<<<<<<
 *     @property
 *     def offheight(self): return self.ptr.offheight
 */
  __pyx_v_self->ptr->offwidth = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":320
 *     @property
 *     def offwidth(self): return self.ptr.offwidth
 *     @offwidth.setter             # <<<<<<<<<<<<<<
 *     def offwidth(self, int x): self.ptr.offwidth = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":322
 *     @offwidth.setter
 *     def offwidth(self, int x): self.ptr.offwidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offheight(self): return self.ptr.offheight
 *     @offheight.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__9offheight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__9offheight_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__9offheight___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__9offheight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":323
 *     def offwidth(self, int x): self.ptr.offwidth = x
 *     @property
 *     def offheight(self): return self.ptr.offheight             # <<<<<<<<<<<<<<
 *     @offheight.setter
 *     def offheight(self, int x): self.ptr.offheight = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->offheight); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":322
 *     @offwidth.setter
 *     def offwidth(self, int x): self.ptr.offwidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offheight(self): return self.ptr.offheight
 *     @offheight.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.offheight.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":324
 *     @property
 *     def offheight(self): return self.ptr.offheight
 *     @offheight.setter             # <<<<<<<<<<<<<<
 *     def offheight(self, int x): self.ptr.offheight = x
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__9offheight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__9offheight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 325, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.offheight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__9offheight_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__9offheight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":325
 *     def offheight(self): return self.ptr.offheight
 *     @offheight.setter
 *     def offheight(self, int x): self.ptr.offheight = x             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjVisual_global_ WrapMjVisual_global_(mjVisual_global_* p):
 */
  __pyx_v_self->ptr->offheight = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":324
 *     @property
 *     def offheight(self): return self.ptr.offheight
 *     @offheight.setter             # <<<<<<<<<<<<<<
 *     def offheight(self, int x): self.ptr.offheight = x
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_18PyMjVisual_global__3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_18PyMjVisual_global__5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_global__4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_global_.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":327
 *     def offheight(self, int x): self.ptr.offheight = x
 * 
 * cdef PyMjVisual_global_ WrapMjVisual_global_(mjVisual_global_* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVisual_global_ o = PyMjVisual_global_()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_f_9mujoco_py_4cymj_WrapMjVisual_global_(struct __pyx_t_9mujoco_py_4cymj_mjVisual_global_ *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjVisual_global_", 1);

  /* "mujoco_py/generated/wrappers.pxi":328
 * 
 * cdef PyMjVisual_global_ WrapMjVisual_global_(mjVisual_global_* p):
 *     cdef PyMjVisual_global_ o = PyMjVisual_global_()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":329
 * cdef PyMjVisual_global_ WrapMjVisual_global_(mjVisual_global_* p):
 *     cdef PyMjVisual_global_ o = PyMjVisual_global_()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_global_ *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":330
 *     cdef PyMjVisual_global_ o = PyMjVisual_global_()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjVisual_quality(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":327
 *     def offheight(self, int x): self.ptr.offheight = x
 * 
 * cdef PyMjVisual_global_ WrapMjVisual_global_(mjVisual_global_* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVisual_global_ o = PyMjVisual_global_()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjVisual_global_", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":337
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":338
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":337
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":341
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":342
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjVisual_quality* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":341
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_quality.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":344
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVisual_quality* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_18PyMjVisual_quality__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self, struct __pyx_t_9mujoco_py_4cymj_mjVisual_quality *__pyx_v_p) {

  /* "mujoco_py/generated/wrappers.pxi":346
 *     cdef void _set(self, mjVisual_quality* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":344
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVisual_quality* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
}

/* "mujoco_py/generated/wrappers.pxi":350
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowsize(self): return self.ptr.shadowsize
 *     @shadowsize.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_10shadowsize_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_10shadowsize_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_10shadowsize___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_10shadowsize___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":351
 * 
 *     @property
 *     def shadowsize(self): return self.ptr.shadowsize             # <<<<<<<<<<<<<<
 *     @shadowsize.setter
 *     def shadowsize(self, int x): self.ptr.shadowsize = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->shadowsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":350
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowsize(self): return self.ptr.shadowsize
 *     @shadowsize.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_quality.shadowsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":352
 *     @property
 *     def shadowsize(self): return self.ptr.shadowsize
 *     @shadowsize.setter             # <<<<<<<<<<<<<<
 *     def shadowsize(self, int x): self.ptr.shadowsize = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_10shadowsize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_10shadowsize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 353, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_quality.shadowsize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_10shadowsize_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_10shadowsize_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":353
 *     def shadowsize(self): return self.ptr.shadowsize
 *     @shadowsize.setter
 *     def shadowsize(self, int x): self.ptr.shadowsize = x             # <<<<<<<<<<<<<<
 *     @property
 *     def offsamples(self): return self.ptr.offsamples
 */
  __pyx_v_self->ptr->shadowsize = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":352
 *     @property
 *     def shadowsize(self): return self.ptr.shadowsize
 *     @shadowsize.setter             # <<<<<<<<<<<<<<
 *     def shadowsize(self, int x): self.ptr.shadowsize = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":354
 *     @shadowsize.setter
 *     def shadowsize(self, int x): self.ptr.shadowsize = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offsamples(self): return self.ptr.offsamples
 *     @offsamples.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_10offsamples_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_10offsamples_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_10offsamples___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_10offsamples___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":355
 *     def shadowsize(self, int x): self.ptr.shadowsize = x
 *     @property
 *     def offsamples(self): return self.ptr.offsamples             # <<<<<<<<<<<<<<
 *     @offsamples.setter
 *     def offsamples(self, int x): self.ptr.offsamples = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->offsamples); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":354
 *     @shadowsize.setter
 *     def shadowsize(self, int x): self.ptr.shadowsize = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offsamples(self): return self.ptr.offsamples
 *     @offsamples.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_quality.offsamples.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":356
 *     @property
 *     def offsamples(self): return self.ptr.offsamples
 *     @offsamples.setter             # <<<<<<<<<<<<<<
 *     def offsamples(self, int x): self.ptr.offsamples = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_10offsamples_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_10offsamples_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 357, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_quality.offsamples.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_10offsamples_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_10offsamples_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":357
 *     def offsamples(self): return self.ptr.offsamples
 *     @offsamples.setter
 *     def offsamples(self, int x): self.ptr.offsamples = x             # <<<<<<<<<<<<<<
 *     @property
 *     def numslices(self): return self.ptr.numslices
 */
  __pyx_v_self->ptr->offsamples = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":356
 *     @property
 *     def offsamples(self): return self.ptr.offsamples
 *     @offsamples.setter             # <<<<<<<<<<<<<<
 *     def offsamples(self, int x): self.ptr.offsamples = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":358
 *     @offsamples.setter
 *     def offsamples(self, int x): self.ptr.offsamples = x
 *     @property             # <<<<<<<<<<<<<<
 *     def numslices(self): return self.ptr.numslices
 *     @numslices.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_9numslices_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_9numslices_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_9numslices___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_9numslices___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":359
 *     def offsamples(self, int x): self.ptr.offsamples = x
 *     @property
 *     def numslices(self): return self.ptr.numslices             # <<<<<<<<<<<<<<
 *     @numslices.setter
 *     def numslices(self, int x): self.ptr.numslices = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->numslices); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 359, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":358
 *     @offsamples.setter
 *     def offsamples(self, int x): self.ptr.offsamples = x
 *     @property             # <<<<<<<<<<<<<<
 *     def numslices(self): return self.ptr.numslices
 *     @numslices.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_quality.numslices.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":360
 *     @property
 *     def numslices(self): return self.ptr.numslices
 *     @numslices.setter             # <<<<<<<<<<<<<<
 *     def numslices(self, int x): self.ptr.numslices = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_9numslices_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_9numslices_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 361, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_quality.numslices.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_9numslices_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_9numslices_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":361
 *     def numslices(self): return self.ptr.numslices
 *     @numslices.setter
 *     def numslices(self, int x): self.ptr.numslices = x             # <<<<<<<<<<<<<<
 *     @property
 *     def numstacks(self): return self.ptr.numstacks
 */
  __pyx_v_self->ptr->numslices = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":360
 *     @property
 *     def numslices(self): return self.ptr.numslices
 *     @numslices.setter             # <<<<<<<<<<<<<<
 *     def numslices(self, int x): self.ptr.numslices = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":362
 *     @numslices.setter
 *     def numslices(self, int x): self.ptr.numslices = x
 *     @property             # <<<<<<<<<<<<<<
 *     def numstacks(self): return self.ptr.numstacks
 *     @numstacks.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_9numstacks_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_9numstacks_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_9numstacks___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_9numstacks___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":363
 *     def numslices(self, int x): self.ptr.numslices = x
 *     @property
 *     def numstacks(self): return self.ptr.numstacks             # <<<<<<<<<<<<<<
 *     @numstacks.setter
 *     def numstacks(self, int x): self.ptr.numstacks = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->numstacks); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":362
 *     @numslices.setter
 *     def numslices(self, int x): self.ptr.numslices = x
 *     @property             # <<<<<<<<<<<<<<
 *     def numstacks(self): return self.ptr.numstacks
 *     @numstacks.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_quality.numstacks.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":364
 *     @property
 *     def numstacks(self): return self.ptr.numstacks
 *     @numstacks.setter             # <<<<<<<<<<<<<<
 *     def numstacks(self, int x): self.ptr.numstacks = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_9numstacks_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_9numstacks_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 365, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_quality.numstacks.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_9numstacks_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_9numstacks_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":365
 *     def numstacks(self): return self.ptr.numstacks
 *     @numstacks.setter
 *     def numstacks(self, int x): self.ptr.numstacks = x             # <<<<<<<<<<<<<<
 *     @property
 *     def numquads(self): return self.ptr.numquads
 */
  __pyx_v_self->ptr->numstacks = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":364
 *     @property
 *     def numstacks(self): return self.ptr.numstacks
 *     @numstacks.setter             # <<<<<<<<<<<<<<
 *     def numstacks(self, int x): self.ptr.numstacks = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":366
 *     @numstacks.setter
 *     def numstacks(self, int x): self.ptr.numstacks = x
 *     @property             # <<<<<<<<<<<<<<
 *     def numquads(self): return self.ptr.numquads
 *     @numquads.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_8numquads_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_8numquads_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_8numquads___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_8numquads___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":367
 *     def numstacks(self, int x): self.ptr.numstacks = x
 *     @property
 *     def numquads(self): return self.ptr.numquads             # <<<<<<<<<<<<<<
 *     @numquads.setter
 *     def numquads(self, int x): self.ptr.numquads = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->numquads); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":366
 *     @numstacks.setter
 *     def numstacks(self, int x): self.ptr.numstacks = x
 *     @property             # <<<<<<<<<<<<<<
 *     def numquads(self): return self.ptr.numquads
 *     @numquads.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_quality.numquads.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":368
 *     @property
 *     def numquads(self): return self.ptr.numquads
 *     @numquads.setter             # <<<<<<<<<<<<<<
 *     def numquads(self, int x): self.ptr.numquads = x
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_8numquads_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_8numquads_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 369, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_quality.numquads.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_8numquads_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_8numquads_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":369
 *     def numquads(self): return self.ptr.numquads
 *     @numquads.setter
 *     def numquads(self, int x): self.ptr.numquads = x             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjVisual_quality WrapMjVisual_quality(mjVisual_quality* p):
 */
  __pyx_v_self->ptr->numquads = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":368
 *     @property
 *     def numquads(self): return self.ptr.numquads
 *     @numquads.setter             # <<<<<<<<<<<<<<
 *     def numquads(self, int x): self.ptr.numquads = x
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_18PyMjVisual_quality_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_quality.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_18PyMjVisual_quality_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_quality.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjVisual_quality_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_quality.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":371
 *     def numquads(self, int x): self.ptr.numquads = x
 * 
 * cdef PyMjVisual_quality WrapMjVisual_quality(mjVisual_quality* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVisual_quality o = PyMjVisual_quality()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_f_9mujoco_py_4cymj_WrapMjVisual_quality(struct __pyx_t_9mujoco_py_4cymj_mjVisual_quality *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjVisual_quality", 1);

  /* "mujoco_py/generated/wrappers.pxi":372
 * 
 * cdef PyMjVisual_quality WrapMjVisual_quality(mjVisual_quality* p):
 *     cdef PyMjVisual_quality o = PyMjVisual_quality()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":373
 * cdef PyMjVisual_quality WrapMjVisual_quality(mjVisual_quality* p):
 *     cdef PyMjVisual_quality o = PyMjVisual_quality()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_quality *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":374
 *     cdef PyMjVisual_quality o = PyMjVisual_quality()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjVisual_headlight(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":371
 *     def numquads(self, int x): self.ptr.numquads = x
 * 
 * cdef PyMjVisual_quality WrapMjVisual_quality(mjVisual_quality* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVisual_quality o = PyMjVisual_quality()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjVisual_quality", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":384
 *     cdef np.ndarray _specular
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":385
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":384
 *     cdef np.ndarray _specular
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":388
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":389
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjVisual_headlight* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":388
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_headlight.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":391
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVisual_headlight* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_20PyMjVisual_headlight__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self, struct __pyx_t_9mujoco_py_4cymj_mjVisual_headlight *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":393
 *     cdef void _set(self, mjVisual_headlight* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":396
 * 
 * 
 *         self._ambient = _wrap_float_1d(&p.ambient[0], 3)             # <<<<<<<<<<<<<<
 *         self._diffuse = _wrap_float_1d(&p.diffuse[0], 3)
 *         self._specular = _wrap_float_1d(&p.specular[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->ambient[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_ambient);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_ambient);
  __pyx_v_self->_ambient = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":397
 * 
 *         self._ambient = _wrap_float_1d(&p.ambient[0], 3)
 *         self._diffuse = _wrap_float_1d(&p.diffuse[0], 3)             # <<<<<<<<<<<<<<
 *         self._specular = _wrap_float_1d(&p.specular[0], 3)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->diffuse[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_diffuse);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_diffuse);
  __pyx_v_self->_diffuse = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":398
 *         self._ambient = _wrap_float_1d(&p.ambient[0], 3)
 *         self._diffuse = _wrap_float_1d(&p.diffuse[0], 3)
 *         self._specular = _wrap_float_1d(&p.specular[0], 3)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->specular[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_specular);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_specular);
  __pyx_v_self->_specular = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":391
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVisual_headlight* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjVisual_headlight._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":400
 *         self._specular = _wrap_float_1d(&p.specular[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def active(self): return self.ptr.active
 *     @active.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_6active_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_6active_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_6active___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_6active___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":401
 * 
 *     @property
 *     def active(self): return self.ptr.active             # <<<<<<<<<<<<<<
 *     @active.setter
 *     def active(self, int x): self.ptr.active = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->active); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":400
 *         self._specular = _wrap_float_1d(&p.specular[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def active(self): return self.ptr.active
 *     @active.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_headlight.active.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":402
 *     @property
 *     def active(self): return self.ptr.active
 *     @active.setter             # <<<<<<<<<<<<<<
 *     def active(self, int x): self.ptr.active = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_6active_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_6active_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 403, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_headlight.active.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_6active_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_6active_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":403
 *     def active(self): return self.ptr.active
 *     @active.setter
 *     def active(self, int x): self.ptr.active = x             # <<<<<<<<<<<<<<
 *     @property
 *     def ambient(self): return self._ambient
 */
  __pyx_v_self->ptr->active = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":402
 *     @property
 *     def active(self): return self.ptr.active
 *     @active.setter             # <<<<<<<<<<<<<<
 *     def active(self, int x): self.ptr.active = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":404
 *     @active.setter
 *     def active(self, int x): self.ptr.active = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ambient(self): return self._ambient
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_7ambient_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_7ambient_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_7ambient___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_7ambient___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":405
 *     def active(self, int x): self.ptr.active = x
 *     @property
 *     def ambient(self): return self._ambient             # <<<<<<<<<<<<<<
 *     @property
 *     def diffuse(self): return self._diffuse
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_ambient);
  __pyx_r = ((PyObject *)__pyx_v_self->_ambient);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":404
 *     @active.setter
 *     def active(self, int x): self.ptr.active = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ambient(self): return self._ambient
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":406
 *     @property
 *     def ambient(self): return self._ambient
 *     @property             # <<<<<<<<<<<<<<
 *     def diffuse(self): return self._diffuse
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_7diffuse_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_7diffuse_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_7diffuse___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_7diffuse___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":407
 *     def ambient(self): return self._ambient
 *     @property
 *     def diffuse(self): return self._diffuse             # <<<<<<<<<<<<<<
 *     @property
 *     def specular(self): return self._specular
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_diffuse);
  __pyx_r = ((PyObject *)__pyx_v_self->_diffuse);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":406
 *     @property
 *     def ambient(self): return self._ambient
 *     @property             # <<<<<<<<<<<<<<
 *     def diffuse(self): return self._diffuse
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":408
 *     @property
 *     def diffuse(self): return self._diffuse
 *     @property             # <<<<<<<<<<<<<<
 *     def specular(self): return self._specular
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_8specular_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_8specular_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_8specular___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_8specular___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":409
 *     def diffuse(self): return self._diffuse
 *     @property
 *     def specular(self): return self._specular             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjVisual_headlight WrapMjVisual_headlight(mjVisual_headlight* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_specular);
  __pyx_r = ((PyObject *)__pyx_v_self->_specular);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":408
 *     @property
 *     def diffuse(self): return self._diffuse
 *     @property             # <<<<<<<<<<<<<<
 *     def specular(self): return self._specular
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_20PyMjVisual_headlight_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_headlight.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_20PyMjVisual_headlight_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_headlight.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_20PyMjVisual_headlight_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_headlight.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":411
 *     def specular(self): return self._specular
 * 
 * cdef PyMjVisual_headlight WrapMjVisual_headlight(mjVisual_headlight* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVisual_headlight o = PyMjVisual_headlight()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_f_9mujoco_py_4cymj_WrapMjVisual_headlight(struct __pyx_t_9mujoco_py_4cymj_mjVisual_headlight *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjVisual_headlight", 1);

  /* "mujoco_py/generated/wrappers.pxi":412
 * 
 * cdef PyMjVisual_headlight WrapMjVisual_headlight(mjVisual_headlight* p):
 *     cdef PyMjVisual_headlight o = PyMjVisual_headlight()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":413
 * cdef PyMjVisual_headlight WrapMjVisual_headlight(mjVisual_headlight* p):
 *     cdef PyMjVisual_headlight o = PyMjVisual_headlight()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_headlight *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":414
 *     cdef PyMjVisual_headlight o = PyMjVisual_headlight()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjVisual_map(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":411
 *     def specular(self): return self._specular
 * 
 * cdef PyMjVisual_headlight WrapMjVisual_headlight(mjVisual_headlight* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVisual_headlight o = PyMjVisual_headlight()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjVisual_headlight", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":421
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":422
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":421
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":425
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":426
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjVisual_map* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":425
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":428
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVisual_map* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_14PyMjVisual_map__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, struct __pyx_t_9mujoco_py_4cymj_mjVisual_map *__pyx_v_p) {

  /* "mujoco_py/generated/wrappers.pxi":430
 *     cdef void _set(self, mjVisual_map* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":428
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVisual_map* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
}

/* "mujoco_py/generated/wrappers.pxi":434
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def stiffness(self): return self.ptr.stiffness
 *     @stiffness.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_9stiffness_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_9stiffness_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_9stiffness___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_9stiffness___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":435
 * 
 *     @property
 *     def stiffness(self): return self.ptr.stiffness             # <<<<<<<<<<<<<<
 *     @stiffness.setter
 *     def stiffness(self, float x): self.ptr.stiffness = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->stiffness); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":434
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def stiffness(self): return self.ptr.stiffness
 *     @stiffness.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.stiffness.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":436
 *     @property
 *     def stiffness(self): return self.ptr.stiffness
 *     @stiffness.setter             # <<<<<<<<<<<<<<
 *     def stiffness(self, float x): self.ptr.stiffness = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_9stiffness_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_9stiffness_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 437, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.stiffness.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_9stiffness_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_9stiffness_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":437
 *     def stiffness(self): return self.ptr.stiffness
 *     @stiffness.setter
 *     def stiffness(self, float x): self.ptr.stiffness = x             # <<<<<<<<<<<<<<
 *     @property
 *     def stiffnessrot(self): return self.ptr.stiffnessrot
 */
  __pyx_v_self->ptr->stiffness = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":436
 *     @property
 *     def stiffness(self): return self.ptr.stiffness
 *     @stiffness.setter             # <<<<<<<<<<<<<<
 *     def stiffness(self, float x): self.ptr.stiffness = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":438
 *     @stiffness.setter
 *     def stiffness(self, float x): self.ptr.stiffness = x
 *     @property             # <<<<<<<<<<<<<<
 *     def stiffnessrot(self): return self.ptr.stiffnessrot
 *     @stiffnessrot.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_12stiffnessrot_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_12stiffnessrot_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_12stiffnessrot___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_12stiffnessrot___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":439
 *     def stiffness(self, float x): self.ptr.stiffness = x
 *     @property
 *     def stiffnessrot(self): return self.ptr.stiffnessrot             # <<<<<<<<<<<<<<
 *     @stiffnessrot.setter
 *     def stiffnessrot(self, float x): self.ptr.stiffnessrot = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->stiffnessrot); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":438
 *     @stiffness.setter
 *     def stiffness(self, float x): self.ptr.stiffness = x
 *     @property             # <<<<<<<<<<<<<<
 *     def stiffnessrot(self): return self.ptr.stiffnessrot
 *     @stiffnessrot.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.stiffnessrot.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":440
 *     @property
 *     def stiffnessrot(self): return self.ptr.stiffnessrot
 *     @stiffnessrot.setter             # <<<<<<<<<<<<<<
 *     def stiffnessrot(self, float x): self.ptr.stiffnessrot = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_12stiffnessrot_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_12stiffnessrot_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 441, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.stiffnessrot.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_12stiffnessrot_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_12stiffnessrot_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":441
 *     def stiffnessrot(self): return self.ptr.stiffnessrot
 *     @stiffnessrot.setter
 *     def stiffnessrot(self, float x): self.ptr.stiffnessrot = x             # <<<<<<<<<<<<<<
 *     @property
 *     def force(self): return self.ptr.force
 */
  __pyx_v_self->ptr->stiffnessrot = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":440
 *     @property
 *     def stiffnessrot(self): return self.ptr.stiffnessrot
 *     @stiffnessrot.setter             # <<<<<<<<<<<<<<
 *     def stiffnessrot(self, float x): self.ptr.stiffnessrot = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":442
 *     @stiffnessrot.setter
 *     def stiffnessrot(self, float x): self.ptr.stiffnessrot = x
 *     @property             # <<<<<<<<<<<<<<
 *     def force(self): return self.ptr.force
 *     @force.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5force_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5force_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5force___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5force___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":443
 *     def stiffnessrot(self, float x): self.ptr.stiffnessrot = x
 *     @property
 *     def force(self): return self.ptr.force             # <<<<<<<<<<<<<<
 *     @force.setter
 *     def force(self, float x): self.ptr.force = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->force); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":442
 *     @stiffnessrot.setter
 *     def stiffnessrot(self, float x): self.ptr.stiffnessrot = x
 *     @property             # <<<<<<<<<<<<<<
 *     def force(self): return self.ptr.force
 *     @force.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.force.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":444
 *     @property
 *     def force(self): return self.ptr.force
 *     @force.setter             # <<<<<<<<<<<<<<
 *     def force(self, float x): self.ptr.force = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5force_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5force_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 445, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.force.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5force_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5force_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":445
 *     def force(self): return self.ptr.force
 *     @force.setter
 *     def force(self, float x): self.ptr.force = x             # <<<<<<<<<<<<<<
 *     @property
 *     def torque(self): return self.ptr.torque
 */
  __pyx_v_self->ptr->force = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":444
 *     @property
 *     def force(self): return self.ptr.force
 *     @force.setter             # <<<<<<<<<<<<<<
 *     def force(self, float x): self.ptr.force = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":446
 *     @force.setter
 *     def force(self, float x): self.ptr.force = x
 *     @property             # <<<<<<<<<<<<<<
 *     def torque(self): return self.ptr.torque
 *     @torque.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_6torque_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_6torque_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_6torque___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_6torque___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":447
 *     def force(self, float x): self.ptr.force = x
 *     @property
 *     def torque(self): return self.ptr.torque             # <<<<<<<<<<<<<<
 *     @torque.setter
 *     def torque(self, float x): self.ptr.torque = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->torque); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":446
 *     @force.setter
 *     def force(self, float x): self.ptr.force = x
 *     @property             # <<<<<<<<<<<<<<
 *     def torque(self): return self.ptr.torque
 *     @torque.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.torque.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":448
 *     @property
 *     def torque(self): return self.ptr.torque
 *     @torque.setter             # <<<<<<<<<<<<<<
 *     def torque(self, float x): self.ptr.torque = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_6torque_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_6torque_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 449, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.torque.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_6torque_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_6torque_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":449
 *     def torque(self): return self.ptr.torque
 *     @torque.setter
 *     def torque(self, float x): self.ptr.torque = x             # <<<<<<<<<<<<<<
 *     @property
 *     def alpha(self): return self.ptr.alpha
 */
  __pyx_v_self->ptr->torque = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":448
 *     @property
 *     def torque(self): return self.ptr.torque
 *     @torque.setter             # <<<<<<<<<<<<<<
 *     def torque(self, float x): self.ptr.torque = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":450
 *     @torque.setter
 *     def torque(self, float x): self.ptr.torque = x
 *     @property             # <<<<<<<<<<<<<<
 *     def alpha(self): return self.ptr.alpha
 *     @alpha.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5alpha_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5alpha_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5alpha___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5alpha___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":451
 *     def torque(self, float x): self.ptr.torque = x
 *     @property
 *     def alpha(self): return self.ptr.alpha             # <<<<<<<<<<<<<<
 *     @alpha.setter
 *     def alpha(self, float x): self.ptr.alpha = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->alpha); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":450
 *     @torque.setter
 *     def torque(self, float x): self.ptr.torque = x
 *     @property             # <<<<<<<<<<<<<<
 *     def alpha(self): return self.ptr.alpha
 *     @alpha.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.alpha.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":452
 *     @property
 *     def alpha(self): return self.ptr.alpha
 *     @alpha.setter             # <<<<<<<<<<<<<<
 *     def alpha(self, float x): self.ptr.alpha = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5alpha_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5alpha_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 453, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.alpha.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5alpha_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5alpha_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":453
 *     def alpha(self): return self.ptr.alpha
 *     @alpha.setter
 *     def alpha(self, float x): self.ptr.alpha = x             # <<<<<<<<<<<<<<
 *     @property
 *     def fogstart(self): return self.ptr.fogstart
 */
  __pyx_v_self->ptr->alpha = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":452
 *     @property
 *     def alpha(self): return self.ptr.alpha
 *     @alpha.setter             # <<<<<<<<<<<<<<
 *     def alpha(self, float x): self.ptr.alpha = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":454
 *     @alpha.setter
 *     def alpha(self, float x): self.ptr.alpha = x
 *     @property             # <<<<<<<<<<<<<<
 *     def fogstart(self): return self.ptr.fogstart
 *     @fogstart.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_8fogstart_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_8fogstart_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_8fogstart___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_8fogstart___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":455
 *     def alpha(self, float x): self.ptr.alpha = x
 *     @property
 *     def fogstart(self): return self.ptr.fogstart             # <<<<<<<<<<<<<<
 *     @fogstart.setter
 *     def fogstart(self, float x): self.ptr.fogstart = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->fogstart); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":454
 *     @alpha.setter
 *     def alpha(self, float x): self.ptr.alpha = x
 *     @property             # <<<<<<<<<<<<<<
 *     def fogstart(self): return self.ptr.fogstart
 *     @fogstart.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.fogstart.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":456
 *     @property
 *     def fogstart(self): return self.ptr.fogstart
 *     @fogstart.setter             # <<<<<<<<<<<<<<
 *     def fogstart(self, float x): self.ptr.fogstart = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_8fogstart_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_8fogstart_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 457, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.fogstart.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_8fogstart_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_8fogstart_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":457
 *     def fogstart(self): return self.ptr.fogstart
 *     @fogstart.setter
 *     def fogstart(self, float x): self.ptr.fogstart = x             # <<<<<<<<<<<<<<
 *     @property
 *     def fogend(self): return self.ptr.fogend
 */
  __pyx_v_self->ptr->fogstart = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":456
 *     @property
 *     def fogstart(self): return self.ptr.fogstart
 *     @fogstart.setter             # <<<<<<<<<<<<<<
 *     def fogstart(self, float x): self.ptr.fogstart = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":458
 *     @fogstart.setter
 *     def fogstart(self, float x): self.ptr.fogstart = x
 *     @property             # <<<<<<<<<<<<<<
 *     def fogend(self): return self.ptr.fogend
 *     @fogend.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_6fogend_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_6fogend_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_6fogend___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_6fogend___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":459
 *     def fogstart(self, float x): self.ptr.fogstart = x
 *     @property
 *     def fogend(self): return self.ptr.fogend             # <<<<<<<<<<<<<<
 *     @fogend.setter
 *     def fogend(self, float x): self.ptr.fogend = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->fogend); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":458
 *     @fogstart.setter
 *     def fogstart(self, float x): self.ptr.fogstart = x
 *     @property             # <<<<<<<<<<<<<<
 *     def fogend(self): return self.ptr.fogend
 *     @fogend.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.fogend.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":460
 *     @property
 *     def fogend(self): return self.ptr.fogend
 *     @fogend.setter             # <<<<<<<<<<<<<<
 *     def fogend(self, float x): self.ptr.fogend = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_6fogend_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_6fogend_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 461, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.fogend.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_6fogend_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_6fogend_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":461
 *     def fogend(self): return self.ptr.fogend
 *     @fogend.setter
 *     def fogend(self, float x): self.ptr.fogend = x             # <<<<<<<<<<<<<<
 *     @property
 *     def znear(self): return self.ptr.znear
 */
  __pyx_v_self->ptr->fogend = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":460
 *     @property
 *     def fogend(self): return self.ptr.fogend
 *     @fogend.setter             # <<<<<<<<<<<<<<
 *     def fogend(self, float x): self.ptr.fogend = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":462
 *     @fogend.setter
 *     def fogend(self, float x): self.ptr.fogend = x
 *     @property             # <<<<<<<<<<<<<<
 *     def znear(self): return self.ptr.znear
 *     @znear.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5znear_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5znear_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5znear___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5znear___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":463
 *     def fogend(self, float x): self.ptr.fogend = x
 *     @property
 *     def znear(self): return self.ptr.znear             # <<<<<<<<<<<<<<
 *     @znear.setter
 *     def znear(self, float x): self.ptr.znear = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->znear); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":462
 *     @fogend.setter
 *     def fogend(self, float x): self.ptr.fogend = x
 *     @property             # <<<<<<<<<<<<<<
 *     def znear(self): return self.ptr.znear
 *     @znear.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.znear.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":464
 *     @property
 *     def znear(self): return self.ptr.znear
 *     @znear.setter             # <<<<<<<<<<<<<<
 *     def znear(self, float x): self.ptr.znear = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5znear_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5znear_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 465, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.znear.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5znear_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_5znear_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":465
 *     def znear(self): return self.ptr.znear
 *     @znear.setter
 *     def znear(self, float x): self.ptr.znear = x             # <<<<<<<<<<<<<<
 *     @property
 *     def zfar(self): return self.ptr.zfar
 */
  __pyx_v_self->ptr->znear = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":464
 *     @property
 *     def znear(self): return self.ptr.znear
 *     @znear.setter             # <<<<<<<<<<<<<<
 *     def znear(self, float x): self.ptr.znear = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":466
 *     @znear.setter
 *     def znear(self, float x): self.ptr.znear = x
 *     @property             # <<<<<<<<<<<<<<
 *     def zfar(self): return self.ptr.zfar
 *     @zfar.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_4zfar_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_4zfar_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_4zfar___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_4zfar___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":467
 *     def znear(self, float x): self.ptr.znear = x
 *     @property
 *     def zfar(self): return self.ptr.zfar             # <<<<<<<<<<<<<<
 *     @zfar.setter
 *     def zfar(self, float x): self.ptr.zfar = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->zfar); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":466
 *     @znear.setter
 *     def znear(self, float x): self.ptr.znear = x
 *     @property             # <<<<<<<<<<<<<<
 *     def zfar(self): return self.ptr.zfar
 *     @zfar.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.zfar.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":468
 *     @property
 *     def zfar(self): return self.ptr.zfar
 *     @zfar.setter             # <<<<<<<<<<<<<<
 *     def zfar(self, float x): self.ptr.zfar = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_4zfar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_4zfar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 469, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.zfar.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_4zfar_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_4zfar_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":469
 *     def zfar(self): return self.ptr.zfar
 *     @zfar.setter
 *     def zfar(self, float x): self.ptr.zfar = x             # <<<<<<<<<<<<<<
 *     @property
 *     def haze(self): return self.ptr.haze
 */
  __pyx_v_self->ptr->zfar = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":468
 *     @property
 *     def zfar(self): return self.ptr.zfar
 *     @zfar.setter             # <<<<<<<<<<<<<<
 *     def zfar(self, float x): self.ptr.zfar = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":470
 *     @zfar.setter
 *     def zfar(self, float x): self.ptr.zfar = x
 *     @property             # <<<<<<<<<<<<<<
 *     def haze(self): return self.ptr.haze
 *     @haze.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_4haze_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_4haze_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_4haze___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_4haze___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":471
 *     def zfar(self, float x): self.ptr.zfar = x
 *     @property
 *     def haze(self): return self.ptr.haze             # <<<<<<<<<<<<<<
 *     @haze.setter
 *     def haze(self, float x): self.ptr.haze = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->haze); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":470
 *     @zfar.setter
 *     def zfar(self, float x): self.ptr.zfar = x
 *     @property             # <<<<<<<<<<<<<<
 *     def haze(self): return self.ptr.haze
 *     @haze.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.haze.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":472
 *     @property
 *     def haze(self): return self.ptr.haze
 *     @haze.setter             # <<<<<<<<<<<<<<
 *     def haze(self, float x): self.ptr.haze = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_4haze_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_4haze_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 473, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.haze.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_4haze_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_4haze_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":473
 *     def haze(self): return self.ptr.haze
 *     @haze.setter
 *     def haze(self, float x): self.ptr.haze = x             # <<<<<<<<<<<<<<
 *     @property
 *     def shadowclip(self): return self.ptr.shadowclip
 */
  __pyx_v_self->ptr->haze = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":472
 *     @property
 *     def haze(self): return self.ptr.haze
 *     @haze.setter             # <<<<<<<<<<<<<<
 *     def haze(self, float x): self.ptr.haze = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":474
 *     @haze.setter
 *     def haze(self, float x): self.ptr.haze = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowclip(self): return self.ptr.shadowclip
 *     @shadowclip.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_10shadowclip_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_10shadowclip_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_10shadowclip___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_10shadowclip___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":475
 *     def haze(self, float x): self.ptr.haze = x
 *     @property
 *     def shadowclip(self): return self.ptr.shadowclip             # <<<<<<<<<<<<<<
 *     @shadowclip.setter
 *     def shadowclip(self, float x): self.ptr.shadowclip = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->shadowclip); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":474
 *     @haze.setter
 *     def haze(self, float x): self.ptr.haze = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowclip(self): return self.ptr.shadowclip
 *     @shadowclip.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.shadowclip.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":476
 *     @property
 *     def shadowclip(self): return self.ptr.shadowclip
 *     @shadowclip.setter             # <<<<<<<<<<<<<<
 *     def shadowclip(self, float x): self.ptr.shadowclip = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_10shadowclip_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_10shadowclip_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 477, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.shadowclip.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_10shadowclip_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_10shadowclip_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":477
 *     def shadowclip(self): return self.ptr.shadowclip
 *     @shadowclip.setter
 *     def shadowclip(self, float x): self.ptr.shadowclip = x             # <<<<<<<<<<<<<<
 *     @property
 *     def shadowscale(self): return self.ptr.shadowscale
 */
  __pyx_v_self->ptr->shadowclip = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":476
 *     @property
 *     def shadowclip(self): return self.ptr.shadowclip
 *     @shadowclip.setter             # <<<<<<<<<<<<<<
 *     def shadowclip(self, float x): self.ptr.shadowclip = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":478
 *     @shadowclip.setter
 *     def shadowclip(self, float x): self.ptr.shadowclip = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowscale(self): return self.ptr.shadowscale
 *     @shadowscale.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_11shadowscale_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_11shadowscale_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_11shadowscale___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_11shadowscale___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":479
 *     def shadowclip(self, float x): self.ptr.shadowclip = x
 *     @property
 *     def shadowscale(self): return self.ptr.shadowscale             # <<<<<<<<<<<<<<
 *     @shadowscale.setter
 *     def shadowscale(self, float x): self.ptr.shadowscale = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->shadowscale); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":478
 *     @shadowclip.setter
 *     def shadowclip(self, float x): self.ptr.shadowclip = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowscale(self): return self.ptr.shadowscale
 *     @shadowscale.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.shadowscale.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":480
 *     @property
 *     def shadowscale(self): return self.ptr.shadowscale
 *     @shadowscale.setter             # <<<<<<<<<<<<<<
 *     def shadowscale(self, float x): self.ptr.shadowscale = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_11shadowscale_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_11shadowscale_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 481, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.shadowscale.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_11shadowscale_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_11shadowscale_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":481
 *     def shadowscale(self): return self.ptr.shadowscale
 *     @shadowscale.setter
 *     def shadowscale(self, float x): self.ptr.shadowscale = x             # <<<<<<<<<<<<<<
 *     @property
 *     def actuatortendon(self): return self.ptr.actuatortendon
 */
  __pyx_v_self->ptr->shadowscale = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":480
 *     @property
 *     def shadowscale(self): return self.ptr.shadowscale
 *     @shadowscale.setter             # <<<<<<<<<<<<<<
 *     def shadowscale(self, float x): self.ptr.shadowscale = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":482
 *     @shadowscale.setter
 *     def shadowscale(self, float x): self.ptr.shadowscale = x
 *     @property             # <<<<<<<<<<<<<<
 *     def actuatortendon(self): return self.ptr.actuatortendon
 *     @actuatortendon.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_14actuatortendon_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_14actuatortendon_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_14actuatortendon___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_14actuatortendon___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":483
 *     def shadowscale(self, float x): self.ptr.shadowscale = x
 *     @property
 *     def actuatortendon(self): return self.ptr.actuatortendon             # <<<<<<<<<<<<<<
 *     @actuatortendon.setter
 *     def actuatortendon(self, float x): self.ptr.actuatortendon = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->actuatortendon); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":482
 *     @shadowscale.setter
 *     def shadowscale(self, float x): self.ptr.shadowscale = x
 *     @property             # <<<<<<<<<<<<<<
 *     def actuatortendon(self): return self.ptr.actuatortendon
 *     @actuatortendon.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.actuatortendon.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":484
 *     @property
 *     def actuatortendon(self): return self.ptr.actuatortendon
 *     @actuatortendon.setter             # <<<<<<<<<<<<<<
 *     def actuatortendon(self, float x): self.ptr.actuatortendon = x
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_14actuatortendon_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_14actuatortendon_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 485, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.actuatortendon.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_14actuatortendon_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_14actuatortendon_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":485
 *     def actuatortendon(self): return self.ptr.actuatortendon
 *     @actuatortendon.setter
 *     def actuatortendon(self, float x): self.ptr.actuatortendon = x             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjVisual_map WrapMjVisual_map(mjVisual_map* p):
 */
  __pyx_v_self->ptr->actuatortendon = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":484
 *     @property
 *     def actuatortendon(self): return self.ptr.actuatortendon
 *     @actuatortendon.setter             # <<<<<<<<<<<<<<
 *     def actuatortendon(self, float x): self.ptr.actuatortendon = x
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_14PyMjVisual_map_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_14PyMjVisual_map_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjVisual_map_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_map.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":487
 *     def actuatortendon(self, float x): self.ptr.actuatortendon = x
 * 
 * cdef PyMjVisual_map WrapMjVisual_map(mjVisual_map* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVisual_map o = PyMjVisual_map()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_f_9mujoco_py_4cymj_WrapMjVisual_map(struct __pyx_t_9mujoco_py_4cymj_mjVisual_map *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjVisual_map", 1);

  /* "mujoco_py/generated/wrappers.pxi":488
 * 
 * cdef PyMjVisual_map WrapMjVisual_map(mjVisual_map* p):
 *     cdef PyMjVisual_map o = PyMjVisual_map()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":489
 * cdef PyMjVisual_map WrapMjVisual_map(mjVisual_map* p):
 *     cdef PyMjVisual_map o = PyMjVisual_map()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_map *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":490
 *     cdef PyMjVisual_map o = PyMjVisual_map()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjVisual_scale(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":487
 *     def actuatortendon(self, float x): self.ptr.actuatortendon = x
 * 
 * cdef PyMjVisual_map WrapMjVisual_map(mjVisual_map* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVisual_map o = PyMjVisual_map()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjVisual_map", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":497
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":498
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":497
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":501
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":502
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjVisual_scale* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":501
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":504
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVisual_scale* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_16PyMjVisual_scale__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, struct __pyx_t_9mujoco_py_4cymj_mjVisual_scale *__pyx_v_p) {

  /* "mujoco_py/generated/wrappers.pxi":506
 *     cdef void _set(self, mjVisual_scale* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":504
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVisual_scale* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
}

/* "mujoco_py/generated/wrappers.pxi":510
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def forcewidth(self): return self.ptr.forcewidth
 *     @forcewidth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10forcewidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10forcewidth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10forcewidth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10forcewidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":511
 * 
 *     @property
 *     def forcewidth(self): return self.ptr.forcewidth             # <<<<<<<<<<<<<<
 *     @forcewidth.setter
 *     def forcewidth(self, float x): self.ptr.forcewidth = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->forcewidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":510
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def forcewidth(self): return self.ptr.forcewidth
 *     @forcewidth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.forcewidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":512
 *     @property
 *     def forcewidth(self): return self.ptr.forcewidth
 *     @forcewidth.setter             # <<<<<<<<<<<<<<
 *     def forcewidth(self, float x): self.ptr.forcewidth = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10forcewidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10forcewidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 513, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.forcewidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10forcewidth_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10forcewidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":513
 *     def forcewidth(self): return self.ptr.forcewidth
 *     @forcewidth.setter
 *     def forcewidth(self, float x): self.ptr.forcewidth = x             # <<<<<<<<<<<<<<
 *     @property
 *     def contactwidth(self): return self.ptr.contactwidth
 */
  __pyx_v_self->ptr->forcewidth = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":512
 *     @property
 *     def forcewidth(self): return self.ptr.forcewidth
 *     @forcewidth.setter             # <<<<<<<<<<<<<<
 *     def forcewidth(self, float x): self.ptr.forcewidth = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":514
 *     @forcewidth.setter
 *     def forcewidth(self, float x): self.ptr.forcewidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def contactwidth(self): return self.ptr.contactwidth
 *     @contactwidth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_12contactwidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_12contactwidth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_12contactwidth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_12contactwidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":515
 *     def forcewidth(self, float x): self.ptr.forcewidth = x
 *     @property
 *     def contactwidth(self): return self.ptr.contactwidth             # <<<<<<<<<<<<<<
 *     @contactwidth.setter
 *     def contactwidth(self, float x): self.ptr.contactwidth = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->contactwidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":514
 *     @forcewidth.setter
 *     def forcewidth(self, float x): self.ptr.forcewidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def contactwidth(self): return self.ptr.contactwidth
 *     @contactwidth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.contactwidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":516
 *     @property
 *     def contactwidth(self): return self.ptr.contactwidth
 *     @contactwidth.setter             # <<<<<<<<<<<<<<
 *     def contactwidth(self, float x): self.ptr.contactwidth = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_12contactwidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_12contactwidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 517, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.contactwidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_12contactwidth_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_12contactwidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":517
 *     def contactwidth(self): return self.ptr.contactwidth
 *     @contactwidth.setter
 *     def contactwidth(self, float x): self.ptr.contactwidth = x             # <<<<<<<<<<<<<<
 *     @property
 *     def contactheight(self): return self.ptr.contactheight
 */
  __pyx_v_self->ptr->contactwidth = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":516
 *     @property
 *     def contactwidth(self): return self.ptr.contactwidth
 *     @contactwidth.setter             # <<<<<<<<<<<<<<
 *     def contactwidth(self, float x): self.ptr.contactwidth = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":518
 *     @contactwidth.setter
 *     def contactwidth(self, float x): self.ptr.contactwidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def contactheight(self): return self.ptr.contactheight
 *     @contactheight.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_13contactheight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_13contactheight_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_13contactheight___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_13contactheight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":519
 *     def contactwidth(self, float x): self.ptr.contactwidth = x
 *     @property
 *     def contactheight(self): return self.ptr.contactheight             # <<<<<<<<<<<<<<
 *     @contactheight.setter
 *     def contactheight(self, float x): self.ptr.contactheight = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->contactheight); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":518
 *     @contactwidth.setter
 *     def contactwidth(self, float x): self.ptr.contactwidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def contactheight(self): return self.ptr.contactheight
 *     @contactheight.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.contactheight.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":520
 *     @property
 *     def contactheight(self): return self.ptr.contactheight
 *     @contactheight.setter             # <<<<<<<<<<<<<<
 *     def contactheight(self, float x): self.ptr.contactheight = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_13contactheight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_13contactheight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 521, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.contactheight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_13contactheight_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_13contactheight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":521
 *     def contactheight(self): return self.ptr.contactheight
 *     @contactheight.setter
 *     def contactheight(self, float x): self.ptr.contactheight = x             # <<<<<<<<<<<<<<
 *     @property
 *     def connect(self): return self.ptr.connect
 */
  __pyx_v_self->ptr->contactheight = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":520
 *     @property
 *     def contactheight(self): return self.ptr.contactheight
 *     @contactheight.setter             # <<<<<<<<<<<<<<
 *     def contactheight(self, float x): self.ptr.contactheight = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":522
 *     @contactheight.setter
 *     def contactheight(self, float x): self.ptr.contactheight = x
 *     @property             # <<<<<<<<<<<<<<
 *     def connect(self): return self.ptr.connect
 *     @connect.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_7connect_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_7connect_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_7connect___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_7connect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":523
 *     def contactheight(self, float x): self.ptr.contactheight = x
 *     @property
 *     def connect(self): return self.ptr.connect             # <<<<<<<<<<<<<<
 *     @connect.setter
 *     def connect(self, float x): self.ptr.connect = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->connect); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":522
 *     @contactheight.setter
 *     def contactheight(self, float x): self.ptr.contactheight = x
 *     @property             # <<<<<<<<<<<<<<
 *     def connect(self): return self.ptr.connect
 *     @connect.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.connect.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":524
 *     @property
 *     def connect(self): return self.ptr.connect
 *     @connect.setter             # <<<<<<<<<<<<<<
 *     def connect(self, float x): self.ptr.connect = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_7connect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_7connect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 525, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.connect.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_7connect_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_7connect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":525
 *     def connect(self): return self.ptr.connect
 *     @connect.setter
 *     def connect(self, float x): self.ptr.connect = x             # <<<<<<<<<<<<<<
 *     @property
 *     def com(self): return self.ptr.com
 */
  __pyx_v_self->ptr->connect = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":524
 *     @property
 *     def connect(self): return self.ptr.connect
 *     @connect.setter             # <<<<<<<<<<<<<<
 *     def connect(self, float x): self.ptr.connect = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":526
 *     @connect.setter
 *     def connect(self, float x): self.ptr.connect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def com(self): return self.ptr.com
 *     @com.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_3com_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_3com_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_3com___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_3com___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":527
 *     def connect(self, float x): self.ptr.connect = x
 *     @property
 *     def com(self): return self.ptr.com             # <<<<<<<<<<<<<<
 *     @com.setter
 *     def com(self, float x): self.ptr.com = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->com); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":526
 *     @connect.setter
 *     def connect(self, float x): self.ptr.connect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def com(self): return self.ptr.com
 *     @com.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.com.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":528
 *     @property
 *     def com(self): return self.ptr.com
 *     @com.setter             # <<<<<<<<<<<<<<
 *     def com(self, float x): self.ptr.com = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_3com_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_3com_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 529, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.com.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_3com_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_3com_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":529
 *     def com(self): return self.ptr.com
 *     @com.setter
 *     def com(self, float x): self.ptr.com = x             # <<<<<<<<<<<<<<
 *     @property
 *     def camera(self): return self.ptr.camera
 */
  __pyx_v_self->ptr->com = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":528
 *     @property
 *     def com(self): return self.ptr.com
 *     @com.setter             # <<<<<<<<<<<<<<
 *     def com(self, float x): self.ptr.com = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":530
 *     @com.setter
 *     def com(self, float x): self.ptr.com = x
 *     @property             # <<<<<<<<<<<<<<
 *     def camera(self): return self.ptr.camera
 *     @camera.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_6camera_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_6camera_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_6camera___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_6camera___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":531
 *     def com(self, float x): self.ptr.com = x
 *     @property
 *     def camera(self): return self.ptr.camera             # <<<<<<<<<<<<<<
 *     @camera.setter
 *     def camera(self, float x): self.ptr.camera = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->camera); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":530
 *     @com.setter
 *     def com(self, float x): self.ptr.com = x
 *     @property             # <<<<<<<<<<<<<<
 *     def camera(self): return self.ptr.camera
 *     @camera.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.camera.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":532
 *     @property
 *     def camera(self): return self.ptr.camera
 *     @camera.setter             # <<<<<<<<<<<<<<
 *     def camera(self, float x): self.ptr.camera = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_6camera_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_6camera_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 533, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.camera.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_6camera_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_6camera_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":533
 *     def camera(self): return self.ptr.camera
 *     @camera.setter
 *     def camera(self, float x): self.ptr.camera = x             # <<<<<<<<<<<<<<
 *     @property
 *     def light(self): return self.ptr.light
 */
  __pyx_v_self->ptr->camera = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":532
 *     @property
 *     def camera(self): return self.ptr.camera
 *     @camera.setter             # <<<<<<<<<<<<<<
 *     def camera(self, float x): self.ptr.camera = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":534
 *     @camera.setter
 *     def camera(self, float x): self.ptr.camera = x
 *     @property             # <<<<<<<<<<<<<<
 *     def light(self): return self.ptr.light
 *     @light.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_5light_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_5light_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_5light___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_5light___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":535
 *     def camera(self, float x): self.ptr.camera = x
 *     @property
 *     def light(self): return self.ptr.light             # <<<<<<<<<<<<<<
 *     @light.setter
 *     def light(self, float x): self.ptr.light = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->light); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":534
 *     @camera.setter
 *     def camera(self, float x): self.ptr.camera = x
 *     @property             # <<<<<<<<<<<<<<
 *     def light(self): return self.ptr.light
 *     @light.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.light.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":536
 *     @property
 *     def light(self): return self.ptr.light
 *     @light.setter             # <<<<<<<<<<<<<<
 *     def light(self, float x): self.ptr.light = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_5light_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_5light_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 537, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.light.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_5light_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_5light_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":537
 *     def light(self): return self.ptr.light
 *     @light.setter
 *     def light(self, float x): self.ptr.light = x             # <<<<<<<<<<<<<<
 *     @property
 *     def selectpoint(self): return self.ptr.selectpoint
 */
  __pyx_v_self->ptr->light = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":536
 *     @property
 *     def light(self): return self.ptr.light
 *     @light.setter             # <<<<<<<<<<<<<<
 *     def light(self, float x): self.ptr.light = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":538
 *     @light.setter
 *     def light(self, float x): self.ptr.light = x
 *     @property             # <<<<<<<<<<<<<<
 *     def selectpoint(self): return self.ptr.selectpoint
 *     @selectpoint.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11selectpoint_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11selectpoint_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11selectpoint___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11selectpoint___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":539
 *     def light(self, float x): self.ptr.light = x
 *     @property
 *     def selectpoint(self): return self.ptr.selectpoint             # <<<<<<<<<<<<<<
 *     @selectpoint.setter
 *     def selectpoint(self, float x): self.ptr.selectpoint = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->selectpoint); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":538
 *     @light.setter
 *     def light(self, float x): self.ptr.light = x
 *     @property             # <<<<<<<<<<<<<<
 *     def selectpoint(self): return self.ptr.selectpoint
 *     @selectpoint.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.selectpoint.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":540
 *     @property
 *     def selectpoint(self): return self.ptr.selectpoint
 *     @selectpoint.setter             # <<<<<<<<<<<<<<
 *     def selectpoint(self, float x): self.ptr.selectpoint = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11selectpoint_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11selectpoint_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 541, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.selectpoint.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11selectpoint_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11selectpoint_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":541
 *     def selectpoint(self): return self.ptr.selectpoint
 *     @selectpoint.setter
 *     def selectpoint(self, float x): self.ptr.selectpoint = x             # <<<<<<<<<<<<<<
 *     @property
 *     def jointlength(self): return self.ptr.jointlength
 */
  __pyx_v_self->ptr->selectpoint = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":540
 *     @property
 *     def selectpoint(self): return self.ptr.selectpoint
 *     @selectpoint.setter             # <<<<<<<<<<<<<<
 *     def selectpoint(self, float x): self.ptr.selectpoint = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":542
 *     @selectpoint.setter
 *     def selectpoint(self, float x): self.ptr.selectpoint = x
 *     @property             # <<<<<<<<<<<<<<
 *     def jointlength(self): return self.ptr.jointlength
 *     @jointlength.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11jointlength_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11jointlength_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11jointlength___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11jointlength___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":543
 *     def selectpoint(self, float x): self.ptr.selectpoint = x
 *     @property
 *     def jointlength(self): return self.ptr.jointlength             # <<<<<<<<<<<<<<
 *     @jointlength.setter
 *     def jointlength(self, float x): self.ptr.jointlength = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->jointlength); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":542
 *     @selectpoint.setter
 *     def selectpoint(self, float x): self.ptr.selectpoint = x
 *     @property             # <<<<<<<<<<<<<<
 *     def jointlength(self): return self.ptr.jointlength
 *     @jointlength.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.jointlength.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":544
 *     @property
 *     def jointlength(self): return self.ptr.jointlength
 *     @jointlength.setter             # <<<<<<<<<<<<<<
 *     def jointlength(self, float x): self.ptr.jointlength = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11jointlength_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11jointlength_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 545, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.jointlength.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11jointlength_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11jointlength_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":545
 *     def jointlength(self): return self.ptr.jointlength
 *     @jointlength.setter
 *     def jointlength(self, float x): self.ptr.jointlength = x             # <<<<<<<<<<<<<<
 *     @property
 *     def jointwidth(self): return self.ptr.jointwidth
 */
  __pyx_v_self->ptr->jointlength = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":544
 *     @property
 *     def jointlength(self): return self.ptr.jointlength
 *     @jointlength.setter             # <<<<<<<<<<<<<<
 *     def jointlength(self, float x): self.ptr.jointlength = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":546
 *     @jointlength.setter
 *     def jointlength(self, float x): self.ptr.jointlength = x
 *     @property             # <<<<<<<<<<<<<<
 *     def jointwidth(self): return self.ptr.jointwidth
 *     @jointwidth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10jointwidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10jointwidth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10jointwidth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10jointwidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":547
 *     def jointlength(self, float x): self.ptr.jointlength = x
 *     @property
 *     def jointwidth(self): return self.ptr.jointwidth             # <<<<<<<<<<<<<<
 *     @jointwidth.setter
 *     def jointwidth(self, float x): self.ptr.jointwidth = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->jointwidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":546
 *     @jointlength.setter
 *     def jointlength(self, float x): self.ptr.jointlength = x
 *     @property             # <<<<<<<<<<<<<<
 *     def jointwidth(self): return self.ptr.jointwidth
 *     @jointwidth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.jointwidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":548
 *     @property
 *     def jointwidth(self): return self.ptr.jointwidth
 *     @jointwidth.setter             # <<<<<<<<<<<<<<
 *     def jointwidth(self, float x): self.ptr.jointwidth = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10jointwidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10jointwidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 549, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.jointwidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10jointwidth_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10jointwidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":549
 *     def jointwidth(self): return self.ptr.jointwidth
 *     @jointwidth.setter
 *     def jointwidth(self, float x): self.ptr.jointwidth = x             # <<<<<<<<<<<<<<
 *     @property
 *     def actuatorlength(self): return self.ptr.actuatorlength
 */
  __pyx_v_self->ptr->jointwidth = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":548
 *     @property
 *     def jointwidth(self): return self.ptr.jointwidth
 *     @jointwidth.setter             # <<<<<<<<<<<<<<
 *     def jointwidth(self, float x): self.ptr.jointwidth = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":550
 *     @jointwidth.setter
 *     def jointwidth(self, float x): self.ptr.jointwidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def actuatorlength(self): return self.ptr.actuatorlength
 *     @actuatorlength.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_14actuatorlength_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_14actuatorlength_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_14actuatorlength___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_14actuatorlength___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":551
 *     def jointwidth(self, float x): self.ptr.jointwidth = x
 *     @property
 *     def actuatorlength(self): return self.ptr.actuatorlength             # <<<<<<<<<<<<<<
 *     @actuatorlength.setter
 *     def actuatorlength(self, float x): self.ptr.actuatorlength = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->actuatorlength); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":550
 *     @jointwidth.setter
 *     def jointwidth(self, float x): self.ptr.jointwidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def actuatorlength(self): return self.ptr.actuatorlength
 *     @actuatorlength.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.actuatorlength.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":552
 *     @property
 *     def actuatorlength(self): return self.ptr.actuatorlength
 *     @actuatorlength.setter             # <<<<<<<<<<<<<<
 *     def actuatorlength(self, float x): self.ptr.actuatorlength = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_14actuatorlength_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_14actuatorlength_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 553, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.actuatorlength.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_14actuatorlength_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_14actuatorlength_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":553
 *     def actuatorlength(self): return self.ptr.actuatorlength
 *     @actuatorlength.setter
 *     def actuatorlength(self, float x): self.ptr.actuatorlength = x             # <<<<<<<<<<<<<<
 *     @property
 *     def actuatorwidth(self): return self.ptr.actuatorwidth
 */
  __pyx_v_self->ptr->actuatorlength = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":552
 *     @property
 *     def actuatorlength(self): return self.ptr.actuatorlength
 *     @actuatorlength.setter             # <<<<<<<<<<<<<<
 *     def actuatorlength(self, float x): self.ptr.actuatorlength = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":554
 *     @actuatorlength.setter
 *     def actuatorlength(self, float x): self.ptr.actuatorlength = x
 *     @property             # <<<<<<<<<<<<<<
 *     def actuatorwidth(self): return self.ptr.actuatorwidth
 *     @actuatorwidth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_13actuatorwidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_13actuatorwidth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_13actuatorwidth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_13actuatorwidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":555
 *     def actuatorlength(self, float x): self.ptr.actuatorlength = x
 *     @property
 *     def actuatorwidth(self): return self.ptr.actuatorwidth             # <<<<<<<<<<<<<<
 *     @actuatorwidth.setter
 *     def actuatorwidth(self, float x): self.ptr.actuatorwidth = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->actuatorwidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":554
 *     @actuatorlength.setter
 *     def actuatorlength(self, float x): self.ptr.actuatorlength = x
 *     @property             # <<<<<<<<<<<<<<
 *     def actuatorwidth(self): return self.ptr.actuatorwidth
 *     @actuatorwidth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.actuatorwidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":556
 *     @property
 *     def actuatorwidth(self): return self.ptr.actuatorwidth
 *     @actuatorwidth.setter             # <<<<<<<<<<<<<<
 *     def actuatorwidth(self, float x): self.ptr.actuatorwidth = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_13actuatorwidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_13actuatorwidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 557, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.actuatorwidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_13actuatorwidth_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_13actuatorwidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":557
 *     def actuatorwidth(self): return self.ptr.actuatorwidth
 *     @actuatorwidth.setter
 *     def actuatorwidth(self, float x): self.ptr.actuatorwidth = x             # <<<<<<<<<<<<<<
 *     @property
 *     def framelength(self): return self.ptr.framelength
 */
  __pyx_v_self->ptr->actuatorwidth = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":556
 *     @property
 *     def actuatorwidth(self): return self.ptr.actuatorwidth
 *     @actuatorwidth.setter             # <<<<<<<<<<<<<<
 *     def actuatorwidth(self, float x): self.ptr.actuatorwidth = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":558
 *     @actuatorwidth.setter
 *     def actuatorwidth(self, float x): self.ptr.actuatorwidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def framelength(self): return self.ptr.framelength
 *     @framelength.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11framelength_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11framelength_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11framelength___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11framelength___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":559
 *     def actuatorwidth(self, float x): self.ptr.actuatorwidth = x
 *     @property
 *     def framelength(self): return self.ptr.framelength             # <<<<<<<<<<<<<<
 *     @framelength.setter
 *     def framelength(self, float x): self.ptr.framelength = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->framelength); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":558
 *     @actuatorwidth.setter
 *     def actuatorwidth(self, float x): self.ptr.actuatorwidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def framelength(self): return self.ptr.framelength
 *     @framelength.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.framelength.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":560
 *     @property
 *     def framelength(self): return self.ptr.framelength
 *     @framelength.setter             # <<<<<<<<<<<<<<
 *     def framelength(self, float x): self.ptr.framelength = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11framelength_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11framelength_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 561, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.framelength.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11framelength_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11framelength_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":561
 *     def framelength(self): return self.ptr.framelength
 *     @framelength.setter
 *     def framelength(self, float x): self.ptr.framelength = x             # <<<<<<<<<<<<<<
 *     @property
 *     def framewidth(self): return self.ptr.framewidth
 */
  __pyx_v_self->ptr->framelength = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":560
 *     @property
 *     def framelength(self): return self.ptr.framelength
 *     @framelength.setter             # <<<<<<<<<<<<<<
 *     def framelength(self, float x): self.ptr.framelength = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":562
 *     @framelength.setter
 *     def framelength(self, float x): self.ptr.framelength = x
 *     @property             # <<<<<<<<<<<<<<
 *     def framewidth(self): return self.ptr.framewidth
 *     @framewidth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10framewidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10framewidth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10framewidth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10framewidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":563
 *     def framelength(self, float x): self.ptr.framelength = x
 *     @property
 *     def framewidth(self): return self.ptr.framewidth             # <<<<<<<<<<<<<<
 *     @framewidth.setter
 *     def framewidth(self, float x): self.ptr.framewidth = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->framewidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":562
 *     @framelength.setter
 *     def framelength(self, float x): self.ptr.framelength = x
 *     @property             # <<<<<<<<<<<<<<
 *     def framewidth(self): return self.ptr.framewidth
 *     @framewidth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.framewidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":564
 *     @property
 *     def framewidth(self): return self.ptr.framewidth
 *     @framewidth.setter             # <<<<<<<<<<<<<<
 *     def framewidth(self, float x): self.ptr.framewidth = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10framewidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10framewidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 565, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.framewidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10framewidth_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10framewidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":565
 *     def framewidth(self): return self.ptr.framewidth
 *     @framewidth.setter
 *     def framewidth(self, float x): self.ptr.framewidth = x             # <<<<<<<<<<<<<<
 *     @property
 *     def constraint(self): return self.ptr.constraint
 */
  __pyx_v_self->ptr->framewidth = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":564
 *     @property
 *     def framewidth(self): return self.ptr.framewidth
 *     @framewidth.setter             # <<<<<<<<<<<<<<
 *     def framewidth(self, float x): self.ptr.framewidth = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":566
 *     @framewidth.setter
 *     def framewidth(self, float x): self.ptr.framewidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def constraint(self): return self.ptr.constraint
 *     @constraint.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10constraint_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10constraint_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10constraint___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10constraint___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":567
 *     def framewidth(self, float x): self.ptr.framewidth = x
 *     @property
 *     def constraint(self): return self.ptr.constraint             # <<<<<<<<<<<<<<
 *     @constraint.setter
 *     def constraint(self, float x): self.ptr.constraint = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 567, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":566
 *     @framewidth.setter
 *     def framewidth(self, float x): self.ptr.framewidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def constraint(self): return self.ptr.constraint
 *     @constraint.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.constraint.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":568
 *     @property
 *     def constraint(self): return self.ptr.constraint
 *     @constraint.setter             # <<<<<<<<<<<<<<
 *     def constraint(self, float x): self.ptr.constraint = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10constraint_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10constraint_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 569, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.constraint.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10constraint_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_10constraint_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":569
 *     def constraint(self): return self.ptr.constraint
 *     @constraint.setter
 *     def constraint(self, float x): self.ptr.constraint = x             # <<<<<<<<<<<<<<
 *     @property
 *     def slidercrank(self): return self.ptr.slidercrank
 */
  __pyx_v_self->ptr->constraint = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":568
 *     @property
 *     def constraint(self): return self.ptr.constraint
 *     @constraint.setter             # <<<<<<<<<<<<<<
 *     def constraint(self, float x): self.ptr.constraint = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":570
 *     @constraint.setter
 *     def constraint(self, float x): self.ptr.constraint = x
 *     @property             # <<<<<<<<<<<<<<
 *     def slidercrank(self): return self.ptr.slidercrank
 *     @slidercrank.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11slidercrank_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11slidercrank_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11slidercrank___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11slidercrank___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":571
 *     def constraint(self, float x): self.ptr.constraint = x
 *     @property
 *     def slidercrank(self): return self.ptr.slidercrank             # <<<<<<<<<<<<<<
 *     @slidercrank.setter
 *     def slidercrank(self, float x): self.ptr.slidercrank = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->slidercrank); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":570
 *     @constraint.setter
 *     def constraint(self, float x): self.ptr.constraint = x
 *     @property             # <<<<<<<<<<<<<<
 *     def slidercrank(self): return self.ptr.slidercrank
 *     @slidercrank.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.slidercrank.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":572
 *     @property
 *     def slidercrank(self): return self.ptr.slidercrank
 *     @slidercrank.setter             # <<<<<<<<<<<<<<
 *     def slidercrank(self, float x): self.ptr.slidercrank = x
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11slidercrank_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11slidercrank_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 573, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.slidercrank.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11slidercrank_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_11slidercrank_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":573
 *     def slidercrank(self): return self.ptr.slidercrank
 *     @slidercrank.setter
 *     def slidercrank(self, float x): self.ptr.slidercrank = x             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjVisual_scale WrapMjVisual_scale(mjVisual_scale* p):
 */
  __pyx_v_self->ptr->slidercrank = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":572
 *     @property
 *     def slidercrank(self): return self.ptr.slidercrank
 *     @slidercrank.setter             # <<<<<<<<<<<<<<
 *     def slidercrank(self, float x): self.ptr.slidercrank = x
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_16PyMjVisual_scale_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_16PyMjVisual_scale_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjVisual_scale_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_scale.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":575
 *     def slidercrank(self, float x): self.ptr.slidercrank = x
 * 
 * cdef PyMjVisual_scale WrapMjVisual_scale(mjVisual_scale* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVisual_scale o = PyMjVisual_scale()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_f_9mujoco_py_4cymj_WrapMjVisual_scale(struct __pyx_t_9mujoco_py_4cymj_mjVisual_scale *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjVisual_scale", 1);

  /* "mujoco_py/generated/wrappers.pxi":576
 * 
 * cdef PyMjVisual_scale WrapMjVisual_scale(mjVisual_scale* p):
 *     cdef PyMjVisual_scale o = PyMjVisual_scale()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":577
 * cdef PyMjVisual_scale WrapMjVisual_scale(mjVisual_scale* p):
 *     cdef PyMjVisual_scale o = PyMjVisual_scale()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_scale *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":578
 *     cdef PyMjVisual_scale o = PyMjVisual_scale()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjVisual_rgba(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":575
 *     def slidercrank(self, float x): self.ptr.slidercrank = x
 * 
 * cdef PyMjVisual_scale WrapMjVisual_scale(mjVisual_scale* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVisual_scale o = PyMjVisual_scale()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjVisual_scale", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":607
 *     cdef np.ndarray _crankbroken
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":608
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":607
 *     cdef np.ndarray _crankbroken
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":611
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":612
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjVisual_rgba* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":611
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_rgba.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":614
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVisual_rgba* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_15PyMjVisual_rgba__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self, struct __pyx_t_9mujoco_py_4cymj_mjVisual_rgba *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":616
 *     cdef void _set(self, mjVisual_rgba* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":619
 * 
 * 
 *         self._fog = _wrap_float_1d(&p.fog[0], 4)             # <<<<<<<<<<<<<<
 *         self._haze = _wrap_float_1d(&p.haze[0], 4)
 *         self._force = _wrap_float_1d(&p.force[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->fog[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_fog);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_fog);
  __pyx_v_self->_fog = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":620
 * 
 *         self._fog = _wrap_float_1d(&p.fog[0], 4)
 *         self._haze = _wrap_float_1d(&p.haze[0], 4)             # <<<<<<<<<<<<<<
 *         self._force = _wrap_float_1d(&p.force[0], 4)
 *         self._inertia = _wrap_float_1d(&p.inertia[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->haze[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_haze);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_haze);
  __pyx_v_self->_haze = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":621
 *         self._fog = _wrap_float_1d(&p.fog[0], 4)
 *         self._haze = _wrap_float_1d(&p.haze[0], 4)
 *         self._force = _wrap_float_1d(&p.force[0], 4)             # <<<<<<<<<<<<<<
 *         self._inertia = _wrap_float_1d(&p.inertia[0], 4)
 *         self._joint = _wrap_float_1d(&p.joint[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->force[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_force);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_force);
  __pyx_v_self->_force = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":622
 *         self._haze = _wrap_float_1d(&p.haze[0], 4)
 *         self._force = _wrap_float_1d(&p.force[0], 4)
 *         self._inertia = _wrap_float_1d(&p.inertia[0], 4)             # <<<<<<<<<<<<<<
 *         self._joint = _wrap_float_1d(&p.joint[0], 4)
 *         self._actuator = _wrap_float_1d(&p.actuator[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->inertia[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_inertia);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_inertia);
  __pyx_v_self->_inertia = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":623
 *         self._force = _wrap_float_1d(&p.force[0], 4)
 *         self._inertia = _wrap_float_1d(&p.inertia[0], 4)
 *         self._joint = _wrap_float_1d(&p.joint[0], 4)             # <<<<<<<<<<<<<<
 *         self._actuator = _wrap_float_1d(&p.actuator[0], 4)
 *         self._actuatornegative = _wrap_float_1d(&p.actuatornegative[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->joint[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_joint);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_joint);
  __pyx_v_self->_joint = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":624
 *         self._inertia = _wrap_float_1d(&p.inertia[0], 4)
 *         self._joint = _wrap_float_1d(&p.joint[0], 4)
 *         self._actuator = _wrap_float_1d(&p.actuator[0], 4)             # <<<<<<<<<<<<<<
 *         self._actuatornegative = _wrap_float_1d(&p.actuatornegative[0], 4)
 *         self._actuatorpositive = _wrap_float_1d(&p.actuatorpositive[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->actuator[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator);
  __pyx_v_self->_actuator = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":625
 *         self._joint = _wrap_float_1d(&p.joint[0], 4)
 *         self._actuator = _wrap_float_1d(&p.actuator[0], 4)
 *         self._actuatornegative = _wrap_float_1d(&p.actuatornegative[0], 4)             # <<<<<<<<<<<<<<
 *         self._actuatorpositive = _wrap_float_1d(&p.actuatorpositive[0], 4)
 *         self._com = _wrap_float_1d(&p.com[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->actuatornegative[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuatornegative);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuatornegative);
  __pyx_v_self->_actuatornegative = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":626
 *         self._actuator = _wrap_float_1d(&p.actuator[0], 4)
 *         self._actuatornegative = _wrap_float_1d(&p.actuatornegative[0], 4)
 *         self._actuatorpositive = _wrap_float_1d(&p.actuatorpositive[0], 4)             # <<<<<<<<<<<<<<
 *         self._com = _wrap_float_1d(&p.com[0], 4)
 *         self._camera = _wrap_float_1d(&p.camera[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->actuatorpositive[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuatorpositive);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuatorpositive);
  __pyx_v_self->_actuatorpositive = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":627
 *         self._actuatornegative = _wrap_float_1d(&p.actuatornegative[0], 4)
 *         self._actuatorpositive = _wrap_float_1d(&p.actuatorpositive[0], 4)
 *         self._com = _wrap_float_1d(&p.com[0], 4)             # <<<<<<<<<<<<<<
 *         self._camera = _wrap_float_1d(&p.camera[0], 4)
 *         self._light = _wrap_float_1d(&p.light[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->com[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_com);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_com);
  __pyx_v_self->_com = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":628
 *         self._actuatorpositive = _wrap_float_1d(&p.actuatorpositive[0], 4)
 *         self._com = _wrap_float_1d(&p.com[0], 4)
 *         self._camera = _wrap_float_1d(&p.camera[0], 4)             # <<<<<<<<<<<<<<
 *         self._light = _wrap_float_1d(&p.light[0], 4)
 *         self._selectpoint = _wrap_float_1d(&p.selectpoint[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->camera[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_camera);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_camera);
  __pyx_v_self->_camera = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":629
 *         self._com = _wrap_float_1d(&p.com[0], 4)
 *         self._camera = _wrap_float_1d(&p.camera[0], 4)
 *         self._light = _wrap_float_1d(&p.light[0], 4)             # <<<<<<<<<<<<<<
 *         self._selectpoint = _wrap_float_1d(&p.selectpoint[0], 4)
 *         self._connect = _wrap_float_1d(&p.connect[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->light[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light);
  __pyx_v_self->_light = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":630
 *         self._camera = _wrap_float_1d(&p.camera[0], 4)
 *         self._light = _wrap_float_1d(&p.light[0], 4)
 *         self._selectpoint = _wrap_float_1d(&p.selectpoint[0], 4)             # <<<<<<<<<<<<<<
 *         self._connect = _wrap_float_1d(&p.connect[0], 4)
 *         self._contactpoint = _wrap_float_1d(&p.contactpoint[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->selectpoint[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_selectpoint);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_selectpoint);
  __pyx_v_self->_selectpoint = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":631
 *         self._light = _wrap_float_1d(&p.light[0], 4)
 *         self._selectpoint = _wrap_float_1d(&p.selectpoint[0], 4)
 *         self._connect = _wrap_float_1d(&p.connect[0], 4)             # <<<<<<<<<<<<<<
 *         self._contactpoint = _wrap_float_1d(&p.contactpoint[0], 4)
 *         self._contactforce = _wrap_float_1d(&p.contactforce[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->connect[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_connect);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_connect);
  __pyx_v_self->_connect = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":632
 *         self._selectpoint = _wrap_float_1d(&p.selectpoint[0], 4)
 *         self._connect = _wrap_float_1d(&p.connect[0], 4)
 *         self._contactpoint = _wrap_float_1d(&p.contactpoint[0], 4)             # <<<<<<<<<<<<<<
 *         self._contactforce = _wrap_float_1d(&p.contactforce[0], 4)
 *         self._contactfriction = _wrap_float_1d(&p.contactfriction[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->contactpoint[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_contactpoint);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_contactpoint);
  __pyx_v_self->_contactpoint = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":633
 *         self._connect = _wrap_float_1d(&p.connect[0], 4)
 *         self._contactpoint = _wrap_float_1d(&p.contactpoint[0], 4)
 *         self._contactforce = _wrap_float_1d(&p.contactforce[0], 4)             # <<<<<<<<<<<<<<
 *         self._contactfriction = _wrap_float_1d(&p.contactfriction[0], 4)
 *         self._contacttorque = _wrap_float_1d(&p.contacttorque[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->contactforce[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_contactforce);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_contactforce);
  __pyx_v_self->_contactforce = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":634
 *         self._contactpoint = _wrap_float_1d(&p.contactpoint[0], 4)
 *         self._contactforce = _wrap_float_1d(&p.contactforce[0], 4)
 *         self._contactfriction = _wrap_float_1d(&p.contactfriction[0], 4)             # <<<<<<<<<<<<<<
 *         self._contacttorque = _wrap_float_1d(&p.contacttorque[0], 4)
 *         self._contactgap = _wrap_float_1d(&p.contactgap[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->contactfriction[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 634, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_contactfriction);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_contactfriction);
  __pyx_v_self->_contactfriction = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":635
 *         self._contactforce = _wrap_float_1d(&p.contactforce[0], 4)
 *         self._contactfriction = _wrap_float_1d(&p.contactfriction[0], 4)
 *         self._contacttorque = _wrap_float_1d(&p.contacttorque[0], 4)             # <<<<<<<<<<<<<<
 *         self._contactgap = _wrap_float_1d(&p.contactgap[0], 4)
 *         self._rangefinder = _wrap_float_1d(&p.rangefinder[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->contacttorque[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_contacttorque);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_contacttorque);
  __pyx_v_self->_contacttorque = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":636
 *         self._contactfriction = _wrap_float_1d(&p.contactfriction[0], 4)
 *         self._contacttorque = _wrap_float_1d(&p.contacttorque[0], 4)
 *         self._contactgap = _wrap_float_1d(&p.contactgap[0], 4)             # <<<<<<<<<<<<<<
 *         self._rangefinder = _wrap_float_1d(&p.rangefinder[0], 4)
 *         self._constraint = _wrap_float_1d(&p.constraint[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->contactgap[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_contactgap);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_contactgap);
  __pyx_v_self->_contactgap = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":637
 *         self._contacttorque = _wrap_float_1d(&p.contacttorque[0], 4)
 *         self._contactgap = _wrap_float_1d(&p.contactgap[0], 4)
 *         self._rangefinder = _wrap_float_1d(&p.rangefinder[0], 4)             # <<<<<<<<<<<<<<
 *         self._constraint = _wrap_float_1d(&p.constraint[0], 4)
 *         self._slidercrank = _wrap_float_1d(&p.slidercrank[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->rangefinder[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_rangefinder);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_rangefinder);
  __pyx_v_self->_rangefinder = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":638
 *         self._contactgap = _wrap_float_1d(&p.contactgap[0], 4)
 *         self._rangefinder = _wrap_float_1d(&p.rangefinder[0], 4)
 *         self._constraint = _wrap_float_1d(&p.constraint[0], 4)             # <<<<<<<<<<<<<<
 *         self._slidercrank = _wrap_float_1d(&p.slidercrank[0], 4)
 *         self._crankbroken = _wrap_float_1d(&p.crankbroken[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->constraint[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_constraint);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_constraint);
  __pyx_v_self->_constraint = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":639
 *         self._rangefinder = _wrap_float_1d(&p.rangefinder[0], 4)
 *         self._constraint = _wrap_float_1d(&p.constraint[0], 4)
 *         self._slidercrank = _wrap_float_1d(&p.slidercrank[0], 4)             # <<<<<<<<<<<<<<
 *         self._crankbroken = _wrap_float_1d(&p.crankbroken[0], 4)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->slidercrank[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_slidercrank);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_slidercrank);
  __pyx_v_self->_slidercrank = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":640
 *         self._constraint = _wrap_float_1d(&p.constraint[0], 4)
 *         self._slidercrank = _wrap_float_1d(&p.slidercrank[0], 4)
 *         self._crankbroken = _wrap_float_1d(&p.crankbroken[0], 4)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->crankbroken[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 640, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_crankbroken);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_crankbroken);
  __pyx_v_self->_crankbroken = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":614
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjVisual_rgba* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjVisual_rgba._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":642
 *         self._crankbroken = _wrap_float_1d(&p.crankbroken[0], 4)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def fog(self): return self._fog
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_3fog_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_3fog_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_3fog___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_3fog___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":643
 * 
 *     @property
 *     def fog(self): return self._fog             # <<<<<<<<<<<<<<
 *     @property
 *     def haze(self): return self._haze
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_fog);
  __pyx_r = ((PyObject *)__pyx_v_self->_fog);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":642
 *         self._crankbroken = _wrap_float_1d(&p.crankbroken[0], 4)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def fog(self): return self._fog
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":644
 *     @property
 *     def fog(self): return self._fog
 *     @property             # <<<<<<<<<<<<<<
 *     def haze(self): return self._haze
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_4haze_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_4haze_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_4haze___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_4haze___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":645
 *     def fog(self): return self._fog
 *     @property
 *     def haze(self): return self._haze             # <<<<<<<<<<<<<<
 *     @property
 *     def force(self): return self._force
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_haze);
  __pyx_r = ((PyObject *)__pyx_v_self->_haze);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":644
 *     @property
 *     def fog(self): return self._fog
 *     @property             # <<<<<<<<<<<<<<
 *     def haze(self): return self._haze
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":646
 *     @property
 *     def haze(self): return self._haze
 *     @property             # <<<<<<<<<<<<<<
 *     def force(self): return self._force
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_5force_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_5force_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_5force___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_5force___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":647
 *     def haze(self): return self._haze
 *     @property
 *     def force(self): return self._force             # <<<<<<<<<<<<<<
 *     @property
 *     def inertia(self): return self._inertia
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_force);
  __pyx_r = ((PyObject *)__pyx_v_self->_force);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":646
 *     @property
 *     def haze(self): return self._haze
 *     @property             # <<<<<<<<<<<<<<
 *     def force(self): return self._force
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":648
 *     @property
 *     def force(self): return self._force
 *     @property             # <<<<<<<<<<<<<<
 *     def inertia(self): return self._inertia
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_7inertia_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_7inertia_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_7inertia___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_7inertia___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":649
 *     def force(self): return self._force
 *     @property
 *     def inertia(self): return self._inertia             # <<<<<<<<<<<<<<
 *     @property
 *     def joint(self): return self._joint
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_inertia);
  __pyx_r = ((PyObject *)__pyx_v_self->_inertia);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":648
 *     @property
 *     def force(self): return self._force
 *     @property             # <<<<<<<<<<<<<<
 *     def inertia(self): return self._inertia
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":650
 *     @property
 *     def inertia(self): return self._inertia
 *     @property             # <<<<<<<<<<<<<<
 *     def joint(self): return self._joint
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_5joint_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_5joint_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_5joint___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_5joint___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":651
 *     def inertia(self): return self._inertia
 *     @property
 *     def joint(self): return self._joint             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator(self): return self._actuator
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_joint);
  __pyx_r = ((PyObject *)__pyx_v_self->_joint);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":650
 *     @property
 *     def inertia(self): return self._inertia
 *     @property             # <<<<<<<<<<<<<<
 *     def joint(self): return self._joint
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":652
 *     @property
 *     def joint(self): return self._joint
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator(self): return self._actuator
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_8actuator_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_8actuator_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_8actuator___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_8actuator___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":653
 *     def joint(self): return self._joint
 *     @property
 *     def actuator(self): return self._actuator             # <<<<<<<<<<<<<<
 *     @property
 *     def actuatornegative(self): return self._actuatornegative
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":652
 *     @property
 *     def joint(self): return self._joint
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator(self): return self._actuator
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":654
 *     @property
 *     def actuator(self): return self._actuator
 *     @property             # <<<<<<<<<<<<<<
 *     def actuatornegative(self): return self._actuatornegative
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_16actuatornegative_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_16actuatornegative_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_16actuatornegative___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_16actuatornegative___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":655
 *     def actuator(self): return self._actuator
 *     @property
 *     def actuatornegative(self): return self._actuatornegative             # <<<<<<<<<<<<<<
 *     @property
 *     def actuatorpositive(self): return self._actuatorpositive
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuatornegative);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuatornegative);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":654
 *     @property
 *     def actuator(self): return self._actuator
 *     @property             # <<<<<<<<<<<<<<
 *     def actuatornegative(self): return self._actuatornegative
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":656
 *     @property
 *     def actuatornegative(self): return self._actuatornegative
 *     @property             # <<<<<<<<<<<<<<
 *     def actuatorpositive(self): return self._actuatorpositive
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_16actuatorpositive_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_16actuatorpositive_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_16actuatorpositive___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_16actuatorpositive___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":657
 *     def actuatornegative(self): return self._actuatornegative
 *     @property
 *     def actuatorpositive(self): return self._actuatorpositive             # <<<<<<<<<<<<<<
 *     @property
 *     def com(self): return self._com
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuatorpositive);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuatorpositive);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":656
 *     @property
 *     def actuatornegative(self): return self._actuatornegative
 *     @property             # <<<<<<<<<<<<<<
 *     def actuatorpositive(self): return self._actuatorpositive
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":658
 *     @property
 *     def actuatorpositive(self): return self._actuatorpositive
 *     @property             # <<<<<<<<<<<<<<
 *     def com(self): return self._com
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_3com_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_3com_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_3com___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_3com___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":659
 *     def actuatorpositive(self): return self._actuatorpositive
 *     @property
 *     def com(self): return self._com             # <<<<<<<<<<<<<<
 *     @property
 *     def camera(self): return self._camera
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_com);
  __pyx_r = ((PyObject *)__pyx_v_self->_com);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":658
 *     @property
 *     def actuatorpositive(self): return self._actuatorpositive
 *     @property             # <<<<<<<<<<<<<<
 *     def com(self): return self._com
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":660
 *     @property
 *     def com(self): return self._com
 *     @property             # <<<<<<<<<<<<<<
 *     def camera(self): return self._camera
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_6camera_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_6camera_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_6camera___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_6camera___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":661
 *     def com(self): return self._com
 *     @property
 *     def camera(self): return self._camera             # <<<<<<<<<<<<<<
 *     @property
 *     def light(self): return self._light
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_camera);
  __pyx_r = ((PyObject *)__pyx_v_self->_camera);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":660
 *     @property
 *     def com(self): return self._com
 *     @property             # <<<<<<<<<<<<<<
 *     def camera(self): return self._camera
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":662
 *     @property
 *     def camera(self): return self._camera
 *     @property             # <<<<<<<<<<<<<<
 *     def light(self): return self._light
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_5light_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_5light_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_5light___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_5light___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":663
 *     def camera(self): return self._camera
 *     @property
 *     def light(self): return self._light             # <<<<<<<<<<<<<<
 *     @property
 *     def selectpoint(self): return self._selectpoint
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light);
  __pyx_r = ((PyObject *)__pyx_v_self->_light);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":662
 *     @property
 *     def camera(self): return self._camera
 *     @property             # <<<<<<<<<<<<<<
 *     def light(self): return self._light
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":664
 *     @property
 *     def light(self): return self._light
 *     @property             # <<<<<<<<<<<<<<
 *     def selectpoint(self): return self._selectpoint
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_11selectpoint_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_11selectpoint_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_11selectpoint___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_11selectpoint___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":665
 *     def light(self): return self._light
 *     @property
 *     def selectpoint(self): return self._selectpoint             # <<<<<<<<<<<<<<
 *     @property
 *     def connect(self): return self._connect
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_selectpoint);
  __pyx_r = ((PyObject *)__pyx_v_self->_selectpoint);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":664
 *     @property
 *     def light(self): return self._light
 *     @property             # <<<<<<<<<<<<<<
 *     def selectpoint(self): return self._selectpoint
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":666
 *     @property
 *     def selectpoint(self): return self._selectpoint
 *     @property             # <<<<<<<<<<<<<<
 *     def connect(self): return self._connect
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_7connect_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_7connect_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_7connect___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_7connect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":667
 *     def selectpoint(self): return self._selectpoint
 *     @property
 *     def connect(self): return self._connect             # <<<<<<<<<<<<<<
 *     @property
 *     def contactpoint(self): return self._contactpoint
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_connect);
  __pyx_r = ((PyObject *)__pyx_v_self->_connect);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":666
 *     @property
 *     def selectpoint(self): return self._selectpoint
 *     @property             # <<<<<<<<<<<<<<
 *     def connect(self): return self._connect
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":668
 *     @property
 *     def connect(self): return self._connect
 *     @property             # <<<<<<<<<<<<<<
 *     def contactpoint(self): return self._contactpoint
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_12contactpoint_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_12contactpoint_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_12contactpoint___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_12contactpoint___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":669
 *     def connect(self): return self._connect
 *     @property
 *     def contactpoint(self): return self._contactpoint             # <<<<<<<<<<<<<<
 *     @property
 *     def contactforce(self): return self._contactforce
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_contactpoint);
  __pyx_r = ((PyObject *)__pyx_v_self->_contactpoint);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":668
 *     @property
 *     def connect(self): return self._connect
 *     @property             # <<<<<<<<<<<<<<
 *     def contactpoint(self): return self._contactpoint
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":670
 *     @property
 *     def contactpoint(self): return self._contactpoint
 *     @property             # <<<<<<<<<<<<<<
 *     def contactforce(self): return self._contactforce
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_12contactforce_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_12contactforce_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_12contactforce___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_12contactforce___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":671
 *     def contactpoint(self): return self._contactpoint
 *     @property
 *     def contactforce(self): return self._contactforce             # <<<<<<<<<<<<<<
 *     @property
 *     def contactfriction(self): return self._contactfriction
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_contactforce);
  __pyx_r = ((PyObject *)__pyx_v_self->_contactforce);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":670
 *     @property
 *     def contactpoint(self): return self._contactpoint
 *     @property             # <<<<<<<<<<<<<<
 *     def contactforce(self): return self._contactforce
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":672
 *     @property
 *     def contactforce(self): return self._contactforce
 *     @property             # <<<<<<<<<<<<<<
 *     def contactfriction(self): return self._contactfriction
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_15contactfriction_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_15contactfriction_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_15contactfriction___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_15contactfriction___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":673
 *     def contactforce(self): return self._contactforce
 *     @property
 *     def contactfriction(self): return self._contactfriction             # <<<<<<<<<<<<<<
 *     @property
 *     def contacttorque(self): return self._contacttorque
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_contactfriction);
  __pyx_r = ((PyObject *)__pyx_v_self->_contactfriction);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":672
 *     @property
 *     def contactforce(self): return self._contactforce
 *     @property             # <<<<<<<<<<<<<<
 *     def contactfriction(self): return self._contactfriction
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":674
 *     @property
 *     def contactfriction(self): return self._contactfriction
 *     @property             # <<<<<<<<<<<<<<
 *     def contacttorque(self): return self._contacttorque
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_13contacttorque_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_13contacttorque_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_13contacttorque___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_13contacttorque___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":675
 *     def contactfriction(self): return self._contactfriction
 *     @property
 *     def contacttorque(self): return self._contacttorque             # <<<<<<<<<<<<<<
 *     @property
 *     def contactgap(self): return self._contactgap
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_contacttorque);
  __pyx_r = ((PyObject *)__pyx_v_self->_contacttorque);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":674
 *     @property
 *     def contactfriction(self): return self._contactfriction
 *     @property             # <<<<<<<<<<<<<<
 *     def contacttorque(self): return self._contacttorque
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":676
 *     @property
 *     def contacttorque(self): return self._contacttorque
 *     @property             # <<<<<<<<<<<<<<
 *     def contactgap(self): return self._contactgap
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_10contactgap_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_10contactgap_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_10contactgap___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_10contactgap___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":677
 *     def contacttorque(self): return self._contacttorque
 *     @property
 *     def contactgap(self): return self._contactgap             # <<<<<<<<<<<<<<
 *     @property
 *     def rangefinder(self): return self._rangefinder
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_contactgap);
  __pyx_r = ((PyObject *)__pyx_v_self->_contactgap);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":676
 *     @property
 *     def contacttorque(self): return self._contacttorque
 *     @property             # <<<<<<<<<<<<<<
 *     def contactgap(self): return self._contactgap
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":678
 *     @property
 *     def contactgap(self): return self._contactgap
 *     @property             # <<<<<<<<<<<<<<
 *     def rangefinder(self): return self._rangefinder
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_11rangefinder_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_11rangefinder_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_11rangefinder___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_11rangefinder___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":679
 *     def contactgap(self): return self._contactgap
 *     @property
 *     def rangefinder(self): return self._rangefinder             # <<<<<<<<<<<<<<
 *     @property
 *     def constraint(self): return self._constraint
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_rangefinder);
  __pyx_r = ((PyObject *)__pyx_v_self->_rangefinder);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":678
 *     @property
 *     def contactgap(self): return self._contactgap
 *     @property             # <<<<<<<<<<<<<<
 *     def rangefinder(self): return self._rangefinder
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":680
 *     @property
 *     def rangefinder(self): return self._rangefinder
 *     @property             # <<<<<<<<<<<<<<
 *     def constraint(self): return self._constraint
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_10constraint_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_10constraint_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_10constraint___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_10constraint___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":681
 *     def rangefinder(self): return self._rangefinder
 *     @property
 *     def constraint(self): return self._constraint             # <<<<<<<<<<<<<<
 *     @property
 *     def slidercrank(self): return self._slidercrank
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_constraint);
  __pyx_r = ((PyObject *)__pyx_v_self->_constraint);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":680
 *     @property
 *     def rangefinder(self): return self._rangefinder
 *     @property             # <<<<<<<<<<<<<<
 *     def constraint(self): return self._constraint
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":682
 *     @property
 *     def constraint(self): return self._constraint
 *     @property             # <<<<<<<<<<<<<<
 *     def slidercrank(self): return self._slidercrank
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_11slidercrank_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_11slidercrank_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_11slidercrank___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_11slidercrank___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":683
 *     def constraint(self): return self._constraint
 *     @property
 *     def slidercrank(self): return self._slidercrank             # <<<<<<<<<<<<<<
 *     @property
 *     def crankbroken(self): return self._crankbroken
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_slidercrank);
  __pyx_r = ((PyObject *)__pyx_v_self->_slidercrank);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":682
 *     @property
 *     def constraint(self): return self._constraint
 *     @property             # <<<<<<<<<<<<<<
 *     def slidercrank(self): return self._slidercrank
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":684
 *     @property
 *     def slidercrank(self): return self._slidercrank
 *     @property             # <<<<<<<<<<<<<<
 *     def crankbroken(self): return self._crankbroken
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_11crankbroken_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_11crankbroken_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_11crankbroken___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_11crankbroken___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":685
 *     def slidercrank(self): return self._slidercrank
 *     @property
 *     def crankbroken(self): return self._crankbroken             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjVisual_rgba WrapMjVisual_rgba(mjVisual_rgba* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_crankbroken);
  __pyx_r = ((PyObject *)__pyx_v_self->_crankbroken);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":684
 *     @property
 *     def slidercrank(self): return self._slidercrank
 *     @property             # <<<<<<<<<<<<<<
 *     def crankbroken(self): return self._crankbroken
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15PyMjVisual_rgba_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_rgba.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15PyMjVisual_rgba_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_rgba.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjVisual_rgba_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjVisual_rgba.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":687
 *     def crankbroken(self): return self._crankbroken
 * 
 * cdef PyMjVisual_rgba WrapMjVisual_rgba(mjVisual_rgba* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVisual_rgba o = PyMjVisual_rgba()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_f_9mujoco_py_4cymj_WrapMjVisual_rgba(struct __pyx_t_9mujoco_py_4cymj_mjVisual_rgba *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjVisual_rgba", 1);

  /* "mujoco_py/generated/wrappers.pxi":688
 * 
 * cdef PyMjVisual_rgba WrapMjVisual_rgba(mjVisual_rgba* p):
 *     cdef PyMjVisual_rgba o = PyMjVisual_rgba()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":689
 * cdef PyMjVisual_rgba WrapMjVisual_rgba(mjVisual_rgba* p):
 *     cdef PyMjVisual_rgba o = PyMjVisual_rgba()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_rgba *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":690
 *     cdef PyMjVisual_rgba o = PyMjVisual_rgba()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjStatistic(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":687
 *     def crankbroken(self): return self._crankbroken
 * 
 * cdef PyMjVisual_rgba WrapMjVisual_rgba(mjVisual_rgba* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjVisual_rgba o = PyMjVisual_rgba()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjVisual_rgba", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":698
 *     cdef np.ndarray _center
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":699
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":698
 *     cdef np.ndarray _center
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":702
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":703
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjStatistic* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":702
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjStatistic.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":705
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjStatistic* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_13PyMjStatistic__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self, mjStatistic *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":707
 *     cdef void _set(self, mjStatistic* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":710
 * 
 * 
 *         self._center = _wrap_mjtNum_1d(&p.center[0], 3)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->center[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_center);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_center);
  __pyx_v_self->_center = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":705
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjStatistic* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjStatistic._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":712
 *         self._center = _wrap_mjtNum_1d(&p.center[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def meaninertia(self): return self.ptr.meaninertia
 *     @meaninertia.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_11meaninertia_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_11meaninertia_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_11meaninertia___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_11meaninertia___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":713
 * 
 *     @property
 *     def meaninertia(self): return self.ptr.meaninertia             # <<<<<<<<<<<<<<
 *     @meaninertia.setter
 *     def meaninertia(self, mjtNum x): self.ptr.meaninertia = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->meaninertia); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 713, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":712
 *         self._center = _wrap_mjtNum_1d(&p.center[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def meaninertia(self): return self.ptr.meaninertia
 *     @meaninertia.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjStatistic.meaninertia.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":714
 *     @property
 *     def meaninertia(self): return self.ptr.meaninertia
 *     @meaninertia.setter             # <<<<<<<<<<<<<<
 *     def meaninertia(self, mjtNum x): self.ptr.meaninertia = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_11meaninertia_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_11meaninertia_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 715, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjStatistic.meaninertia.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_11meaninertia_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_11meaninertia_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":715
 *     def meaninertia(self): return self.ptr.meaninertia
 *     @meaninertia.setter
 *     def meaninertia(self, mjtNum x): self.ptr.meaninertia = x             # <<<<<<<<<<<<<<
 *     @property
 *     def meanmass(self): return self.ptr.meanmass
 */
  __pyx_v_self->ptr->meaninertia = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":714
 *     @property
 *     def meaninertia(self): return self.ptr.meaninertia
 *     @meaninertia.setter             # <<<<<<<<<<<<<<
 *     def meaninertia(self, mjtNum x): self.ptr.meaninertia = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":716
 *     @meaninertia.setter
 *     def meaninertia(self, mjtNum x): self.ptr.meaninertia = x
 *     @property             # <<<<<<<<<<<<<<
 *     def meanmass(self): return self.ptr.meanmass
 *     @meanmass.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_8meanmass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_8meanmass_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_8meanmass___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_8meanmass___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":717
 *     def meaninertia(self, mjtNum x): self.ptr.meaninertia = x
 *     @property
 *     def meanmass(self): return self.ptr.meanmass             # <<<<<<<<<<<<<<
 *     @meanmass.setter
 *     def meanmass(self, mjtNum x): self.ptr.meanmass = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->meanmass); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":716
 *     @meaninertia.setter
 *     def meaninertia(self, mjtNum x): self.ptr.meaninertia = x
 *     @property             # <<<<<<<<<<<<<<
 *     def meanmass(self): return self.ptr.meanmass
 *     @meanmass.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjStatistic.meanmass.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":718
 *     @property
 *     def meanmass(self): return self.ptr.meanmass
 *     @meanmass.setter             # <<<<<<<<<<<<<<
 *     def meanmass(self, mjtNum x): self.ptr.meanmass = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_8meanmass_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_8meanmass_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 719, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjStatistic.meanmass.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_8meanmass_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_8meanmass_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":719
 *     def meanmass(self): return self.ptr.meanmass
 *     @meanmass.setter
 *     def meanmass(self, mjtNum x): self.ptr.meanmass = x             # <<<<<<<<<<<<<<
 *     @property
 *     def meansize(self): return self.ptr.meansize
 */
  __pyx_v_self->ptr->meanmass = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":718
 *     @property
 *     def meanmass(self): return self.ptr.meanmass
 *     @meanmass.setter             # <<<<<<<<<<<<<<
 *     def meanmass(self, mjtNum x): self.ptr.meanmass = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":720
 *     @meanmass.setter
 *     def meanmass(self, mjtNum x): self.ptr.meanmass = x
 *     @property             # <<<<<<<<<<<<<<
 *     def meansize(self): return self.ptr.meansize
 *     @meansize.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_8meansize_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_8meansize_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_8meansize___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_8meansize___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":721
 *     def meanmass(self, mjtNum x): self.ptr.meanmass = x
 *     @property
 *     def meansize(self): return self.ptr.meansize             # <<<<<<<<<<<<<<
 *     @meansize.setter
 *     def meansize(self, mjtNum x): self.ptr.meansize = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->meansize); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 721, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":720
 *     @meanmass.setter
 *     def meanmass(self, mjtNum x): self.ptr.meanmass = x
 *     @property             # <<<<<<<<<<<<<<
 *     def meansize(self): return self.ptr.meansize
 *     @meansize.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjStatistic.meansize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":722
 *     @property
 *     def meansize(self): return self.ptr.meansize
 *     @meansize.setter             # <<<<<<<<<<<<<<
 *     def meansize(self, mjtNum x): self.ptr.meansize = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_8meansize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_8meansize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 723, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjStatistic.meansize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_8meansize_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_8meansize_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":723
 *     def meansize(self): return self.ptr.meansize
 *     @meansize.setter
 *     def meansize(self, mjtNum x): self.ptr.meansize = x             # <<<<<<<<<<<<<<
 *     @property
 *     def extent(self): return self.ptr.extent
 */
  __pyx_v_self->ptr->meansize = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":722
 *     @property
 *     def meansize(self): return self.ptr.meansize
 *     @meansize.setter             # <<<<<<<<<<<<<<
 *     def meansize(self, mjtNum x): self.ptr.meansize = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":724
 *     @meansize.setter
 *     def meansize(self, mjtNum x): self.ptr.meansize = x
 *     @property             # <<<<<<<<<<<<<<
 *     def extent(self): return self.ptr.extent
 *     @extent.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_6extent_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_6extent_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_6extent___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_6extent___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":725
 *     def meansize(self, mjtNum x): self.ptr.meansize = x
 *     @property
 *     def extent(self): return self.ptr.extent             # <<<<<<<<<<<<<<
 *     @extent.setter
 *     def extent(self, mjtNum x): self.ptr.extent = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->extent); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":724
 *     @meansize.setter
 *     def meansize(self, mjtNum x): self.ptr.meansize = x
 *     @property             # <<<<<<<<<<<<<<
 *     def extent(self): return self.ptr.extent
 *     @extent.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjStatistic.extent.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":726
 *     @property
 *     def extent(self): return self.ptr.extent
 *     @extent.setter             # <<<<<<<<<<<<<<
 *     def extent(self, mjtNum x): self.ptr.extent = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_6extent_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_6extent_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 727, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjStatistic.extent.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_6extent_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_6extent_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":727
 *     def extent(self): return self.ptr.extent
 *     @extent.setter
 *     def extent(self, mjtNum x): self.ptr.extent = x             # <<<<<<<<<<<<<<
 *     @property
 *     def center(self): return self._center
 */
  __pyx_v_self->ptr->extent = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":726
 *     @property
 *     def extent(self): return self.ptr.extent
 *     @extent.setter             # <<<<<<<<<<<<<<
 *     def extent(self, mjtNum x): self.ptr.extent = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":728
 *     @extent.setter
 *     def extent(self, mjtNum x): self.ptr.extent = x
 *     @property             # <<<<<<<<<<<<<<
 *     def center(self): return self._center
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_6center_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_6center_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_6center___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_6center___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":729
 *     def extent(self, mjtNum x): self.ptr.extent = x
 *     @property
 *     def center(self): return self._center             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjStatistic WrapMjStatistic(mjStatistic* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_center);
  __pyx_r = ((PyObject *)__pyx_v_self->_center);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":728
 *     @extent.setter
 *     def extent(self, mjtNum x): self.ptr.extent = x
 *     @property             # <<<<<<<<<<<<<<
 *     def center(self): return self._center
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_13PyMjStatistic_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjStatistic.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_13PyMjStatistic_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjStatistic.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjStatistic_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjStatistic.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":731
 *     def center(self): return self._center
 * 
 * cdef PyMjStatistic WrapMjStatistic(mjStatistic* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjStatistic o = PyMjStatistic()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_f_9mujoco_py_4cymj_WrapMjStatistic(mjStatistic *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjStatistic", 1);

  /* "mujoco_py/generated/wrappers.pxi":732
 * 
 * cdef PyMjStatistic WrapMjStatistic(mjStatistic* p):
 *     cdef PyMjStatistic o = PyMjStatistic()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjStatistic)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":733
 * cdef PyMjStatistic WrapMjStatistic(mjStatistic* p):
 *     cdef PyMjStatistic o = PyMjStatistic()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjStatistic *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":734
 *     cdef PyMjStatistic o = PyMjStatistic()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjModel(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":731
 *     def center(self): return self._center
 * 
 * cdef PyMjStatistic WrapMjStatistic(mjStatistic* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjStatistic o = PyMjStatistic()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjStatistic", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1014
 *     cdef readonly dict _body_name2id, _joint_name2id, _geom_name2id, _site_name2id, _light_name2id, _camera_name2id, _actuator_name2id, _sensor_name2id, _tendon_name2id, _mesh_name2id
 * 
 *     def body_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._body_id2name:
 *             raise ValueError("No body with id %d exists." % id)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_1body_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_1body_id2name = {"body_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_1body_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_1body_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("body_id2name (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1014, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "body_id2name") < 0)) __PYX_ERR(4, 1014, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("body_id2name", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1014, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.body_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_body_id2name(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_body_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("body_id2name", 1);

  /* "mujoco_py/generated/wrappers.pxi":1015
 * 
 *     def body_id2name(self, id):
 *         if id not in self._body_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No body with id %d exists." % id)
 *         return self._body_id2name[id]
 */
  if (unlikely(__pyx_v_self->_body_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1015, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_id, __pyx_v_self->_body_id2name, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1015, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1016
 *     def body_id2name(self, id):
 *         if id not in self._body_id2name:
 *             raise ValueError("No body with id %d exists." % id)             # <<<<<<<<<<<<<<
 *         return self._body_id2name[id]
 * 
 */
    __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_No_body_with_id_d_exists, __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1016, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1016, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(4, 1016, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1015
 * 
 *     def body_id2name(self, id):
 *         if id not in self._body_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No body with id %d exists." % id)
 *         return self._body_id2name[id]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1017
 *         if id not in self._body_id2name:
 *             raise ValueError("No body with id %d exists." % id)
 *         return self._body_id2name[id]             # <<<<<<<<<<<<<<
 * 
 *     def body_name2id(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_body_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1017, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->_body_id2name, __pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1014
 *     cdef readonly dict _body_name2id, _joint_name2id, _geom_name2id, _site_name2id, _light_name2id, _camera_name2id, _actuator_name2id, _sensor_name2id, _tendon_name2id, _mesh_name2id
 * 
 *     def body_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._body_id2name:
 *             raise ValueError("No body with id %d exists." % id)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.body_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1019
 *         return self._body_id2name[id]
 * 
 *     def body_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._body_name2id:
 *             raise ValueError("No \"body\" with name %s exists. Available \"body\" names = %s." % (name, self.body_names))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_3body_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_3body_name2id = {"body_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_3body_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_3body_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("body_name2id (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1019, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "body_name2id") < 0)) __PYX_ERR(4, 1019, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("body_name2id", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1019, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.body_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2body_name2id(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_2body_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_UCS4 __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("body_name2id", 1);

  /* "mujoco_py/generated/wrappers.pxi":1020
 * 
 *     def body_name2id(self, name):
 *         if name not in self._body_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"body\" with name %s exists. Available \"body\" names = %s." % (name, self.body_names))
 *         return self._body_name2id[name]
 */
  if (unlikely(__pyx_v_self->_body_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1020, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_self->_body_name2id, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1020, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1021
 *     def body_name2id(self, name):
 *         if name not in self._body_name2id:
 *             raise ValueError("No \"body\" with name %s exists. Available \"body\" names = %s." % (name, self.body_names))             # <<<<<<<<<<<<<<
 *         return self._body_name2id[name]
 * 
 */
    __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1021, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_4 = 127;
    __Pyx_INCREF(__pyx_kp_u_No_body_with_name);
    __pyx_t_3 += 20;
    __Pyx_GIVEREF(__pyx_kp_u_No_body_with_name);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u_No_body_with_name);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1021, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u_exists_Available_body_names);
    __pyx_t_3 += 34;
    __Pyx_GIVEREF(__pyx_kp_u_exists_Available_body_names);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u_exists_Available_body_names);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_self->body_names), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1021, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u__2);
    __pyx_t_3 += 1;
    __Pyx_GIVEREF(__pyx_kp_u__2);
    PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_kp_u__2);
    __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_2, 5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1021, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1021, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(4, 1021, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1020
 * 
 *     def body_name2id(self, name):
 *         if name not in self._body_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"body\" with name %s exists. Available \"body\" names = %s." % (name, self.body_names))
 *         return self._body_name2id[name]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1022
 *         if name not in self._body_name2id:
 *             raise ValueError("No \"body\" with name %s exists. Available \"body\" names = %s." % (name, self.body_names))
 *         return self._body_name2id[name]             # <<<<<<<<<<<<<<
 * 
 *     def joint_id2name(self, id):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_body_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1022, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->_body_name2id, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1022, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1019
 *         return self._body_id2name[id]
 * 
 *     def body_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._body_name2id:
 *             raise ValueError("No \"body\" with name %s exists. Available \"body\" names = %s." % (name, self.body_names))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.body_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1024
 *         return self._body_name2id[name]
 * 
 *     def joint_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._joint_id2name:
 *             raise ValueError("No joint with id %d exists." % id)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5joint_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_5joint_id2name = {"joint_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5joint_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5joint_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("joint_id2name (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1024, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "joint_id2name") < 0)) __PYX_ERR(4, 1024, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("joint_id2name", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1024, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.joint_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4joint_id2name(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_4joint_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("joint_id2name", 1);

  /* "mujoco_py/generated/wrappers.pxi":1025
 * 
 *     def joint_id2name(self, id):
 *         if id not in self._joint_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No joint with id %d exists." % id)
 *         return self._joint_id2name[id]
 */
  if (unlikely(__pyx_v_self->_joint_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1025, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_id, __pyx_v_self->_joint_id2name, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1025, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1026
 *     def joint_id2name(self, id):
 *         if id not in self._joint_id2name:
 *             raise ValueError("No joint with id %d exists." % id)             # <<<<<<<<<<<<<<
 *         return self._joint_id2name[id]
 * 
 */
    __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_No_joint_with_id_d_exists, __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(4, 1026, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1025
 * 
 *     def joint_id2name(self, id):
 *         if id not in self._joint_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No joint with id %d exists." % id)
 *         return self._joint_id2name[id]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1027
 *         if id not in self._joint_id2name:
 *             raise ValueError("No joint with id %d exists." % id)
 *         return self._joint_id2name[id]             # <<<<<<<<<<<<<<
 * 
 *     def joint_name2id(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_joint_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1027, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->_joint_id2name, __pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1024
 *         return self._body_name2id[name]
 * 
 *     def joint_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._joint_id2name:
 *             raise ValueError("No joint with id %d exists." % id)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.joint_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1029
 *         return self._joint_id2name[id]
 * 
 *     def joint_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._joint_name2id:
 *             raise ValueError("No \"joint\" with name %s exists. Available \"joint\" names = %s." % (name, self.joint_names))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7joint_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_7joint_name2id = {"joint_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7joint_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7joint_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("joint_name2id (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1029, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "joint_name2id") < 0)) __PYX_ERR(4, 1029, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("joint_name2id", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1029, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.joint_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6joint_name2id(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_6joint_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_UCS4 __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("joint_name2id", 1);

  /* "mujoco_py/generated/wrappers.pxi":1030
 * 
 *     def joint_name2id(self, name):
 *         if name not in self._joint_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"joint\" with name %s exists. Available \"joint\" names = %s." % (name, self.joint_names))
 *         return self._joint_name2id[name]
 */
  if (unlikely(__pyx_v_self->_joint_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1030, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_self->_joint_name2id, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1030, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1031
 *     def joint_name2id(self, name):
 *         if name not in self._joint_name2id:
 *             raise ValueError("No \"joint\" with name %s exists. Available \"joint\" names = %s." % (name, self.joint_names))             # <<<<<<<<<<<<<<
 *         return self._joint_name2id[name]
 * 
 */
    __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_4 = 127;
    __Pyx_INCREF(__pyx_kp_u_No_joint_with_name);
    __pyx_t_3 += 21;
    __Pyx_GIVEREF(__pyx_kp_u_No_joint_with_name);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u_No_joint_with_name);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u_exists_Available_joint_names);
    __pyx_t_3 += 35;
    __Pyx_GIVEREF(__pyx_kp_u_exists_Available_joint_names);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u_exists_Available_joint_names);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_self->joint_names), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u__2);
    __pyx_t_3 += 1;
    __Pyx_GIVEREF(__pyx_kp_u__2);
    PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_kp_u__2);
    __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_2, 5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(4, 1031, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1030
 * 
 *     def joint_name2id(self, name):
 *         if name not in self._joint_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"joint\" with name %s exists. Available \"joint\" names = %s." % (name, self.joint_names))
 *         return self._joint_name2id[name]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1032
 *         if name not in self._joint_name2id:
 *             raise ValueError("No \"joint\" with name %s exists. Available \"joint\" names = %s." % (name, self.joint_names))
 *         return self._joint_name2id[name]             # <<<<<<<<<<<<<<
 * 
 *     def geom_id2name(self, id):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_joint_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1032, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->_joint_name2id, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1032, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1029
 *         return self._joint_id2name[id]
 * 
 *     def joint_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._joint_name2id:
 *             raise ValueError("No \"joint\" with name %s exists. Available \"joint\" names = %s." % (name, self.joint_names))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.joint_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1034
 *         return self._joint_name2id[name]
 * 
 *     def geom_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._geom_id2name:
 *             raise ValueError("No geom with id %d exists." % id)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_9geom_id2name = {"geom_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("geom_id2name (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1034, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "geom_id2name") < 0)) __PYX_ERR(4, 1034, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("geom_id2name", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1034, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.geom_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8geom_id2name(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8geom_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("geom_id2name", 1);

  /* "mujoco_py/generated/wrappers.pxi":1035
 * 
 *     def geom_id2name(self, id):
 *         if id not in self._geom_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No geom with id %d exists." % id)
 *         return self._geom_id2name[id]
 */
  if (unlikely(__pyx_v_self->_geom_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1035, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_id, __pyx_v_self->_geom_id2name, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1035, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1036
 *     def geom_id2name(self, id):
 *         if id not in self._geom_id2name:
 *             raise ValueError("No geom with id %d exists." % id)             # <<<<<<<<<<<<<<
 *         return self._geom_id2name[id]
 * 
 */
    __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_No_geom_with_id_d_exists, __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1036, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1036, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(4, 1036, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1035
 * 
 *     def geom_id2name(self, id):
 *         if id not in self._geom_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No geom with id %d exists." % id)
 *         return self._geom_id2name[id]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1037
 *         if id not in self._geom_id2name:
 *             raise ValueError("No geom with id %d exists." % id)
 *         return self._geom_id2name[id]             # <<<<<<<<<<<<<<
 * 
 *     def geom_name2id(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_geom_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1037, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->_geom_id2name, __pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1037, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1034
 *         return self._joint_name2id[name]
 * 
 *     def geom_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._geom_id2name:
 *             raise ValueError("No geom with id %d exists." % id)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.geom_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1039
 *         return self._geom_id2name[id]
 * 
 *     def geom_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._geom_name2id:
 *             raise ValueError("No \"geom\" with name %s exists. Available \"geom\" names = %s." % (name, self.geom_names))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_11geom_name2id = {"geom_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("geom_name2id (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1039, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "geom_name2id") < 0)) __PYX_ERR(4, 1039, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("geom_name2id", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1039, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.geom_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10geom_name2id(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10geom_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_UCS4 __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("geom_name2id", 1);

  /* "mujoco_py/generated/wrappers.pxi":1040
 * 
 *     def geom_name2id(self, name):
 *         if name not in self._geom_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"geom\" with name %s exists. Available \"geom\" names = %s." % (name, self.geom_names))
 *         return self._geom_name2id[name]
 */
  if (unlikely(__pyx_v_self->_geom_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1040, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_self->_geom_name2id, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1040, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1041
 *     def geom_name2id(self, name):
 *         if name not in self._geom_name2id:
 *             raise ValueError("No \"geom\" with name %s exists. Available \"geom\" names = %s." % (name, self.geom_names))             # <<<<<<<<<<<<<<
 *         return self._geom_name2id[name]
 * 
 */
    __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1041, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_4 = 127;
    __Pyx_INCREF(__pyx_kp_u_No_geom_with_name);
    __pyx_t_3 += 20;
    __Pyx_GIVEREF(__pyx_kp_u_No_geom_with_name);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u_No_geom_with_name);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1041, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u_exists_Available_geom_names);
    __pyx_t_3 += 34;
    __Pyx_GIVEREF(__pyx_kp_u_exists_Available_geom_names);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u_exists_Available_geom_names);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_self->geom_names), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1041, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u__2);
    __pyx_t_3 += 1;
    __Pyx_GIVEREF(__pyx_kp_u__2);
    PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_kp_u__2);
    __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_2, 5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1041, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1041, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(4, 1041, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1040
 * 
 *     def geom_name2id(self, name):
 *         if name not in self._geom_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"geom\" with name %s exists. Available \"geom\" names = %s." % (name, self.geom_names))
 *         return self._geom_name2id[name]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1042
 *         if name not in self._geom_name2id:
 *             raise ValueError("No \"geom\" with name %s exists. Available \"geom\" names = %s." % (name, self.geom_names))
 *         return self._geom_name2id[name]             # <<<<<<<<<<<<<<
 * 
 *     def site_id2name(self, id):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_geom_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1042, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->_geom_name2id, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1042, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1039
 *         return self._geom_id2name[id]
 * 
 *     def geom_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._geom_name2id:
 *             raise ValueError("No \"geom\" with name %s exists. Available \"geom\" names = %s." % (name, self.geom_names))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.geom_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1044
 *         return self._geom_name2id[name]
 * 
 *     def site_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._site_id2name:
 *             raise ValueError("No site with id %d exists." % id)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13site_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_13site_id2name = {"site_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13site_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13site_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("site_id2name (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1044, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "site_id2name") < 0)) __PYX_ERR(4, 1044, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("site_id2name", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1044, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.site_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12site_id2name(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12site_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("site_id2name", 1);

  /* "mujoco_py/generated/wrappers.pxi":1045
 * 
 *     def site_id2name(self, id):
 *         if id not in self._site_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No site with id %d exists." % id)
 *         return self._site_id2name[id]
 */
  if (unlikely(__pyx_v_self->_site_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1045, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_id, __pyx_v_self->_site_id2name, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1045, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1046
 *     def site_id2name(self, id):
 *         if id not in self._site_id2name:
 *             raise ValueError("No site with id %d exists." % id)             # <<<<<<<<<<<<<<
 *         return self._site_id2name[id]
 * 
 */
    __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_No_site_with_id_d_exists, __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(4, 1046, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1045
 * 
 *     def site_id2name(self, id):
 *         if id not in self._site_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No site with id %d exists." % id)
 *         return self._site_id2name[id]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1047
 *         if id not in self._site_id2name:
 *             raise ValueError("No site with id %d exists." % id)
 *         return self._site_id2name[id]             # <<<<<<<<<<<<<<
 * 
 *     def site_name2id(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_site_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1047, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->_site_id2name, __pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1044
 *         return self._geom_name2id[name]
 * 
 *     def site_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._site_id2name:
 *             raise ValueError("No site with id %d exists." % id)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.site_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1049
 *         return self._site_id2name[id]
 * 
 *     def site_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._site_name2id:
 *             raise ValueError("No \"site\" with name %s exists. Available \"site\" names = %s." % (name, self.site_names))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15site_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_15site_name2id = {"site_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15site_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15site_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("site_name2id (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1049, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "site_name2id") < 0)) __PYX_ERR(4, 1049, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("site_name2id", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1049, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.site_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14site_name2id(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14site_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_UCS4 __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("site_name2id", 1);

  /* "mujoco_py/generated/wrappers.pxi":1050
 * 
 *     def site_name2id(self, name):
 *         if name not in self._site_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"site\" with name %s exists. Available \"site\" names = %s." % (name, self.site_names))
 *         return self._site_name2id[name]
 */
  if (unlikely(__pyx_v_self->_site_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1050, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_self->_site_name2id, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1050, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1051
 *     def site_name2id(self, name):
 *         if name not in self._site_name2id:
 *             raise ValueError("No \"site\" with name %s exists. Available \"site\" names = %s." % (name, self.site_names))             # <<<<<<<<<<<<<<
 *         return self._site_name2id[name]
 * 
 */
    __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1051, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_4 = 127;
    __Pyx_INCREF(__pyx_kp_u_No_site_with_name);
    __pyx_t_3 += 20;
    __Pyx_GIVEREF(__pyx_kp_u_No_site_with_name);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u_No_site_with_name);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1051, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u_exists_Available_site_names);
    __pyx_t_3 += 34;
    __Pyx_GIVEREF(__pyx_kp_u_exists_Available_site_names);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u_exists_Available_site_names);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_self->site_names), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1051, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u__2);
    __pyx_t_3 += 1;
    __Pyx_GIVEREF(__pyx_kp_u__2);
    PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_kp_u__2);
    __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_2, 5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1051, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1051, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(4, 1051, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1050
 * 
 *     def site_name2id(self, name):
 *         if name not in self._site_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"site\" with name %s exists. Available \"site\" names = %s." % (name, self.site_names))
 *         return self._site_name2id[name]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1052
 *         if name not in self._site_name2id:
 *             raise ValueError("No \"site\" with name %s exists. Available \"site\" names = %s." % (name, self.site_names))
 *         return self._site_name2id[name]             # <<<<<<<<<<<<<<
 * 
 *     def light_id2name(self, id):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_site_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1052, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->_site_name2id, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1049
 *         return self._site_id2name[id]
 * 
 *     def site_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._site_name2id:
 *             raise ValueError("No \"site\" with name %s exists. Available \"site\" names = %s." % (name, self.site_names))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.site_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1054
 *         return self._site_name2id[name]
 * 
 *     def light_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._light_id2name:
 *             raise ValueError("No light with id %d exists." % id)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17light_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_17light_id2name = {"light_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17light_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17light_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("light_id2name (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1054, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "light_id2name") < 0)) __PYX_ERR(4, 1054, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("light_id2name", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1054, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.light_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16light_id2name(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16light_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("light_id2name", 1);

  /* "mujoco_py/generated/wrappers.pxi":1055
 * 
 *     def light_id2name(self, id):
 *         if id not in self._light_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No light with id %d exists." % id)
 *         return self._light_id2name[id]
 */
  if (unlikely(__pyx_v_self->_light_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1055, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_id, __pyx_v_self->_light_id2name, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1055, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1056
 *     def light_id2name(self, id):
 *         if id not in self._light_id2name:
 *             raise ValueError("No light with id %d exists." % id)             # <<<<<<<<<<<<<<
 *         return self._light_id2name[id]
 * 
 */
    __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_No_light_with_id_d_exists, __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1056, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1056, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(4, 1056, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1055
 * 
 *     def light_id2name(self, id):
 *         if id not in self._light_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No light with id %d exists." % id)
 *         return self._light_id2name[id]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1057
 *         if id not in self._light_id2name:
 *             raise ValueError("No light with id %d exists." % id)
 *         return self._light_id2name[id]             # <<<<<<<<<<<<<<
 * 
 *     def light_name2id(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_light_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1057, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->_light_id2name, __pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1057, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1054
 *         return self._site_name2id[name]
 * 
 *     def light_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._light_id2name:
 *             raise ValueError("No light with id %d exists." % id)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.light_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1059
 *         return self._light_id2name[id]
 * 
 *     def light_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._light_name2id:
 *             raise ValueError("No \"light\" with name %s exists. Available \"light\" names = %s." % (name, self.light_names))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_19light_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_19light_name2id = {"light_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_19light_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_19light_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("light_name2id (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1059, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "light_name2id") < 0)) __PYX_ERR(4, 1059, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("light_name2id", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1059, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.light_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_18light_name2id(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_18light_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_UCS4 __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("light_name2id", 1);

  /* "mujoco_py/generated/wrappers.pxi":1060
 * 
 *     def light_name2id(self, name):
 *         if name not in self._light_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"light\" with name %s exists. Available \"light\" names = %s." % (name, self.light_names))
 *         return self._light_name2id[name]
 */
  if (unlikely(__pyx_v_self->_light_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1060, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_self->_light_name2id, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1060, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1061
 *     def light_name2id(self, name):
 *         if name not in self._light_name2id:
 *             raise ValueError("No \"light\" with name %s exists. Available \"light\" names = %s." % (name, self.light_names))             # <<<<<<<<<<<<<<
 *         return self._light_name2id[name]
 * 
 */
    __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1061, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_4 = 127;
    __Pyx_INCREF(__pyx_kp_u_No_light_with_name);
    __pyx_t_3 += 21;
    __Pyx_GIVEREF(__pyx_kp_u_No_light_with_name);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u_No_light_with_name);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1061, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u_exists_Available_light_names);
    __pyx_t_3 += 35;
    __Pyx_GIVEREF(__pyx_kp_u_exists_Available_light_names);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u_exists_Available_light_names);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_self->light_names), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1061, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u__2);
    __pyx_t_3 += 1;
    __Pyx_GIVEREF(__pyx_kp_u__2);
    PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_kp_u__2);
    __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_2, 5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1061, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1061, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(4, 1061, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1060
 * 
 *     def light_name2id(self, name):
 *         if name not in self._light_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"light\" with name %s exists. Available \"light\" names = %s." % (name, self.light_names))
 *         return self._light_name2id[name]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1062
 *         if name not in self._light_name2id:
 *             raise ValueError("No \"light\" with name %s exists. Available \"light\" names = %s." % (name, self.light_names))
 *         return self._light_name2id[name]             # <<<<<<<<<<<<<<
 * 
 *     def camera_id2name(self, id):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_light_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1062, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->_light_name2id, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1062, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1059
 *         return self._light_id2name[id]
 * 
 *     def light_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._light_name2id:
 *             raise ValueError("No \"light\" with name %s exists. Available \"light\" names = %s." % (name, self.light_names))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.light_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1064
 *         return self._light_name2id[name]
 * 
 *     def camera_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._camera_id2name:
 *             raise ValueError("No camera with id %d exists." % id)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_21camera_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_21camera_id2name = {"camera_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_21camera_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_21camera_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("camera_id2name (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1064, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "camera_id2name") < 0)) __PYX_ERR(4, 1064, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("camera_id2name", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1064, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.camera_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_20camera_id2name(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_20camera_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("camera_id2name", 1);

  /* "mujoco_py/generated/wrappers.pxi":1065
 * 
 *     def camera_id2name(self, id):
 *         if id not in self._camera_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No camera with id %d exists." % id)
 *         return self._camera_id2name[id]
 */
  if (unlikely(__pyx_v_self->_camera_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1065, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_id, __pyx_v_self->_camera_id2name, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1065, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1066
 *     def camera_id2name(self, id):
 *         if id not in self._camera_id2name:
 *             raise ValueError("No camera with id %d exists." % id)             # <<<<<<<<<<<<<<
 *         return self._camera_id2name[id]
 * 
 */
    __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_No_camera_with_id_d_exists, __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1066, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1066, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(4, 1066, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1065
 * 
 *     def camera_id2name(self, id):
 *         if id not in self._camera_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No camera with id %d exists." % id)
 *         return self._camera_id2name[id]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1067
 *         if id not in self._camera_id2name:
 *             raise ValueError("No camera with id %d exists." % id)
 *         return self._camera_id2name[id]             # <<<<<<<<<<<<<<
 * 
 *     def camera_name2id(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_camera_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1067, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->_camera_id2name, __pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1067, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1064
 *         return self._light_name2id[name]
 * 
 *     def camera_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._camera_id2name:
 *             raise ValueError("No camera with id %d exists." % id)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.camera_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1069
 *         return self._camera_id2name[id]
 * 
 *     def camera_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._camera_name2id:
 *             raise ValueError("No \"camera\" with name %s exists. Available \"camera\" names = %s." % (name, self.camera_names))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_23camera_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_23camera_name2id = {"camera_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_23camera_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_23camera_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("camera_name2id (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1069, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "camera_name2id") < 0)) __PYX_ERR(4, 1069, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("camera_name2id", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1069, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.camera_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_22camera_name2id(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_22camera_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_UCS4 __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("camera_name2id", 1);

  /* "mujoco_py/generated/wrappers.pxi":1070
 * 
 *     def camera_name2id(self, name):
 *         if name not in self._camera_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"camera\" with name %s exists. Available \"camera\" names = %s." % (name, self.camera_names))
 *         return self._camera_name2id[name]
 */
  if (unlikely(__pyx_v_self->_camera_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1070, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_self->_camera_name2id, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1070, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1071
 *     def camera_name2id(self, name):
 *         if name not in self._camera_name2id:
 *             raise ValueError("No \"camera\" with name %s exists. Available \"camera\" names = %s." % (name, self.camera_names))             # <<<<<<<<<<<<<<
 *         return self._camera_name2id[name]
 * 
 */
    __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1071, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_4 = 127;
    __Pyx_INCREF(__pyx_kp_u_No_camera_with_name);
    __pyx_t_3 += 22;
    __Pyx_GIVEREF(__pyx_kp_u_No_camera_with_name);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u_No_camera_with_name);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1071, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u_exists_Available_camera_names);
    __pyx_t_3 += 36;
    __Pyx_GIVEREF(__pyx_kp_u_exists_Available_camera_names);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u_exists_Available_camera_names);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_self->camera_names), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1071, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u__2);
    __pyx_t_3 += 1;
    __Pyx_GIVEREF(__pyx_kp_u__2);
    PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_kp_u__2);
    __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_2, 5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1071, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1071, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(4, 1071, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1070
 * 
 *     def camera_name2id(self, name):
 *         if name not in self._camera_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"camera\" with name %s exists. Available \"camera\" names = %s." % (name, self.camera_names))
 *         return self._camera_name2id[name]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1072
 *         if name not in self._camera_name2id:
 *             raise ValueError("No \"camera\" with name %s exists. Available \"camera\" names = %s." % (name, self.camera_names))
 *         return self._camera_name2id[name]             # <<<<<<<<<<<<<<
 * 
 *     def actuator_id2name(self, id):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_camera_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1072, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->_camera_name2id, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1072, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1069
 *         return self._camera_id2name[id]
 * 
 *     def camera_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._camera_name2id:
 *             raise ValueError("No \"camera\" with name %s exists. Available \"camera\" names = %s." % (name, self.camera_names))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.camera_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1074
 *         return self._camera_name2id[name]
 * 
 *     def actuator_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._actuator_id2name:
 *             raise ValueError("No actuator with id %d exists." % id)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_25actuator_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_25actuator_id2name = {"actuator_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_25actuator_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_25actuator_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("actuator_id2name (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1074, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "actuator_id2name") < 0)) __PYX_ERR(4, 1074, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("actuator_id2name", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1074, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.actuator_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_24actuator_id2name(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_24actuator_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("actuator_id2name", 1);

  /* "mujoco_py/generated/wrappers.pxi":1075
 * 
 *     def actuator_id2name(self, id):
 *         if id not in self._actuator_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No actuator with id %d exists." % id)
 *         return self._actuator_id2name[id]
 */
  if (unlikely(__pyx_v_self->_actuator_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1075, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_id, __pyx_v_self->_actuator_id2name, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1075, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1076
 *     def actuator_id2name(self, id):
 *         if id not in self._actuator_id2name:
 *             raise ValueError("No actuator with id %d exists." % id)             # <<<<<<<<<<<<<<
 *         return self._actuator_id2name[id]
 * 
 */
    __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_No_actuator_with_id_d_exists, __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(4, 1076, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1075
 * 
 *     def actuator_id2name(self, id):
 *         if id not in self._actuator_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No actuator with id %d exists." % id)
 *         return self._actuator_id2name[id]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1077
 *         if id not in self._actuator_id2name:
 *             raise ValueError("No actuator with id %d exists." % id)
 *         return self._actuator_id2name[id]             # <<<<<<<<<<<<<<
 * 
 *     def actuator_name2id(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_actuator_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1077, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->_actuator_id2name, __pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1074
 *         return self._camera_name2id[name]
 * 
 *     def actuator_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._actuator_id2name:
 *             raise ValueError("No actuator with id %d exists." % id)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.actuator_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1079
 *         return self._actuator_id2name[id]
 * 
 *     def actuator_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._actuator_name2id:
 *             raise ValueError("No \"actuator\" with name %s exists. Available \"actuator\" names = %s." % (name, self.actuator_names))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_27actuator_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_27actuator_name2id = {"actuator_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_27actuator_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_27actuator_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("actuator_name2id (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1079, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "actuator_name2id") < 0)) __PYX_ERR(4, 1079, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("actuator_name2id", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1079, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.actuator_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_26actuator_name2id(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_26actuator_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_UCS4 __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("actuator_name2id", 1);

  /* "mujoco_py/generated/wrappers.pxi":1080
 * 
 *     def actuator_name2id(self, name):
 *         if name not in self._actuator_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"actuator\" with name %s exists. Available \"actuator\" names = %s." % (name, self.actuator_names))
 *         return self._actuator_name2id[name]
 */
  if (unlikely(__pyx_v_self->_actuator_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1080, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_self->_actuator_name2id, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1080, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1081
 *     def actuator_name2id(self, name):
 *         if name not in self._actuator_name2id:
 *             raise ValueError("No \"actuator\" with name %s exists. Available \"actuator\" names = %s." % (name, self.actuator_names))             # <<<<<<<<<<<<<<
 *         return self._actuator_name2id[name]
 * 
 */
    __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1081, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_4 = 127;
    __Pyx_INCREF(__pyx_kp_u_No_actuator_with_name);
    __pyx_t_3 += 24;
    __Pyx_GIVEREF(__pyx_kp_u_No_actuator_with_name);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u_No_actuator_with_name);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1081, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u_exists_Available_actuator_names);
    __pyx_t_3 += 38;
    __Pyx_GIVEREF(__pyx_kp_u_exists_Available_actuator_names);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u_exists_Available_actuator_names);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_self->actuator_names), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1081, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u__2);
    __pyx_t_3 += 1;
    __Pyx_GIVEREF(__pyx_kp_u__2);
    PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_kp_u__2);
    __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_2, 5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1081, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1081, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(4, 1081, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1080
 * 
 *     def actuator_name2id(self, name):
 *         if name not in self._actuator_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"actuator\" with name %s exists. Available \"actuator\" names = %s." % (name, self.actuator_names))
 *         return self._actuator_name2id[name]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1082
 *         if name not in self._actuator_name2id:
 *             raise ValueError("No \"actuator\" with name %s exists. Available \"actuator\" names = %s." % (name, self.actuator_names))
 *         return self._actuator_name2id[name]             # <<<<<<<<<<<<<<
 * 
 *     def sensor_id2name(self, id):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_actuator_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1082, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->_actuator_name2id, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1079
 *         return self._actuator_id2name[id]
 * 
 *     def actuator_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._actuator_name2id:
 *             raise ValueError("No \"actuator\" with name %s exists. Available \"actuator\" names = %s." % (name, self.actuator_names))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.actuator_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1084
 *         return self._actuator_name2id[name]
 * 
 *     def sensor_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._sensor_id2name:
 *             raise ValueError("No sensor with id %d exists." % id)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_29sensor_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_29sensor_id2name = {"sensor_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_29sensor_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_29sensor_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("sensor_id2name (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1084, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "sensor_id2name") < 0)) __PYX_ERR(4, 1084, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("sensor_id2name", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1084, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.sensor_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_28sensor_id2name(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_28sensor_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("sensor_id2name", 1);

  /* "mujoco_py/generated/wrappers.pxi":1085
 * 
 *     def sensor_id2name(self, id):
 *         if id not in self._sensor_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No sensor with id %d exists." % id)
 *         return self._sensor_id2name[id]
 */
  if (unlikely(__pyx_v_self->_sensor_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1085, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_id, __pyx_v_self->_sensor_id2name, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1085, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1086
 *     def sensor_id2name(self, id):
 *         if id not in self._sensor_id2name:
 *             raise ValueError("No sensor with id %d exists." % id)             # <<<<<<<<<<<<<<
 *         return self._sensor_id2name[id]
 * 
 */
    __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_No_sensor_with_id_d_exists, __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1086, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1086, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(4, 1086, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1085
 * 
 *     def sensor_id2name(self, id):
 *         if id not in self._sensor_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No sensor with id %d exists." % id)
 *         return self._sensor_id2name[id]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1087
 *         if id not in self._sensor_id2name:
 *             raise ValueError("No sensor with id %d exists." % id)
 *         return self._sensor_id2name[id]             # <<<<<<<<<<<<<<
 * 
 *     def sensor_name2id(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_sensor_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1087, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->_sensor_id2name, __pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1087, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1084
 *         return self._actuator_name2id[name]
 * 
 *     def sensor_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._sensor_id2name:
 *             raise ValueError("No sensor with id %d exists." % id)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.sensor_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1089
 *         return self._sensor_id2name[id]
 * 
 *     def sensor_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._sensor_name2id:
 *             raise ValueError("No \"sensor\" with name %s exists. Available \"sensor\" names = %s." % (name, self.sensor_names))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_31sensor_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_31sensor_name2id = {"sensor_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_31sensor_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_31sensor_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("sensor_name2id (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1089, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "sensor_name2id") < 0)) __PYX_ERR(4, 1089, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("sensor_name2id", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1089, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.sensor_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_30sensor_name2id(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_30sensor_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_UCS4 __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("sensor_name2id", 1);

  /* "mujoco_py/generated/wrappers.pxi":1090
 * 
 *     def sensor_name2id(self, name):
 *         if name not in self._sensor_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"sensor\" with name %s exists. Available \"sensor\" names = %s." % (name, self.sensor_names))
 *         return self._sensor_name2id[name]
 */
  if (unlikely(__pyx_v_self->_sensor_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1090, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_self->_sensor_name2id, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1090, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1091
 *     def sensor_name2id(self, name):
 *         if name not in self._sensor_name2id:
 *             raise ValueError("No \"sensor\" with name %s exists. Available \"sensor\" names = %s." % (name, self.sensor_names))             # <<<<<<<<<<<<<<
 *         return self._sensor_name2id[name]
 * 
 */
    __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1091, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_4 = 127;
    __Pyx_INCREF(__pyx_kp_u_No_sensor_with_name);
    __pyx_t_3 += 22;
    __Pyx_GIVEREF(__pyx_kp_u_No_sensor_with_name);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u_No_sensor_with_name);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1091, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u_exists_Available_sensor_names);
    __pyx_t_3 += 36;
    __Pyx_GIVEREF(__pyx_kp_u_exists_Available_sensor_names);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u_exists_Available_sensor_names);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_self->sensor_names), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1091, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u__2);
    __pyx_t_3 += 1;
    __Pyx_GIVEREF(__pyx_kp_u__2);
    PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_kp_u__2);
    __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_2, 5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1091, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1091, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(4, 1091, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1090
 * 
 *     def sensor_name2id(self, name):
 *         if name not in self._sensor_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"sensor\" with name %s exists. Available \"sensor\" names = %s." % (name, self.sensor_names))
 *         return self._sensor_name2id[name]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1092
 *         if name not in self._sensor_name2id:
 *             raise ValueError("No \"sensor\" with name %s exists. Available \"sensor\" names = %s." % (name, self.sensor_names))
 *         return self._sensor_name2id[name]             # <<<<<<<<<<<<<<
 * 
 *     def tendon_id2name(self, id):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_sensor_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1092, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->_sensor_name2id, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1092, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1089
 *         return self._sensor_id2name[id]
 * 
 *     def sensor_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._sensor_name2id:
 *             raise ValueError("No \"sensor\" with name %s exists. Available \"sensor\" names = %s." % (name, self.sensor_names))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.sensor_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1094
 *         return self._sensor_name2id[name]
 * 
 *     def tendon_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._tendon_id2name:
 *             raise ValueError("No tendon with id %d exists." % id)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_33tendon_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_33tendon_id2name = {"tendon_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_33tendon_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_33tendon_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("tendon_id2name (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1094, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "tendon_id2name") < 0)) __PYX_ERR(4, 1094, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("tendon_id2name", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1094, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.tendon_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_32tendon_id2name(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_32tendon_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("tendon_id2name", 1);

  /* "mujoco_py/generated/wrappers.pxi":1095
 * 
 *     def tendon_id2name(self, id):
 *         if id not in self._tendon_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No tendon with id %d exists." % id)
 *         return self._tendon_id2name[id]
 */
  if (unlikely(__pyx_v_self->_tendon_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1095, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_id, __pyx_v_self->_tendon_id2name, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1095, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1096
 *     def tendon_id2name(self, id):
 *         if id not in self._tendon_id2name:
 *             raise ValueError("No tendon with id %d exists." % id)             # <<<<<<<<<<<<<<
 *         return self._tendon_id2name[id]
 * 
 */
    __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_No_tendon_with_id_d_exists, __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(4, 1096, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1095
 * 
 *     def tendon_id2name(self, id):
 *         if id not in self._tendon_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No tendon with id %d exists." % id)
 *         return self._tendon_id2name[id]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1097
 *         if id not in self._tendon_id2name:
 *             raise ValueError("No tendon with id %d exists." % id)
 *         return self._tendon_id2name[id]             # <<<<<<<<<<<<<<
 * 
 *     def tendon_name2id(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_tendon_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1097, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->_tendon_id2name, __pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1094
 *         return self._sensor_name2id[name]
 * 
 *     def tendon_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._tendon_id2name:
 *             raise ValueError("No tendon with id %d exists." % id)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.tendon_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1099
 *         return self._tendon_id2name[id]
 * 
 *     def tendon_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._tendon_name2id:
 *             raise ValueError("No \"tendon\" with name %s exists. Available \"tendon\" names = %s." % (name, self.tendon_names))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_35tendon_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_35tendon_name2id = {"tendon_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_35tendon_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_35tendon_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("tendon_name2id (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1099, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "tendon_name2id") < 0)) __PYX_ERR(4, 1099, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("tendon_name2id", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1099, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.tendon_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_34tendon_name2id(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_34tendon_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_UCS4 __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("tendon_name2id", 1);

  /* "mujoco_py/generated/wrappers.pxi":1100
 * 
 *     def tendon_name2id(self, name):
 *         if name not in self._tendon_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"tendon\" with name %s exists. Available \"tendon\" names = %s." % (name, self.tendon_names))
 *         return self._tendon_name2id[name]
 */
  if (unlikely(__pyx_v_self->_tendon_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1100, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_self->_tendon_name2id, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1100, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1101
 *     def tendon_name2id(self, name):
 *         if name not in self._tendon_name2id:
 *             raise ValueError("No \"tendon\" with name %s exists. Available \"tendon\" names = %s." % (name, self.tendon_names))             # <<<<<<<<<<<<<<
 *         return self._tendon_name2id[name]
 * 
 */
    __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_4 = 127;
    __Pyx_INCREF(__pyx_kp_u_No_tendon_with_name);
    __pyx_t_3 += 22;
    __Pyx_GIVEREF(__pyx_kp_u_No_tendon_with_name);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u_No_tendon_with_name);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u_exists_Available_tendon_names);
    __pyx_t_3 += 36;
    __Pyx_GIVEREF(__pyx_kp_u_exists_Available_tendon_names);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u_exists_Available_tendon_names);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_self->tendon_names), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u__2);
    __pyx_t_3 += 1;
    __Pyx_GIVEREF(__pyx_kp_u__2);
    PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_kp_u__2);
    __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_2, 5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(4, 1101, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1100
 * 
 *     def tendon_name2id(self, name):
 *         if name not in self._tendon_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"tendon\" with name %s exists. Available \"tendon\" names = %s." % (name, self.tendon_names))
 *         return self._tendon_name2id[name]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1102
 *         if name not in self._tendon_name2id:
 *             raise ValueError("No \"tendon\" with name %s exists. Available \"tendon\" names = %s." % (name, self.tendon_names))
 *         return self._tendon_name2id[name]             # <<<<<<<<<<<<<<
 * 
 *     def mesh_id2name(self, id):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_tendon_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1102, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->_tendon_name2id, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1099
 *         return self._tendon_id2name[id]
 * 
 *     def tendon_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._tendon_name2id:
 *             raise ValueError("No \"tendon\" with name %s exists. Available \"tendon\" names = %s." % (name, self.tendon_names))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.tendon_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1104
 *         return self._tendon_name2id[name]
 * 
 *     def mesh_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._mesh_id2name:
 *             raise ValueError("No mesh with id %d exists." % id)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_37mesh_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_37mesh_id2name = {"mesh_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_37mesh_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_37mesh_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("mesh_id2name (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1104, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "mesh_id2name") < 0)) __PYX_ERR(4, 1104, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("mesh_id2name", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1104, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.mesh_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_36mesh_id2name(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_36mesh_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("mesh_id2name", 1);

  /* "mujoco_py/generated/wrappers.pxi":1105
 * 
 *     def mesh_id2name(self, id):
 *         if id not in self._mesh_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No mesh with id %d exists." % id)
 *         return self._mesh_id2name[id]
 */
  if (unlikely(__pyx_v_self->_mesh_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1105, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_id, __pyx_v_self->_mesh_id2name, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1105, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1106
 *     def mesh_id2name(self, id):
 *         if id not in self._mesh_id2name:
 *             raise ValueError("No mesh with id %d exists." % id)             # <<<<<<<<<<<<<<
 *         return self._mesh_id2name[id]
 * 
 */
    __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_No_mesh_with_id_d_exists, __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1106, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1106, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(4, 1106, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1105
 * 
 *     def mesh_id2name(self, id):
 *         if id not in self._mesh_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No mesh with id %d exists." % id)
 *         return self._mesh_id2name[id]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1107
 *         if id not in self._mesh_id2name:
 *             raise ValueError("No mesh with id %d exists." % id)
 *         return self._mesh_id2name[id]             # <<<<<<<<<<<<<<
 * 
 *     def mesh_name2id(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_mesh_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1107, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->_mesh_id2name, __pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1104
 *         return self._tendon_name2id[name]
 * 
 *     def mesh_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._mesh_id2name:
 *             raise ValueError("No mesh with id %d exists." % id)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.mesh_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1109
 *         return self._mesh_id2name[id]
 * 
 *     def mesh_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._mesh_name2id:
 *             raise ValueError("No \"mesh\" with name %s exists. Available \"mesh\" names = %s." % (name, self.mesh_names))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_39mesh_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_39mesh_name2id = {"mesh_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_39mesh_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_39mesh_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("mesh_name2id (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1109, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "mesh_name2id") < 0)) __PYX_ERR(4, 1109, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("mesh_name2id", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1109, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.mesh_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_38mesh_name2id(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_38mesh_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_UCS4 __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("mesh_name2id", 1);

  /* "mujoco_py/generated/wrappers.pxi":1110
 * 
 *     def mesh_name2id(self, name):
 *         if name not in self._mesh_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"mesh\" with name %s exists. Available \"mesh\" names = %s." % (name, self.mesh_names))
 *         return self._mesh_name2id[name]
 */
  if (unlikely(__pyx_v_self->_mesh_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1110, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_self->_mesh_name2id, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1110, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1111
 *     def mesh_name2id(self, name):
 *         if name not in self._mesh_name2id:
 *             raise ValueError("No \"mesh\" with name %s exists. Available \"mesh\" names = %s." % (name, self.mesh_names))             # <<<<<<<<<<<<<<
 *         return self._mesh_name2id[name]
 *     cdef public tuple userdata_names
 */
    __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_4 = 127;
    __Pyx_INCREF(__pyx_kp_u_No_mesh_with_name);
    __pyx_t_3 += 20;
    __Pyx_GIVEREF(__pyx_kp_u_No_mesh_with_name);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u_No_mesh_with_name);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u_exists_Available_mesh_names);
    __pyx_t_3 += 34;
    __Pyx_GIVEREF(__pyx_kp_u_exists_Available_mesh_names);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u_exists_Available_mesh_names);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_self->mesh_names), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u__2);
    __pyx_t_3 += 1;
    __Pyx_GIVEREF(__pyx_kp_u__2);
    PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_kp_u__2);
    __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_2, 5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(4, 1111, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1110
 * 
 *     def mesh_name2id(self, name):
 *         if name not in self._mesh_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"mesh\" with name %s exists. Available \"mesh\" names = %s." % (name, self.mesh_names))
 *         return self._mesh_name2id[name]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1112
 *         if name not in self._mesh_name2id:
 *             raise ValueError("No \"mesh\" with name %s exists. Available \"mesh\" names = %s." % (name, self.mesh_names))
 *         return self._mesh_name2id[name]             # <<<<<<<<<<<<<<
 *     cdef public tuple userdata_names
 *     cdef public dict _userdata_id2name
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_mesh_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1112, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->_mesh_name2id, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1109
 *         return self._mesh_id2name[id]
 * 
 *     def mesh_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._mesh_name2id:
 *             raise ValueError("No \"mesh\" with name %s exists. Available \"mesh\" names = %s." % (name, self.mesh_names))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.mesh_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1117
 *     cdef public dict _userdata_name2id
 * 
 *     def userdata_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._userdata_id2name:
 *             raise ValueError("No userdata with id %d exists." % id)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_41userdata_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_41userdata_id2name = {"userdata_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_41userdata_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_41userdata_id2name(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("userdata_id2name (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1117, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "userdata_id2name") < 0)) __PYX_ERR(4, 1117, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("userdata_id2name", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1117, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.userdata_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_40userdata_id2name(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_40userdata_id2name(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_id) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("userdata_id2name", 1);

  /* "mujoco_py/generated/wrappers.pxi":1118
 * 
 *     def userdata_id2name(self, id):
 *         if id not in self._userdata_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No userdata with id %d exists." % id)
 *         return self._userdata_id2name[id]
 */
  if (unlikely(__pyx_v_self->_userdata_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1118, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_id, __pyx_v_self->_userdata_id2name, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1118, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1119
 *     def userdata_id2name(self, id):
 *         if id not in self._userdata_id2name:
 *             raise ValueError("No userdata with id %d exists." % id)             # <<<<<<<<<<<<<<
 *         return self._userdata_id2name[id]
 * 
 */
    __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_No_userdata_with_id_d_exists, __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1119, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1119, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(4, 1119, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1118
 * 
 *     def userdata_id2name(self, id):
 *         if id not in self._userdata_id2name:             # <<<<<<<<<<<<<<
 *             raise ValueError("No userdata with id %d exists." % id)
 *         return self._userdata_id2name[id]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1120
 *         if id not in self._userdata_id2name:
 *             raise ValueError("No userdata with id %d exists." % id)
 *         return self._userdata_id2name[id]             # <<<<<<<<<<<<<<
 * 
 *     def userdata_name2id(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_userdata_id2name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1120, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->_userdata_id2name, __pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1117
 *     cdef public dict _userdata_name2id
 * 
 *     def userdata_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._userdata_id2name:
 *             raise ValueError("No userdata with id %d exists." % id)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.userdata_id2name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1122
 *         return self._userdata_id2name[id]
 * 
 *     def userdata_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._userdata_name2id:
 *             raise ValueError("No \"userdata\" with name %s exists. Available \"userdata\" names = %s." % (name, self.userdata_names))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_43userdata_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_43userdata_name2id = {"userdata_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_43userdata_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_43userdata_name2id(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("userdata_name2id (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1122, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "userdata_name2id") < 0)) __PYX_ERR(4, 1122, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("userdata_name2id", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1122, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.userdata_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_42userdata_name2id(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_42userdata_name2id(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_UCS4 __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("userdata_name2id", 1);

  /* "mujoco_py/generated/wrappers.pxi":1123
 * 
 *     def userdata_name2id(self, name):
 *         if name not in self._userdata_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"userdata\" with name %s exists. Available \"userdata\" names = %s." % (name, self.userdata_names))
 *         return self._userdata_name2id[name]
 */
  if (unlikely(__pyx_v_self->_userdata_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(4, 1123, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_self->_userdata_name2id, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1123, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":1124
 *     def userdata_name2id(self, name):
 *         if name not in self._userdata_name2id:
 *             raise ValueError("No \"userdata\" with name %s exists. Available \"userdata\" names = %s." % (name, self.userdata_names))             # <<<<<<<<<<<<<<
 *         return self._userdata_name2id[name]
 * 
 */
    __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_4 = 127;
    __Pyx_INCREF(__pyx_kp_u_No_userdata_with_name);
    __pyx_t_3 += 24;
    __Pyx_GIVEREF(__pyx_kp_u_No_userdata_with_name);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u_No_userdata_with_name);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u_exists_Available_userdata_names);
    __pyx_t_3 += 38;
    __Pyx_GIVEREF(__pyx_kp_u_exists_Available_userdata_names);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u_exists_Available_userdata_names);
    __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_self->userdata_names), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
    __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_kp_u__2);
    __pyx_t_3 += 1;
    __Pyx_GIVEREF(__pyx_kp_u__2);
    PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_kp_u__2);
    __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_2, 5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(4, 1124, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1123
 * 
 *     def userdata_name2id(self, name):
 *         if name not in self._userdata_name2id:             # <<<<<<<<<<<<<<
 *             raise ValueError("No \"userdata\" with name %s exists. Available \"userdata\" names = %s." % (name, self.userdata_names))
 *         return self._userdata_name2id[name]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1125
 *         if name not in self._userdata_name2id:
 *             raise ValueError("No \"userdata\" with name %s exists. Available \"userdata\" names = %s." % (name, self.userdata_names))
 *         return self._userdata_name2id[name]             # <<<<<<<<<<<<<<
 * 
 *     cdef inline tuple _extract_mj_names(self, mjModel* p, int*name_adr, int n, mjtObj obj_type):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_userdata_name2id == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 1125, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->_userdata_name2id, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1122
 *         return self._userdata_id2name[id]
 * 
 *     def userdata_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._userdata_name2id:
 *             raise ValueError("No \"userdata\" with name %s exists. Available \"userdata\" names = %s." % (name, self.userdata_names))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.userdata_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_9mujoco_py_4cymj_9PyMjModel_17_extract_mj_names_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "mujoco_py/generated/wrappers.pxi":1144
 * 
 *         # sort names by increasing id to keep order deterministic
 *         return tuple(id2name[id] for id in sorted(name2id.values())), name2id, id2name             # <<<<<<<<<<<<<<
 * 
 *     def get_xml(self):
 */

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_extract_mj_names_genexpr(PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
  struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr *)__pyx_tp_new_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr(__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(4, 1144, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names *) __pyx_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope);
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_9mujoco_py_4cymj_9PyMjModel_17_extract_mj_names_2generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_PyMjModel__extract_mj_names_loca, __pyx_n_s_mujoco_py_cymj); if (unlikely(!gen)) __PYX_ERR(4, 1144, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel._extract_mj_names.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_9mujoco_py_4cymj_9PyMjModel_17_extract_mj_names_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr *__pyx_cur_scope = ((struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(4, 1144, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(4, 1144, __pyx_L1_error) }
  __pyx_t_2 = PySequence_List(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_3 = PyList_Sort(__pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(4, 1144, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
  __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
      #if !CYTHON_ASSUME_SAFE_MACROS
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 1144, __pyx_L1_error)
      #endif
      if (__pyx_t_4 >= __pyx_temp) break;
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(4, 1144, __pyx_L1_error)
    #else
    __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_id);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_id, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_id2name)) { __Pyx_RaiseClosureNameError("id2name"); __PYX_ERR(4, 1144, __pyx_L1_error) }
    if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_id2name == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(4, 1144, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_id2name, __pyx_cur_scope->__pyx_v_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_XGIVEREF(__pyx_t_2);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_2);
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(4, 1144, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_Generator_Replace_StopIteration(0);
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1127
 *         return self._userdata_name2id[name]
 * 
 *     cdef inline tuple _extract_mj_names(self, mjModel* p, int*name_adr, int n, mjtObj obj_type):             # <<<<<<<<<<<<<<
 *         cdef char *name
 *         cdef int obj_id
 */

static CYTHON_INLINE PyObject *__pyx_f_9mujoco_py_4cymj_9PyMjModel__extract_mj_names(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, mjModel *__pyx_v_p, int *__pyx_v_name_adr, int __pyx_v_n, mjtObj __pyx_v_obj_type) {
  struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names *__pyx_cur_scope;
  char *__pyx_v_name;
  int __pyx_v_obj_id;
  PyObject *__pyx_v_name2id = NULL;
  int __pyx_v_i;
  PyObject *__pyx_v_decoded_name = NULL;
  int __pyx_7genexpr__pyx_v_i;
  PyObject *__pyx_gb_9mujoco_py_4cymj_9PyMjModel_17_extract_mj_names_2generator = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_extract_mj_names", 0);
  __pyx_cur_scope = (struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names *)__pyx_tp_new_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names(__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(4, 1127, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }

  /* "mujoco_py/generated/wrappers.pxi":1132
 * 
 *         # objects don't need to be named in the XML, so name might be None
 *         id2name = {i: None for i in range(n)}             # <<<<<<<<<<<<<<
 *         name2id = {}
 *         for i in range(n):
 */
  { /* enter inner scope */
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_v_n;
    __pyx_t_3 = __pyx_t_2;
    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
      __pyx_7genexpr__pyx_v_i = __pyx_t_4;
      __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_7genexpr__pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_t_5, (PyObject*)Py_None))) __PYX_ERR(4, 1132, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
  } /* exit inner scope */
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_id2name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1133
 *         # objects don't need to be named in the XML, so name might be None
 *         id2name = {i: None for i in range(n)}
 *         name2id = {}             # <<<<<<<<<<<<<<
 *         for i in range(n):
 *             name = p.names + name_adr[i]
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name2id = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1134
 *         id2name = {i: None for i in range(n)}
 *         name2id = {}
 *         for i in range(n):             # <<<<<<<<<<<<<<
 *             name = p.names + name_adr[i]
 *             decoded_name = name.decode()
 */
  __pyx_t_2 = __pyx_v_n;
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "mujoco_py/generated/wrappers.pxi":1135
 *         name2id = {}
 *         for i in range(n):
 *             name = p.names + name_adr[i]             # <<<<<<<<<<<<<<
 *             decoded_name = name.decode()
 *             if decoded_name:
 */
    __pyx_v_name = (__pyx_v_p->names + (__pyx_v_name_adr[__pyx_v_i]));

    /* "mujoco_py/generated/wrappers.pxi":1136
 *         for i in range(n):
 *             name = p.names + name_adr[i]
 *             decoded_name = name.decode()             # <<<<<<<<<<<<<<
 *             if decoded_name:
 *                 obj_id = mj_name2id(p, obj_type, name)
 */
    __pyx_t_6 = __Pyx_ssize_strlen(__pyx_v_name); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(4, 1136, __pyx_L1_error)
    __pyx_t_1 = __Pyx_decode_c_string(__pyx_v_name, 0, __pyx_t_6, NULL, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1136, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_decoded_name, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "mujoco_py/generated/wrappers.pxi":1137
 *             name = p.names + name_adr[i]
 *             decoded_name = name.decode()
 *             if decoded_name:             # <<<<<<<<<<<<<<
 *                 obj_id = mj_name2id(p, obj_type, name)
 *                 assert 0 <= obj_id < n and id2name[obj_id] is None
 */
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_decoded_name); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(4, 1137, __pyx_L1_error)
    if (__pyx_t_7) {

      /* "mujoco_py/generated/wrappers.pxi":1138
 *             decoded_name = name.decode()
 *             if decoded_name:
 *                 obj_id = mj_name2id(p, obj_type, name)             # <<<<<<<<<<<<<<
 *                 assert 0 <= obj_id < n and id2name[obj_id] is None
 *                 name2id[decoded_name] = obj_id
 */
      __pyx_v_obj_id = mj_name2id(__pyx_v_p, __pyx_v_obj_type, __pyx_v_name);

      /* "mujoco_py/generated/wrappers.pxi":1139
 *             if decoded_name:
 *                 obj_id = mj_name2id(p, obj_type, name)
 *                 assert 0 <= obj_id < n and id2name[obj_id] is None             # <<<<<<<<<<<<<<
 *                 name2id[decoded_name] = obj_id
 *                 id2name[obj_id] = decoded_name
 */
      #ifndef CYTHON_WITHOUT_ASSERTIONS
      if (unlikely(__pyx_assertions_enabled())) {
        __pyx_t_8 = (0 <= __pyx_v_obj_id);
        if (__pyx_t_8) {
          __pyx_t_8 = (__pyx_v_obj_id < __pyx_v_n);
        }
        if (__pyx_t_8) {
        } else {
          __pyx_t_7 = __pyx_t_8;
          goto __pyx_L8_bool_binop_done;
        }
        __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_obj_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1139, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_id2name, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1139, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_8 = (__pyx_t_5 == Py_None);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_7 = __pyx_t_8;
        __pyx_L8_bool_binop_done:;
        if (unlikely(!__pyx_t_7)) {
          __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
          __PYX_ERR(4, 1139, __pyx_L1_error)
        }
      }
      #else
      if ((1)); else __PYX_ERR(4, 1139, __pyx_L1_error)
      #endif

      /* "mujoco_py/generated/wrappers.pxi":1140
 *                 obj_id = mj_name2id(p, obj_type, name)
 *                 assert 0 <= obj_id < n and id2name[obj_id] is None
 *                 name2id[decoded_name] = obj_id             # <<<<<<<<<<<<<<
 *                 id2name[obj_id] = decoded_name
 * 
 */
      __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_obj_id); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1140, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely((PyDict_SetItem(__pyx_v_name2id, __pyx_v_decoded_name, __pyx_t_5) < 0))) __PYX_ERR(4, 1140, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "mujoco_py/generated/wrappers.pxi":1141
 *                 assert 0 <= obj_id < n and id2name[obj_id] is None
 *                 name2id[decoded_name] = obj_id
 *                 id2name[obj_id] = decoded_name             # <<<<<<<<<<<<<<
 * 
 *         # sort names by increasing id to keep order deterministic
 */
      __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_obj_id); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1141, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely((PyDict_SetItem(__pyx_cur_scope->__pyx_v_id2name, __pyx_t_5, __pyx_v_decoded_name) < 0))) __PYX_ERR(4, 1141, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "mujoco_py/generated/wrappers.pxi":1137
 *             name = p.names + name_adr[i]
 *             decoded_name = name.decode()
 *             if decoded_name:             # <<<<<<<<<<<<<<
 *                 obj_id = mj_name2id(p, obj_type, name)
 *                 assert 0 <= obj_id < n and id2name[obj_id] is None
 */
    }
  }

  /* "mujoco_py/generated/wrappers.pxi":1144
 * 
 *         # sort names by increasing id to keep order deterministic
 *         return tuple(id2name[id] for id in sorted(name2id.values())), name2id, id2name             # <<<<<<<<<<<<<<
 * 
 *     def get_xml(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __Pyx_PyDict_Values(__pyx_v_name2id); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_extract_mj_names_genexpr(((PyObject*)__pyx_cur_scope), __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5)) __PYX_ERR(4, 1144, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_name2id);
  __Pyx_GIVEREF(__pyx_v_name2id);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_name2id)) __PYX_ERR(4, 1144, __pyx_L1_error);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_id2name);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_id2name);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_cur_scope->__pyx_v_id2name)) __PYX_ERR(4, 1144, __pyx_L1_error);
  __pyx_t_5 = 0;
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1127
 *         return self._userdata_name2id[name]
 * 
 *     cdef inline tuple _extract_mj_names(self, mjModel* p, int*name_adr, int n, mjtObj obj_type):             # <<<<<<<<<<<<<<
 *         cdef char *name
 *         cdef int obj_id
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel._extract_mj_names", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name2id);
  __Pyx_XDECREF(__pyx_v_decoded_name);
  __Pyx_XDECREF(__pyx_gb_9mujoco_py_4cymj_9PyMjModel_17_extract_mj_names_2generator);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1146
 *         return tuple(id2name[id] for id in sorted(name2id.values())), name2id, id2name
 * 
 *     def get_xml(self):             # <<<<<<<<<<<<<<
 *         cdef char errstr[300]
 *         cdef int ret
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_45get_xml(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_45get_xml = {"get_xml", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_45get_xml, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_45get_xml(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_xml (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("get_xml", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "get_xml", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_44get_xml(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_44get_xml(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  char __pyx_v_errstr[0x12C];
  int __pyx_v_ret;
  PyObject *__pyx_v_td = NULL;
  PyObject *__pyx_v_filename = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  char const *__pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  int __pyx_t_16;
  int __pyx_t_17;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_xml", 1);

  /* "mujoco_py/generated/wrappers.pxi":1149
 *         cdef char errstr[300]
 *         cdef int ret
 *         with TemporaryDirectory() as td:             # <<<<<<<<<<<<<<
 *             filename = os.path.join(td, 'model.xml')
 *             with wrap_mujoco_warning():
 */
  /*with:*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_TemporaryDirectory); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1149, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1149, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1149, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_t_3 = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {
          __pyx_v_td = __pyx_t_3;
          __pyx_t_3 = 0;

          /* "mujoco_py/generated/wrappers.pxi":1150
 *         cdef int ret
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.xml')             # <<<<<<<<<<<<<<
 *             with wrap_mujoco_warning():
 *                 ret = mj_saveLastXML(filename.encode(), self.ptr, errstr, 300)
 */
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1150, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1150, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_join); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1150, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          __pyx_t_4 = 0;
          #if CYTHON_UNPACK_METHODS
          if (likely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_1, function);
              __pyx_t_4 = 1;
            }
          }
          #endif
          {
            PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_td, __pyx_kp_u_model_xml};
            __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1150, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          }
          __pyx_v_filename = __pyx_t_3;
          __pyx_t_3 = 0;

          /* "mujoco_py/generated/wrappers.pxi":1151
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.xml')
 *             with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *                 ret = mj_saveLastXML(filename.encode(), self.ptr, errstr, 300)
 *             if ret == 0:
 */
          /*with:*/ {
            __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_wrap_mujoco_warning); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1151, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_2 = NULL;
            __pyx_t_4 = 0;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_1))) {
              __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
              if (likely(__pyx_t_2)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                __Pyx_INCREF(__pyx_t_2);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_1, function);
                __pyx_t_4 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
              __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
              __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
              if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1151, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            }
            __pyx_t_10 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 1151, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1151, __pyx_L13_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_6 = NULL;
            __pyx_t_4 = 0;
            #if CYTHON_UNPACK_METHODS
            if (likely(PyMethod_Check(__pyx_t_2))) {
              __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
              if (likely(__pyx_t_6)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
                __Pyx_INCREF(__pyx_t_6);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_2, function);
                __pyx_t_4 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
              __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1151, __pyx_L13_error)
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            }
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            /*try:*/ {
              {
                __Pyx_PyThreadState_declare
                __Pyx_PyThreadState_assign
                __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
                __Pyx_XGOTREF(__pyx_t_11);
                __Pyx_XGOTREF(__pyx_t_12);
                __Pyx_XGOTREF(__pyx_t_13);
                /*try:*/ {

                  /* "mujoco_py/generated/wrappers.pxi":1152
 *             filename = os.path.join(td, 'model.xml')
 *             with wrap_mujoco_warning():
 *                 ret = mj_saveLastXML(filename.encode(), self.ptr, errstr, 300)             # <<<<<<<<<<<<<<
 *             if ret == 0:
 *                 raise Exception('Failed to save XML: {}'.format(errstr))
 */
                  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_filename, __pyx_n_s_encode); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1152, __pyx_L17_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __pyx_t_2 = NULL;
                  __pyx_t_4 = 0;
                  #if CYTHON_UNPACK_METHODS
                  if (likely(PyMethod_Check(__pyx_t_1))) {
                    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
                    if (likely(__pyx_t_2)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                      __Pyx_INCREF(__pyx_t_2);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_1, function);
                      __pyx_t_4 = 1;
                    }
                  }
                  #endif
                  {
                    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
                    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
                    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                    if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1152, __pyx_L17_error)
                    __Pyx_GOTREF(__pyx_t_3);
                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  }
                  __pyx_t_14 = __Pyx_PyObject_AsString(__pyx_t_3); if (unlikely((!__pyx_t_14) && PyErr_Occurred())) __PYX_ERR(4, 1152, __pyx_L17_error)
                  __pyx_v_ret = mj_saveLastXML(__pyx_t_14, __pyx_v_self->ptr, __pyx_v_errstr, 0x12C);
                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

                  /* "mujoco_py/generated/wrappers.pxi":1151
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.xml')
 *             with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *                 ret = mj_saveLastXML(filename.encode(), self.ptr, errstr, 300)
 *             if ret == 0:
 */
                }
                __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                goto __pyx_L22_try_end;
                __pyx_L17_error:;
                __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                /*except:*/ {
                  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.get_xml", __pyx_clineno, __pyx_lineno, __pyx_filename);
                  if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(4, 1151, __pyx_L19_except_error)
                  __Pyx_XGOTREF(__pyx_t_3);
                  __Pyx_XGOTREF(__pyx_t_1);
                  __Pyx_XGOTREF(__pyx_t_2);
                  __pyx_t_6 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1151, __pyx_L19_except_error)
                  __Pyx_GOTREF(__pyx_t_6);
                  __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_6, NULL);
                  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                  if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 1151, __pyx_L19_except_error)
                  __Pyx_GOTREF(__pyx_t_15);
                  __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_15);
                  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
                  if (__pyx_t_16 < 0) __PYX_ERR(4, 1151, __pyx_L19_except_error)
                  __pyx_t_17 = (!__pyx_t_16);
                  if (unlikely(__pyx_t_17)) {
                    __Pyx_GIVEREF(__pyx_t_3);
                    __Pyx_GIVEREF(__pyx_t_1);
                    __Pyx_XGIVEREF(__pyx_t_2);
                    __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_1, __pyx_t_2);
                    __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0; 
                    __PYX_ERR(4, 1151, __pyx_L19_except_error)
                  }
                  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                  goto __pyx_L18_exception_handled;
                }
                __pyx_L19_except_error:;
                __Pyx_XGIVEREF(__pyx_t_11);
                __Pyx_XGIVEREF(__pyx_t_12);
                __Pyx_XGIVEREF(__pyx_t_13);
                __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
                goto __pyx_L7_error;
                __pyx_L18_exception_handled:;
                __Pyx_XGIVEREF(__pyx_t_11);
                __Pyx_XGIVEREF(__pyx_t_12);
                __Pyx_XGIVEREF(__pyx_t_13);
                __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
                __pyx_L22_try_end:;
              }
            }
            /*finally:*/ {
              /*normal exit:*/{
                if (__pyx_t_10) {
                  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_tuple__17, NULL);
                  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                  if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 1151, __pyx_L7_error)
                  __Pyx_GOTREF(__pyx_t_13);
                  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                }
                goto __pyx_L16;
              }
              __pyx_L16:;
            }
            goto __pyx_L26;
            __pyx_L13_error:;
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            goto __pyx_L7_error;
            __pyx_L26:;
          }

          /* "mujoco_py/generated/wrappers.pxi":1153
 *             with wrap_mujoco_warning():
 *                 ret = mj_saveLastXML(filename.encode(), self.ptr, errstr, 300)
 *             if ret == 0:             # <<<<<<<<<<<<<<
 *                 raise Exception('Failed to save XML: {}'.format(errstr))
 *             return open(filename).read()
 */
          __pyx_t_17 = (__pyx_v_ret == 0);
          if (unlikely(__pyx_t_17)) {

            /* "mujoco_py/generated/wrappers.pxi":1154
 *                 ret = mj_saveLastXML(filename.encode(), self.ptr, errstr, 300)
 *             if ret == 0:
 *                 raise Exception('Failed to save XML: {}'.format(errstr))             # <<<<<<<<<<<<<<
 *             return open(filename).read()
 * 
 */
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Failed_to_save_XML, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1154, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_3 = __Pyx_PyObject_FromString(__pyx_v_errstr); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1154, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_6 = NULL;
            __pyx_t_4 = 0;
            #if CYTHON_UNPACK_METHODS
            if (likely(PyMethod_Check(__pyx_t_1))) {
              __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
              if (likely(__pyx_t_6)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                __Pyx_INCREF(__pyx_t_6);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_1, function);
                __pyx_t_4 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_3};
              __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1154, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            }
            __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1154, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_Raise(__pyx_t_1, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __PYX_ERR(4, 1154, __pyx_L7_error)

            /* "mujoco_py/generated/wrappers.pxi":1153
 *             with wrap_mujoco_warning():
 *                 ret = mj_saveLastXML(filename.encode(), self.ptr, errstr, 300)
 *             if ret == 0:             # <<<<<<<<<<<<<<
 *                 raise Exception('Failed to save XML: {}'.format(errstr))
 *             return open(filename).read()
 */
          }

          /* "mujoco_py/generated/wrappers.pxi":1155
 *             if ret == 0:
 *                 raise Exception('Failed to save XML: {}'.format(errstr))
 *             return open(filename).read()             # <<<<<<<<<<<<<<
 * 
 *     def get_mjb(self):
 */
          __Pyx_XDECREF(__pyx_r);
          __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_open, __pyx_v_filename); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1155, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_read); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1155, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          __pyx_t_4 = 0;
          #if CYTHON_UNPACK_METHODS
          if (likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_4 = 1;
            }
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
            __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1155, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __pyx_r = __pyx_t_1;
          __pyx_t_1 = 0;
          goto __pyx_L11_try_return;

          /* "mujoco_py/generated/wrappers.pxi":1149
 *         cdef char errstr[300]
 *         cdef int ret
 *         with TemporaryDirectory() as td:             # <<<<<<<<<<<<<<
 *             filename = os.path.join(td, 'model.xml')
 *             with wrap_mujoco_warning():
 */
        }
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.get_xml", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_2) < 0) __PYX_ERR(4, 1149, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_6 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1149, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 1149, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (__pyx_t_17 < 0) __PYX_ERR(4, 1149, __pyx_L9_except_error)
          __pyx_t_16 = (!__pyx_t_17);
          if (unlikely(__pyx_t_16)) {
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_XGIVEREF(__pyx_t_2);
            __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_3, __pyx_t_2);
            __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_2 = 0; 
            __PYX_ERR(4, 1149, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L11_try_return:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L4_return;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_5) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__17, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 1149, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L4_return: {
        __pyx_t_9 = __pyx_r;
        __pyx_r = 0;
        if (__pyx_t_5) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__17, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 1149, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __pyx_r = __pyx_t_9;
        __pyx_t_9 = 0;
        goto __pyx_L0;
      }
      __pyx_L6:;
    }
    goto __pyx_L31;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L1_error;
    __pyx_L31:;
  }

  /* "mujoco_py/generated/wrappers.pxi":1146
 *         return tuple(id2name[id] for id in sorted(name2id.values())), name2id, id2name
 * 
 *     def get_xml(self):             # <<<<<<<<<<<<<<
 *         cdef char errstr[300]
 *         cdef int ret
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.get_xml", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_td);
  __Pyx_XDECREF(__pyx_v_filename);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1157
 *             return open(filename).read()
 * 
 *     def get_mjb(self):             # <<<<<<<<<<<<<<
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.mjb')
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_47get_mjb(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_47get_mjb = {"get_mjb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_47get_mjb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_47get_mjb(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_mjb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("get_mjb", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "get_mjb", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_46get_mjb(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_46get_mjb(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_v_td = NULL;
  PyObject *__pyx_v_filename = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  char const *__pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  int __pyx_t_16;
  int __pyx_t_17;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_mjb", 1);

  /* "mujoco_py/generated/wrappers.pxi":1158
 * 
 *     def get_mjb(self):
 *         with TemporaryDirectory() as td:             # <<<<<<<<<<<<<<
 *             filename = os.path.join(td, 'model.mjb')
 *             with wrap_mujoco_warning():
 */
  /*with:*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_TemporaryDirectory); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1158, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1158, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_t_3 = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {
          __pyx_v_td = __pyx_t_3;
          __pyx_t_3 = 0;

          /* "mujoco_py/generated/wrappers.pxi":1159
 *     def get_mjb(self):
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.mjb')             # <<<<<<<<<<<<<<
 *             with wrap_mujoco_warning():
 *                 mj_saveModel(self.ptr, filename.encode(), NULL, 0)
 */
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1159, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1159, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_join); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1159, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          __pyx_t_4 = 0;
          #if CYTHON_UNPACK_METHODS
          if (likely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_1, function);
              __pyx_t_4 = 1;
            }
          }
          #endif
          {
            PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_td, __pyx_kp_u_model_mjb};
            __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1159, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          }
          __pyx_v_filename = __pyx_t_3;
          __pyx_t_3 = 0;

          /* "mujoco_py/generated/wrappers.pxi":1160
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.mjb')
 *             with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *                 mj_saveModel(self.ptr, filename.encode(), NULL, 0)
 *             return open(filename, 'rb').read()
 */
          /*with:*/ {
            __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_wrap_mujoco_warning); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1160, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_2 = NULL;
            __pyx_t_4 = 0;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_1))) {
              __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
              if (likely(__pyx_t_2)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                __Pyx_INCREF(__pyx_t_2);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_1, function);
                __pyx_t_4 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
              __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
              __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
              if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1160, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            }
            __pyx_t_10 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 1160, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1160, __pyx_L13_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_6 = NULL;
            __pyx_t_4 = 0;
            #if CYTHON_UNPACK_METHODS
            if (likely(PyMethod_Check(__pyx_t_2))) {
              __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
              if (likely(__pyx_t_6)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
                __Pyx_INCREF(__pyx_t_6);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_2, function);
                __pyx_t_4 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
              __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1160, __pyx_L13_error)
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            }
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            /*try:*/ {
              {
                __Pyx_PyThreadState_declare
                __Pyx_PyThreadState_assign
                __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
                __Pyx_XGOTREF(__pyx_t_11);
                __Pyx_XGOTREF(__pyx_t_12);
                __Pyx_XGOTREF(__pyx_t_13);
                /*try:*/ {

                  /* "mujoco_py/generated/wrappers.pxi":1161
 *             filename = os.path.join(td, 'model.mjb')
 *             with wrap_mujoco_warning():
 *                 mj_saveModel(self.ptr, filename.encode(), NULL, 0)             # <<<<<<<<<<<<<<
 *             return open(filename, 'rb').read()
 * 
 */
                  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_filename, __pyx_n_s_encode); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1161, __pyx_L17_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __pyx_t_2 = NULL;
                  __pyx_t_4 = 0;
                  #if CYTHON_UNPACK_METHODS
                  if (likely(PyMethod_Check(__pyx_t_1))) {
                    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
                    if (likely(__pyx_t_2)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                      __Pyx_INCREF(__pyx_t_2);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_1, function);
                      __pyx_t_4 = 1;
                    }
                  }
                  #endif
                  {
                    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
                    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
                    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                    if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1161, __pyx_L17_error)
                    __Pyx_GOTREF(__pyx_t_3);
                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  }
                  __pyx_t_14 = __Pyx_PyObject_AsString(__pyx_t_3); if (unlikely((!__pyx_t_14) && PyErr_Occurred())) __PYX_ERR(4, 1161, __pyx_L17_error)
                  mj_saveModel(__pyx_v_self->ptr, __pyx_t_14, NULL, 0);
                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

                  /* "mujoco_py/generated/wrappers.pxi":1160
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.mjb')
 *             with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *                 mj_saveModel(self.ptr, filename.encode(), NULL, 0)
 *             return open(filename, 'rb').read()
 */
                }
                __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                goto __pyx_L22_try_end;
                __pyx_L17_error:;
                __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                /*except:*/ {
                  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.get_mjb", __pyx_clineno, __pyx_lineno, __pyx_filename);
                  if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(4, 1160, __pyx_L19_except_error)
                  __Pyx_XGOTREF(__pyx_t_3);
                  __Pyx_XGOTREF(__pyx_t_1);
                  __Pyx_XGOTREF(__pyx_t_2);
                  __pyx_t_6 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1160, __pyx_L19_except_error)
                  __Pyx_GOTREF(__pyx_t_6);
                  __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_6, NULL);
                  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                  if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 1160, __pyx_L19_except_error)
                  __Pyx_GOTREF(__pyx_t_15);
                  __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_15);
                  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
                  if (__pyx_t_16 < 0) __PYX_ERR(4, 1160, __pyx_L19_except_error)
                  __pyx_t_17 = (!__pyx_t_16);
                  if (unlikely(__pyx_t_17)) {
                    __Pyx_GIVEREF(__pyx_t_3);
                    __Pyx_GIVEREF(__pyx_t_1);
                    __Pyx_XGIVEREF(__pyx_t_2);
                    __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_1, __pyx_t_2);
                    __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0; 
                    __PYX_ERR(4, 1160, __pyx_L19_except_error)
                  }
                  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                  goto __pyx_L18_exception_handled;
                }
                __pyx_L19_except_error:;
                __Pyx_XGIVEREF(__pyx_t_11);
                __Pyx_XGIVEREF(__pyx_t_12);
                __Pyx_XGIVEREF(__pyx_t_13);
                __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
                goto __pyx_L7_error;
                __pyx_L18_exception_handled:;
                __Pyx_XGIVEREF(__pyx_t_11);
                __Pyx_XGIVEREF(__pyx_t_12);
                __Pyx_XGIVEREF(__pyx_t_13);
                __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
                __pyx_L22_try_end:;
              }
            }
            /*finally:*/ {
              /*normal exit:*/{
                if (__pyx_t_10) {
                  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_tuple__17, NULL);
                  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                  if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 1160, __pyx_L7_error)
                  __Pyx_GOTREF(__pyx_t_13);
                  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                }
                goto __pyx_L16;
              }
              __pyx_L16:;
            }
            goto __pyx_L26;
            __pyx_L13_error:;
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            goto __pyx_L7_error;
            __pyx_L26:;
          }

          /* "mujoco_py/generated/wrappers.pxi":1162
 *             with wrap_mujoco_warning():
 *                 mj_saveModel(self.ptr, filename.encode(), NULL, 0)
 *             return open(filename, 'rb').read()             # <<<<<<<<<<<<<<
 * 
 *     def set_userdata_names(self, userdata_names):
 */
          __Pyx_XDECREF(__pyx_r);
          __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1162, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_INCREF(__pyx_v_filename);
          __Pyx_GIVEREF(__pyx_v_filename);
          if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_filename)) __PYX_ERR(4, 1162, __pyx_L7_error);
          __Pyx_INCREF(__pyx_n_u_rb);
          __Pyx_GIVEREF(__pyx_n_u_rb);
          if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_rb)) __PYX_ERR(4, 1162, __pyx_L7_error);
          __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_open, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1162, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_read); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1162, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          __pyx_t_4 = 0;
          #if CYTHON_UNPACK_METHODS
          if (likely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_1, function);
              __pyx_t_4 = 1;
            }
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
            __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1162, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          }
          __pyx_r = __pyx_t_2;
          __pyx_t_2 = 0;
          goto __pyx_L11_try_return;

          /* "mujoco_py/generated/wrappers.pxi":1158
 * 
 *     def get_mjb(self):
 *         with TemporaryDirectory() as td:             # <<<<<<<<<<<<<<
 *             filename = os.path.join(td, 'model.mjb')
 *             with wrap_mujoco_warning():
 */
        }
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.get_mjb", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(4, 1158, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_6 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1158, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 1158, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (__pyx_t_17 < 0) __PYX_ERR(4, 1158, __pyx_L9_except_error)
          __pyx_t_16 = (!__pyx_t_17);
          if (unlikely(__pyx_t_16)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_XGIVEREF(__pyx_t_3);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_3);
            __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0; 
            __PYX_ERR(4, 1158, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L11_try_return:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L4_return;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_5) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__17, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 1158, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L4_return: {
        __pyx_t_9 = __pyx_r;
        __pyx_r = 0;
        if (__pyx_t_5) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__17, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 1158, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __pyx_r = __pyx_t_9;
        __pyx_t_9 = 0;
        goto __pyx_L0;
      }
      __pyx_L6:;
    }
    goto __pyx_L30;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L1_error;
    __pyx_L30:;
  }

  /* "mujoco_py/generated/wrappers.pxi":1157
 *             return open(filename).read()
 * 
 *     def get_mjb(self):             # <<<<<<<<<<<<<<
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.mjb')
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.get_mjb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_td);
  __Pyx_XDECREF(__pyx_v_filename);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1164
 *             return open(filename, 'rb').read()
 * 
 *     def set_userdata_names(self, userdata_names):             # <<<<<<<<<<<<<<
 *         assert isinstance(userdata_names, (list, tuple)), 'bad userdata names'
 *         assert len(userdata_names) <= self.nuserdata, 'insufficient userdata'
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_49set_userdata_names(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_49set_userdata_names = {"set_userdata_names", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_49set_userdata_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_49set_userdata_names(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_userdata_names = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_userdata_names (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_userdata_names,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_userdata_names)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1164, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_userdata_names") < 0)) __PYX_ERR(4, 1164, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_userdata_names = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_userdata_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1164, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.set_userdata_names", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_48set_userdata_names(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_userdata_names);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_48set_userdata_names(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_userdata_names) {
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *(*__pyx_t_7)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_userdata_names", 1);

  /* "mujoco_py/generated/wrappers.pxi":1165
 * 
 *     def set_userdata_names(self, userdata_names):
 *         assert isinstance(userdata_names, (list, tuple)), 'bad userdata names'             # <<<<<<<<<<<<<<
 *         assert len(userdata_names) <= self.nuserdata, 'insufficient userdata'
 *         self.userdata_names = tuple(userdata_names)
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_2 = PyList_Check(__pyx_v_userdata_names); 
    if (!__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L3_bool_binop_done;
    }
    __pyx_t_2 = PyTuple_Check(__pyx_v_userdata_names); 
    __pyx_t_1 = __pyx_t_2;
    __pyx_L3_bool_binop_done:;
    if (unlikely(!__pyx_t_1)) {
      __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_kp_u_bad_userdata_names, 0, 0);
      __PYX_ERR(4, 1165, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(4, 1165, __pyx_L1_error)
  #endif

  /* "mujoco_py/generated/wrappers.pxi":1166
 *     def set_userdata_names(self, userdata_names):
 *         assert isinstance(userdata_names, (list, tuple)), 'bad userdata names'
 *         assert len(userdata_names) <= self.nuserdata, 'insufficient userdata'             # <<<<<<<<<<<<<<
 *         self.userdata_names = tuple(userdata_names)
 *         self._userdata_id2name = dict()
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_3 = PyObject_Length(__pyx_v_userdata_names); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(4, 1166, __pyx_L1_error)
    __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nuserdata); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_t_5, Py_LE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1166, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(4, 1166, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) {
      __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_kp_u_insufficient_userdata, 0, 0);
      __PYX_ERR(4, 1166, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(4, 1166, __pyx_L1_error)
  #endif

  /* "mujoco_py/generated/wrappers.pxi":1167
 *         assert isinstance(userdata_names, (list, tuple)), 'bad userdata names'
 *         assert len(userdata_names) <= self.nuserdata, 'insufficient userdata'
 *         self.userdata_names = tuple(userdata_names)             # <<<<<<<<<<<<<<
 *         self._userdata_id2name = dict()
 *         self._userdata_name2id = dict()
 */
  __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_userdata_names); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __Pyx_GOTREF(__pyx_v_self->userdata_names);
  __Pyx_DECREF(__pyx_v_self->userdata_names);
  __pyx_v_self->userdata_names = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1168
 *         assert len(userdata_names) <= self.nuserdata, 'insufficient userdata'
 *         self.userdata_names = tuple(userdata_names)
 *         self._userdata_id2name = dict()             # <<<<<<<<<<<<<<
 *         self._userdata_name2id = dict()
 *         for i, name in enumerate(userdata_names):
 */
  __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __Pyx_GOTREF(__pyx_v_self->_userdata_id2name);
  __Pyx_DECREF(__pyx_v_self->_userdata_id2name);
  __pyx_v_self->_userdata_id2name = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1169
 *         self.userdata_names = tuple(userdata_names)
 *         self._userdata_id2name = dict()
 *         self._userdata_name2id = dict()             # <<<<<<<<<<<<<<
 *         for i, name in enumerate(userdata_names):
 *             assert isinstance(name, str), 'names must all be strings'
 */
  __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __Pyx_GOTREF(__pyx_v_self->_userdata_name2id);
  __Pyx_DECREF(__pyx_v_self->_userdata_name2id);
  __pyx_v_self->_userdata_name2id = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1170
 *         self._userdata_id2name = dict()
 *         self._userdata_name2id = dict()
 *         for i, name in enumerate(userdata_names):             # <<<<<<<<<<<<<<
 *             assert isinstance(name, str), 'names must all be strings'
 *             self._userdata_id2name[i] = name
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_6 = __pyx_int_0;
  if (likely(PyList_CheckExact(__pyx_v_userdata_names)) || PyTuple_CheckExact(__pyx_v_userdata_names)) {
    __pyx_t_5 = __pyx_v_userdata_names; __Pyx_INCREF(__pyx_t_5);
    __pyx_t_3 = 0;
    __pyx_t_7 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_userdata_names); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 1170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 1170, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_7)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 1170, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(4, 1170, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1170, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 1170, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(4, 1170, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1170, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_7(__pyx_t_5);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(4, 1170, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6);
    __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_t_6, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6);
    __pyx_t_6 = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "mujoco_py/generated/wrappers.pxi":1171
 *         self._userdata_name2id = dict()
 *         for i, name in enumerate(userdata_names):
 *             assert isinstance(name, str), 'names must all be strings'             # <<<<<<<<<<<<<<
 *             self._userdata_id2name[i] = name
 *             self._userdata_name2id[name] = i
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    if (unlikely(__pyx_assertions_enabled())) {
      __pyx_t_1 = PyUnicode_Check(__pyx_v_name); 
      if (unlikely(!__pyx_t_1)) {
        __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_kp_u_names_must_all_be_strings, 0, 0);
        __PYX_ERR(4, 1171, __pyx_L1_error)
      }
    }
    #else
    if ((1)); else __PYX_ERR(4, 1171, __pyx_L1_error)
    #endif

    /* "mujoco_py/generated/wrappers.pxi":1172
 *         for i, name in enumerate(userdata_names):
 *             assert isinstance(name, str), 'names must all be strings'
 *             self._userdata_id2name[i] = name             # <<<<<<<<<<<<<<
 *             self._userdata_name2id[name] = i
 * 
 */
    if (unlikely(__pyx_v_self->_userdata_id2name == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(4, 1172, __pyx_L1_error)
    }
    if (unlikely((PyDict_SetItem(__pyx_v_self->_userdata_id2name, __pyx_v_i, __pyx_v_name) < 0))) __PYX_ERR(4, 1172, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1173
 *             assert isinstance(name, str), 'names must all be strings'
 *             self._userdata_id2name[i] = name
 *             self._userdata_name2id[name] = i             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
    if (unlikely(__pyx_v_self->_userdata_name2id == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(4, 1173, __pyx_L1_error)
    }
    if (unlikely((PyDict_SetItem(__pyx_v_self->_userdata_name2id, __pyx_v_name, __pyx_v_i) < 0))) __PYX_ERR(4, 1173, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":1170
 *         self._userdata_id2name = dict()
 *         self._userdata_name2id = dict()
 *         for i, name in enumerate(userdata_names):             # <<<<<<<<<<<<<<
 *             assert isinstance(name, str), 'names must all be strings'
 *             self._userdata_id2name[i] = name
 */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1164
 *             return open(filename, 'rb').read()
 * 
 *     def set_userdata_names(self, userdata_names):             # <<<<<<<<<<<<<<
 *         assert isinstance(userdata_names, (list, tuple)), 'bad userdata names'
 *         assert len(userdata_names) <= self.nuserdata, 'insufficient userdata'
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.set_userdata_names", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1175
 *             self._userdata_name2id[name] = i
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         mj_deleteModel(self.ptr)
 * 
 */

/* Python wrapper */
static void __pyx_pw_9mujoco_py_4cymj_9PyMjModel_51__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_9mujoco_py_4cymj_9PyMjModel_51__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_9mujoco_py_4cymj_9PyMjModel_50__dealloc__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_9mujoco_py_4cymj_9PyMjModel_50__dealloc__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {

  /* "mujoco_py/generated/wrappers.pxi":1176
 * 
 *     def __dealloc__(self):
 *         mj_deleteModel(self.ptr)             # <<<<<<<<<<<<<<
 * 
 *     def get_joint_qpos_addr(self, name):
 */
  mj_deleteModel(__pyx_v_self->ptr);

  /* "mujoco_py/generated/wrappers.pxi":1175
 *             self._userdata_name2id[name] = i
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         mj_deleteModel(self.ptr)
 * 
 */

  /* function exit code */
}

/* "mujoco_py/generated/wrappers.pxi":1178
 *         mj_deleteModel(self.ptr)
 * 
 *     def get_joint_qpos_addr(self, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Returns the qpos address for given joint.
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_53get_joint_qpos_addr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_9PyMjModel_52get_joint_qpos_addr, "\n        Returns the qpos address for given joint.\n\n        Returns:\n        - address (int, tuple): returns int address if 1-dim joint, otherwise\n            returns the a (start, end) tuple for pos[start:end] access.\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_53get_joint_qpos_addr = {"get_joint_qpos_addr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_53get_joint_qpos_addr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_9PyMjModel_52get_joint_qpos_addr};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_53get_joint_qpos_addr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_joint_qpos_addr (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1178, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_joint_qpos_addr") < 0)) __PYX_ERR(4, 1178, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_joint_qpos_addr", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1178, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.get_joint_qpos_addr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_52get_joint_qpos_addr(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_52get_joint_qpos_addr(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_joint_id = NULL;
  PyObject *__pyx_v_joint_type = NULL;
  PyObject *__pyx_v_joint_addr = NULL;
  PyObject *__pyx_v_ndim = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_joint_qpos_addr", 1);

  /* "mujoco_py/generated/wrappers.pxi":1186
 *             returns the a (start, end) tuple for pos[start:end] access.
 *         '''
 *         joint_id = self.joint_name2id(name)             # <<<<<<<<<<<<<<
 *         joint_type = self.jnt_type[joint_id]
 *         joint_addr = self.jnt_qposadr[joint_id]
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_joint_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1186, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_joint_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1187
 *         '''
 *         joint_id = self.joint_name2id(name)
 *         joint_type = self.jnt_type[joint_id]             # <<<<<<<<<<<<<<
 *         joint_addr = self.jnt_qposadr[joint_id]
 *         if joint_type == mjtJoint.mjJNT_FREE:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_jnt_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_joint_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_joint_type = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1188
 *         joint_id = self.joint_name2id(name)
 *         joint_type = self.jnt_type[joint_id]
 *         joint_addr = self.jnt_qposadr[joint_id]             # <<<<<<<<<<<<<<
 *         if joint_type == mjtJoint.mjJNT_FREE:
 *             ndim = 7
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_jnt_qposadr); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_joint_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_joint_addr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1189
 *         joint_type = self.jnt_type[joint_id]
 *         joint_addr = self.jnt_qposadr[joint_id]
 *         if joint_type == mjtJoint.mjJNT_FREE:             # <<<<<<<<<<<<<<
 *             ndim = 7
 *         elif joint_type == mjtJoint.mjJNT_BALL:
 */
  __pyx_t_1 = __Pyx_PyInt_From_mjtJoint(mjJNT_FREE); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_joint_type, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1189, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(4, 1189, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_5) {

    /* "mujoco_py/generated/wrappers.pxi":1190
 *         joint_addr = self.jnt_qposadr[joint_id]
 *         if joint_type == mjtJoint.mjJNT_FREE:
 *             ndim = 7             # <<<<<<<<<<<<<<
 *         elif joint_type == mjtJoint.mjJNT_BALL:
 *             ndim = 4
 */
    __Pyx_INCREF(__pyx_int_7);
    __pyx_v_ndim = __pyx_int_7;

    /* "mujoco_py/generated/wrappers.pxi":1189
 *         joint_type = self.jnt_type[joint_id]
 *         joint_addr = self.jnt_qposadr[joint_id]
 *         if joint_type == mjtJoint.mjJNT_FREE:             # <<<<<<<<<<<<<<
 *             ndim = 7
 *         elif joint_type == mjtJoint.mjJNT_BALL:
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/generated/wrappers.pxi":1191
 *         if joint_type == mjtJoint.mjJNT_FREE:
 *             ndim = 7
 *         elif joint_type == mjtJoint.mjJNT_BALL:             # <<<<<<<<<<<<<<
 *             ndim = 4
 *         else:
 */
  __pyx_t_2 = __Pyx_PyInt_From_mjtJoint(mjJNT_BALL); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_joint_type, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1191, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(4, 1191, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_5) {

    /* "mujoco_py/generated/wrappers.pxi":1192
 *             ndim = 7
 *         elif joint_type == mjtJoint.mjJNT_BALL:
 *             ndim = 4             # <<<<<<<<<<<<<<
 *         else:
 *             assert joint_type in (mjtJoint.mjJNT_HINGE, mjtJoint.mjJNT_SLIDE)
 */
    __Pyx_INCREF(__pyx_int_4);
    __pyx_v_ndim = __pyx_int_4;

    /* "mujoco_py/generated/wrappers.pxi":1191
 *         if joint_type == mjtJoint.mjJNT_FREE:
 *             ndim = 7
 *         elif joint_type == mjtJoint.mjJNT_BALL:             # <<<<<<<<<<<<<<
 *             ndim = 4
 *         else:
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/generated/wrappers.pxi":1194
 *             ndim = 4
 *         else:
 *             assert joint_type in (mjtJoint.mjJNT_HINGE, mjtJoint.mjJNT_SLIDE)             # <<<<<<<<<<<<<<
 *             ndim = 1
 * 
 */
  /*else*/ {
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    if (unlikely(__pyx_assertions_enabled())) {
      __Pyx_INCREF(__pyx_v_joint_type);
      __pyx_t_1 = __pyx_v_joint_type;
      __pyx_t_2 = __Pyx_PyInt_From_mjtJoint(mjJNT_HINGE); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1194, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1194, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(4, 1194, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (!__pyx_t_6) {
      } else {
        __pyx_t_5 = __pyx_t_6;
        goto __pyx_L4_bool_binop_done;
      }
      __pyx_t_3 = __Pyx_PyInt_From_mjtJoint(mjJNT_SLIDE); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1194, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1194, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(4, 1194, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_5 = __pyx_t_6;
      __pyx_L4_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_6 = __pyx_t_5;
      if (unlikely(!__pyx_t_6)) {
        __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
        __PYX_ERR(4, 1194, __pyx_L1_error)
      }
    }
    #else
    if ((1)); else __PYX_ERR(4, 1194, __pyx_L1_error)
    #endif

    /* "mujoco_py/generated/wrappers.pxi":1195
 *         else:
 *             assert joint_type in (mjtJoint.mjJNT_HINGE, mjtJoint.mjJNT_SLIDE)
 *             ndim = 1             # <<<<<<<<<<<<<<
 * 
 *         if ndim == 1:
 */
    __Pyx_INCREF(__pyx_int_1);
    __pyx_v_ndim = __pyx_int_1;
  }
  __pyx_L3:;

  /* "mujoco_py/generated/wrappers.pxi":1197
 *             ndim = 1
 * 
 *         if ndim == 1:             # <<<<<<<<<<<<<<
 *             return joint_addr
 *         else:
 */
  __pyx_t_6 = (__Pyx_PyInt_BoolEqObjC(__pyx_v_ndim, __pyx_int_1, 1, 0)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(4, 1197, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "mujoco_py/generated/wrappers.pxi":1198
 * 
 *         if ndim == 1:
 *             return joint_addr             # <<<<<<<<<<<<<<
 *         else:
 *             return (joint_addr, joint_addr + ndim)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_joint_addr);
    __pyx_r = __pyx_v_joint_addr;
    goto __pyx_L0;

    /* "mujoco_py/generated/wrappers.pxi":1197
 *             ndim = 1
 * 
 *         if ndim == 1:             # <<<<<<<<<<<<<<
 *             return joint_addr
 *         else:
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1200
 *             return joint_addr
 *         else:
 *             return (joint_addr, joint_addr + ndim)             # <<<<<<<<<<<<<<
 * 
 *     def get_joint_qvel_addr(self, name):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyNumber_Add(__pyx_v_joint_addr, __pyx_v_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1200, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1200, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_joint_addr);
    __Pyx_GIVEREF(__pyx_v_joint_addr);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_joint_addr)) __PYX_ERR(4, 1200, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(4, 1200, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":1178
 *         mj_deleteModel(self.ptr)
 * 
 *     def get_joint_qpos_addr(self, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Returns the qpos address for given joint.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.get_joint_qpos_addr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_joint_id);
  __Pyx_XDECREF(__pyx_v_joint_type);
  __Pyx_XDECREF(__pyx_v_joint_addr);
  __Pyx_XDECREF(__pyx_v_ndim);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1202
 *             return (joint_addr, joint_addr + ndim)
 * 
 *     def get_joint_qvel_addr(self, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Returns the qvel address for given joint.
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_55get_joint_qvel_addr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_9PyMjModel_54get_joint_qvel_addr, "\n        Returns the qvel address for given joint.\n\n        Returns:\n        - address (int, tuple): returns int address if 1-dim joint, otherwise\n            returns the a (start, end) tuple for vel[start:end] access.\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_55get_joint_qvel_addr = {"get_joint_qvel_addr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_55get_joint_qvel_addr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_9PyMjModel_54get_joint_qvel_addr};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_55get_joint_qvel_addr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_joint_qvel_addr (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1202, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_joint_qvel_addr") < 0)) __PYX_ERR(4, 1202, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_joint_qvel_addr", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 1202, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.get_joint_qvel_addr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_54get_joint_qvel_addr(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_54get_joint_qvel_addr(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_joint_id = NULL;
  PyObject *__pyx_v_joint_type = NULL;
  PyObject *__pyx_v_joint_addr = NULL;
  PyObject *__pyx_v_ndim = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_joint_qvel_addr", 1);

  /* "mujoco_py/generated/wrappers.pxi":1210
 *             returns the a (start, end) tuple for vel[start:end] access.
 *         '''
 *         joint_id = self.joint_name2id(name)             # <<<<<<<<<<<<<<
 *         joint_type = self.jnt_type[joint_id]
 *         joint_addr = self.jnt_dofadr[joint_id]
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_joint_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1210, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_joint_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1211
 *         '''
 *         joint_id = self.joint_name2id(name)
 *         joint_type = self.jnt_type[joint_id]             # <<<<<<<<<<<<<<
 *         joint_addr = self.jnt_dofadr[joint_id]
 *         if joint_type == mjtJoint.mjJNT_FREE:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_jnt_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_joint_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_joint_type = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1212
 *         joint_id = self.joint_name2id(name)
 *         joint_type = self.jnt_type[joint_id]
 *         joint_addr = self.jnt_dofadr[joint_id]             # <<<<<<<<<<<<<<
 *         if joint_type == mjtJoint.mjJNT_FREE:
 *             ndim = 6
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_jnt_dofadr); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_joint_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_joint_addr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1213
 *         joint_type = self.jnt_type[joint_id]
 *         joint_addr = self.jnt_dofadr[joint_id]
 *         if joint_type == mjtJoint.mjJNT_FREE:             # <<<<<<<<<<<<<<
 *             ndim = 6
 *         elif joint_type == mjtJoint.mjJNT_BALL:
 */
  __pyx_t_1 = __Pyx_PyInt_From_mjtJoint(mjJNT_FREE); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_joint_type, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1213, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(4, 1213, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_5) {

    /* "mujoco_py/generated/wrappers.pxi":1214
 *         joint_addr = self.jnt_dofadr[joint_id]
 *         if joint_type == mjtJoint.mjJNT_FREE:
 *             ndim = 6             # <<<<<<<<<<<<<<
 *         elif joint_type == mjtJoint.mjJNT_BALL:
 *             ndim = 3
 */
    __Pyx_INCREF(__pyx_int_6);
    __pyx_v_ndim = __pyx_int_6;

    /* "mujoco_py/generated/wrappers.pxi":1213
 *         joint_type = self.jnt_type[joint_id]
 *         joint_addr = self.jnt_dofadr[joint_id]
 *         if joint_type == mjtJoint.mjJNT_FREE:             # <<<<<<<<<<<<<<
 *             ndim = 6
 *         elif joint_type == mjtJoint.mjJNT_BALL:
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/generated/wrappers.pxi":1215
 *         if joint_type == mjtJoint.mjJNT_FREE:
 *             ndim = 6
 *         elif joint_type == mjtJoint.mjJNT_BALL:             # <<<<<<<<<<<<<<
 *             ndim = 3
 *         else:
 */
  __pyx_t_2 = __Pyx_PyInt_From_mjtJoint(mjJNT_BALL); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_joint_type, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1215, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(4, 1215, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_5) {

    /* "mujoco_py/generated/wrappers.pxi":1216
 *             ndim = 6
 *         elif joint_type == mjtJoint.mjJNT_BALL:
 *             ndim = 3             # <<<<<<<<<<<<<<
 *         else:
 *             assert joint_type in (mjtJoint.mjJNT_HINGE, mjtJoint.mjJNT_SLIDE)
 */
    __Pyx_INCREF(__pyx_int_3);
    __pyx_v_ndim = __pyx_int_3;

    /* "mujoco_py/generated/wrappers.pxi":1215
 *         if joint_type == mjtJoint.mjJNT_FREE:
 *             ndim = 6
 *         elif joint_type == mjtJoint.mjJNT_BALL:             # <<<<<<<<<<<<<<
 *             ndim = 3
 *         else:
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/generated/wrappers.pxi":1218
 *             ndim = 3
 *         else:
 *             assert joint_type in (mjtJoint.mjJNT_HINGE, mjtJoint.mjJNT_SLIDE)             # <<<<<<<<<<<<<<
 *             ndim = 1
 * 
 */
  /*else*/ {
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    if (unlikely(__pyx_assertions_enabled())) {
      __Pyx_INCREF(__pyx_v_joint_type);
      __pyx_t_1 = __pyx_v_joint_type;
      __pyx_t_2 = __Pyx_PyInt_From_mjtJoint(mjJNT_HINGE); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1218, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1218, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(4, 1218, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (!__pyx_t_6) {
      } else {
        __pyx_t_5 = __pyx_t_6;
        goto __pyx_L4_bool_binop_done;
      }
      __pyx_t_3 = __Pyx_PyInt_From_mjtJoint(mjJNT_SLIDE); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1218, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1218, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(4, 1218, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_5 = __pyx_t_6;
      __pyx_L4_bool_binop_done:;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_6 = __pyx_t_5;
      if (unlikely(!__pyx_t_6)) {
        __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
        __PYX_ERR(4, 1218, __pyx_L1_error)
      }
    }
    #else
    if ((1)); else __PYX_ERR(4, 1218, __pyx_L1_error)
    #endif

    /* "mujoco_py/generated/wrappers.pxi":1219
 *         else:
 *             assert joint_type in (mjtJoint.mjJNT_HINGE, mjtJoint.mjJNT_SLIDE)
 *             ndim = 1             # <<<<<<<<<<<<<<
 * 
 *         if ndim == 1:
 */
    __Pyx_INCREF(__pyx_int_1);
    __pyx_v_ndim = __pyx_int_1;
  }
  __pyx_L3:;

  /* "mujoco_py/generated/wrappers.pxi":1221
 *             ndim = 1
 * 
 *         if ndim == 1:             # <<<<<<<<<<<<<<
 *             return joint_addr
 *         else:
 */
  __pyx_t_6 = (__Pyx_PyInt_BoolEqObjC(__pyx_v_ndim, __pyx_int_1, 1, 0)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(4, 1221, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "mujoco_py/generated/wrappers.pxi":1222
 * 
 *         if ndim == 1:
 *             return joint_addr             # <<<<<<<<<<<<<<
 *         else:
 *             return (joint_addr, joint_addr + ndim)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_joint_addr);
    __pyx_r = __pyx_v_joint_addr;
    goto __pyx_L0;

    /* "mujoco_py/generated/wrappers.pxi":1221
 *             ndim = 1
 * 
 *         if ndim == 1:             # <<<<<<<<<<<<<<
 *             return joint_addr
 *         else:
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":1224
 *             return joint_addr
 *         else:
 *             return (joint_addr, joint_addr + ndim)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyNumber_Add(__pyx_v_joint_addr, __pyx_v_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1224, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1224, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_joint_addr);
    __Pyx_GIVEREF(__pyx_v_joint_addr);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_joint_addr)) __PYX_ERR(4, 1224, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(4, 1224, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":1202
 *             return (joint_addr, joint_addr + ndim)
 * 
 *     def get_joint_qvel_addr(self, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Returns the qvel address for given joint.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.get_joint_qvel_addr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_joint_id);
  __Pyx_XDECREF(__pyx_v_joint_type);
  __Pyx_XDECREF(__pyx_v_joint_addr);
  __Pyx_XDECREF(__pyx_v_ndim);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1227
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1228
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjModel* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1227
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1230
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjModel* p):             # <<<<<<<<<<<<<<
 * 
 *         self.body_names, self._body_name2id, self._body_id2name = self._extract_mj_names(p, p.name_bodyadr, p.nbody, mjtObj.mjOBJ_BODY)
 */

static void __pyx_f_9mujoco_py_4cymj_9PyMjModel__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, mjModel *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":1232
 *     cdef void _set(self, mjModel* p):
 * 
 *         self.body_names, self._body_name2id, self._body_id2name = self._extract_mj_names(p, p.name_bodyadr, p.nbody, mjtObj.mjOBJ_BODY)             # <<<<<<<<<<<<<<
 *         self.joint_names, self._joint_name2id, self._joint_id2name = self._extract_mj_names(p, p.name_jntadr, p.njnt, mjtObj.mjOBJ_JOINT)
 *         self.geom_names, self._geom_name2id, self._geom_id2name = self._extract_mj_names(p, p.name_geomadr, p.ngeom, mjtObj.mjOBJ_GEOM)
 */
  __pyx_t_1 = __pyx_f_9mujoco_py_4cymj_9PyMjModel__extract_mj_names(__pyx_v_self, __pyx_v_p, __pyx_v_p->name_bodyadr, __pyx_v_p->nbody, mjOBJ_BODY); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(__pyx_t_1 != Py_None)) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(4, 1232, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); 
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1232, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1232, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1232, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(4, 1232, __pyx_L1_error)
  }
  if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(4, 1232, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_3))) __PYX_ERR(4, 1232, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_4))) __PYX_ERR(4, 1232, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->body_names);
  __Pyx_DECREF(__pyx_v_self->body_names);
  __pyx_v_self->body_names = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->_body_name2id);
  __Pyx_DECREF(__pyx_v_self->_body_name2id);
  __pyx_v_self->_body_name2id = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->_body_id2name);
  __Pyx_DECREF(__pyx_v_self->_body_id2name);
  __pyx_v_self->_body_id2name = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1233
 * 
 *         self.body_names, self._body_name2id, self._body_id2name = self._extract_mj_names(p, p.name_bodyadr, p.nbody, mjtObj.mjOBJ_BODY)
 *         self.joint_names, self._joint_name2id, self._joint_id2name = self._extract_mj_names(p, p.name_jntadr, p.njnt, mjtObj.mjOBJ_JOINT)             # <<<<<<<<<<<<<<
 *         self.geom_names, self._geom_name2id, self._geom_id2name = self._extract_mj_names(p, p.name_geomadr, p.ngeom, mjtObj.mjOBJ_GEOM)
 *         self.site_names, self._site_name2id, self._site_id2name = self._extract_mj_names(p, p.name_siteadr, p.nsite, mjtObj.mjOBJ_SITE)
 */
  __pyx_t_1 = __pyx_f_9mujoco_py_4cymj_9PyMjModel__extract_mj_names(__pyx_v_self, __pyx_v_p, __pyx_v_p->name_jntadr, __pyx_v_p->njnt, mjOBJ_JOINT); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(__pyx_t_1 != Py_None)) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(4, 1233, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); 
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    #else
    __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1233, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1233, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1233, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(4, 1233, __pyx_L1_error)
  }
  if (!(likely(PyTuple_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_4))) __PYX_ERR(4, 1233, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_3))) __PYX_ERR(4, 1233, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_2))) __PYX_ERR(4, 1233, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->joint_names);
  __Pyx_DECREF(__pyx_v_self->joint_names);
  __pyx_v_self->joint_names = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->_joint_name2id);
  __Pyx_DECREF(__pyx_v_self->_joint_name2id);
  __pyx_v_self->_joint_name2id = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_joint_id2name);
  __Pyx_DECREF(__pyx_v_self->_joint_id2name);
  __pyx_v_self->_joint_id2name = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1234
 *         self.body_names, self._body_name2id, self._body_id2name = self._extract_mj_names(p, p.name_bodyadr, p.nbody, mjtObj.mjOBJ_BODY)
 *         self.joint_names, self._joint_name2id, self._joint_id2name = self._extract_mj_names(p, p.name_jntadr, p.njnt, mjtObj.mjOBJ_JOINT)
 *         self.geom_names, self._geom_name2id, self._geom_id2name = self._extract_mj_names(p, p.name_geomadr, p.ngeom, mjtObj.mjOBJ_GEOM)             # <<<<<<<<<<<<<<
 *         self.site_names, self._site_name2id, self._site_id2name = self._extract_mj_names(p, p.name_siteadr, p.nsite, mjtObj.mjOBJ_SITE)
 *         self.light_names, self._light_name2id, self._light_id2name = self._extract_mj_names(p, p.name_lightadr, p.nlight, mjtObj.mjOBJ_LIGHT)
 */
  __pyx_t_1 = __pyx_f_9mujoco_py_4cymj_9PyMjModel__extract_mj_names(__pyx_v_self, __pyx_v_p, __pyx_v_p->name_geomadr, __pyx_v_p->ngeom, mjOBJ_GEOM); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(__pyx_t_1 != Py_None)) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(4, 1234, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); 
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1234, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1234, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1234, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(4, 1234, __pyx_L1_error)
  }
  if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(4, 1234, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_3))) __PYX_ERR(4, 1234, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_4))) __PYX_ERR(4, 1234, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->geom_names);
  __Pyx_DECREF(__pyx_v_self->geom_names);
  __pyx_v_self->geom_names = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->_geom_name2id);
  __Pyx_DECREF(__pyx_v_self->_geom_name2id);
  __pyx_v_self->_geom_name2id = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->_geom_id2name);
  __Pyx_DECREF(__pyx_v_self->_geom_id2name);
  __pyx_v_self->_geom_id2name = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1235
 *         self.joint_names, self._joint_name2id, self._joint_id2name = self._extract_mj_names(p, p.name_jntadr, p.njnt, mjtObj.mjOBJ_JOINT)
 *         self.geom_names, self._geom_name2id, self._geom_id2name = self._extract_mj_names(p, p.name_geomadr, p.ngeom, mjtObj.mjOBJ_GEOM)
 *         self.site_names, self._site_name2id, self._site_id2name = self._extract_mj_names(p, p.name_siteadr, p.nsite, mjtObj.mjOBJ_SITE)             # <<<<<<<<<<<<<<
 *         self.light_names, self._light_name2id, self._light_id2name = self._extract_mj_names(p, p.name_lightadr, p.nlight, mjtObj.mjOBJ_LIGHT)
 *         self.camera_names, self._camera_name2id, self._camera_id2name = self._extract_mj_names(p, p.name_camadr, p.ncam, mjtObj.mjOBJ_CAMERA)
 */
  __pyx_t_1 = __pyx_f_9mujoco_py_4cymj_9PyMjModel__extract_mj_names(__pyx_v_self, __pyx_v_p, __pyx_v_p->name_siteadr, __pyx_v_p->nsite, mjOBJ_SITE); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(__pyx_t_1 != Py_None)) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(4, 1235, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); 
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    #else
    __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1235, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1235, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1235, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(4, 1235, __pyx_L1_error)
  }
  if (!(likely(PyTuple_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_4))) __PYX_ERR(4, 1235, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_3))) __PYX_ERR(4, 1235, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_2))) __PYX_ERR(4, 1235, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->site_names);
  __Pyx_DECREF(__pyx_v_self->site_names);
  __pyx_v_self->site_names = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->_site_name2id);
  __Pyx_DECREF(__pyx_v_self->_site_name2id);
  __pyx_v_self->_site_name2id = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_site_id2name);
  __Pyx_DECREF(__pyx_v_self->_site_id2name);
  __pyx_v_self->_site_id2name = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1236
 *         self.geom_names, self._geom_name2id, self._geom_id2name = self._extract_mj_names(p, p.name_geomadr, p.ngeom, mjtObj.mjOBJ_GEOM)
 *         self.site_names, self._site_name2id, self._site_id2name = self._extract_mj_names(p, p.name_siteadr, p.nsite, mjtObj.mjOBJ_SITE)
 *         self.light_names, self._light_name2id, self._light_id2name = self._extract_mj_names(p, p.name_lightadr, p.nlight, mjtObj.mjOBJ_LIGHT)             # <<<<<<<<<<<<<<
 *         self.camera_names, self._camera_name2id, self._camera_id2name = self._extract_mj_names(p, p.name_camadr, p.ncam, mjtObj.mjOBJ_CAMERA)
 *         self.actuator_names, self._actuator_name2id, self._actuator_id2name = self._extract_mj_names(p, p.name_actuatoradr, p.nu, mjtObj.mjOBJ_ACTUATOR)
 */
  __pyx_t_1 = __pyx_f_9mujoco_py_4cymj_9PyMjModel__extract_mj_names(__pyx_v_self, __pyx_v_p, __pyx_v_p->name_lightadr, __pyx_v_p->nlight, mjOBJ_LIGHT); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(__pyx_t_1 != Py_None)) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(4, 1236, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); 
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(4, 1236, __pyx_L1_error)
  }
  if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(4, 1236, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_3))) __PYX_ERR(4, 1236, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_4))) __PYX_ERR(4, 1236, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->light_names);
  __Pyx_DECREF(__pyx_v_self->light_names);
  __pyx_v_self->light_names = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->_light_name2id);
  __Pyx_DECREF(__pyx_v_self->_light_name2id);
  __pyx_v_self->_light_name2id = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->_light_id2name);
  __Pyx_DECREF(__pyx_v_self->_light_id2name);
  __pyx_v_self->_light_id2name = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1237
 *         self.site_names, self._site_name2id, self._site_id2name = self._extract_mj_names(p, p.name_siteadr, p.nsite, mjtObj.mjOBJ_SITE)
 *         self.light_names, self._light_name2id, self._light_id2name = self._extract_mj_names(p, p.name_lightadr, p.nlight, mjtObj.mjOBJ_LIGHT)
 *         self.camera_names, self._camera_name2id, self._camera_id2name = self._extract_mj_names(p, p.name_camadr, p.ncam, mjtObj.mjOBJ_CAMERA)             # <<<<<<<<<<<<<<
 *         self.actuator_names, self._actuator_name2id, self._actuator_id2name = self._extract_mj_names(p, p.name_actuatoradr, p.nu, mjtObj.mjOBJ_ACTUATOR)
 *         self.sensor_names, self._sensor_name2id, self._sensor_id2name = self._extract_mj_names(p, p.name_sensoradr, p.nsensor, mjtObj.mjOBJ_SENSOR)
 */
  __pyx_t_1 = __pyx_f_9mujoco_py_4cymj_9PyMjModel__extract_mj_names(__pyx_v_self, __pyx_v_p, __pyx_v_p->name_camadr, __pyx_v_p->ncam, mjOBJ_CAMERA); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(__pyx_t_1 != Py_None)) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(4, 1237, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); 
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    #else
    __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1237, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1237, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1237, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(4, 1237, __pyx_L1_error)
  }
  if (!(likely(PyTuple_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_4))) __PYX_ERR(4, 1237, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_3))) __PYX_ERR(4, 1237, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_2))) __PYX_ERR(4, 1237, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->camera_names);
  __Pyx_DECREF(__pyx_v_self->camera_names);
  __pyx_v_self->camera_names = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->_camera_name2id);
  __Pyx_DECREF(__pyx_v_self->_camera_name2id);
  __pyx_v_self->_camera_name2id = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_camera_id2name);
  __Pyx_DECREF(__pyx_v_self->_camera_id2name);
  __pyx_v_self->_camera_id2name = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1238
 *         self.light_names, self._light_name2id, self._light_id2name = self._extract_mj_names(p, p.name_lightadr, p.nlight, mjtObj.mjOBJ_LIGHT)
 *         self.camera_names, self._camera_name2id, self._camera_id2name = self._extract_mj_names(p, p.name_camadr, p.ncam, mjtObj.mjOBJ_CAMERA)
 *         self.actuator_names, self._actuator_name2id, self._actuator_id2name = self._extract_mj_names(p, p.name_actuatoradr, p.nu, mjtObj.mjOBJ_ACTUATOR)             # <<<<<<<<<<<<<<
 *         self.sensor_names, self._sensor_name2id, self._sensor_id2name = self._extract_mj_names(p, p.name_sensoradr, p.nsensor, mjtObj.mjOBJ_SENSOR)
 *         self.tendon_names, self._tendon_name2id, self._tendon_id2name = self._extract_mj_names(p, p.name_tendonadr, p.ntendon, mjtObj.mjOBJ_TENDON)
 */
  __pyx_t_1 = __pyx_f_9mujoco_py_4cymj_9PyMjModel__extract_mj_names(__pyx_v_self, __pyx_v_p, __pyx_v_p->name_actuatoradr, __pyx_v_p->nu, mjOBJ_ACTUATOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(__pyx_t_1 != Py_None)) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(4, 1238, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); 
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(4, 1238, __pyx_L1_error)
  }
  if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(4, 1238, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_3))) __PYX_ERR(4, 1238, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_4))) __PYX_ERR(4, 1238, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->actuator_names);
  __Pyx_DECREF(__pyx_v_self->actuator_names);
  __pyx_v_self->actuator_names = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->_actuator_name2id);
  __Pyx_DECREF(__pyx_v_self->_actuator_name2id);
  __pyx_v_self->_actuator_name2id = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->_actuator_id2name);
  __Pyx_DECREF(__pyx_v_self->_actuator_id2name);
  __pyx_v_self->_actuator_id2name = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1239
 *         self.camera_names, self._camera_name2id, self._camera_id2name = self._extract_mj_names(p, p.name_camadr, p.ncam, mjtObj.mjOBJ_CAMERA)
 *         self.actuator_names, self._actuator_name2id, self._actuator_id2name = self._extract_mj_names(p, p.name_actuatoradr, p.nu, mjtObj.mjOBJ_ACTUATOR)
 *         self.sensor_names, self._sensor_name2id, self._sensor_id2name = self._extract_mj_names(p, p.name_sensoradr, p.nsensor, mjtObj.mjOBJ_SENSOR)             # <<<<<<<<<<<<<<
 *         self.tendon_names, self._tendon_name2id, self._tendon_id2name = self._extract_mj_names(p, p.name_tendonadr, p.ntendon, mjtObj.mjOBJ_TENDON)
 *         self.mesh_names, self._mesh_name2id, self._mesh_id2name = self._extract_mj_names(p, p.name_meshadr, p.nmesh, mjtObj.mjOBJ_MESH)
 */
  __pyx_t_1 = __pyx_f_9mujoco_py_4cymj_9PyMjModel__extract_mj_names(__pyx_v_self, __pyx_v_p, __pyx_v_p->name_sensoradr, __pyx_v_p->nsensor, mjOBJ_SENSOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(__pyx_t_1 != Py_None)) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(4, 1239, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); 
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    #else
    __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1239, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1239, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1239, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(4, 1239, __pyx_L1_error)
  }
  if (!(likely(PyTuple_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_4))) __PYX_ERR(4, 1239, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_3))) __PYX_ERR(4, 1239, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_2))) __PYX_ERR(4, 1239, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->sensor_names);
  __Pyx_DECREF(__pyx_v_self->sensor_names);
  __pyx_v_self->sensor_names = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->_sensor_name2id);
  __Pyx_DECREF(__pyx_v_self->_sensor_name2id);
  __pyx_v_self->_sensor_name2id = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_sensor_id2name);
  __Pyx_DECREF(__pyx_v_self->_sensor_id2name);
  __pyx_v_self->_sensor_id2name = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1240
 *         self.actuator_names, self._actuator_name2id, self._actuator_id2name = self._extract_mj_names(p, p.name_actuatoradr, p.nu, mjtObj.mjOBJ_ACTUATOR)
 *         self.sensor_names, self._sensor_name2id, self._sensor_id2name = self._extract_mj_names(p, p.name_sensoradr, p.nsensor, mjtObj.mjOBJ_SENSOR)
 *         self.tendon_names, self._tendon_name2id, self._tendon_id2name = self._extract_mj_names(p, p.name_tendonadr, p.ntendon, mjtObj.mjOBJ_TENDON)             # <<<<<<<<<<<<<<
 *         self.mesh_names, self._mesh_name2id, self._mesh_id2name = self._extract_mj_names(p, p.name_meshadr, p.nmesh, mjtObj.mjOBJ_MESH)
 *         self.userdata_names = tuple()
 */
  __pyx_t_1 = __pyx_f_9mujoco_py_4cymj_9PyMjModel__extract_mj_names(__pyx_v_self, __pyx_v_p, __pyx_v_p->name_tendonadr, __pyx_v_p->ntendon, mjOBJ_TENDON); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(__pyx_t_1 != Py_None)) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(4, 1240, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); 
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(4, 1240, __pyx_L1_error)
  }
  if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(4, 1240, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_3))) __PYX_ERR(4, 1240, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_4))) __PYX_ERR(4, 1240, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->tendon_names);
  __Pyx_DECREF(__pyx_v_self->tendon_names);
  __pyx_v_self->tendon_names = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->_tendon_name2id);
  __Pyx_DECREF(__pyx_v_self->_tendon_name2id);
  __pyx_v_self->_tendon_name2id = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->_tendon_id2name);
  __Pyx_DECREF(__pyx_v_self->_tendon_id2name);
  __pyx_v_self->_tendon_id2name = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1241
 *         self.sensor_names, self._sensor_name2id, self._sensor_id2name = self._extract_mj_names(p, p.name_sensoradr, p.nsensor, mjtObj.mjOBJ_SENSOR)
 *         self.tendon_names, self._tendon_name2id, self._tendon_id2name = self._extract_mj_names(p, p.name_tendonadr, p.ntendon, mjtObj.mjOBJ_TENDON)
 *         self.mesh_names, self._mesh_name2id, self._mesh_id2name = self._extract_mj_names(p, p.name_meshadr, p.nmesh, mjtObj.mjOBJ_MESH)             # <<<<<<<<<<<<<<
 *         self.userdata_names = tuple()
 *         self._userdata_name2id = dict()
 */
  __pyx_t_1 = __pyx_f_9mujoco_py_4cymj_9PyMjModel__extract_mj_names(__pyx_v_self, __pyx_v_p, __pyx_v_p->name_meshadr, __pyx_v_p->nmesh, mjOBJ_MESH); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(__pyx_t_1 != Py_None)) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(4, 1241, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); 
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    #else
    __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1241, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1241, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 1241, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(4, 1241, __pyx_L1_error)
  }
  if (!(likely(PyTuple_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_4))) __PYX_ERR(4, 1241, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_3))) __PYX_ERR(4, 1241, __pyx_L1_error)
  if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_2))) __PYX_ERR(4, 1241, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->mesh_names);
  __Pyx_DECREF(__pyx_v_self->mesh_names);
  __pyx_v_self->mesh_names = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->_mesh_name2id);
  __Pyx_DECREF(__pyx_v_self->_mesh_name2id);
  __pyx_v_self->_mesh_name2id = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_mesh_id2name);
  __Pyx_DECREF(__pyx_v_self->_mesh_id2name);
  __pyx_v_self->_mesh_id2name = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1242
 *         self.tendon_names, self._tendon_name2id, self._tendon_id2name = self._extract_mj_names(p, p.name_tendonadr, p.ntendon, mjtObj.mjOBJ_TENDON)
 *         self.mesh_names, self._mesh_name2id, self._mesh_id2name = self._extract_mj_names(p, p.name_meshadr, p.nmesh, mjtObj.mjOBJ_MESH)
 *         self.userdata_names = tuple()             # <<<<<<<<<<<<<<
 *         self._userdata_name2id = dict()
 *         self._userdata_id2name = dict()
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->userdata_names);
  __Pyx_DECREF(__pyx_v_self->userdata_names);
  __pyx_v_self->userdata_names = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1243
 *         self.mesh_names, self._mesh_name2id, self._mesh_id2name = self._extract_mj_names(p, p.name_meshadr, p.nmesh, mjtObj.mjOBJ_MESH)
 *         self.userdata_names = tuple()
 *         self._userdata_name2id = dict()             # <<<<<<<<<<<<<<
 *         self._userdata_id2name = dict()
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_userdata_name2id);
  __Pyx_DECREF(__pyx_v_self->_userdata_name2id);
  __pyx_v_self->_userdata_name2id = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1244
 *         self.userdata_names = tuple()
 *         self._userdata_name2id = dict()
 *         self._userdata_id2name = dict()             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_userdata_id2name);
  __Pyx_DECREF(__pyx_v_self->_userdata_id2name);
  __pyx_v_self->_userdata_id2name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1246
 *         self._userdata_id2name = dict()
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":1249
 * 
 * 
 *         self._opt = WrapMjOption(&p.opt)             # <<<<<<<<<<<<<<
 *         self._vis = WrapMjVisual(&p.vis)
 *         self._stat = WrapMjStatistic(&p.stat)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjOption((&__pyx_v_p->opt))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_opt);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_opt);
  __pyx_v_self->_opt = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1250
 * 
 *         self._opt = WrapMjOption(&p.opt)
 *         self._vis = WrapMjVisual(&p.vis)             # <<<<<<<<<<<<<<
 *         self._stat = WrapMjStatistic(&p.stat)
 *         self._qpos0 = _wrap_mjtNum_1d(p.qpos0, p.nq)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjVisual((&__pyx_v_p->vis))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_vis);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_vis);
  __pyx_v_self->_vis = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1251
 *         self._opt = WrapMjOption(&p.opt)
 *         self._vis = WrapMjVisual(&p.vis)
 *         self._stat = WrapMjStatistic(&p.stat)             # <<<<<<<<<<<<<<
 *         self._qpos0 = _wrap_mjtNum_1d(p.qpos0, p.nq)
 *         self._qpos_spring = _wrap_mjtNum_1d(p.qpos_spring, p.nq)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjStatistic((&__pyx_v_p->stat))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_stat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_stat);
  __pyx_v_self->_stat = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1252
 *         self._vis = WrapMjVisual(&p.vis)
 *         self._stat = WrapMjStatistic(&p.stat)
 *         self._qpos0 = _wrap_mjtNum_1d(p.qpos0, p.nq)             # <<<<<<<<<<<<<<
 *         self._qpos_spring = _wrap_mjtNum_1d(p.qpos_spring, p.nq)
 *         self._body_parentid = _wrap_int_1d(p.body_parentid, p.nbody)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qpos0, __pyx_v_p->nq)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qpos0);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qpos0);
  __pyx_v_self->_qpos0 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1253
 *         self._stat = WrapMjStatistic(&p.stat)
 *         self._qpos0 = _wrap_mjtNum_1d(p.qpos0, p.nq)
 *         self._qpos_spring = _wrap_mjtNum_1d(p.qpos_spring, p.nq)             # <<<<<<<<<<<<<<
 *         self._body_parentid = _wrap_int_1d(p.body_parentid, p.nbody)
 *         self._body_rootid = _wrap_int_1d(p.body_rootid, p.nbody)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qpos_spring, __pyx_v_p->nq)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qpos_spring);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qpos_spring);
  __pyx_v_self->_qpos_spring = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1254
 *         self._qpos0 = _wrap_mjtNum_1d(p.qpos0, p.nq)
 *         self._qpos_spring = _wrap_mjtNum_1d(p.qpos_spring, p.nq)
 *         self._body_parentid = _wrap_int_1d(p.body_parentid, p.nbody)             # <<<<<<<<<<<<<<
 *         self._body_rootid = _wrap_int_1d(p.body_rootid, p.nbody)
 *         self._body_weldid = _wrap_int_1d(p.body_weldid, p.nbody)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->body_parentid, __pyx_v_p->nbody)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_parentid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_parentid);
  __pyx_v_self->_body_parentid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1255
 *         self._qpos_spring = _wrap_mjtNum_1d(p.qpos_spring, p.nq)
 *         self._body_parentid = _wrap_int_1d(p.body_parentid, p.nbody)
 *         self._body_rootid = _wrap_int_1d(p.body_rootid, p.nbody)             # <<<<<<<<<<<<<<
 *         self._body_weldid = _wrap_int_1d(p.body_weldid, p.nbody)
 *         self._body_mocapid = _wrap_int_1d(p.body_mocapid, p.nbody)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->body_rootid, __pyx_v_p->nbody)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_rootid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_rootid);
  __pyx_v_self->_body_rootid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1256
 *         self._body_parentid = _wrap_int_1d(p.body_parentid, p.nbody)
 *         self._body_rootid = _wrap_int_1d(p.body_rootid, p.nbody)
 *         self._body_weldid = _wrap_int_1d(p.body_weldid, p.nbody)             # <<<<<<<<<<<<<<
 *         self._body_mocapid = _wrap_int_1d(p.body_mocapid, p.nbody)
 *         self._body_jntnum = _wrap_int_1d(p.body_jntnum, p.nbody)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->body_weldid, __pyx_v_p->nbody)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_weldid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_weldid);
  __pyx_v_self->_body_weldid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1257
 *         self._body_rootid = _wrap_int_1d(p.body_rootid, p.nbody)
 *         self._body_weldid = _wrap_int_1d(p.body_weldid, p.nbody)
 *         self._body_mocapid = _wrap_int_1d(p.body_mocapid, p.nbody)             # <<<<<<<<<<<<<<
 *         self._body_jntnum = _wrap_int_1d(p.body_jntnum, p.nbody)
 *         self._body_jntadr = _wrap_int_1d(p.body_jntadr, p.nbody)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->body_mocapid, __pyx_v_p->nbody)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_mocapid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_mocapid);
  __pyx_v_self->_body_mocapid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1258
 *         self._body_weldid = _wrap_int_1d(p.body_weldid, p.nbody)
 *         self._body_mocapid = _wrap_int_1d(p.body_mocapid, p.nbody)
 *         self._body_jntnum = _wrap_int_1d(p.body_jntnum, p.nbody)             # <<<<<<<<<<<<<<
 *         self._body_jntadr = _wrap_int_1d(p.body_jntadr, p.nbody)
 *         self._body_dofnum = _wrap_int_1d(p.body_dofnum, p.nbody)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->body_jntnum, __pyx_v_p->nbody)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_jntnum);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_jntnum);
  __pyx_v_self->_body_jntnum = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1259
 *         self._body_mocapid = _wrap_int_1d(p.body_mocapid, p.nbody)
 *         self._body_jntnum = _wrap_int_1d(p.body_jntnum, p.nbody)
 *         self._body_jntadr = _wrap_int_1d(p.body_jntadr, p.nbody)             # <<<<<<<<<<<<<<
 *         self._body_dofnum = _wrap_int_1d(p.body_dofnum, p.nbody)
 *         self._body_dofadr = _wrap_int_1d(p.body_dofadr, p.nbody)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->body_jntadr, __pyx_v_p->nbody)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_jntadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_jntadr);
  __pyx_v_self->_body_jntadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1260
 *         self._body_jntnum = _wrap_int_1d(p.body_jntnum, p.nbody)
 *         self._body_jntadr = _wrap_int_1d(p.body_jntadr, p.nbody)
 *         self._body_dofnum = _wrap_int_1d(p.body_dofnum, p.nbody)             # <<<<<<<<<<<<<<
 *         self._body_dofadr = _wrap_int_1d(p.body_dofadr, p.nbody)
 *         self._body_geomnum = _wrap_int_1d(p.body_geomnum, p.nbody)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->body_dofnum, __pyx_v_p->nbody)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_dofnum);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_dofnum);
  __pyx_v_self->_body_dofnum = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1261
 *         self._body_jntadr = _wrap_int_1d(p.body_jntadr, p.nbody)
 *         self._body_dofnum = _wrap_int_1d(p.body_dofnum, p.nbody)
 *         self._body_dofadr = _wrap_int_1d(p.body_dofadr, p.nbody)             # <<<<<<<<<<<<<<
 *         self._body_geomnum = _wrap_int_1d(p.body_geomnum, p.nbody)
 *         self._body_geomadr = _wrap_int_1d(p.body_geomadr, p.nbody)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->body_dofadr, __pyx_v_p->nbody)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_dofadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_dofadr);
  __pyx_v_self->_body_dofadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1262
 *         self._body_dofnum = _wrap_int_1d(p.body_dofnum, p.nbody)
 *         self._body_dofadr = _wrap_int_1d(p.body_dofadr, p.nbody)
 *         self._body_geomnum = _wrap_int_1d(p.body_geomnum, p.nbody)             # <<<<<<<<<<<<<<
 *         self._body_geomadr = _wrap_int_1d(p.body_geomadr, p.nbody)
 *         self._body_simple = _wrap_mjtByte_1d(p.body_simple, p.nbody)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->body_geomnum, __pyx_v_p->nbody)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_geomnum);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_geomnum);
  __pyx_v_self->_body_geomnum = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1263
 *         self._body_dofadr = _wrap_int_1d(p.body_dofadr, p.nbody)
 *         self._body_geomnum = _wrap_int_1d(p.body_geomnum, p.nbody)
 *         self._body_geomadr = _wrap_int_1d(p.body_geomadr, p.nbody)             # <<<<<<<<<<<<<<
 *         self._body_simple = _wrap_mjtByte_1d(p.body_simple, p.nbody)
 *         self._body_sameframe = _wrap_mjtByte_1d(p.body_sameframe, p.nbody)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->body_geomadr, __pyx_v_p->nbody)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_geomadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_geomadr);
  __pyx_v_self->_body_geomadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1264
 *         self._body_geomnum = _wrap_int_1d(p.body_geomnum, p.nbody)
 *         self._body_geomadr = _wrap_int_1d(p.body_geomadr, p.nbody)
 *         self._body_simple = _wrap_mjtByte_1d(p.body_simple, p.nbody)             # <<<<<<<<<<<<<<
 *         self._body_sameframe = _wrap_mjtByte_1d(p.body_sameframe, p.nbody)
 *         self._body_pos = _wrap_mjtNum_2d(p.body_pos, p.nbody, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(__pyx_v_p->body_simple, __pyx_v_p->nbody)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_simple);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_simple);
  __pyx_v_self->_body_simple = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1265
 *         self._body_geomadr = _wrap_int_1d(p.body_geomadr, p.nbody)
 *         self._body_simple = _wrap_mjtByte_1d(p.body_simple, p.nbody)
 *         self._body_sameframe = _wrap_mjtByte_1d(p.body_sameframe, p.nbody)             # <<<<<<<<<<<<<<
 *         self._body_pos = _wrap_mjtNum_2d(p.body_pos, p.nbody, 3)
 *         self._body_quat = _wrap_mjtNum_2d(p.body_quat, p.nbody, 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(__pyx_v_p->body_sameframe, __pyx_v_p->nbody)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_sameframe);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_sameframe);
  __pyx_v_self->_body_sameframe = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1266
 *         self._body_simple = _wrap_mjtByte_1d(p.body_simple, p.nbody)
 *         self._body_sameframe = _wrap_mjtByte_1d(p.body_sameframe, p.nbody)
 *         self._body_pos = _wrap_mjtNum_2d(p.body_pos, p.nbody, 3)             # <<<<<<<<<<<<<<
 *         self._body_quat = _wrap_mjtNum_2d(p.body_quat, p.nbody, 4)
 *         self._body_ipos = _wrap_mjtNum_2d(p.body_ipos, p.nbody, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->body_pos, __pyx_v_p->nbody, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_pos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_pos);
  __pyx_v_self->_body_pos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1267
 *         self._body_sameframe = _wrap_mjtByte_1d(p.body_sameframe, p.nbody)
 *         self._body_pos = _wrap_mjtNum_2d(p.body_pos, p.nbody, 3)
 *         self._body_quat = _wrap_mjtNum_2d(p.body_quat, p.nbody, 4)             # <<<<<<<<<<<<<<
 *         self._body_ipos = _wrap_mjtNum_2d(p.body_ipos, p.nbody, 3)
 *         self._body_iquat = _wrap_mjtNum_2d(p.body_iquat, p.nbody, 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->body_quat, __pyx_v_p->nbody, 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_quat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_quat);
  __pyx_v_self->_body_quat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1268
 *         self._body_pos = _wrap_mjtNum_2d(p.body_pos, p.nbody, 3)
 *         self._body_quat = _wrap_mjtNum_2d(p.body_quat, p.nbody, 4)
 *         self._body_ipos = _wrap_mjtNum_2d(p.body_ipos, p.nbody, 3)             # <<<<<<<<<<<<<<
 *         self._body_iquat = _wrap_mjtNum_2d(p.body_iquat, p.nbody, 4)
 *         self._body_mass = _wrap_mjtNum_1d(p.body_mass, p.nbody)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->body_ipos, __pyx_v_p->nbody, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_ipos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_ipos);
  __pyx_v_self->_body_ipos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1269
 *         self._body_quat = _wrap_mjtNum_2d(p.body_quat, p.nbody, 4)
 *         self._body_ipos = _wrap_mjtNum_2d(p.body_ipos, p.nbody, 3)
 *         self._body_iquat = _wrap_mjtNum_2d(p.body_iquat, p.nbody, 4)             # <<<<<<<<<<<<<<
 *         self._body_mass = _wrap_mjtNum_1d(p.body_mass, p.nbody)
 *         self._body_subtreemass = _wrap_mjtNum_1d(p.body_subtreemass, p.nbody)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->body_iquat, __pyx_v_p->nbody, 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_iquat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_iquat);
  __pyx_v_self->_body_iquat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1270
 *         self._body_ipos = _wrap_mjtNum_2d(p.body_ipos, p.nbody, 3)
 *         self._body_iquat = _wrap_mjtNum_2d(p.body_iquat, p.nbody, 4)
 *         self._body_mass = _wrap_mjtNum_1d(p.body_mass, p.nbody)             # <<<<<<<<<<<<<<
 *         self._body_subtreemass = _wrap_mjtNum_1d(p.body_subtreemass, p.nbody)
 *         self._body_inertia = _wrap_mjtNum_2d(p.body_inertia, p.nbody, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->body_mass, __pyx_v_p->nbody)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_mass);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_mass);
  __pyx_v_self->_body_mass = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1271
 *         self._body_iquat = _wrap_mjtNum_2d(p.body_iquat, p.nbody, 4)
 *         self._body_mass = _wrap_mjtNum_1d(p.body_mass, p.nbody)
 *         self._body_subtreemass = _wrap_mjtNum_1d(p.body_subtreemass, p.nbody)             # <<<<<<<<<<<<<<
 *         self._body_inertia = _wrap_mjtNum_2d(p.body_inertia, p.nbody, 3)
 *         self._body_invweight0 = _wrap_mjtNum_2d(p.body_invweight0, p.nbody, 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->body_subtreemass, __pyx_v_p->nbody)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_subtreemass);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_subtreemass);
  __pyx_v_self->_body_subtreemass = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1272
 *         self._body_mass = _wrap_mjtNum_1d(p.body_mass, p.nbody)
 *         self._body_subtreemass = _wrap_mjtNum_1d(p.body_subtreemass, p.nbody)
 *         self._body_inertia = _wrap_mjtNum_2d(p.body_inertia, p.nbody, 3)             # <<<<<<<<<<<<<<
 *         self._body_invweight0 = _wrap_mjtNum_2d(p.body_invweight0, p.nbody, 2)
 *         self._body_user = _wrap_mjtNum_2d(p.body_user, p.nbody, p.nuser_body)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->body_inertia, __pyx_v_p->nbody, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_inertia);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_inertia);
  __pyx_v_self->_body_inertia = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1273
 *         self._body_subtreemass = _wrap_mjtNum_1d(p.body_subtreemass, p.nbody)
 *         self._body_inertia = _wrap_mjtNum_2d(p.body_inertia, p.nbody, 3)
 *         self._body_invweight0 = _wrap_mjtNum_2d(p.body_invweight0, p.nbody, 2)             # <<<<<<<<<<<<<<
 *         self._body_user = _wrap_mjtNum_2d(p.body_user, p.nbody, p.nuser_body)
 *         self._jnt_type = _wrap_int_1d(p.jnt_type, p.njnt)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->body_invweight0, __pyx_v_p->nbody, 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_invweight0);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_invweight0);
  __pyx_v_self->_body_invweight0 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1274
 *         self._body_inertia = _wrap_mjtNum_2d(p.body_inertia, p.nbody, 3)
 *         self._body_invweight0 = _wrap_mjtNum_2d(p.body_invweight0, p.nbody, 2)
 *         self._body_user = _wrap_mjtNum_2d(p.body_user, p.nbody, p.nuser_body)             # <<<<<<<<<<<<<<
 *         self._jnt_type = _wrap_int_1d(p.jnt_type, p.njnt)
 *         self._jnt_qposadr = _wrap_int_1d(p.jnt_qposadr, p.njnt)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->body_user, __pyx_v_p->nbody, __pyx_v_p->nuser_body)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_body_user);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_body_user);
  __pyx_v_self->_body_user = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1275
 *         self._body_invweight0 = _wrap_mjtNum_2d(p.body_invweight0, p.nbody, 2)
 *         self._body_user = _wrap_mjtNum_2d(p.body_user, p.nbody, p.nuser_body)
 *         self._jnt_type = _wrap_int_1d(p.jnt_type, p.njnt)             # <<<<<<<<<<<<<<
 *         self._jnt_qposadr = _wrap_int_1d(p.jnt_qposadr, p.njnt)
 *         self._jnt_dofadr = _wrap_int_1d(p.jnt_dofadr, p.njnt)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->jnt_type, __pyx_v_p->njnt)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_jnt_type);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_jnt_type);
  __pyx_v_self->_jnt_type = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1276
 *         self._body_user = _wrap_mjtNum_2d(p.body_user, p.nbody, p.nuser_body)
 *         self._jnt_type = _wrap_int_1d(p.jnt_type, p.njnt)
 *         self._jnt_qposadr = _wrap_int_1d(p.jnt_qposadr, p.njnt)             # <<<<<<<<<<<<<<
 *         self._jnt_dofadr = _wrap_int_1d(p.jnt_dofadr, p.njnt)
 *         self._jnt_bodyid = _wrap_int_1d(p.jnt_bodyid, p.njnt)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->jnt_qposadr, __pyx_v_p->njnt)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_jnt_qposadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_jnt_qposadr);
  __pyx_v_self->_jnt_qposadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1277
 *         self._jnt_type = _wrap_int_1d(p.jnt_type, p.njnt)
 *         self._jnt_qposadr = _wrap_int_1d(p.jnt_qposadr, p.njnt)
 *         self._jnt_dofadr = _wrap_int_1d(p.jnt_dofadr, p.njnt)             # <<<<<<<<<<<<<<
 *         self._jnt_bodyid = _wrap_int_1d(p.jnt_bodyid, p.njnt)
 *         self._jnt_group = _wrap_int_1d(p.jnt_group, p.njnt)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->jnt_dofadr, __pyx_v_p->njnt)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_jnt_dofadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_jnt_dofadr);
  __pyx_v_self->_jnt_dofadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1278
 *         self._jnt_qposadr = _wrap_int_1d(p.jnt_qposadr, p.njnt)
 *         self._jnt_dofadr = _wrap_int_1d(p.jnt_dofadr, p.njnt)
 *         self._jnt_bodyid = _wrap_int_1d(p.jnt_bodyid, p.njnt)             # <<<<<<<<<<<<<<
 *         self._jnt_group = _wrap_int_1d(p.jnt_group, p.njnt)
 *         self._jnt_limited = _wrap_mjtByte_1d(p.jnt_limited, p.njnt)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->jnt_bodyid, __pyx_v_p->njnt)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_jnt_bodyid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_jnt_bodyid);
  __pyx_v_self->_jnt_bodyid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1279
 *         self._jnt_dofadr = _wrap_int_1d(p.jnt_dofadr, p.njnt)
 *         self._jnt_bodyid = _wrap_int_1d(p.jnt_bodyid, p.njnt)
 *         self._jnt_group = _wrap_int_1d(p.jnt_group, p.njnt)             # <<<<<<<<<<<<<<
 *         self._jnt_limited = _wrap_mjtByte_1d(p.jnt_limited, p.njnt)
 *         self._jnt_solref = _wrap_mjtNum_2d(p.jnt_solref, p.njnt, mjNREF)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->jnt_group, __pyx_v_p->njnt)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_jnt_group);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_jnt_group);
  __pyx_v_self->_jnt_group = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1280
 *         self._jnt_bodyid = _wrap_int_1d(p.jnt_bodyid, p.njnt)
 *         self._jnt_group = _wrap_int_1d(p.jnt_group, p.njnt)
 *         self._jnt_limited = _wrap_mjtByte_1d(p.jnt_limited, p.njnt)             # <<<<<<<<<<<<<<
 *         self._jnt_solref = _wrap_mjtNum_2d(p.jnt_solref, p.njnt, mjNREF)
 *         self._jnt_solimp = _wrap_mjtNum_2d(p.jnt_solimp, p.njnt, mjNIMP)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(__pyx_v_p->jnt_limited, __pyx_v_p->njnt)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_jnt_limited);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_jnt_limited);
  __pyx_v_self->_jnt_limited = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1281
 *         self._jnt_group = _wrap_int_1d(p.jnt_group, p.njnt)
 *         self._jnt_limited = _wrap_mjtByte_1d(p.jnt_limited, p.njnt)
 *         self._jnt_solref = _wrap_mjtNum_2d(p.jnt_solref, p.njnt, mjNREF)             # <<<<<<<<<<<<<<
 *         self._jnt_solimp = _wrap_mjtNum_2d(p.jnt_solimp, p.njnt, mjNIMP)
 *         self._jnt_pos = _wrap_mjtNum_2d(p.jnt_pos, p.njnt, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->jnt_solref, __pyx_v_p->njnt, mjNREF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_jnt_solref);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_jnt_solref);
  __pyx_v_self->_jnt_solref = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1282
 *         self._jnt_limited = _wrap_mjtByte_1d(p.jnt_limited, p.njnt)
 *         self._jnt_solref = _wrap_mjtNum_2d(p.jnt_solref, p.njnt, mjNREF)
 *         self._jnt_solimp = _wrap_mjtNum_2d(p.jnt_solimp, p.njnt, mjNIMP)             # <<<<<<<<<<<<<<
 *         self._jnt_pos = _wrap_mjtNum_2d(p.jnt_pos, p.njnt, 3)
 *         self._jnt_axis = _wrap_mjtNum_2d(p.jnt_axis, p.njnt, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->jnt_solimp, __pyx_v_p->njnt, mjNIMP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_jnt_solimp);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_jnt_solimp);
  __pyx_v_self->_jnt_solimp = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1283
 *         self._jnt_solref = _wrap_mjtNum_2d(p.jnt_solref, p.njnt, mjNREF)
 *         self._jnt_solimp = _wrap_mjtNum_2d(p.jnt_solimp, p.njnt, mjNIMP)
 *         self._jnt_pos = _wrap_mjtNum_2d(p.jnt_pos, p.njnt, 3)             # <<<<<<<<<<<<<<
 *         self._jnt_axis = _wrap_mjtNum_2d(p.jnt_axis, p.njnt, 3)
 *         self._jnt_stiffness = _wrap_mjtNum_1d(p.jnt_stiffness, p.njnt)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->jnt_pos, __pyx_v_p->njnt, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_jnt_pos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_jnt_pos);
  __pyx_v_self->_jnt_pos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1284
 *         self._jnt_solimp = _wrap_mjtNum_2d(p.jnt_solimp, p.njnt, mjNIMP)
 *         self._jnt_pos = _wrap_mjtNum_2d(p.jnt_pos, p.njnt, 3)
 *         self._jnt_axis = _wrap_mjtNum_2d(p.jnt_axis, p.njnt, 3)             # <<<<<<<<<<<<<<
 *         self._jnt_stiffness = _wrap_mjtNum_1d(p.jnt_stiffness, p.njnt)
 *         self._jnt_range = _wrap_mjtNum_2d(p.jnt_range, p.njnt, 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->jnt_axis, __pyx_v_p->njnt, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_jnt_axis);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_jnt_axis);
  __pyx_v_self->_jnt_axis = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1285
 *         self._jnt_pos = _wrap_mjtNum_2d(p.jnt_pos, p.njnt, 3)
 *         self._jnt_axis = _wrap_mjtNum_2d(p.jnt_axis, p.njnt, 3)
 *         self._jnt_stiffness = _wrap_mjtNum_1d(p.jnt_stiffness, p.njnt)             # <<<<<<<<<<<<<<
 *         self._jnt_range = _wrap_mjtNum_2d(p.jnt_range, p.njnt, 2)
 *         self._jnt_margin = _wrap_mjtNum_1d(p.jnt_margin, p.njnt)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->jnt_stiffness, __pyx_v_p->njnt)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_jnt_stiffness);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_jnt_stiffness);
  __pyx_v_self->_jnt_stiffness = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1286
 *         self._jnt_axis = _wrap_mjtNum_2d(p.jnt_axis, p.njnt, 3)
 *         self._jnt_stiffness = _wrap_mjtNum_1d(p.jnt_stiffness, p.njnt)
 *         self._jnt_range = _wrap_mjtNum_2d(p.jnt_range, p.njnt, 2)             # <<<<<<<<<<<<<<
 *         self._jnt_margin = _wrap_mjtNum_1d(p.jnt_margin, p.njnt)
 *         self._jnt_user = _wrap_mjtNum_2d(p.jnt_user, p.njnt, p.nuser_jnt)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->jnt_range, __pyx_v_p->njnt, 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_jnt_range);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_jnt_range);
  __pyx_v_self->_jnt_range = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1287
 *         self._jnt_stiffness = _wrap_mjtNum_1d(p.jnt_stiffness, p.njnt)
 *         self._jnt_range = _wrap_mjtNum_2d(p.jnt_range, p.njnt, 2)
 *         self._jnt_margin = _wrap_mjtNum_1d(p.jnt_margin, p.njnt)             # <<<<<<<<<<<<<<
 *         self._jnt_user = _wrap_mjtNum_2d(p.jnt_user, p.njnt, p.nuser_jnt)
 *         self._dof_bodyid = _wrap_int_1d(p.dof_bodyid, p.nv)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->jnt_margin, __pyx_v_p->njnt)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_jnt_margin);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_jnt_margin);
  __pyx_v_self->_jnt_margin = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1288
 *         self._jnt_range = _wrap_mjtNum_2d(p.jnt_range, p.njnt, 2)
 *         self._jnt_margin = _wrap_mjtNum_1d(p.jnt_margin, p.njnt)
 *         self._jnt_user = _wrap_mjtNum_2d(p.jnt_user, p.njnt, p.nuser_jnt)             # <<<<<<<<<<<<<<
 *         self._dof_bodyid = _wrap_int_1d(p.dof_bodyid, p.nv)
 *         self._dof_jntid = _wrap_int_1d(p.dof_jntid, p.nv)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->jnt_user, __pyx_v_p->njnt, __pyx_v_p->nuser_jnt)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_jnt_user);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_jnt_user);
  __pyx_v_self->_jnt_user = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1289
 *         self._jnt_margin = _wrap_mjtNum_1d(p.jnt_margin, p.njnt)
 *         self._jnt_user = _wrap_mjtNum_2d(p.jnt_user, p.njnt, p.nuser_jnt)
 *         self._dof_bodyid = _wrap_int_1d(p.dof_bodyid, p.nv)             # <<<<<<<<<<<<<<
 *         self._dof_jntid = _wrap_int_1d(p.dof_jntid, p.nv)
 *         self._dof_parentid = _wrap_int_1d(p.dof_parentid, p.nv)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->dof_bodyid, __pyx_v_p->nv)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_dof_bodyid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_dof_bodyid);
  __pyx_v_self->_dof_bodyid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1290
 *         self._jnt_user = _wrap_mjtNum_2d(p.jnt_user, p.njnt, p.nuser_jnt)
 *         self._dof_bodyid = _wrap_int_1d(p.dof_bodyid, p.nv)
 *         self._dof_jntid = _wrap_int_1d(p.dof_jntid, p.nv)             # <<<<<<<<<<<<<<
 *         self._dof_parentid = _wrap_int_1d(p.dof_parentid, p.nv)
 *         self._dof_Madr = _wrap_int_1d(p.dof_Madr, p.nv)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->dof_jntid, __pyx_v_p->nv)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_dof_jntid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_dof_jntid);
  __pyx_v_self->_dof_jntid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1291
 *         self._dof_bodyid = _wrap_int_1d(p.dof_bodyid, p.nv)
 *         self._dof_jntid = _wrap_int_1d(p.dof_jntid, p.nv)
 *         self._dof_parentid = _wrap_int_1d(p.dof_parentid, p.nv)             # <<<<<<<<<<<<<<
 *         self._dof_Madr = _wrap_int_1d(p.dof_Madr, p.nv)
 *         self._dof_simplenum = _wrap_int_1d(p.dof_simplenum, p.nv)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->dof_parentid, __pyx_v_p->nv)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1291, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_dof_parentid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_dof_parentid);
  __pyx_v_self->_dof_parentid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1292
 *         self._dof_jntid = _wrap_int_1d(p.dof_jntid, p.nv)
 *         self._dof_parentid = _wrap_int_1d(p.dof_parentid, p.nv)
 *         self._dof_Madr = _wrap_int_1d(p.dof_Madr, p.nv)             # <<<<<<<<<<<<<<
 *         self._dof_simplenum = _wrap_int_1d(p.dof_simplenum, p.nv)
 *         self._dof_solref = _wrap_mjtNum_2d(p.dof_solref, p.nv, mjNREF)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->dof_Madr, __pyx_v_p->nv)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_dof_Madr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_dof_Madr);
  __pyx_v_self->_dof_Madr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1293
 *         self._dof_parentid = _wrap_int_1d(p.dof_parentid, p.nv)
 *         self._dof_Madr = _wrap_int_1d(p.dof_Madr, p.nv)
 *         self._dof_simplenum = _wrap_int_1d(p.dof_simplenum, p.nv)             # <<<<<<<<<<<<<<
 *         self._dof_solref = _wrap_mjtNum_2d(p.dof_solref, p.nv, mjNREF)
 *         self._dof_solimp = _wrap_mjtNum_2d(p.dof_solimp, p.nv, mjNIMP)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->dof_simplenum, __pyx_v_p->nv)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_dof_simplenum);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_dof_simplenum);
  __pyx_v_self->_dof_simplenum = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1294
 *         self._dof_Madr = _wrap_int_1d(p.dof_Madr, p.nv)
 *         self._dof_simplenum = _wrap_int_1d(p.dof_simplenum, p.nv)
 *         self._dof_solref = _wrap_mjtNum_2d(p.dof_solref, p.nv, mjNREF)             # <<<<<<<<<<<<<<
 *         self._dof_solimp = _wrap_mjtNum_2d(p.dof_solimp, p.nv, mjNIMP)
 *         self._dof_frictionloss = _wrap_mjtNum_1d(p.dof_frictionloss, p.nv)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->dof_solref, __pyx_v_p->nv, mjNREF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_dof_solref);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_dof_solref);
  __pyx_v_self->_dof_solref = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1295
 *         self._dof_simplenum = _wrap_int_1d(p.dof_simplenum, p.nv)
 *         self._dof_solref = _wrap_mjtNum_2d(p.dof_solref, p.nv, mjNREF)
 *         self._dof_solimp = _wrap_mjtNum_2d(p.dof_solimp, p.nv, mjNIMP)             # <<<<<<<<<<<<<<
 *         self._dof_frictionloss = _wrap_mjtNum_1d(p.dof_frictionloss, p.nv)
 *         self._dof_armature = _wrap_mjtNum_1d(p.dof_armature, p.nv)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->dof_solimp, __pyx_v_p->nv, mjNIMP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_dof_solimp);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_dof_solimp);
  __pyx_v_self->_dof_solimp = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1296
 *         self._dof_solref = _wrap_mjtNum_2d(p.dof_solref, p.nv, mjNREF)
 *         self._dof_solimp = _wrap_mjtNum_2d(p.dof_solimp, p.nv, mjNIMP)
 *         self._dof_frictionloss = _wrap_mjtNum_1d(p.dof_frictionloss, p.nv)             # <<<<<<<<<<<<<<
 *         self._dof_armature = _wrap_mjtNum_1d(p.dof_armature, p.nv)
 *         self._dof_damping = _wrap_mjtNum_1d(p.dof_damping, p.nv)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->dof_frictionloss, __pyx_v_p->nv)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_dof_frictionloss);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_dof_frictionloss);
  __pyx_v_self->_dof_frictionloss = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1297
 *         self._dof_solimp = _wrap_mjtNum_2d(p.dof_solimp, p.nv, mjNIMP)
 *         self._dof_frictionloss = _wrap_mjtNum_1d(p.dof_frictionloss, p.nv)
 *         self._dof_armature = _wrap_mjtNum_1d(p.dof_armature, p.nv)             # <<<<<<<<<<<<<<
 *         self._dof_damping = _wrap_mjtNum_1d(p.dof_damping, p.nv)
 *         self._dof_invweight0 = _wrap_mjtNum_1d(p.dof_invweight0, p.nv)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->dof_armature, __pyx_v_p->nv)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_dof_armature);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_dof_armature);
  __pyx_v_self->_dof_armature = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1298
 *         self._dof_frictionloss = _wrap_mjtNum_1d(p.dof_frictionloss, p.nv)
 *         self._dof_armature = _wrap_mjtNum_1d(p.dof_armature, p.nv)
 *         self._dof_damping = _wrap_mjtNum_1d(p.dof_damping, p.nv)             # <<<<<<<<<<<<<<
 *         self._dof_invweight0 = _wrap_mjtNum_1d(p.dof_invweight0, p.nv)
 *         self._dof_M0 = _wrap_mjtNum_1d(p.dof_M0, p.nv)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->dof_damping, __pyx_v_p->nv)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_dof_damping);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_dof_damping);
  __pyx_v_self->_dof_damping = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1299
 *         self._dof_armature = _wrap_mjtNum_1d(p.dof_armature, p.nv)
 *         self._dof_damping = _wrap_mjtNum_1d(p.dof_damping, p.nv)
 *         self._dof_invweight0 = _wrap_mjtNum_1d(p.dof_invweight0, p.nv)             # <<<<<<<<<<<<<<
 *         self._dof_M0 = _wrap_mjtNum_1d(p.dof_M0, p.nv)
 *         self._geom_type = _wrap_int_1d(p.geom_type, p.ngeom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->dof_invweight0, __pyx_v_p->nv)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_dof_invweight0);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_dof_invweight0);
  __pyx_v_self->_dof_invweight0 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1300
 *         self._dof_damping = _wrap_mjtNum_1d(p.dof_damping, p.nv)
 *         self._dof_invweight0 = _wrap_mjtNum_1d(p.dof_invweight0, p.nv)
 *         self._dof_M0 = _wrap_mjtNum_1d(p.dof_M0, p.nv)             # <<<<<<<<<<<<<<
 *         self._geom_type = _wrap_int_1d(p.geom_type, p.ngeom)
 *         self._geom_contype = _wrap_int_1d(p.geom_contype, p.ngeom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->dof_M0, __pyx_v_p->nv)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_dof_M0);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_dof_M0);
  __pyx_v_self->_dof_M0 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1301
 *         self._dof_invweight0 = _wrap_mjtNum_1d(p.dof_invweight0, p.nv)
 *         self._dof_M0 = _wrap_mjtNum_1d(p.dof_M0, p.nv)
 *         self._geom_type = _wrap_int_1d(p.geom_type, p.ngeom)             # <<<<<<<<<<<<<<
 *         self._geom_contype = _wrap_int_1d(p.geom_contype, p.ngeom)
 *         self._geom_conaffinity = _wrap_int_1d(p.geom_conaffinity, p.ngeom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->geom_type, __pyx_v_p->ngeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_type);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_type);
  __pyx_v_self->_geom_type = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1302
 *         self._dof_M0 = _wrap_mjtNum_1d(p.dof_M0, p.nv)
 *         self._geom_type = _wrap_int_1d(p.geom_type, p.ngeom)
 *         self._geom_contype = _wrap_int_1d(p.geom_contype, p.ngeom)             # <<<<<<<<<<<<<<
 *         self._geom_conaffinity = _wrap_int_1d(p.geom_conaffinity, p.ngeom)
 *         self._geom_condim = _wrap_int_1d(p.geom_condim, p.ngeom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->geom_contype, __pyx_v_p->ngeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_contype);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_contype);
  __pyx_v_self->_geom_contype = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1303
 *         self._geom_type = _wrap_int_1d(p.geom_type, p.ngeom)
 *         self._geom_contype = _wrap_int_1d(p.geom_contype, p.ngeom)
 *         self._geom_conaffinity = _wrap_int_1d(p.geom_conaffinity, p.ngeom)             # <<<<<<<<<<<<<<
 *         self._geom_condim = _wrap_int_1d(p.geom_condim, p.ngeom)
 *         self._geom_bodyid = _wrap_int_1d(p.geom_bodyid, p.ngeom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->geom_conaffinity, __pyx_v_p->ngeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_conaffinity);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_conaffinity);
  __pyx_v_self->_geom_conaffinity = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1304
 *         self._geom_contype = _wrap_int_1d(p.geom_contype, p.ngeom)
 *         self._geom_conaffinity = _wrap_int_1d(p.geom_conaffinity, p.ngeom)
 *         self._geom_condim = _wrap_int_1d(p.geom_condim, p.ngeom)             # <<<<<<<<<<<<<<
 *         self._geom_bodyid = _wrap_int_1d(p.geom_bodyid, p.ngeom)
 *         self._geom_dataid = _wrap_int_1d(p.geom_dataid, p.ngeom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->geom_condim, __pyx_v_p->ngeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_condim);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_condim);
  __pyx_v_self->_geom_condim = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1305
 *         self._geom_conaffinity = _wrap_int_1d(p.geom_conaffinity, p.ngeom)
 *         self._geom_condim = _wrap_int_1d(p.geom_condim, p.ngeom)
 *         self._geom_bodyid = _wrap_int_1d(p.geom_bodyid, p.ngeom)             # <<<<<<<<<<<<<<
 *         self._geom_dataid = _wrap_int_1d(p.geom_dataid, p.ngeom)
 *         self._geom_matid = _wrap_int_1d(p.geom_matid, p.ngeom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->geom_bodyid, __pyx_v_p->ngeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_bodyid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_bodyid);
  __pyx_v_self->_geom_bodyid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1306
 *         self._geom_condim = _wrap_int_1d(p.geom_condim, p.ngeom)
 *         self._geom_bodyid = _wrap_int_1d(p.geom_bodyid, p.ngeom)
 *         self._geom_dataid = _wrap_int_1d(p.geom_dataid, p.ngeom)             # <<<<<<<<<<<<<<
 *         self._geom_matid = _wrap_int_1d(p.geom_matid, p.ngeom)
 *         self._geom_group = _wrap_int_1d(p.geom_group, p.ngeom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->geom_dataid, __pyx_v_p->ngeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_dataid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_dataid);
  __pyx_v_self->_geom_dataid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1307
 *         self._geom_bodyid = _wrap_int_1d(p.geom_bodyid, p.ngeom)
 *         self._geom_dataid = _wrap_int_1d(p.geom_dataid, p.ngeom)
 *         self._geom_matid = _wrap_int_1d(p.geom_matid, p.ngeom)             # <<<<<<<<<<<<<<
 *         self._geom_group = _wrap_int_1d(p.geom_group, p.ngeom)
 *         self._geom_priority = _wrap_int_1d(p.geom_priority, p.ngeom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->geom_matid, __pyx_v_p->ngeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_matid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_matid);
  __pyx_v_self->_geom_matid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1308
 *         self._geom_dataid = _wrap_int_1d(p.geom_dataid, p.ngeom)
 *         self._geom_matid = _wrap_int_1d(p.geom_matid, p.ngeom)
 *         self._geom_group = _wrap_int_1d(p.geom_group, p.ngeom)             # <<<<<<<<<<<<<<
 *         self._geom_priority = _wrap_int_1d(p.geom_priority, p.ngeom)
 *         self._geom_sameframe = _wrap_mjtByte_1d(p.geom_sameframe, p.ngeom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->geom_group, __pyx_v_p->ngeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_group);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_group);
  __pyx_v_self->_geom_group = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1309
 *         self._geom_matid = _wrap_int_1d(p.geom_matid, p.ngeom)
 *         self._geom_group = _wrap_int_1d(p.geom_group, p.ngeom)
 *         self._geom_priority = _wrap_int_1d(p.geom_priority, p.ngeom)             # <<<<<<<<<<<<<<
 *         self._geom_sameframe = _wrap_mjtByte_1d(p.geom_sameframe, p.ngeom)
 *         self._geom_solmix = _wrap_mjtNum_1d(p.geom_solmix, p.ngeom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->geom_priority, __pyx_v_p->ngeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_priority);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_priority);
  __pyx_v_self->_geom_priority = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1310
 *         self._geom_group = _wrap_int_1d(p.geom_group, p.ngeom)
 *         self._geom_priority = _wrap_int_1d(p.geom_priority, p.ngeom)
 *         self._geom_sameframe = _wrap_mjtByte_1d(p.geom_sameframe, p.ngeom)             # <<<<<<<<<<<<<<
 *         self._geom_solmix = _wrap_mjtNum_1d(p.geom_solmix, p.ngeom)
 *         self._geom_solref = _wrap_mjtNum_2d(p.geom_solref, p.ngeom, mjNREF)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(__pyx_v_p->geom_sameframe, __pyx_v_p->ngeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_sameframe);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_sameframe);
  __pyx_v_self->_geom_sameframe = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1311
 *         self._geom_priority = _wrap_int_1d(p.geom_priority, p.ngeom)
 *         self._geom_sameframe = _wrap_mjtByte_1d(p.geom_sameframe, p.ngeom)
 *         self._geom_solmix = _wrap_mjtNum_1d(p.geom_solmix, p.ngeom)             # <<<<<<<<<<<<<<
 *         self._geom_solref = _wrap_mjtNum_2d(p.geom_solref, p.ngeom, mjNREF)
 *         self._geom_solimp = _wrap_mjtNum_2d(p.geom_solimp, p.ngeom, mjNIMP)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->geom_solmix, __pyx_v_p->ngeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_solmix);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_solmix);
  __pyx_v_self->_geom_solmix = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1312
 *         self._geom_sameframe = _wrap_mjtByte_1d(p.geom_sameframe, p.ngeom)
 *         self._geom_solmix = _wrap_mjtNum_1d(p.geom_solmix, p.ngeom)
 *         self._geom_solref = _wrap_mjtNum_2d(p.geom_solref, p.ngeom, mjNREF)             # <<<<<<<<<<<<<<
 *         self._geom_solimp = _wrap_mjtNum_2d(p.geom_solimp, p.ngeom, mjNIMP)
 *         self._geom_size = _wrap_mjtNum_2d(p.geom_size, p.ngeom, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->geom_solref, __pyx_v_p->ngeom, mjNREF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_solref);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_solref);
  __pyx_v_self->_geom_solref = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1313
 *         self._geom_solmix = _wrap_mjtNum_1d(p.geom_solmix, p.ngeom)
 *         self._geom_solref = _wrap_mjtNum_2d(p.geom_solref, p.ngeom, mjNREF)
 *         self._geom_solimp = _wrap_mjtNum_2d(p.geom_solimp, p.ngeom, mjNIMP)             # <<<<<<<<<<<<<<
 *         self._geom_size = _wrap_mjtNum_2d(p.geom_size, p.ngeom, 3)
 *         self._geom_rbound = _wrap_mjtNum_1d(p.geom_rbound, p.ngeom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->geom_solimp, __pyx_v_p->ngeom, mjNIMP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_solimp);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_solimp);
  __pyx_v_self->_geom_solimp = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1314
 *         self._geom_solref = _wrap_mjtNum_2d(p.geom_solref, p.ngeom, mjNREF)
 *         self._geom_solimp = _wrap_mjtNum_2d(p.geom_solimp, p.ngeom, mjNIMP)
 *         self._geom_size = _wrap_mjtNum_2d(p.geom_size, p.ngeom, 3)             # <<<<<<<<<<<<<<
 *         self._geom_rbound = _wrap_mjtNum_1d(p.geom_rbound, p.ngeom)
 *         self._geom_pos = _wrap_mjtNum_2d(p.geom_pos, p.ngeom, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->geom_size, __pyx_v_p->ngeom, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_size);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_size);
  __pyx_v_self->_geom_size = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1315
 *         self._geom_solimp = _wrap_mjtNum_2d(p.geom_solimp, p.ngeom, mjNIMP)
 *         self._geom_size = _wrap_mjtNum_2d(p.geom_size, p.ngeom, 3)
 *         self._geom_rbound = _wrap_mjtNum_1d(p.geom_rbound, p.ngeom)             # <<<<<<<<<<<<<<
 *         self._geom_pos = _wrap_mjtNum_2d(p.geom_pos, p.ngeom, 3)
 *         self._geom_quat = _wrap_mjtNum_2d(p.geom_quat, p.ngeom, 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->geom_rbound, __pyx_v_p->ngeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_rbound);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_rbound);
  __pyx_v_self->_geom_rbound = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1316
 *         self._geom_size = _wrap_mjtNum_2d(p.geom_size, p.ngeom, 3)
 *         self._geom_rbound = _wrap_mjtNum_1d(p.geom_rbound, p.ngeom)
 *         self._geom_pos = _wrap_mjtNum_2d(p.geom_pos, p.ngeom, 3)             # <<<<<<<<<<<<<<
 *         self._geom_quat = _wrap_mjtNum_2d(p.geom_quat, p.ngeom, 4)
 *         self._geom_friction = _wrap_mjtNum_2d(p.geom_friction, p.ngeom, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->geom_pos, __pyx_v_p->ngeom, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_pos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_pos);
  __pyx_v_self->_geom_pos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1317
 *         self._geom_rbound = _wrap_mjtNum_1d(p.geom_rbound, p.ngeom)
 *         self._geom_pos = _wrap_mjtNum_2d(p.geom_pos, p.ngeom, 3)
 *         self._geom_quat = _wrap_mjtNum_2d(p.geom_quat, p.ngeom, 4)             # <<<<<<<<<<<<<<
 *         self._geom_friction = _wrap_mjtNum_2d(p.geom_friction, p.ngeom, 3)
 *         self._geom_margin = _wrap_mjtNum_1d(p.geom_margin, p.ngeom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->geom_quat, __pyx_v_p->ngeom, 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_quat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_quat);
  __pyx_v_self->_geom_quat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1318
 *         self._geom_pos = _wrap_mjtNum_2d(p.geom_pos, p.ngeom, 3)
 *         self._geom_quat = _wrap_mjtNum_2d(p.geom_quat, p.ngeom, 4)
 *         self._geom_friction = _wrap_mjtNum_2d(p.geom_friction, p.ngeom, 3)             # <<<<<<<<<<<<<<
 *         self._geom_margin = _wrap_mjtNum_1d(p.geom_margin, p.ngeom)
 *         self._geom_gap = _wrap_mjtNum_1d(p.geom_gap, p.ngeom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->geom_friction, __pyx_v_p->ngeom, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_friction);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_friction);
  __pyx_v_self->_geom_friction = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1319
 *         self._geom_quat = _wrap_mjtNum_2d(p.geom_quat, p.ngeom, 4)
 *         self._geom_friction = _wrap_mjtNum_2d(p.geom_friction, p.ngeom, 3)
 *         self._geom_margin = _wrap_mjtNum_1d(p.geom_margin, p.ngeom)             # <<<<<<<<<<<<<<
 *         self._geom_gap = _wrap_mjtNum_1d(p.geom_gap, p.ngeom)
 *         self._geom_user = _wrap_mjtNum_2d(p.geom_user, p.ngeom, p.nuser_geom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->geom_margin, __pyx_v_p->ngeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_margin);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_margin);
  __pyx_v_self->_geom_margin = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1320
 *         self._geom_friction = _wrap_mjtNum_2d(p.geom_friction, p.ngeom, 3)
 *         self._geom_margin = _wrap_mjtNum_1d(p.geom_margin, p.ngeom)
 *         self._geom_gap = _wrap_mjtNum_1d(p.geom_gap, p.ngeom)             # <<<<<<<<<<<<<<
 *         self._geom_user = _wrap_mjtNum_2d(p.geom_user, p.ngeom, p.nuser_geom)
 *         self._geom_rgba = _wrap_float_2d(p.geom_rgba, p.ngeom, 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->geom_gap, __pyx_v_p->ngeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_gap);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_gap);
  __pyx_v_self->_geom_gap = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1321
 *         self._geom_margin = _wrap_mjtNum_1d(p.geom_margin, p.ngeom)
 *         self._geom_gap = _wrap_mjtNum_1d(p.geom_gap, p.ngeom)
 *         self._geom_user = _wrap_mjtNum_2d(p.geom_user, p.ngeom, p.nuser_geom)             # <<<<<<<<<<<<<<
 *         self._geom_rgba = _wrap_float_2d(p.geom_rgba, p.ngeom, 4)
 *         self._site_type = _wrap_int_1d(p.site_type, p.nsite)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->geom_user, __pyx_v_p->ngeom, __pyx_v_p->nuser_geom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_user);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_user);
  __pyx_v_self->_geom_user = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1322
 *         self._geom_gap = _wrap_mjtNum_1d(p.geom_gap, p.ngeom)
 *         self._geom_user = _wrap_mjtNum_2d(p.geom_user, p.ngeom, p.nuser_geom)
 *         self._geom_rgba = _wrap_float_2d(p.geom_rgba, p.ngeom, 4)             # <<<<<<<<<<<<<<
 *         self._site_type = _wrap_int_1d(p.site_type, p.nsite)
 *         self._site_bodyid = _wrap_int_1d(p.site_bodyid, p.nsite)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->geom_rgba, __pyx_v_p->ngeom, 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_rgba);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_rgba);
  __pyx_v_self->_geom_rgba = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1323
 *         self._geom_user = _wrap_mjtNum_2d(p.geom_user, p.ngeom, p.nuser_geom)
 *         self._geom_rgba = _wrap_float_2d(p.geom_rgba, p.ngeom, 4)
 *         self._site_type = _wrap_int_1d(p.site_type, p.nsite)             # <<<<<<<<<<<<<<
 *         self._site_bodyid = _wrap_int_1d(p.site_bodyid, p.nsite)
 *         self._site_matid = _wrap_int_1d(p.site_matid, p.nsite)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->site_type, __pyx_v_p->nsite)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_site_type);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_site_type);
  __pyx_v_self->_site_type = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1324
 *         self._geom_rgba = _wrap_float_2d(p.geom_rgba, p.ngeom, 4)
 *         self._site_type = _wrap_int_1d(p.site_type, p.nsite)
 *         self._site_bodyid = _wrap_int_1d(p.site_bodyid, p.nsite)             # <<<<<<<<<<<<<<
 *         self._site_matid = _wrap_int_1d(p.site_matid, p.nsite)
 *         self._site_group = _wrap_int_1d(p.site_group, p.nsite)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->site_bodyid, __pyx_v_p->nsite)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_site_bodyid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_site_bodyid);
  __pyx_v_self->_site_bodyid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1325
 *         self._site_type = _wrap_int_1d(p.site_type, p.nsite)
 *         self._site_bodyid = _wrap_int_1d(p.site_bodyid, p.nsite)
 *         self._site_matid = _wrap_int_1d(p.site_matid, p.nsite)             # <<<<<<<<<<<<<<
 *         self._site_group = _wrap_int_1d(p.site_group, p.nsite)
 *         self._site_sameframe = _wrap_mjtByte_1d(p.site_sameframe, p.nsite)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->site_matid, __pyx_v_p->nsite)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_site_matid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_site_matid);
  __pyx_v_self->_site_matid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1326
 *         self._site_bodyid = _wrap_int_1d(p.site_bodyid, p.nsite)
 *         self._site_matid = _wrap_int_1d(p.site_matid, p.nsite)
 *         self._site_group = _wrap_int_1d(p.site_group, p.nsite)             # <<<<<<<<<<<<<<
 *         self._site_sameframe = _wrap_mjtByte_1d(p.site_sameframe, p.nsite)
 *         self._site_size = _wrap_mjtNum_2d(p.site_size, p.nsite, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->site_group, __pyx_v_p->nsite)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_site_group);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_site_group);
  __pyx_v_self->_site_group = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1327
 *         self._site_matid = _wrap_int_1d(p.site_matid, p.nsite)
 *         self._site_group = _wrap_int_1d(p.site_group, p.nsite)
 *         self._site_sameframe = _wrap_mjtByte_1d(p.site_sameframe, p.nsite)             # <<<<<<<<<<<<<<
 *         self._site_size = _wrap_mjtNum_2d(p.site_size, p.nsite, 3)
 *         self._site_pos = _wrap_mjtNum_2d(p.site_pos, p.nsite, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(__pyx_v_p->site_sameframe, __pyx_v_p->nsite)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_site_sameframe);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_site_sameframe);
  __pyx_v_self->_site_sameframe = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1328
 *         self._site_group = _wrap_int_1d(p.site_group, p.nsite)
 *         self._site_sameframe = _wrap_mjtByte_1d(p.site_sameframe, p.nsite)
 *         self._site_size = _wrap_mjtNum_2d(p.site_size, p.nsite, 3)             # <<<<<<<<<<<<<<
 *         self._site_pos = _wrap_mjtNum_2d(p.site_pos, p.nsite, 3)
 *         self._site_quat = _wrap_mjtNum_2d(p.site_quat, p.nsite, 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->site_size, __pyx_v_p->nsite, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_site_size);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_site_size);
  __pyx_v_self->_site_size = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1329
 *         self._site_sameframe = _wrap_mjtByte_1d(p.site_sameframe, p.nsite)
 *         self._site_size = _wrap_mjtNum_2d(p.site_size, p.nsite, 3)
 *         self._site_pos = _wrap_mjtNum_2d(p.site_pos, p.nsite, 3)             # <<<<<<<<<<<<<<
 *         self._site_quat = _wrap_mjtNum_2d(p.site_quat, p.nsite, 4)
 *         self._site_user = _wrap_mjtNum_2d(p.site_user, p.nsite, p.nuser_site)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->site_pos, __pyx_v_p->nsite, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_site_pos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_site_pos);
  __pyx_v_self->_site_pos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1330
 *         self._site_size = _wrap_mjtNum_2d(p.site_size, p.nsite, 3)
 *         self._site_pos = _wrap_mjtNum_2d(p.site_pos, p.nsite, 3)
 *         self._site_quat = _wrap_mjtNum_2d(p.site_quat, p.nsite, 4)             # <<<<<<<<<<<<<<
 *         self._site_user = _wrap_mjtNum_2d(p.site_user, p.nsite, p.nuser_site)
 *         self._site_rgba = _wrap_float_2d(p.site_rgba, p.nsite, 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->site_quat, __pyx_v_p->nsite, 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_site_quat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_site_quat);
  __pyx_v_self->_site_quat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1331
 *         self._site_pos = _wrap_mjtNum_2d(p.site_pos, p.nsite, 3)
 *         self._site_quat = _wrap_mjtNum_2d(p.site_quat, p.nsite, 4)
 *         self._site_user = _wrap_mjtNum_2d(p.site_user, p.nsite, p.nuser_site)             # <<<<<<<<<<<<<<
 *         self._site_rgba = _wrap_float_2d(p.site_rgba, p.nsite, 4)
 *         self._cam_mode = _wrap_int_1d(p.cam_mode, p.ncam)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->site_user, __pyx_v_p->nsite, __pyx_v_p->nuser_site)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_site_user);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_site_user);
  __pyx_v_self->_site_user = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1332
 *         self._site_quat = _wrap_mjtNum_2d(p.site_quat, p.nsite, 4)
 *         self._site_user = _wrap_mjtNum_2d(p.site_user, p.nsite, p.nuser_site)
 *         self._site_rgba = _wrap_float_2d(p.site_rgba, p.nsite, 4)             # <<<<<<<<<<<<<<
 *         self._cam_mode = _wrap_int_1d(p.cam_mode, p.ncam)
 *         self._cam_bodyid = _wrap_int_1d(p.cam_bodyid, p.ncam)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->site_rgba, __pyx_v_p->nsite, 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_site_rgba);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_site_rgba);
  __pyx_v_self->_site_rgba = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1333
 *         self._site_user = _wrap_mjtNum_2d(p.site_user, p.nsite, p.nuser_site)
 *         self._site_rgba = _wrap_float_2d(p.site_rgba, p.nsite, 4)
 *         self._cam_mode = _wrap_int_1d(p.cam_mode, p.ncam)             # <<<<<<<<<<<<<<
 *         self._cam_bodyid = _wrap_int_1d(p.cam_bodyid, p.ncam)
 *         self._cam_targetbodyid = _wrap_int_1d(p.cam_targetbodyid, p.ncam)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->cam_mode, __pyx_v_p->ncam)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cam_mode);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cam_mode);
  __pyx_v_self->_cam_mode = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1334
 *         self._site_rgba = _wrap_float_2d(p.site_rgba, p.nsite, 4)
 *         self._cam_mode = _wrap_int_1d(p.cam_mode, p.ncam)
 *         self._cam_bodyid = _wrap_int_1d(p.cam_bodyid, p.ncam)             # <<<<<<<<<<<<<<
 *         self._cam_targetbodyid = _wrap_int_1d(p.cam_targetbodyid, p.ncam)
 *         self._cam_pos = _wrap_mjtNum_2d(p.cam_pos, p.ncam, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->cam_bodyid, __pyx_v_p->ncam)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cam_bodyid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cam_bodyid);
  __pyx_v_self->_cam_bodyid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1335
 *         self._cam_mode = _wrap_int_1d(p.cam_mode, p.ncam)
 *         self._cam_bodyid = _wrap_int_1d(p.cam_bodyid, p.ncam)
 *         self._cam_targetbodyid = _wrap_int_1d(p.cam_targetbodyid, p.ncam)             # <<<<<<<<<<<<<<
 *         self._cam_pos = _wrap_mjtNum_2d(p.cam_pos, p.ncam, 3)
 *         self._cam_quat = _wrap_mjtNum_2d(p.cam_quat, p.ncam, 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->cam_targetbodyid, __pyx_v_p->ncam)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cam_targetbodyid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cam_targetbodyid);
  __pyx_v_self->_cam_targetbodyid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1336
 *         self._cam_bodyid = _wrap_int_1d(p.cam_bodyid, p.ncam)
 *         self._cam_targetbodyid = _wrap_int_1d(p.cam_targetbodyid, p.ncam)
 *         self._cam_pos = _wrap_mjtNum_2d(p.cam_pos, p.ncam, 3)             # <<<<<<<<<<<<<<
 *         self._cam_quat = _wrap_mjtNum_2d(p.cam_quat, p.ncam, 4)
 *         self._cam_poscom0 = _wrap_mjtNum_2d(p.cam_poscom0, p.ncam, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->cam_pos, __pyx_v_p->ncam, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cam_pos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cam_pos);
  __pyx_v_self->_cam_pos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1337
 *         self._cam_targetbodyid = _wrap_int_1d(p.cam_targetbodyid, p.ncam)
 *         self._cam_pos = _wrap_mjtNum_2d(p.cam_pos, p.ncam, 3)
 *         self._cam_quat = _wrap_mjtNum_2d(p.cam_quat, p.ncam, 4)             # <<<<<<<<<<<<<<
 *         self._cam_poscom0 = _wrap_mjtNum_2d(p.cam_poscom0, p.ncam, 3)
 *         self._cam_pos0 = _wrap_mjtNum_2d(p.cam_pos0, p.ncam, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->cam_quat, __pyx_v_p->ncam, 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cam_quat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cam_quat);
  __pyx_v_self->_cam_quat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1338
 *         self._cam_pos = _wrap_mjtNum_2d(p.cam_pos, p.ncam, 3)
 *         self._cam_quat = _wrap_mjtNum_2d(p.cam_quat, p.ncam, 4)
 *         self._cam_poscom0 = _wrap_mjtNum_2d(p.cam_poscom0, p.ncam, 3)             # <<<<<<<<<<<<<<
 *         self._cam_pos0 = _wrap_mjtNum_2d(p.cam_pos0, p.ncam, 3)
 *         self._cam_mat0 = _wrap_mjtNum_2d(p.cam_mat0, p.ncam, 9)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->cam_poscom0, __pyx_v_p->ncam, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cam_poscom0);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cam_poscom0);
  __pyx_v_self->_cam_poscom0 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1339
 *         self._cam_quat = _wrap_mjtNum_2d(p.cam_quat, p.ncam, 4)
 *         self._cam_poscom0 = _wrap_mjtNum_2d(p.cam_poscom0, p.ncam, 3)
 *         self._cam_pos0 = _wrap_mjtNum_2d(p.cam_pos0, p.ncam, 3)             # <<<<<<<<<<<<<<
 *         self._cam_mat0 = _wrap_mjtNum_2d(p.cam_mat0, p.ncam, 9)
 *         self._cam_fovy = _wrap_mjtNum_1d(p.cam_fovy, p.ncam)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->cam_pos0, __pyx_v_p->ncam, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cam_pos0);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cam_pos0);
  __pyx_v_self->_cam_pos0 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1340
 *         self._cam_poscom0 = _wrap_mjtNum_2d(p.cam_poscom0, p.ncam, 3)
 *         self._cam_pos0 = _wrap_mjtNum_2d(p.cam_pos0, p.ncam, 3)
 *         self._cam_mat0 = _wrap_mjtNum_2d(p.cam_mat0, p.ncam, 9)             # <<<<<<<<<<<<<<
 *         self._cam_fovy = _wrap_mjtNum_1d(p.cam_fovy, p.ncam)
 *         self._cam_ipd = _wrap_mjtNum_1d(p.cam_ipd, p.ncam)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->cam_mat0, __pyx_v_p->ncam, 9)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cam_mat0);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cam_mat0);
  __pyx_v_self->_cam_mat0 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1341
 *         self._cam_pos0 = _wrap_mjtNum_2d(p.cam_pos0, p.ncam, 3)
 *         self._cam_mat0 = _wrap_mjtNum_2d(p.cam_mat0, p.ncam, 9)
 *         self._cam_fovy = _wrap_mjtNum_1d(p.cam_fovy, p.ncam)             # <<<<<<<<<<<<<<
 *         self._cam_ipd = _wrap_mjtNum_1d(p.cam_ipd, p.ncam)
 *         self._cam_user = _wrap_mjtNum_2d(p.cam_user, p.ncam, p.nuser_cam)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->cam_fovy, __pyx_v_p->ncam)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cam_fovy);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cam_fovy);
  __pyx_v_self->_cam_fovy = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1342
 *         self._cam_mat0 = _wrap_mjtNum_2d(p.cam_mat0, p.ncam, 9)
 *         self._cam_fovy = _wrap_mjtNum_1d(p.cam_fovy, p.ncam)
 *         self._cam_ipd = _wrap_mjtNum_1d(p.cam_ipd, p.ncam)             # <<<<<<<<<<<<<<
 *         self._cam_user = _wrap_mjtNum_2d(p.cam_user, p.ncam, p.nuser_cam)
 *         self._light_mode = _wrap_int_1d(p.light_mode, p.nlight)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->cam_ipd, __pyx_v_p->ncam)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cam_ipd);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cam_ipd);
  __pyx_v_self->_cam_ipd = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1343
 *         self._cam_fovy = _wrap_mjtNum_1d(p.cam_fovy, p.ncam)
 *         self._cam_ipd = _wrap_mjtNum_1d(p.cam_ipd, p.ncam)
 *         self._cam_user = _wrap_mjtNum_2d(p.cam_user, p.ncam, p.nuser_cam)             # <<<<<<<<<<<<<<
 *         self._light_mode = _wrap_int_1d(p.light_mode, p.nlight)
 *         self._light_bodyid = _wrap_int_1d(p.light_bodyid, p.nlight)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->cam_user, __pyx_v_p->ncam, __pyx_v_p->nuser_cam)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cam_user);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cam_user);
  __pyx_v_self->_cam_user = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1344
 *         self._cam_ipd = _wrap_mjtNum_1d(p.cam_ipd, p.ncam)
 *         self._cam_user = _wrap_mjtNum_2d(p.cam_user, p.ncam, p.nuser_cam)
 *         self._light_mode = _wrap_int_1d(p.light_mode, p.nlight)             # <<<<<<<<<<<<<<
 *         self._light_bodyid = _wrap_int_1d(p.light_bodyid, p.nlight)
 *         self._light_targetbodyid = _wrap_int_1d(p.light_targetbodyid, p.nlight)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->light_mode, __pyx_v_p->nlight)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_mode);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_mode);
  __pyx_v_self->_light_mode = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1345
 *         self._cam_user = _wrap_mjtNum_2d(p.cam_user, p.ncam, p.nuser_cam)
 *         self._light_mode = _wrap_int_1d(p.light_mode, p.nlight)
 *         self._light_bodyid = _wrap_int_1d(p.light_bodyid, p.nlight)             # <<<<<<<<<<<<<<
 *         self._light_targetbodyid = _wrap_int_1d(p.light_targetbodyid, p.nlight)
 *         self._light_directional = _wrap_mjtByte_1d(p.light_directional, p.nlight)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->light_bodyid, __pyx_v_p->nlight)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_bodyid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_bodyid);
  __pyx_v_self->_light_bodyid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1346
 *         self._light_mode = _wrap_int_1d(p.light_mode, p.nlight)
 *         self._light_bodyid = _wrap_int_1d(p.light_bodyid, p.nlight)
 *         self._light_targetbodyid = _wrap_int_1d(p.light_targetbodyid, p.nlight)             # <<<<<<<<<<<<<<
 *         self._light_directional = _wrap_mjtByte_1d(p.light_directional, p.nlight)
 *         self._light_castshadow = _wrap_mjtByte_1d(p.light_castshadow, p.nlight)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->light_targetbodyid, __pyx_v_p->nlight)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_targetbodyid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_targetbodyid);
  __pyx_v_self->_light_targetbodyid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1347
 *         self._light_bodyid = _wrap_int_1d(p.light_bodyid, p.nlight)
 *         self._light_targetbodyid = _wrap_int_1d(p.light_targetbodyid, p.nlight)
 *         self._light_directional = _wrap_mjtByte_1d(p.light_directional, p.nlight)             # <<<<<<<<<<<<<<
 *         self._light_castshadow = _wrap_mjtByte_1d(p.light_castshadow, p.nlight)
 *         self._light_active = _wrap_mjtByte_1d(p.light_active, p.nlight)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(__pyx_v_p->light_directional, __pyx_v_p->nlight)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_directional);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_directional);
  __pyx_v_self->_light_directional = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1348
 *         self._light_targetbodyid = _wrap_int_1d(p.light_targetbodyid, p.nlight)
 *         self._light_directional = _wrap_mjtByte_1d(p.light_directional, p.nlight)
 *         self._light_castshadow = _wrap_mjtByte_1d(p.light_castshadow, p.nlight)             # <<<<<<<<<<<<<<
 *         self._light_active = _wrap_mjtByte_1d(p.light_active, p.nlight)
 *         self._light_pos = _wrap_mjtNum_2d(p.light_pos, p.nlight, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(__pyx_v_p->light_castshadow, __pyx_v_p->nlight)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_castshadow);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_castshadow);
  __pyx_v_self->_light_castshadow = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1349
 *         self._light_directional = _wrap_mjtByte_1d(p.light_directional, p.nlight)
 *         self._light_castshadow = _wrap_mjtByte_1d(p.light_castshadow, p.nlight)
 *         self._light_active = _wrap_mjtByte_1d(p.light_active, p.nlight)             # <<<<<<<<<<<<<<
 *         self._light_pos = _wrap_mjtNum_2d(p.light_pos, p.nlight, 3)
 *         self._light_dir = _wrap_mjtNum_2d(p.light_dir, p.nlight, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(__pyx_v_p->light_active, __pyx_v_p->nlight)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_active);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_active);
  __pyx_v_self->_light_active = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1350
 *         self._light_castshadow = _wrap_mjtByte_1d(p.light_castshadow, p.nlight)
 *         self._light_active = _wrap_mjtByte_1d(p.light_active, p.nlight)
 *         self._light_pos = _wrap_mjtNum_2d(p.light_pos, p.nlight, 3)             # <<<<<<<<<<<<<<
 *         self._light_dir = _wrap_mjtNum_2d(p.light_dir, p.nlight, 3)
 *         self._light_poscom0 = _wrap_mjtNum_2d(p.light_poscom0, p.nlight, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->light_pos, __pyx_v_p->nlight, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_pos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_pos);
  __pyx_v_self->_light_pos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1351
 *         self._light_active = _wrap_mjtByte_1d(p.light_active, p.nlight)
 *         self._light_pos = _wrap_mjtNum_2d(p.light_pos, p.nlight, 3)
 *         self._light_dir = _wrap_mjtNum_2d(p.light_dir, p.nlight, 3)             # <<<<<<<<<<<<<<
 *         self._light_poscom0 = _wrap_mjtNum_2d(p.light_poscom0, p.nlight, 3)
 *         self._light_pos0 = _wrap_mjtNum_2d(p.light_pos0, p.nlight, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->light_dir, __pyx_v_p->nlight, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_dir);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_dir);
  __pyx_v_self->_light_dir = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1352
 *         self._light_pos = _wrap_mjtNum_2d(p.light_pos, p.nlight, 3)
 *         self._light_dir = _wrap_mjtNum_2d(p.light_dir, p.nlight, 3)
 *         self._light_poscom0 = _wrap_mjtNum_2d(p.light_poscom0, p.nlight, 3)             # <<<<<<<<<<<<<<
 *         self._light_pos0 = _wrap_mjtNum_2d(p.light_pos0, p.nlight, 3)
 *         self._light_dir0 = _wrap_mjtNum_2d(p.light_dir0, p.nlight, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->light_poscom0, __pyx_v_p->nlight, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1352, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_poscom0);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_poscom0);
  __pyx_v_self->_light_poscom0 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1353
 *         self._light_dir = _wrap_mjtNum_2d(p.light_dir, p.nlight, 3)
 *         self._light_poscom0 = _wrap_mjtNum_2d(p.light_poscom0, p.nlight, 3)
 *         self._light_pos0 = _wrap_mjtNum_2d(p.light_pos0, p.nlight, 3)             # <<<<<<<<<<<<<<
 *         self._light_dir0 = _wrap_mjtNum_2d(p.light_dir0, p.nlight, 3)
 *         self._light_attenuation = _wrap_float_2d(p.light_attenuation, p.nlight, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->light_pos0, __pyx_v_p->nlight, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_pos0);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_pos0);
  __pyx_v_self->_light_pos0 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1354
 *         self._light_poscom0 = _wrap_mjtNum_2d(p.light_poscom0, p.nlight, 3)
 *         self._light_pos0 = _wrap_mjtNum_2d(p.light_pos0, p.nlight, 3)
 *         self._light_dir0 = _wrap_mjtNum_2d(p.light_dir0, p.nlight, 3)             # <<<<<<<<<<<<<<
 *         self._light_attenuation = _wrap_float_2d(p.light_attenuation, p.nlight, 3)
 *         self._light_cutoff = _wrap_float_1d(p.light_cutoff, p.nlight)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->light_dir0, __pyx_v_p->nlight, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_dir0);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_dir0);
  __pyx_v_self->_light_dir0 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1355
 *         self._light_pos0 = _wrap_mjtNum_2d(p.light_pos0, p.nlight, 3)
 *         self._light_dir0 = _wrap_mjtNum_2d(p.light_dir0, p.nlight, 3)
 *         self._light_attenuation = _wrap_float_2d(p.light_attenuation, p.nlight, 3)             # <<<<<<<<<<<<<<
 *         self._light_cutoff = _wrap_float_1d(p.light_cutoff, p.nlight)
 *         self._light_exponent = _wrap_float_1d(p.light_exponent, p.nlight)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->light_attenuation, __pyx_v_p->nlight, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_attenuation);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_attenuation);
  __pyx_v_self->_light_attenuation = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1356
 *         self._light_dir0 = _wrap_mjtNum_2d(p.light_dir0, p.nlight, 3)
 *         self._light_attenuation = _wrap_float_2d(p.light_attenuation, p.nlight, 3)
 *         self._light_cutoff = _wrap_float_1d(p.light_cutoff, p.nlight)             # <<<<<<<<<<<<<<
 *         self._light_exponent = _wrap_float_1d(p.light_exponent, p.nlight)
 *         self._light_ambient = _wrap_float_2d(p.light_ambient, p.nlight, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d(__pyx_v_p->light_cutoff, __pyx_v_p->nlight)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_cutoff);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_cutoff);
  __pyx_v_self->_light_cutoff = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1357
 *         self._light_attenuation = _wrap_float_2d(p.light_attenuation, p.nlight, 3)
 *         self._light_cutoff = _wrap_float_1d(p.light_cutoff, p.nlight)
 *         self._light_exponent = _wrap_float_1d(p.light_exponent, p.nlight)             # <<<<<<<<<<<<<<
 *         self._light_ambient = _wrap_float_2d(p.light_ambient, p.nlight, 3)
 *         self._light_diffuse = _wrap_float_2d(p.light_diffuse, p.nlight, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d(__pyx_v_p->light_exponent, __pyx_v_p->nlight)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_exponent);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_exponent);
  __pyx_v_self->_light_exponent = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1358
 *         self._light_cutoff = _wrap_float_1d(p.light_cutoff, p.nlight)
 *         self._light_exponent = _wrap_float_1d(p.light_exponent, p.nlight)
 *         self._light_ambient = _wrap_float_2d(p.light_ambient, p.nlight, 3)             # <<<<<<<<<<<<<<
 *         self._light_diffuse = _wrap_float_2d(p.light_diffuse, p.nlight, 3)
 *         self._light_specular = _wrap_float_2d(p.light_specular, p.nlight, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->light_ambient, __pyx_v_p->nlight, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_ambient);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_ambient);
  __pyx_v_self->_light_ambient = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1359
 *         self._light_exponent = _wrap_float_1d(p.light_exponent, p.nlight)
 *         self._light_ambient = _wrap_float_2d(p.light_ambient, p.nlight, 3)
 *         self._light_diffuse = _wrap_float_2d(p.light_diffuse, p.nlight, 3)             # <<<<<<<<<<<<<<
 *         self._light_specular = _wrap_float_2d(p.light_specular, p.nlight, 3)
 *         self._mesh_vertadr = _wrap_int_1d(p.mesh_vertadr, p.nmesh)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->light_diffuse, __pyx_v_p->nlight, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1359, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_diffuse);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_diffuse);
  __pyx_v_self->_light_diffuse = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1360
 *         self._light_ambient = _wrap_float_2d(p.light_ambient, p.nlight, 3)
 *         self._light_diffuse = _wrap_float_2d(p.light_diffuse, p.nlight, 3)
 *         self._light_specular = _wrap_float_2d(p.light_specular, p.nlight, 3)             # <<<<<<<<<<<<<<
 *         self._mesh_vertadr = _wrap_int_1d(p.mesh_vertadr, p.nmesh)
 *         self._mesh_vertnum = _wrap_int_1d(p.mesh_vertnum, p.nmesh)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->light_specular, __pyx_v_p->nlight, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_specular);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_specular);
  __pyx_v_self->_light_specular = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1361
 *         self._light_diffuse = _wrap_float_2d(p.light_diffuse, p.nlight, 3)
 *         self._light_specular = _wrap_float_2d(p.light_specular, p.nlight, 3)
 *         self._mesh_vertadr = _wrap_int_1d(p.mesh_vertadr, p.nmesh)             # <<<<<<<<<<<<<<
 *         self._mesh_vertnum = _wrap_int_1d(p.mesh_vertnum, p.nmesh)
 *         self._mesh_texcoordadr = _wrap_int_1d(p.mesh_texcoordadr, p.nmesh)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->mesh_vertadr, __pyx_v_p->nmesh)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mesh_vertadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mesh_vertadr);
  __pyx_v_self->_mesh_vertadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1362
 *         self._light_specular = _wrap_float_2d(p.light_specular, p.nlight, 3)
 *         self._mesh_vertadr = _wrap_int_1d(p.mesh_vertadr, p.nmesh)
 *         self._mesh_vertnum = _wrap_int_1d(p.mesh_vertnum, p.nmesh)             # <<<<<<<<<<<<<<
 *         self._mesh_texcoordadr = _wrap_int_1d(p.mesh_texcoordadr, p.nmesh)
 *         self._mesh_faceadr = _wrap_int_1d(p.mesh_faceadr, p.nmesh)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->mesh_vertnum, __pyx_v_p->nmesh)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1362, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mesh_vertnum);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mesh_vertnum);
  __pyx_v_self->_mesh_vertnum = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1363
 *         self._mesh_vertadr = _wrap_int_1d(p.mesh_vertadr, p.nmesh)
 *         self._mesh_vertnum = _wrap_int_1d(p.mesh_vertnum, p.nmesh)
 *         self._mesh_texcoordadr = _wrap_int_1d(p.mesh_texcoordadr, p.nmesh)             # <<<<<<<<<<<<<<
 *         self._mesh_faceadr = _wrap_int_1d(p.mesh_faceadr, p.nmesh)
 *         self._mesh_facenum = _wrap_int_1d(p.mesh_facenum, p.nmesh)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->mesh_texcoordadr, __pyx_v_p->nmesh)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mesh_texcoordadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mesh_texcoordadr);
  __pyx_v_self->_mesh_texcoordadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1364
 *         self._mesh_vertnum = _wrap_int_1d(p.mesh_vertnum, p.nmesh)
 *         self._mesh_texcoordadr = _wrap_int_1d(p.mesh_texcoordadr, p.nmesh)
 *         self._mesh_faceadr = _wrap_int_1d(p.mesh_faceadr, p.nmesh)             # <<<<<<<<<<<<<<
 *         self._mesh_facenum = _wrap_int_1d(p.mesh_facenum, p.nmesh)
 *         self._mesh_graphadr = _wrap_int_1d(p.mesh_graphadr, p.nmesh)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->mesh_faceadr, __pyx_v_p->nmesh)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mesh_faceadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mesh_faceadr);
  __pyx_v_self->_mesh_faceadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1365
 *         self._mesh_texcoordadr = _wrap_int_1d(p.mesh_texcoordadr, p.nmesh)
 *         self._mesh_faceadr = _wrap_int_1d(p.mesh_faceadr, p.nmesh)
 *         self._mesh_facenum = _wrap_int_1d(p.mesh_facenum, p.nmesh)             # <<<<<<<<<<<<<<
 *         self._mesh_graphadr = _wrap_int_1d(p.mesh_graphadr, p.nmesh)
 *         self._mesh_vert = _wrap_float_2d(p.mesh_vert, p.nmeshvert, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->mesh_facenum, __pyx_v_p->nmesh)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mesh_facenum);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mesh_facenum);
  __pyx_v_self->_mesh_facenum = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1366
 *         self._mesh_faceadr = _wrap_int_1d(p.mesh_faceadr, p.nmesh)
 *         self._mesh_facenum = _wrap_int_1d(p.mesh_facenum, p.nmesh)
 *         self._mesh_graphadr = _wrap_int_1d(p.mesh_graphadr, p.nmesh)             # <<<<<<<<<<<<<<
 *         self._mesh_vert = _wrap_float_2d(p.mesh_vert, p.nmeshvert, 3)
 *         self._mesh_normal = _wrap_float_2d(p.mesh_normal, p.nmeshvert, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->mesh_graphadr, __pyx_v_p->nmesh)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mesh_graphadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mesh_graphadr);
  __pyx_v_self->_mesh_graphadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1367
 *         self._mesh_facenum = _wrap_int_1d(p.mesh_facenum, p.nmesh)
 *         self._mesh_graphadr = _wrap_int_1d(p.mesh_graphadr, p.nmesh)
 *         self._mesh_vert = _wrap_float_2d(p.mesh_vert, p.nmeshvert, 3)             # <<<<<<<<<<<<<<
 *         self._mesh_normal = _wrap_float_2d(p.mesh_normal, p.nmeshvert, 3)
 *         self._mesh_texcoord = _wrap_float_2d(p.mesh_texcoord, p.nmeshtexvert, 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->mesh_vert, __pyx_v_p->nmeshvert, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mesh_vert);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mesh_vert);
  __pyx_v_self->_mesh_vert = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1368
 *         self._mesh_graphadr = _wrap_int_1d(p.mesh_graphadr, p.nmesh)
 *         self._mesh_vert = _wrap_float_2d(p.mesh_vert, p.nmeshvert, 3)
 *         self._mesh_normal = _wrap_float_2d(p.mesh_normal, p.nmeshvert, 3)             # <<<<<<<<<<<<<<
 *         self._mesh_texcoord = _wrap_float_2d(p.mesh_texcoord, p.nmeshtexvert, 2)
 *         self._mesh_face = _wrap_int_2d(p.mesh_face, p.nmeshface, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->mesh_normal, __pyx_v_p->nmeshvert, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mesh_normal);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mesh_normal);
  __pyx_v_self->_mesh_normal = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1369
 *         self._mesh_vert = _wrap_float_2d(p.mesh_vert, p.nmeshvert, 3)
 *         self._mesh_normal = _wrap_float_2d(p.mesh_normal, p.nmeshvert, 3)
 *         self._mesh_texcoord = _wrap_float_2d(p.mesh_texcoord, p.nmeshtexvert, 2)             # <<<<<<<<<<<<<<
 *         self._mesh_face = _wrap_int_2d(p.mesh_face, p.nmeshface, 3)
 *         self._mesh_graph = _wrap_int_1d(p.mesh_graph, p.nmeshgraph)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->mesh_texcoord, __pyx_v_p->nmeshtexvert, 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mesh_texcoord);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mesh_texcoord);
  __pyx_v_self->_mesh_texcoord = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1370
 *         self._mesh_normal = _wrap_float_2d(p.mesh_normal, p.nmeshvert, 3)
 *         self._mesh_texcoord = _wrap_float_2d(p.mesh_texcoord, p.nmeshtexvert, 2)
 *         self._mesh_face = _wrap_int_2d(p.mesh_face, p.nmeshface, 3)             # <<<<<<<<<<<<<<
 *         self._mesh_graph = _wrap_int_1d(p.mesh_graph, p.nmeshgraph)
 *         self._skin_matid = _wrap_int_1d(p.skin_matid, p.nskin)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_2d(__pyx_v_p->mesh_face, __pyx_v_p->nmeshface, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mesh_face);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mesh_face);
  __pyx_v_self->_mesh_face = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1371
 *         self._mesh_texcoord = _wrap_float_2d(p.mesh_texcoord, p.nmeshtexvert, 2)
 *         self._mesh_face = _wrap_int_2d(p.mesh_face, p.nmeshface, 3)
 *         self._mesh_graph = _wrap_int_1d(p.mesh_graph, p.nmeshgraph)             # <<<<<<<<<<<<<<
 *         self._skin_matid = _wrap_int_1d(p.skin_matid, p.nskin)
 *         self._skin_rgba = _wrap_float_2d(p.skin_rgba, p.nskin, 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->mesh_graph, __pyx_v_p->nmeshgraph)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mesh_graph);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mesh_graph);
  __pyx_v_self->_mesh_graph = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1372
 *         self._mesh_face = _wrap_int_2d(p.mesh_face, p.nmeshface, 3)
 *         self._mesh_graph = _wrap_int_1d(p.mesh_graph, p.nmeshgraph)
 *         self._skin_matid = _wrap_int_1d(p.skin_matid, p.nskin)             # <<<<<<<<<<<<<<
 *         self._skin_rgba = _wrap_float_2d(p.skin_rgba, p.nskin, 4)
 *         self._skin_inflate = _wrap_float_1d(p.skin_inflate, p.nskin)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->skin_matid, __pyx_v_p->nskin)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_matid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_matid);
  __pyx_v_self->_skin_matid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1373
 *         self._mesh_graph = _wrap_int_1d(p.mesh_graph, p.nmeshgraph)
 *         self._skin_matid = _wrap_int_1d(p.skin_matid, p.nskin)
 *         self._skin_rgba = _wrap_float_2d(p.skin_rgba, p.nskin, 4)             # <<<<<<<<<<<<<<
 *         self._skin_inflate = _wrap_float_1d(p.skin_inflate, p.nskin)
 *         self._skin_vertadr = _wrap_int_1d(p.skin_vertadr, p.nskin)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->skin_rgba, __pyx_v_p->nskin, 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_rgba);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_rgba);
  __pyx_v_self->_skin_rgba = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1374
 *         self._skin_matid = _wrap_int_1d(p.skin_matid, p.nskin)
 *         self._skin_rgba = _wrap_float_2d(p.skin_rgba, p.nskin, 4)
 *         self._skin_inflate = _wrap_float_1d(p.skin_inflate, p.nskin)             # <<<<<<<<<<<<<<
 *         self._skin_vertadr = _wrap_int_1d(p.skin_vertadr, p.nskin)
 *         self._skin_vertnum = _wrap_int_1d(p.skin_vertnum, p.nskin)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d(__pyx_v_p->skin_inflate, __pyx_v_p->nskin)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_inflate);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_inflate);
  __pyx_v_self->_skin_inflate = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1375
 *         self._skin_rgba = _wrap_float_2d(p.skin_rgba, p.nskin, 4)
 *         self._skin_inflate = _wrap_float_1d(p.skin_inflate, p.nskin)
 *         self._skin_vertadr = _wrap_int_1d(p.skin_vertadr, p.nskin)             # <<<<<<<<<<<<<<
 *         self._skin_vertnum = _wrap_int_1d(p.skin_vertnum, p.nskin)
 *         self._skin_texcoordadr = _wrap_int_1d(p.skin_texcoordadr, p.nskin)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->skin_vertadr, __pyx_v_p->nskin)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1375, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_vertadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_vertadr);
  __pyx_v_self->_skin_vertadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1376
 *         self._skin_inflate = _wrap_float_1d(p.skin_inflate, p.nskin)
 *         self._skin_vertadr = _wrap_int_1d(p.skin_vertadr, p.nskin)
 *         self._skin_vertnum = _wrap_int_1d(p.skin_vertnum, p.nskin)             # <<<<<<<<<<<<<<
 *         self._skin_texcoordadr = _wrap_int_1d(p.skin_texcoordadr, p.nskin)
 *         self._skin_faceadr = _wrap_int_1d(p.skin_faceadr, p.nskin)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->skin_vertnum, __pyx_v_p->nskin)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_vertnum);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_vertnum);
  __pyx_v_self->_skin_vertnum = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1377
 *         self._skin_vertadr = _wrap_int_1d(p.skin_vertadr, p.nskin)
 *         self._skin_vertnum = _wrap_int_1d(p.skin_vertnum, p.nskin)
 *         self._skin_texcoordadr = _wrap_int_1d(p.skin_texcoordadr, p.nskin)             # <<<<<<<<<<<<<<
 *         self._skin_faceadr = _wrap_int_1d(p.skin_faceadr, p.nskin)
 *         self._skin_facenum = _wrap_int_1d(p.skin_facenum, p.nskin)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->skin_texcoordadr, __pyx_v_p->nskin)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_texcoordadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_texcoordadr);
  __pyx_v_self->_skin_texcoordadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1378
 *         self._skin_vertnum = _wrap_int_1d(p.skin_vertnum, p.nskin)
 *         self._skin_texcoordadr = _wrap_int_1d(p.skin_texcoordadr, p.nskin)
 *         self._skin_faceadr = _wrap_int_1d(p.skin_faceadr, p.nskin)             # <<<<<<<<<<<<<<
 *         self._skin_facenum = _wrap_int_1d(p.skin_facenum, p.nskin)
 *         self._skin_boneadr = _wrap_int_1d(p.skin_boneadr, p.nskin)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->skin_faceadr, __pyx_v_p->nskin)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_faceadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_faceadr);
  __pyx_v_self->_skin_faceadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1379
 *         self._skin_texcoordadr = _wrap_int_1d(p.skin_texcoordadr, p.nskin)
 *         self._skin_faceadr = _wrap_int_1d(p.skin_faceadr, p.nskin)
 *         self._skin_facenum = _wrap_int_1d(p.skin_facenum, p.nskin)             # <<<<<<<<<<<<<<
 *         self._skin_boneadr = _wrap_int_1d(p.skin_boneadr, p.nskin)
 *         self._skin_bonenum = _wrap_int_1d(p.skin_bonenum, p.nskin)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->skin_facenum, __pyx_v_p->nskin)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_facenum);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_facenum);
  __pyx_v_self->_skin_facenum = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1380
 *         self._skin_faceadr = _wrap_int_1d(p.skin_faceadr, p.nskin)
 *         self._skin_facenum = _wrap_int_1d(p.skin_facenum, p.nskin)
 *         self._skin_boneadr = _wrap_int_1d(p.skin_boneadr, p.nskin)             # <<<<<<<<<<<<<<
 *         self._skin_bonenum = _wrap_int_1d(p.skin_bonenum, p.nskin)
 *         self._skin_vert = _wrap_float_2d(p.skin_vert, p.nskinvert, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->skin_boneadr, __pyx_v_p->nskin)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_boneadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_boneadr);
  __pyx_v_self->_skin_boneadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1381
 *         self._skin_facenum = _wrap_int_1d(p.skin_facenum, p.nskin)
 *         self._skin_boneadr = _wrap_int_1d(p.skin_boneadr, p.nskin)
 *         self._skin_bonenum = _wrap_int_1d(p.skin_bonenum, p.nskin)             # <<<<<<<<<<<<<<
 *         self._skin_vert = _wrap_float_2d(p.skin_vert, p.nskinvert, 3)
 *         self._skin_texcoord = _wrap_float_2d(p.skin_texcoord, p.nskintexvert, 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->skin_bonenum, __pyx_v_p->nskin)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_bonenum);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_bonenum);
  __pyx_v_self->_skin_bonenum = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1382
 *         self._skin_boneadr = _wrap_int_1d(p.skin_boneadr, p.nskin)
 *         self._skin_bonenum = _wrap_int_1d(p.skin_bonenum, p.nskin)
 *         self._skin_vert = _wrap_float_2d(p.skin_vert, p.nskinvert, 3)             # <<<<<<<<<<<<<<
 *         self._skin_texcoord = _wrap_float_2d(p.skin_texcoord, p.nskintexvert, 2)
 *         self._skin_face = _wrap_int_2d(p.skin_face, p.nskinface, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->skin_vert, __pyx_v_p->nskinvert, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_vert);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_vert);
  __pyx_v_self->_skin_vert = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1383
 *         self._skin_bonenum = _wrap_int_1d(p.skin_bonenum, p.nskin)
 *         self._skin_vert = _wrap_float_2d(p.skin_vert, p.nskinvert, 3)
 *         self._skin_texcoord = _wrap_float_2d(p.skin_texcoord, p.nskintexvert, 2)             # <<<<<<<<<<<<<<
 *         self._skin_face = _wrap_int_2d(p.skin_face, p.nskinface, 3)
 *         self._skin_bonevertadr = _wrap_int_1d(p.skin_bonevertadr, p.nskinbone)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->skin_texcoord, __pyx_v_p->nskintexvert, 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_texcoord);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_texcoord);
  __pyx_v_self->_skin_texcoord = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1384
 *         self._skin_vert = _wrap_float_2d(p.skin_vert, p.nskinvert, 3)
 *         self._skin_texcoord = _wrap_float_2d(p.skin_texcoord, p.nskintexvert, 2)
 *         self._skin_face = _wrap_int_2d(p.skin_face, p.nskinface, 3)             # <<<<<<<<<<<<<<
 *         self._skin_bonevertadr = _wrap_int_1d(p.skin_bonevertadr, p.nskinbone)
 *         self._skin_bonevertnum = _wrap_int_1d(p.skin_bonevertnum, p.nskinbone)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_2d(__pyx_v_p->skin_face, __pyx_v_p->nskinface, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_face);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_face);
  __pyx_v_self->_skin_face = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1385
 *         self._skin_texcoord = _wrap_float_2d(p.skin_texcoord, p.nskintexvert, 2)
 *         self._skin_face = _wrap_int_2d(p.skin_face, p.nskinface, 3)
 *         self._skin_bonevertadr = _wrap_int_1d(p.skin_bonevertadr, p.nskinbone)             # <<<<<<<<<<<<<<
 *         self._skin_bonevertnum = _wrap_int_1d(p.skin_bonevertnum, p.nskinbone)
 *         self._skin_bonebindpos = _wrap_float_2d(p.skin_bonebindpos, p.nskinbone, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->skin_bonevertadr, __pyx_v_p->nskinbone)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_bonevertadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_bonevertadr);
  __pyx_v_self->_skin_bonevertadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1386
 *         self._skin_face = _wrap_int_2d(p.skin_face, p.nskinface, 3)
 *         self._skin_bonevertadr = _wrap_int_1d(p.skin_bonevertadr, p.nskinbone)
 *         self._skin_bonevertnum = _wrap_int_1d(p.skin_bonevertnum, p.nskinbone)             # <<<<<<<<<<<<<<
 *         self._skin_bonebindpos = _wrap_float_2d(p.skin_bonebindpos, p.nskinbone, 3)
 *         self._skin_bonebindquat = _wrap_float_2d(p.skin_bonebindquat, p.nskinbone, 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->skin_bonevertnum, __pyx_v_p->nskinbone)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_bonevertnum);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_bonevertnum);
  __pyx_v_self->_skin_bonevertnum = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1387
 *         self._skin_bonevertadr = _wrap_int_1d(p.skin_bonevertadr, p.nskinbone)
 *         self._skin_bonevertnum = _wrap_int_1d(p.skin_bonevertnum, p.nskinbone)
 *         self._skin_bonebindpos = _wrap_float_2d(p.skin_bonebindpos, p.nskinbone, 3)             # <<<<<<<<<<<<<<
 *         self._skin_bonebindquat = _wrap_float_2d(p.skin_bonebindquat, p.nskinbone, 4)
 *         self._skin_bonebodyid = _wrap_int_1d(p.skin_bonebodyid, p.nskinbone)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->skin_bonebindpos, __pyx_v_p->nskinbone, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_bonebindpos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_bonebindpos);
  __pyx_v_self->_skin_bonebindpos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1388
 *         self._skin_bonevertnum = _wrap_int_1d(p.skin_bonevertnum, p.nskinbone)
 *         self._skin_bonebindpos = _wrap_float_2d(p.skin_bonebindpos, p.nskinbone, 3)
 *         self._skin_bonebindquat = _wrap_float_2d(p.skin_bonebindquat, p.nskinbone, 4)             # <<<<<<<<<<<<<<
 *         self._skin_bonebodyid = _wrap_int_1d(p.skin_bonebodyid, p.nskinbone)
 *         self._skin_bonevertid = _wrap_int_1d(p.skin_bonevertid, p.nskinbonevert)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->skin_bonebindquat, __pyx_v_p->nskinbone, 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_bonebindquat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_bonebindquat);
  __pyx_v_self->_skin_bonebindquat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1389
 *         self._skin_bonebindpos = _wrap_float_2d(p.skin_bonebindpos, p.nskinbone, 3)
 *         self._skin_bonebindquat = _wrap_float_2d(p.skin_bonebindquat, p.nskinbone, 4)
 *         self._skin_bonebodyid = _wrap_int_1d(p.skin_bonebodyid, p.nskinbone)             # <<<<<<<<<<<<<<
 *         self._skin_bonevertid = _wrap_int_1d(p.skin_bonevertid, p.nskinbonevert)
 *         self._skin_bonevertweight = _wrap_float_1d(p.skin_bonevertweight, p.nskinbonevert)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->skin_bonebodyid, __pyx_v_p->nskinbone)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_bonebodyid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_bonebodyid);
  __pyx_v_self->_skin_bonebodyid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1390
 *         self._skin_bonebindquat = _wrap_float_2d(p.skin_bonebindquat, p.nskinbone, 4)
 *         self._skin_bonebodyid = _wrap_int_1d(p.skin_bonebodyid, p.nskinbone)
 *         self._skin_bonevertid = _wrap_int_1d(p.skin_bonevertid, p.nskinbonevert)             # <<<<<<<<<<<<<<
 *         self._skin_bonevertweight = _wrap_float_1d(p.skin_bonevertweight, p.nskinbonevert)
 *         self._hfield_size = _wrap_mjtNum_2d(p.hfield_size, p.nhfield, 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->skin_bonevertid, __pyx_v_p->nskinbonevert)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_bonevertid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_bonevertid);
  __pyx_v_self->_skin_bonevertid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1391
 *         self._skin_bonebodyid = _wrap_int_1d(p.skin_bonebodyid, p.nskinbone)
 *         self._skin_bonevertid = _wrap_int_1d(p.skin_bonevertid, p.nskinbonevert)
 *         self._skin_bonevertweight = _wrap_float_1d(p.skin_bonevertweight, p.nskinbonevert)             # <<<<<<<<<<<<<<
 *         self._hfield_size = _wrap_mjtNum_2d(p.hfield_size, p.nhfield, 4)
 *         self._hfield_nrow = _wrap_int_1d(p.hfield_nrow, p.nhfield)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d(__pyx_v_p->skin_bonevertweight, __pyx_v_p->nskinbonevert)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_skin_bonevertweight);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_skin_bonevertweight);
  __pyx_v_self->_skin_bonevertweight = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1392
 *         self._skin_bonevertid = _wrap_int_1d(p.skin_bonevertid, p.nskinbonevert)
 *         self._skin_bonevertweight = _wrap_float_1d(p.skin_bonevertweight, p.nskinbonevert)
 *         self._hfield_size = _wrap_mjtNum_2d(p.hfield_size, p.nhfield, 4)             # <<<<<<<<<<<<<<
 *         self._hfield_nrow = _wrap_int_1d(p.hfield_nrow, p.nhfield)
 *         self._hfield_ncol = _wrap_int_1d(p.hfield_ncol, p.nhfield)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->hfield_size, __pyx_v_p->nhfield, 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_hfield_size);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_hfield_size);
  __pyx_v_self->_hfield_size = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1393
 *         self._skin_bonevertweight = _wrap_float_1d(p.skin_bonevertweight, p.nskinbonevert)
 *         self._hfield_size = _wrap_mjtNum_2d(p.hfield_size, p.nhfield, 4)
 *         self._hfield_nrow = _wrap_int_1d(p.hfield_nrow, p.nhfield)             # <<<<<<<<<<<<<<
 *         self._hfield_ncol = _wrap_int_1d(p.hfield_ncol, p.nhfield)
 *         self._hfield_adr = _wrap_int_1d(p.hfield_adr, p.nhfield)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->hfield_nrow, __pyx_v_p->nhfield)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_hfield_nrow);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_hfield_nrow);
  __pyx_v_self->_hfield_nrow = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1394
 *         self._hfield_size = _wrap_mjtNum_2d(p.hfield_size, p.nhfield, 4)
 *         self._hfield_nrow = _wrap_int_1d(p.hfield_nrow, p.nhfield)
 *         self._hfield_ncol = _wrap_int_1d(p.hfield_ncol, p.nhfield)             # <<<<<<<<<<<<<<
 *         self._hfield_adr = _wrap_int_1d(p.hfield_adr, p.nhfield)
 *         self._hfield_data = _wrap_float_1d(p.hfield_data, p.nhfielddata)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->hfield_ncol, __pyx_v_p->nhfield)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_hfield_ncol);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_hfield_ncol);
  __pyx_v_self->_hfield_ncol = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1395
 *         self._hfield_nrow = _wrap_int_1d(p.hfield_nrow, p.nhfield)
 *         self._hfield_ncol = _wrap_int_1d(p.hfield_ncol, p.nhfield)
 *         self._hfield_adr = _wrap_int_1d(p.hfield_adr, p.nhfield)             # <<<<<<<<<<<<<<
 *         self._hfield_data = _wrap_float_1d(p.hfield_data, p.nhfielddata)
 *         self._tex_type = _wrap_int_1d(p.tex_type, p.ntex)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->hfield_adr, __pyx_v_p->nhfield)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_hfield_adr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_hfield_adr);
  __pyx_v_self->_hfield_adr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1396
 *         self._hfield_ncol = _wrap_int_1d(p.hfield_ncol, p.nhfield)
 *         self._hfield_adr = _wrap_int_1d(p.hfield_adr, p.nhfield)
 *         self._hfield_data = _wrap_float_1d(p.hfield_data, p.nhfielddata)             # <<<<<<<<<<<<<<
 *         self._tex_type = _wrap_int_1d(p.tex_type, p.ntex)
 *         self._tex_height = _wrap_int_1d(p.tex_height, p.ntex)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d(__pyx_v_p->hfield_data, __pyx_v_p->nhfielddata)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_hfield_data);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_hfield_data);
  __pyx_v_self->_hfield_data = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1397
 *         self._hfield_adr = _wrap_int_1d(p.hfield_adr, p.nhfield)
 *         self._hfield_data = _wrap_float_1d(p.hfield_data, p.nhfielddata)
 *         self._tex_type = _wrap_int_1d(p.tex_type, p.ntex)             # <<<<<<<<<<<<<<
 *         self._tex_height = _wrap_int_1d(p.tex_height, p.ntex)
 *         self._tex_width = _wrap_int_1d(p.tex_width, p.ntex)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->tex_type, __pyx_v_p->ntex)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tex_type);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tex_type);
  __pyx_v_self->_tex_type = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1398
 *         self._hfield_data = _wrap_float_1d(p.hfield_data, p.nhfielddata)
 *         self._tex_type = _wrap_int_1d(p.tex_type, p.ntex)
 *         self._tex_height = _wrap_int_1d(p.tex_height, p.ntex)             # <<<<<<<<<<<<<<
 *         self._tex_width = _wrap_int_1d(p.tex_width, p.ntex)
 *         self._tex_adr = _wrap_int_1d(p.tex_adr, p.ntex)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->tex_height, __pyx_v_p->ntex)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tex_height);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tex_height);
  __pyx_v_self->_tex_height = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1399
 *         self._tex_type = _wrap_int_1d(p.tex_type, p.ntex)
 *         self._tex_height = _wrap_int_1d(p.tex_height, p.ntex)
 *         self._tex_width = _wrap_int_1d(p.tex_width, p.ntex)             # <<<<<<<<<<<<<<
 *         self._tex_adr = _wrap_int_1d(p.tex_adr, p.ntex)
 *         self._tex_rgb = _wrap_mjtByte_1d(p.tex_rgb, p.ntexdata)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->tex_width, __pyx_v_p->ntex)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tex_width);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tex_width);
  __pyx_v_self->_tex_width = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1400
 *         self._tex_height = _wrap_int_1d(p.tex_height, p.ntex)
 *         self._tex_width = _wrap_int_1d(p.tex_width, p.ntex)
 *         self._tex_adr = _wrap_int_1d(p.tex_adr, p.ntex)             # <<<<<<<<<<<<<<
 *         self._tex_rgb = _wrap_mjtByte_1d(p.tex_rgb, p.ntexdata)
 *         self._mat_texid = _wrap_int_1d(p.mat_texid, p.nmat)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->tex_adr, __pyx_v_p->ntex)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1400, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tex_adr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tex_adr);
  __pyx_v_self->_tex_adr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1401
 *         self._tex_width = _wrap_int_1d(p.tex_width, p.ntex)
 *         self._tex_adr = _wrap_int_1d(p.tex_adr, p.ntex)
 *         self._tex_rgb = _wrap_mjtByte_1d(p.tex_rgb, p.ntexdata)             # <<<<<<<<<<<<<<
 *         self._mat_texid = _wrap_int_1d(p.mat_texid, p.nmat)
 *         self._mat_texuniform = _wrap_mjtByte_1d(p.mat_texuniform, p.nmat)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(__pyx_v_p->tex_rgb, __pyx_v_p->ntexdata)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tex_rgb);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tex_rgb);
  __pyx_v_self->_tex_rgb = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1402
 *         self._tex_adr = _wrap_int_1d(p.tex_adr, p.ntex)
 *         self._tex_rgb = _wrap_mjtByte_1d(p.tex_rgb, p.ntexdata)
 *         self._mat_texid = _wrap_int_1d(p.mat_texid, p.nmat)             # <<<<<<<<<<<<<<
 *         self._mat_texuniform = _wrap_mjtByte_1d(p.mat_texuniform, p.nmat)
 *         self._mat_texrepeat = _wrap_float_2d(p.mat_texrepeat, p.nmat, 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->mat_texid, __pyx_v_p->nmat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mat_texid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mat_texid);
  __pyx_v_self->_mat_texid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1403
 *         self._tex_rgb = _wrap_mjtByte_1d(p.tex_rgb, p.ntexdata)
 *         self._mat_texid = _wrap_int_1d(p.mat_texid, p.nmat)
 *         self._mat_texuniform = _wrap_mjtByte_1d(p.mat_texuniform, p.nmat)             # <<<<<<<<<<<<<<
 *         self._mat_texrepeat = _wrap_float_2d(p.mat_texrepeat, p.nmat, 2)
 *         self._mat_emission = _wrap_float_1d(p.mat_emission, p.nmat)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(__pyx_v_p->mat_texuniform, __pyx_v_p->nmat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mat_texuniform);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mat_texuniform);
  __pyx_v_self->_mat_texuniform = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1404
 *         self._mat_texid = _wrap_int_1d(p.mat_texid, p.nmat)
 *         self._mat_texuniform = _wrap_mjtByte_1d(p.mat_texuniform, p.nmat)
 *         self._mat_texrepeat = _wrap_float_2d(p.mat_texrepeat, p.nmat, 2)             # <<<<<<<<<<<<<<
 *         self._mat_emission = _wrap_float_1d(p.mat_emission, p.nmat)
 *         self._mat_specular = _wrap_float_1d(p.mat_specular, p.nmat)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->mat_texrepeat, __pyx_v_p->nmat, 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mat_texrepeat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mat_texrepeat);
  __pyx_v_self->_mat_texrepeat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1405
 *         self._mat_texuniform = _wrap_mjtByte_1d(p.mat_texuniform, p.nmat)
 *         self._mat_texrepeat = _wrap_float_2d(p.mat_texrepeat, p.nmat, 2)
 *         self._mat_emission = _wrap_float_1d(p.mat_emission, p.nmat)             # <<<<<<<<<<<<<<
 *         self._mat_specular = _wrap_float_1d(p.mat_specular, p.nmat)
 *         self._mat_shininess = _wrap_float_1d(p.mat_shininess, p.nmat)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d(__pyx_v_p->mat_emission, __pyx_v_p->nmat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mat_emission);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mat_emission);
  __pyx_v_self->_mat_emission = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1406
 *         self._mat_texrepeat = _wrap_float_2d(p.mat_texrepeat, p.nmat, 2)
 *         self._mat_emission = _wrap_float_1d(p.mat_emission, p.nmat)
 *         self._mat_specular = _wrap_float_1d(p.mat_specular, p.nmat)             # <<<<<<<<<<<<<<
 *         self._mat_shininess = _wrap_float_1d(p.mat_shininess, p.nmat)
 *         self._mat_reflectance = _wrap_float_1d(p.mat_reflectance, p.nmat)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d(__pyx_v_p->mat_specular, __pyx_v_p->nmat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mat_specular);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mat_specular);
  __pyx_v_self->_mat_specular = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1407
 *         self._mat_emission = _wrap_float_1d(p.mat_emission, p.nmat)
 *         self._mat_specular = _wrap_float_1d(p.mat_specular, p.nmat)
 *         self._mat_shininess = _wrap_float_1d(p.mat_shininess, p.nmat)             # <<<<<<<<<<<<<<
 *         self._mat_reflectance = _wrap_float_1d(p.mat_reflectance, p.nmat)
 *         self._mat_rgba = _wrap_float_2d(p.mat_rgba, p.nmat, 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d(__pyx_v_p->mat_shininess, __pyx_v_p->nmat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1407, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mat_shininess);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mat_shininess);
  __pyx_v_self->_mat_shininess = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1408
 *         self._mat_specular = _wrap_float_1d(p.mat_specular, p.nmat)
 *         self._mat_shininess = _wrap_float_1d(p.mat_shininess, p.nmat)
 *         self._mat_reflectance = _wrap_float_1d(p.mat_reflectance, p.nmat)             # <<<<<<<<<<<<<<
 *         self._mat_rgba = _wrap_float_2d(p.mat_rgba, p.nmat, 4)
 *         self._pair_dim = _wrap_int_1d(p.pair_dim, p.npair)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d(__pyx_v_p->mat_reflectance, __pyx_v_p->nmat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mat_reflectance);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mat_reflectance);
  __pyx_v_self->_mat_reflectance = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1409
 *         self._mat_shininess = _wrap_float_1d(p.mat_shininess, p.nmat)
 *         self._mat_reflectance = _wrap_float_1d(p.mat_reflectance, p.nmat)
 *         self._mat_rgba = _wrap_float_2d(p.mat_rgba, p.nmat, 4)             # <<<<<<<<<<<<<<
 *         self._pair_dim = _wrap_int_1d(p.pair_dim, p.npair)
 *         self._pair_geom1 = _wrap_int_1d(p.pair_geom1, p.npair)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->mat_rgba, __pyx_v_p->nmat, 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mat_rgba);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mat_rgba);
  __pyx_v_self->_mat_rgba = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1410
 *         self._mat_reflectance = _wrap_float_1d(p.mat_reflectance, p.nmat)
 *         self._mat_rgba = _wrap_float_2d(p.mat_rgba, p.nmat, 4)
 *         self._pair_dim = _wrap_int_1d(p.pair_dim, p.npair)             # <<<<<<<<<<<<<<
 *         self._pair_geom1 = _wrap_int_1d(p.pair_geom1, p.npair)
 *         self._pair_geom2 = _wrap_int_1d(p.pair_geom2, p.npair)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->pair_dim, __pyx_v_p->npair)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_pair_dim);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_pair_dim);
  __pyx_v_self->_pair_dim = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1411
 *         self._mat_rgba = _wrap_float_2d(p.mat_rgba, p.nmat, 4)
 *         self._pair_dim = _wrap_int_1d(p.pair_dim, p.npair)
 *         self._pair_geom1 = _wrap_int_1d(p.pair_geom1, p.npair)             # <<<<<<<<<<<<<<
 *         self._pair_geom2 = _wrap_int_1d(p.pair_geom2, p.npair)
 *         self._pair_signature = _wrap_int_1d(p.pair_signature, p.npair)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->pair_geom1, __pyx_v_p->npair)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_pair_geom1);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_pair_geom1);
  __pyx_v_self->_pair_geom1 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1412
 *         self._pair_dim = _wrap_int_1d(p.pair_dim, p.npair)
 *         self._pair_geom1 = _wrap_int_1d(p.pair_geom1, p.npair)
 *         self._pair_geom2 = _wrap_int_1d(p.pair_geom2, p.npair)             # <<<<<<<<<<<<<<
 *         self._pair_signature = _wrap_int_1d(p.pair_signature, p.npair)
 *         self._pair_solref = _wrap_mjtNum_2d(p.pair_solref, p.npair, mjNREF)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->pair_geom2, __pyx_v_p->npair)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_pair_geom2);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_pair_geom2);
  __pyx_v_self->_pair_geom2 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1413
 *         self._pair_geom1 = _wrap_int_1d(p.pair_geom1, p.npair)
 *         self._pair_geom2 = _wrap_int_1d(p.pair_geom2, p.npair)
 *         self._pair_signature = _wrap_int_1d(p.pair_signature, p.npair)             # <<<<<<<<<<<<<<
 *         self._pair_solref = _wrap_mjtNum_2d(p.pair_solref, p.npair, mjNREF)
 *         self._pair_solimp = _wrap_mjtNum_2d(p.pair_solimp, p.npair, mjNIMP)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->pair_signature, __pyx_v_p->npair)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_pair_signature);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_pair_signature);
  __pyx_v_self->_pair_signature = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1414
 *         self._pair_geom2 = _wrap_int_1d(p.pair_geom2, p.npair)
 *         self._pair_signature = _wrap_int_1d(p.pair_signature, p.npair)
 *         self._pair_solref = _wrap_mjtNum_2d(p.pair_solref, p.npair, mjNREF)             # <<<<<<<<<<<<<<
 *         self._pair_solimp = _wrap_mjtNum_2d(p.pair_solimp, p.npair, mjNIMP)
 *         self._pair_margin = _wrap_mjtNum_1d(p.pair_margin, p.npair)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->pair_solref, __pyx_v_p->npair, mjNREF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_pair_solref);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_pair_solref);
  __pyx_v_self->_pair_solref = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1415
 *         self._pair_signature = _wrap_int_1d(p.pair_signature, p.npair)
 *         self._pair_solref = _wrap_mjtNum_2d(p.pair_solref, p.npair, mjNREF)
 *         self._pair_solimp = _wrap_mjtNum_2d(p.pair_solimp, p.npair, mjNIMP)             # <<<<<<<<<<<<<<
 *         self._pair_margin = _wrap_mjtNum_1d(p.pair_margin, p.npair)
 *         self._pair_gap = _wrap_mjtNum_1d(p.pair_gap, p.npair)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->pair_solimp, __pyx_v_p->npair, mjNIMP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_pair_solimp);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_pair_solimp);
  __pyx_v_self->_pair_solimp = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1416
 *         self._pair_solref = _wrap_mjtNum_2d(p.pair_solref, p.npair, mjNREF)
 *         self._pair_solimp = _wrap_mjtNum_2d(p.pair_solimp, p.npair, mjNIMP)
 *         self._pair_margin = _wrap_mjtNum_1d(p.pair_margin, p.npair)             # <<<<<<<<<<<<<<
 *         self._pair_gap = _wrap_mjtNum_1d(p.pair_gap, p.npair)
 *         self._pair_friction = _wrap_mjtNum_2d(p.pair_friction, p.npair, 5)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->pair_margin, __pyx_v_p->npair)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_pair_margin);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_pair_margin);
  __pyx_v_self->_pair_margin = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1417
 *         self._pair_solimp = _wrap_mjtNum_2d(p.pair_solimp, p.npair, mjNIMP)
 *         self._pair_margin = _wrap_mjtNum_1d(p.pair_margin, p.npair)
 *         self._pair_gap = _wrap_mjtNum_1d(p.pair_gap, p.npair)             # <<<<<<<<<<<<<<
 *         self._pair_friction = _wrap_mjtNum_2d(p.pair_friction, p.npair, 5)
 *         self._exclude_signature = _wrap_int_1d(p.exclude_signature, p.nexclude)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->pair_gap, __pyx_v_p->npair)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_pair_gap);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_pair_gap);
  __pyx_v_self->_pair_gap = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1418
 *         self._pair_margin = _wrap_mjtNum_1d(p.pair_margin, p.npair)
 *         self._pair_gap = _wrap_mjtNum_1d(p.pair_gap, p.npair)
 *         self._pair_friction = _wrap_mjtNum_2d(p.pair_friction, p.npair, 5)             # <<<<<<<<<<<<<<
 *         self._exclude_signature = _wrap_int_1d(p.exclude_signature, p.nexclude)
 *         self._eq_type = _wrap_int_1d(p.eq_type, p.neq)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->pair_friction, __pyx_v_p->npair, 5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_pair_friction);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_pair_friction);
  __pyx_v_self->_pair_friction = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1419
 *         self._pair_gap = _wrap_mjtNum_1d(p.pair_gap, p.npair)
 *         self._pair_friction = _wrap_mjtNum_2d(p.pair_friction, p.npair, 5)
 *         self._exclude_signature = _wrap_int_1d(p.exclude_signature, p.nexclude)             # <<<<<<<<<<<<<<
 *         self._eq_type = _wrap_int_1d(p.eq_type, p.neq)
 *         self._eq_obj1id = _wrap_int_1d(p.eq_obj1id, p.neq)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->exclude_signature, __pyx_v_p->nexclude)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_exclude_signature);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_exclude_signature);
  __pyx_v_self->_exclude_signature = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1420
 *         self._pair_friction = _wrap_mjtNum_2d(p.pair_friction, p.npair, 5)
 *         self._exclude_signature = _wrap_int_1d(p.exclude_signature, p.nexclude)
 *         self._eq_type = _wrap_int_1d(p.eq_type, p.neq)             # <<<<<<<<<<<<<<
 *         self._eq_obj1id = _wrap_int_1d(p.eq_obj1id, p.neq)
 *         self._eq_obj2id = _wrap_int_1d(p.eq_obj2id, p.neq)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->eq_type, __pyx_v_p->neq)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_eq_type);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_eq_type);
  __pyx_v_self->_eq_type = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1421
 *         self._exclude_signature = _wrap_int_1d(p.exclude_signature, p.nexclude)
 *         self._eq_type = _wrap_int_1d(p.eq_type, p.neq)
 *         self._eq_obj1id = _wrap_int_1d(p.eq_obj1id, p.neq)             # <<<<<<<<<<<<<<
 *         self._eq_obj2id = _wrap_int_1d(p.eq_obj2id, p.neq)
 *         self._eq_active = _wrap_mjtByte_1d(p.eq_active, p.neq)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->eq_obj1id, __pyx_v_p->neq)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_eq_obj1id);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_eq_obj1id);
  __pyx_v_self->_eq_obj1id = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1422
 *         self._eq_type = _wrap_int_1d(p.eq_type, p.neq)
 *         self._eq_obj1id = _wrap_int_1d(p.eq_obj1id, p.neq)
 *         self._eq_obj2id = _wrap_int_1d(p.eq_obj2id, p.neq)             # <<<<<<<<<<<<<<
 *         self._eq_active = _wrap_mjtByte_1d(p.eq_active, p.neq)
 *         self._eq_solref = _wrap_mjtNum_2d(p.eq_solref, p.neq, mjNREF)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->eq_obj2id, __pyx_v_p->neq)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_eq_obj2id);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_eq_obj2id);
  __pyx_v_self->_eq_obj2id = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1423
 *         self._eq_obj1id = _wrap_int_1d(p.eq_obj1id, p.neq)
 *         self._eq_obj2id = _wrap_int_1d(p.eq_obj2id, p.neq)
 *         self._eq_active = _wrap_mjtByte_1d(p.eq_active, p.neq)             # <<<<<<<<<<<<<<
 *         self._eq_solref = _wrap_mjtNum_2d(p.eq_solref, p.neq, mjNREF)
 *         self._eq_solimp = _wrap_mjtNum_2d(p.eq_solimp, p.neq, mjNIMP)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(__pyx_v_p->eq_active, __pyx_v_p->neq)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_eq_active);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_eq_active);
  __pyx_v_self->_eq_active = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1424
 *         self._eq_obj2id = _wrap_int_1d(p.eq_obj2id, p.neq)
 *         self._eq_active = _wrap_mjtByte_1d(p.eq_active, p.neq)
 *         self._eq_solref = _wrap_mjtNum_2d(p.eq_solref, p.neq, mjNREF)             # <<<<<<<<<<<<<<
 *         self._eq_solimp = _wrap_mjtNum_2d(p.eq_solimp, p.neq, mjNIMP)
 *         self._eq_data = _wrap_mjtNum_2d(p.eq_data, p.neq, mjNEQDATA)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->eq_solref, __pyx_v_p->neq, mjNREF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_eq_solref);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_eq_solref);
  __pyx_v_self->_eq_solref = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1425
 *         self._eq_active = _wrap_mjtByte_1d(p.eq_active, p.neq)
 *         self._eq_solref = _wrap_mjtNum_2d(p.eq_solref, p.neq, mjNREF)
 *         self._eq_solimp = _wrap_mjtNum_2d(p.eq_solimp, p.neq, mjNIMP)             # <<<<<<<<<<<<<<
 *         self._eq_data = _wrap_mjtNum_2d(p.eq_data, p.neq, mjNEQDATA)
 *         self._tendon_adr = _wrap_int_1d(p.tendon_adr, p.ntendon)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->eq_solimp, __pyx_v_p->neq, mjNIMP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_eq_solimp);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_eq_solimp);
  __pyx_v_self->_eq_solimp = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1426
 *         self._eq_solref = _wrap_mjtNum_2d(p.eq_solref, p.neq, mjNREF)
 *         self._eq_solimp = _wrap_mjtNum_2d(p.eq_solimp, p.neq, mjNIMP)
 *         self._eq_data = _wrap_mjtNum_2d(p.eq_data, p.neq, mjNEQDATA)             # <<<<<<<<<<<<<<
 *         self._tendon_adr = _wrap_int_1d(p.tendon_adr, p.ntendon)
 *         self._tendon_num = _wrap_int_1d(p.tendon_num, p.ntendon)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->eq_data, __pyx_v_p->neq, mjNEQDATA)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_eq_data);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_eq_data);
  __pyx_v_self->_eq_data = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1427
 *         self._eq_solimp = _wrap_mjtNum_2d(p.eq_solimp, p.neq, mjNIMP)
 *         self._eq_data = _wrap_mjtNum_2d(p.eq_data, p.neq, mjNEQDATA)
 *         self._tendon_adr = _wrap_int_1d(p.tendon_adr, p.ntendon)             # <<<<<<<<<<<<<<
 *         self._tendon_num = _wrap_int_1d(p.tendon_num, p.ntendon)
 *         self._tendon_matid = _wrap_int_1d(p.tendon_matid, p.ntendon)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->tendon_adr, __pyx_v_p->ntendon)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_adr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_adr);
  __pyx_v_self->_tendon_adr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1428
 *         self._eq_data = _wrap_mjtNum_2d(p.eq_data, p.neq, mjNEQDATA)
 *         self._tendon_adr = _wrap_int_1d(p.tendon_adr, p.ntendon)
 *         self._tendon_num = _wrap_int_1d(p.tendon_num, p.ntendon)             # <<<<<<<<<<<<<<
 *         self._tendon_matid = _wrap_int_1d(p.tendon_matid, p.ntendon)
 *         self._tendon_group = _wrap_int_1d(p.tendon_group, p.ntendon)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->tendon_num, __pyx_v_p->ntendon)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1428, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_num);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_num);
  __pyx_v_self->_tendon_num = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1429
 *         self._tendon_adr = _wrap_int_1d(p.tendon_adr, p.ntendon)
 *         self._tendon_num = _wrap_int_1d(p.tendon_num, p.ntendon)
 *         self._tendon_matid = _wrap_int_1d(p.tendon_matid, p.ntendon)             # <<<<<<<<<<<<<<
 *         self._tendon_group = _wrap_int_1d(p.tendon_group, p.ntendon)
 *         self._tendon_limited = _wrap_mjtByte_1d(p.tendon_limited, p.ntendon)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->tendon_matid, __pyx_v_p->ntendon)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_matid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_matid);
  __pyx_v_self->_tendon_matid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1430
 *         self._tendon_num = _wrap_int_1d(p.tendon_num, p.ntendon)
 *         self._tendon_matid = _wrap_int_1d(p.tendon_matid, p.ntendon)
 *         self._tendon_group = _wrap_int_1d(p.tendon_group, p.ntendon)             # <<<<<<<<<<<<<<
 *         self._tendon_limited = _wrap_mjtByte_1d(p.tendon_limited, p.ntendon)
 *         self._tendon_width = _wrap_mjtNum_1d(p.tendon_width, p.ntendon)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->tendon_group, __pyx_v_p->ntendon)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_group);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_group);
  __pyx_v_self->_tendon_group = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1431
 *         self._tendon_matid = _wrap_int_1d(p.tendon_matid, p.ntendon)
 *         self._tendon_group = _wrap_int_1d(p.tendon_group, p.ntendon)
 *         self._tendon_limited = _wrap_mjtByte_1d(p.tendon_limited, p.ntendon)             # <<<<<<<<<<<<<<
 *         self._tendon_width = _wrap_mjtNum_1d(p.tendon_width, p.ntendon)
 *         self._tendon_solref_lim = _wrap_mjtNum_2d(p.tendon_solref_lim, p.ntendon, mjNREF)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(__pyx_v_p->tendon_limited, __pyx_v_p->ntendon)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_limited);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_limited);
  __pyx_v_self->_tendon_limited = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1432
 *         self._tendon_group = _wrap_int_1d(p.tendon_group, p.ntendon)
 *         self._tendon_limited = _wrap_mjtByte_1d(p.tendon_limited, p.ntendon)
 *         self._tendon_width = _wrap_mjtNum_1d(p.tendon_width, p.ntendon)             # <<<<<<<<<<<<<<
 *         self._tendon_solref_lim = _wrap_mjtNum_2d(p.tendon_solref_lim, p.ntendon, mjNREF)
 *         self._tendon_solimp_lim = _wrap_mjtNum_2d(p.tendon_solimp_lim, p.ntendon, mjNIMP)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->tendon_width, __pyx_v_p->ntendon)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_width);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_width);
  __pyx_v_self->_tendon_width = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1433
 *         self._tendon_limited = _wrap_mjtByte_1d(p.tendon_limited, p.ntendon)
 *         self._tendon_width = _wrap_mjtNum_1d(p.tendon_width, p.ntendon)
 *         self._tendon_solref_lim = _wrap_mjtNum_2d(p.tendon_solref_lim, p.ntendon, mjNREF)             # <<<<<<<<<<<<<<
 *         self._tendon_solimp_lim = _wrap_mjtNum_2d(p.tendon_solimp_lim, p.ntendon, mjNIMP)
 *         self._tendon_solref_fri = _wrap_mjtNum_2d(p.tendon_solref_fri, p.ntendon, mjNREF)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->tendon_solref_lim, __pyx_v_p->ntendon, mjNREF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_solref_lim);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_solref_lim);
  __pyx_v_self->_tendon_solref_lim = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1434
 *         self._tendon_width = _wrap_mjtNum_1d(p.tendon_width, p.ntendon)
 *         self._tendon_solref_lim = _wrap_mjtNum_2d(p.tendon_solref_lim, p.ntendon, mjNREF)
 *         self._tendon_solimp_lim = _wrap_mjtNum_2d(p.tendon_solimp_lim, p.ntendon, mjNIMP)             # <<<<<<<<<<<<<<
 *         self._tendon_solref_fri = _wrap_mjtNum_2d(p.tendon_solref_fri, p.ntendon, mjNREF)
 *         self._tendon_solimp_fri = _wrap_mjtNum_2d(p.tendon_solimp_fri, p.ntendon, mjNIMP)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->tendon_solimp_lim, __pyx_v_p->ntendon, mjNIMP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_solimp_lim);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_solimp_lim);
  __pyx_v_self->_tendon_solimp_lim = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1435
 *         self._tendon_solref_lim = _wrap_mjtNum_2d(p.tendon_solref_lim, p.ntendon, mjNREF)
 *         self._tendon_solimp_lim = _wrap_mjtNum_2d(p.tendon_solimp_lim, p.ntendon, mjNIMP)
 *         self._tendon_solref_fri = _wrap_mjtNum_2d(p.tendon_solref_fri, p.ntendon, mjNREF)             # <<<<<<<<<<<<<<
 *         self._tendon_solimp_fri = _wrap_mjtNum_2d(p.tendon_solimp_fri, p.ntendon, mjNIMP)
 *         self._tendon_range = _wrap_mjtNum_2d(p.tendon_range, p.ntendon, 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->tendon_solref_fri, __pyx_v_p->ntendon, mjNREF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_solref_fri);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_solref_fri);
  __pyx_v_self->_tendon_solref_fri = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1436
 *         self._tendon_solimp_lim = _wrap_mjtNum_2d(p.tendon_solimp_lim, p.ntendon, mjNIMP)
 *         self._tendon_solref_fri = _wrap_mjtNum_2d(p.tendon_solref_fri, p.ntendon, mjNREF)
 *         self._tendon_solimp_fri = _wrap_mjtNum_2d(p.tendon_solimp_fri, p.ntendon, mjNIMP)             # <<<<<<<<<<<<<<
 *         self._tendon_range = _wrap_mjtNum_2d(p.tendon_range, p.ntendon, 2)
 *         self._tendon_margin = _wrap_mjtNum_1d(p.tendon_margin, p.ntendon)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->tendon_solimp_fri, __pyx_v_p->ntendon, mjNIMP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_solimp_fri);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_solimp_fri);
  __pyx_v_self->_tendon_solimp_fri = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1437
 *         self._tendon_solref_fri = _wrap_mjtNum_2d(p.tendon_solref_fri, p.ntendon, mjNREF)
 *         self._tendon_solimp_fri = _wrap_mjtNum_2d(p.tendon_solimp_fri, p.ntendon, mjNIMP)
 *         self._tendon_range = _wrap_mjtNum_2d(p.tendon_range, p.ntendon, 2)             # <<<<<<<<<<<<<<
 *         self._tendon_margin = _wrap_mjtNum_1d(p.tendon_margin, p.ntendon)
 *         self._tendon_stiffness = _wrap_mjtNum_1d(p.tendon_stiffness, p.ntendon)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->tendon_range, __pyx_v_p->ntendon, 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_range);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_range);
  __pyx_v_self->_tendon_range = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1438
 *         self._tendon_solimp_fri = _wrap_mjtNum_2d(p.tendon_solimp_fri, p.ntendon, mjNIMP)
 *         self._tendon_range = _wrap_mjtNum_2d(p.tendon_range, p.ntendon, 2)
 *         self._tendon_margin = _wrap_mjtNum_1d(p.tendon_margin, p.ntendon)             # <<<<<<<<<<<<<<
 *         self._tendon_stiffness = _wrap_mjtNum_1d(p.tendon_stiffness, p.ntendon)
 *         self._tendon_damping = _wrap_mjtNum_1d(p.tendon_damping, p.ntendon)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->tendon_margin, __pyx_v_p->ntendon)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_margin);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_margin);
  __pyx_v_self->_tendon_margin = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1439
 *         self._tendon_range = _wrap_mjtNum_2d(p.tendon_range, p.ntendon, 2)
 *         self._tendon_margin = _wrap_mjtNum_1d(p.tendon_margin, p.ntendon)
 *         self._tendon_stiffness = _wrap_mjtNum_1d(p.tendon_stiffness, p.ntendon)             # <<<<<<<<<<<<<<
 *         self._tendon_damping = _wrap_mjtNum_1d(p.tendon_damping, p.ntendon)
 *         self._tendon_frictionloss = _wrap_mjtNum_1d(p.tendon_frictionloss, p.ntendon)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->tendon_stiffness, __pyx_v_p->ntendon)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_stiffness);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_stiffness);
  __pyx_v_self->_tendon_stiffness = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1440
 *         self._tendon_margin = _wrap_mjtNum_1d(p.tendon_margin, p.ntendon)
 *         self._tendon_stiffness = _wrap_mjtNum_1d(p.tendon_stiffness, p.ntendon)
 *         self._tendon_damping = _wrap_mjtNum_1d(p.tendon_damping, p.ntendon)             # <<<<<<<<<<<<<<
 *         self._tendon_frictionloss = _wrap_mjtNum_1d(p.tendon_frictionloss, p.ntendon)
 *         self._tendon_lengthspring = _wrap_mjtNum_1d(p.tendon_lengthspring, p.ntendon)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->tendon_damping, __pyx_v_p->ntendon)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_damping);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_damping);
  __pyx_v_self->_tendon_damping = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1441
 *         self._tendon_stiffness = _wrap_mjtNum_1d(p.tendon_stiffness, p.ntendon)
 *         self._tendon_damping = _wrap_mjtNum_1d(p.tendon_damping, p.ntendon)
 *         self._tendon_frictionloss = _wrap_mjtNum_1d(p.tendon_frictionloss, p.ntendon)             # <<<<<<<<<<<<<<
 *         self._tendon_lengthspring = _wrap_mjtNum_1d(p.tendon_lengthspring, p.ntendon)
 *         self._tendon_length0 = _wrap_mjtNum_1d(p.tendon_length0, p.ntendon)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->tendon_frictionloss, __pyx_v_p->ntendon)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_frictionloss);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_frictionloss);
  __pyx_v_self->_tendon_frictionloss = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1442
 *         self._tendon_damping = _wrap_mjtNum_1d(p.tendon_damping, p.ntendon)
 *         self._tendon_frictionloss = _wrap_mjtNum_1d(p.tendon_frictionloss, p.ntendon)
 *         self._tendon_lengthspring = _wrap_mjtNum_1d(p.tendon_lengthspring, p.ntendon)             # <<<<<<<<<<<<<<
 *         self._tendon_length0 = _wrap_mjtNum_1d(p.tendon_length0, p.ntendon)
 *         self._tendon_invweight0 = _wrap_mjtNum_1d(p.tendon_invweight0, p.ntendon)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->tendon_lengthspring, __pyx_v_p->ntendon)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_lengthspring);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_lengthspring);
  __pyx_v_self->_tendon_lengthspring = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1443
 *         self._tendon_frictionloss = _wrap_mjtNum_1d(p.tendon_frictionloss, p.ntendon)
 *         self._tendon_lengthspring = _wrap_mjtNum_1d(p.tendon_lengthspring, p.ntendon)
 *         self._tendon_length0 = _wrap_mjtNum_1d(p.tendon_length0, p.ntendon)             # <<<<<<<<<<<<<<
 *         self._tendon_invweight0 = _wrap_mjtNum_1d(p.tendon_invweight0, p.ntendon)
 *         self._tendon_user = _wrap_mjtNum_2d(p.tendon_user, p.ntendon, p.nuser_tendon)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->tendon_length0, __pyx_v_p->ntendon)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_length0);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_length0);
  __pyx_v_self->_tendon_length0 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1444
 *         self._tendon_lengthspring = _wrap_mjtNum_1d(p.tendon_lengthspring, p.ntendon)
 *         self._tendon_length0 = _wrap_mjtNum_1d(p.tendon_length0, p.ntendon)
 *         self._tendon_invweight0 = _wrap_mjtNum_1d(p.tendon_invweight0, p.ntendon)             # <<<<<<<<<<<<<<
 *         self._tendon_user = _wrap_mjtNum_2d(p.tendon_user, p.ntendon, p.nuser_tendon)
 *         self._tendon_rgba = _wrap_float_2d(p.tendon_rgba, p.ntendon, 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->tendon_invweight0, __pyx_v_p->ntendon)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_invweight0);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_invweight0);
  __pyx_v_self->_tendon_invweight0 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1445
 *         self._tendon_length0 = _wrap_mjtNum_1d(p.tendon_length0, p.ntendon)
 *         self._tendon_invweight0 = _wrap_mjtNum_1d(p.tendon_invweight0, p.ntendon)
 *         self._tendon_user = _wrap_mjtNum_2d(p.tendon_user, p.ntendon, p.nuser_tendon)             # <<<<<<<<<<<<<<
 *         self._tendon_rgba = _wrap_float_2d(p.tendon_rgba, p.ntendon, 4)
 *         self._wrap_type = _wrap_int_1d(p.wrap_type, p.nwrap)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->tendon_user, __pyx_v_p->ntendon, __pyx_v_p->nuser_tendon)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1445, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_user);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_user);
  __pyx_v_self->_tendon_user = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1446
 *         self._tendon_invweight0 = _wrap_mjtNum_1d(p.tendon_invweight0, p.ntendon)
 *         self._tendon_user = _wrap_mjtNum_2d(p.tendon_user, p.ntendon, p.nuser_tendon)
 *         self._tendon_rgba = _wrap_float_2d(p.tendon_rgba, p.ntendon, 4)             # <<<<<<<<<<<<<<
 *         self._wrap_type = _wrap_int_1d(p.wrap_type, p.nwrap)
 *         self._wrap_objid = _wrap_int_1d(p.wrap_objid, p.nwrap)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d(__pyx_v_p->tendon_rgba, __pyx_v_p->ntendon, 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1446, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendon_rgba);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendon_rgba);
  __pyx_v_self->_tendon_rgba = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1447
 *         self._tendon_user = _wrap_mjtNum_2d(p.tendon_user, p.ntendon, p.nuser_tendon)
 *         self._tendon_rgba = _wrap_float_2d(p.tendon_rgba, p.ntendon, 4)
 *         self._wrap_type = _wrap_int_1d(p.wrap_type, p.nwrap)             # <<<<<<<<<<<<<<
 *         self._wrap_objid = _wrap_int_1d(p.wrap_objid, p.nwrap)
 *         self._wrap_prm = _wrap_mjtNum_1d(p.wrap_prm, p.nwrap)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->wrap_type, __pyx_v_p->nwrap)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_wrap_type);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_wrap_type);
  __pyx_v_self->_wrap_type = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1448
 *         self._tendon_rgba = _wrap_float_2d(p.tendon_rgba, p.ntendon, 4)
 *         self._wrap_type = _wrap_int_1d(p.wrap_type, p.nwrap)
 *         self._wrap_objid = _wrap_int_1d(p.wrap_objid, p.nwrap)             # <<<<<<<<<<<<<<
 *         self._wrap_prm = _wrap_mjtNum_1d(p.wrap_prm, p.nwrap)
 *         self._actuator_trntype = _wrap_int_1d(p.actuator_trntype, p.nu)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->wrap_objid, __pyx_v_p->nwrap)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_wrap_objid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_wrap_objid);
  __pyx_v_self->_wrap_objid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1449
 *         self._wrap_type = _wrap_int_1d(p.wrap_type, p.nwrap)
 *         self._wrap_objid = _wrap_int_1d(p.wrap_objid, p.nwrap)
 *         self._wrap_prm = _wrap_mjtNum_1d(p.wrap_prm, p.nwrap)             # <<<<<<<<<<<<<<
 *         self._actuator_trntype = _wrap_int_1d(p.actuator_trntype, p.nu)
 *         self._actuator_dyntype = _wrap_int_1d(p.actuator_dyntype, p.nu)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->wrap_prm, __pyx_v_p->nwrap)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_wrap_prm);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_wrap_prm);
  __pyx_v_self->_wrap_prm = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1450
 *         self._wrap_objid = _wrap_int_1d(p.wrap_objid, p.nwrap)
 *         self._wrap_prm = _wrap_mjtNum_1d(p.wrap_prm, p.nwrap)
 *         self._actuator_trntype = _wrap_int_1d(p.actuator_trntype, p.nu)             # <<<<<<<<<<<<<<
 *         self._actuator_dyntype = _wrap_int_1d(p.actuator_dyntype, p.nu)
 *         self._actuator_gaintype = _wrap_int_1d(p.actuator_gaintype, p.nu)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->actuator_trntype, __pyx_v_p->nu)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1450, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_trntype);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_trntype);
  __pyx_v_self->_actuator_trntype = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1451
 *         self._wrap_prm = _wrap_mjtNum_1d(p.wrap_prm, p.nwrap)
 *         self._actuator_trntype = _wrap_int_1d(p.actuator_trntype, p.nu)
 *         self._actuator_dyntype = _wrap_int_1d(p.actuator_dyntype, p.nu)             # <<<<<<<<<<<<<<
 *         self._actuator_gaintype = _wrap_int_1d(p.actuator_gaintype, p.nu)
 *         self._actuator_biastype = _wrap_int_1d(p.actuator_biastype, p.nu)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->actuator_dyntype, __pyx_v_p->nu)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_dyntype);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_dyntype);
  __pyx_v_self->_actuator_dyntype = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1452
 *         self._actuator_trntype = _wrap_int_1d(p.actuator_trntype, p.nu)
 *         self._actuator_dyntype = _wrap_int_1d(p.actuator_dyntype, p.nu)
 *         self._actuator_gaintype = _wrap_int_1d(p.actuator_gaintype, p.nu)             # <<<<<<<<<<<<<<
 *         self._actuator_biastype = _wrap_int_1d(p.actuator_biastype, p.nu)
 *         self._actuator_trnid = _wrap_int_2d(p.actuator_trnid, p.nu, 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->actuator_gaintype, __pyx_v_p->nu)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1452, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_gaintype);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_gaintype);
  __pyx_v_self->_actuator_gaintype = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1453
 *         self._actuator_dyntype = _wrap_int_1d(p.actuator_dyntype, p.nu)
 *         self._actuator_gaintype = _wrap_int_1d(p.actuator_gaintype, p.nu)
 *         self._actuator_biastype = _wrap_int_1d(p.actuator_biastype, p.nu)             # <<<<<<<<<<<<<<
 *         self._actuator_trnid = _wrap_int_2d(p.actuator_trnid, p.nu, 2)
 *         self._actuator_group = _wrap_int_1d(p.actuator_group, p.nu)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->actuator_biastype, __pyx_v_p->nu)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_biastype);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_biastype);
  __pyx_v_self->_actuator_biastype = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1454
 *         self._actuator_gaintype = _wrap_int_1d(p.actuator_gaintype, p.nu)
 *         self._actuator_biastype = _wrap_int_1d(p.actuator_biastype, p.nu)
 *         self._actuator_trnid = _wrap_int_2d(p.actuator_trnid, p.nu, 2)             # <<<<<<<<<<<<<<
 *         self._actuator_group = _wrap_int_1d(p.actuator_group, p.nu)
 *         self._actuator_ctrllimited = _wrap_mjtByte_1d(p.actuator_ctrllimited, p.nu)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_2d(__pyx_v_p->actuator_trnid, __pyx_v_p->nu, 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_trnid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_trnid);
  __pyx_v_self->_actuator_trnid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1455
 *         self._actuator_biastype = _wrap_int_1d(p.actuator_biastype, p.nu)
 *         self._actuator_trnid = _wrap_int_2d(p.actuator_trnid, p.nu, 2)
 *         self._actuator_group = _wrap_int_1d(p.actuator_group, p.nu)             # <<<<<<<<<<<<<<
 *         self._actuator_ctrllimited = _wrap_mjtByte_1d(p.actuator_ctrllimited, p.nu)
 *         self._actuator_forcelimited = _wrap_mjtByte_1d(p.actuator_forcelimited, p.nu)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->actuator_group, __pyx_v_p->nu)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_group);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_group);
  __pyx_v_self->_actuator_group = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1456
 *         self._actuator_trnid = _wrap_int_2d(p.actuator_trnid, p.nu, 2)
 *         self._actuator_group = _wrap_int_1d(p.actuator_group, p.nu)
 *         self._actuator_ctrllimited = _wrap_mjtByte_1d(p.actuator_ctrllimited, p.nu)             # <<<<<<<<<<<<<<
 *         self._actuator_forcelimited = _wrap_mjtByte_1d(p.actuator_forcelimited, p.nu)
 *         self._actuator_dynprm = _wrap_mjtNum_2d(p.actuator_dynprm, p.nu, mjNDYN)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(__pyx_v_p->actuator_ctrllimited, __pyx_v_p->nu)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_ctrllimited);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_ctrllimited);
  __pyx_v_self->_actuator_ctrllimited = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1457
 *         self._actuator_group = _wrap_int_1d(p.actuator_group, p.nu)
 *         self._actuator_ctrllimited = _wrap_mjtByte_1d(p.actuator_ctrllimited, p.nu)
 *         self._actuator_forcelimited = _wrap_mjtByte_1d(p.actuator_forcelimited, p.nu)             # <<<<<<<<<<<<<<
 *         self._actuator_dynprm = _wrap_mjtNum_2d(p.actuator_dynprm, p.nu, mjNDYN)
 *         self._actuator_gainprm = _wrap_mjtNum_2d(p.actuator_gainprm, p.nu, mjNGAIN)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(__pyx_v_p->actuator_forcelimited, __pyx_v_p->nu)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_forcelimited);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_forcelimited);
  __pyx_v_self->_actuator_forcelimited = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1458
 *         self._actuator_ctrllimited = _wrap_mjtByte_1d(p.actuator_ctrllimited, p.nu)
 *         self._actuator_forcelimited = _wrap_mjtByte_1d(p.actuator_forcelimited, p.nu)
 *         self._actuator_dynprm = _wrap_mjtNum_2d(p.actuator_dynprm, p.nu, mjNDYN)             # <<<<<<<<<<<<<<
 *         self._actuator_gainprm = _wrap_mjtNum_2d(p.actuator_gainprm, p.nu, mjNGAIN)
 *         self._actuator_biasprm = _wrap_mjtNum_2d(p.actuator_biasprm, p.nu, mjNBIAS)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->actuator_dynprm, __pyx_v_p->nu, mjNDYN)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_dynprm);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_dynprm);
  __pyx_v_self->_actuator_dynprm = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1459
 *         self._actuator_forcelimited = _wrap_mjtByte_1d(p.actuator_forcelimited, p.nu)
 *         self._actuator_dynprm = _wrap_mjtNum_2d(p.actuator_dynprm, p.nu, mjNDYN)
 *         self._actuator_gainprm = _wrap_mjtNum_2d(p.actuator_gainprm, p.nu, mjNGAIN)             # <<<<<<<<<<<<<<
 *         self._actuator_biasprm = _wrap_mjtNum_2d(p.actuator_biasprm, p.nu, mjNBIAS)
 *         self._actuator_ctrlrange = _wrap_mjtNum_2d(p.actuator_ctrlrange, p.nu, 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->actuator_gainprm, __pyx_v_p->nu, mjNGAIN)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_gainprm);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_gainprm);
  __pyx_v_self->_actuator_gainprm = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1460
 *         self._actuator_dynprm = _wrap_mjtNum_2d(p.actuator_dynprm, p.nu, mjNDYN)
 *         self._actuator_gainprm = _wrap_mjtNum_2d(p.actuator_gainprm, p.nu, mjNGAIN)
 *         self._actuator_biasprm = _wrap_mjtNum_2d(p.actuator_biasprm, p.nu, mjNBIAS)             # <<<<<<<<<<<<<<
 *         self._actuator_ctrlrange = _wrap_mjtNum_2d(p.actuator_ctrlrange, p.nu, 2)
 *         self._actuator_forcerange = _wrap_mjtNum_2d(p.actuator_forcerange, p.nu, 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->actuator_biasprm, __pyx_v_p->nu, mjNBIAS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_biasprm);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_biasprm);
  __pyx_v_self->_actuator_biasprm = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1461
 *         self._actuator_gainprm = _wrap_mjtNum_2d(p.actuator_gainprm, p.nu, mjNGAIN)
 *         self._actuator_biasprm = _wrap_mjtNum_2d(p.actuator_biasprm, p.nu, mjNBIAS)
 *         self._actuator_ctrlrange = _wrap_mjtNum_2d(p.actuator_ctrlrange, p.nu, 2)             # <<<<<<<<<<<<<<
 *         self._actuator_forcerange = _wrap_mjtNum_2d(p.actuator_forcerange, p.nu, 2)
 *         self._actuator_gear = _wrap_mjtNum_2d(p.actuator_gear, p.nu, 6)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->actuator_ctrlrange, __pyx_v_p->nu, 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_ctrlrange);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_ctrlrange);
  __pyx_v_self->_actuator_ctrlrange = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1462
 *         self._actuator_biasprm = _wrap_mjtNum_2d(p.actuator_biasprm, p.nu, mjNBIAS)
 *         self._actuator_ctrlrange = _wrap_mjtNum_2d(p.actuator_ctrlrange, p.nu, 2)
 *         self._actuator_forcerange = _wrap_mjtNum_2d(p.actuator_forcerange, p.nu, 2)             # <<<<<<<<<<<<<<
 *         self._actuator_gear = _wrap_mjtNum_2d(p.actuator_gear, p.nu, 6)
 *         self._actuator_cranklength = _wrap_mjtNum_1d(p.actuator_cranklength, p.nu)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->actuator_forcerange, __pyx_v_p->nu, 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1462, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_forcerange);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_forcerange);
  __pyx_v_self->_actuator_forcerange = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1463
 *         self._actuator_ctrlrange = _wrap_mjtNum_2d(p.actuator_ctrlrange, p.nu, 2)
 *         self._actuator_forcerange = _wrap_mjtNum_2d(p.actuator_forcerange, p.nu, 2)
 *         self._actuator_gear = _wrap_mjtNum_2d(p.actuator_gear, p.nu, 6)             # <<<<<<<<<<<<<<
 *         self._actuator_cranklength = _wrap_mjtNum_1d(p.actuator_cranklength, p.nu)
 *         self._actuator_acc0 = _wrap_mjtNum_1d(p.actuator_acc0, p.nu)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->actuator_gear, __pyx_v_p->nu, 6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_gear);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_gear);
  __pyx_v_self->_actuator_gear = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1464
 *         self._actuator_forcerange = _wrap_mjtNum_2d(p.actuator_forcerange, p.nu, 2)
 *         self._actuator_gear = _wrap_mjtNum_2d(p.actuator_gear, p.nu, 6)
 *         self._actuator_cranklength = _wrap_mjtNum_1d(p.actuator_cranklength, p.nu)             # <<<<<<<<<<<<<<
 *         self._actuator_acc0 = _wrap_mjtNum_1d(p.actuator_acc0, p.nu)
 *         self._actuator_length0 = _wrap_mjtNum_1d(p.actuator_length0, p.nu)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->actuator_cranklength, __pyx_v_p->nu)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_cranklength);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_cranklength);
  __pyx_v_self->_actuator_cranklength = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1465
 *         self._actuator_gear = _wrap_mjtNum_2d(p.actuator_gear, p.nu, 6)
 *         self._actuator_cranklength = _wrap_mjtNum_1d(p.actuator_cranklength, p.nu)
 *         self._actuator_acc0 = _wrap_mjtNum_1d(p.actuator_acc0, p.nu)             # <<<<<<<<<<<<<<
 *         self._actuator_length0 = _wrap_mjtNum_1d(p.actuator_length0, p.nu)
 *         self._actuator_lengthrange = _wrap_mjtNum_2d(p.actuator_lengthrange, p.nu, 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->actuator_acc0, __pyx_v_p->nu)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_acc0);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_acc0);
  __pyx_v_self->_actuator_acc0 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1466
 *         self._actuator_cranklength = _wrap_mjtNum_1d(p.actuator_cranklength, p.nu)
 *         self._actuator_acc0 = _wrap_mjtNum_1d(p.actuator_acc0, p.nu)
 *         self._actuator_length0 = _wrap_mjtNum_1d(p.actuator_length0, p.nu)             # <<<<<<<<<<<<<<
 *         self._actuator_lengthrange = _wrap_mjtNum_2d(p.actuator_lengthrange, p.nu, 2)
 *         self._actuator_user = _wrap_mjtNum_2d(p.actuator_user, p.nu, p.nuser_actuator)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->actuator_length0, __pyx_v_p->nu)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_length0);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_length0);
  __pyx_v_self->_actuator_length0 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1467
 *         self._actuator_acc0 = _wrap_mjtNum_1d(p.actuator_acc0, p.nu)
 *         self._actuator_length0 = _wrap_mjtNum_1d(p.actuator_length0, p.nu)
 *         self._actuator_lengthrange = _wrap_mjtNum_2d(p.actuator_lengthrange, p.nu, 2)             # <<<<<<<<<<<<<<
 *         self._actuator_user = _wrap_mjtNum_2d(p.actuator_user, p.nu, p.nuser_actuator)
 *         self._sensor_type = _wrap_int_1d(p.sensor_type, p.nsensor)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->actuator_lengthrange, __pyx_v_p->nu, 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_lengthrange);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_lengthrange);
  __pyx_v_self->_actuator_lengthrange = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1468
 *         self._actuator_length0 = _wrap_mjtNum_1d(p.actuator_length0, p.nu)
 *         self._actuator_lengthrange = _wrap_mjtNum_2d(p.actuator_lengthrange, p.nu, 2)
 *         self._actuator_user = _wrap_mjtNum_2d(p.actuator_user, p.nu, p.nuser_actuator)             # <<<<<<<<<<<<<<
 *         self._sensor_type = _wrap_int_1d(p.sensor_type, p.nsensor)
 *         self._sensor_datatype = _wrap_int_1d(p.sensor_datatype, p.nsensor)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->actuator_user, __pyx_v_p->nu, __pyx_v_p->nuser_actuator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_user);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_user);
  __pyx_v_self->_actuator_user = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1469
 *         self._actuator_lengthrange = _wrap_mjtNum_2d(p.actuator_lengthrange, p.nu, 2)
 *         self._actuator_user = _wrap_mjtNum_2d(p.actuator_user, p.nu, p.nuser_actuator)
 *         self._sensor_type = _wrap_int_1d(p.sensor_type, p.nsensor)             # <<<<<<<<<<<<<<
 *         self._sensor_datatype = _wrap_int_1d(p.sensor_datatype, p.nsensor)
 *         self._sensor_needstage = _wrap_int_1d(p.sensor_needstage, p.nsensor)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->sensor_type, __pyx_v_p->nsensor)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_sensor_type);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_sensor_type);
  __pyx_v_self->_sensor_type = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1470
 *         self._actuator_user = _wrap_mjtNum_2d(p.actuator_user, p.nu, p.nuser_actuator)
 *         self._sensor_type = _wrap_int_1d(p.sensor_type, p.nsensor)
 *         self._sensor_datatype = _wrap_int_1d(p.sensor_datatype, p.nsensor)             # <<<<<<<<<<<<<<
 *         self._sensor_needstage = _wrap_int_1d(p.sensor_needstage, p.nsensor)
 *         self._sensor_objtype = _wrap_int_1d(p.sensor_objtype, p.nsensor)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->sensor_datatype, __pyx_v_p->nsensor)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_sensor_datatype);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_sensor_datatype);
  __pyx_v_self->_sensor_datatype = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1471
 *         self._sensor_type = _wrap_int_1d(p.sensor_type, p.nsensor)
 *         self._sensor_datatype = _wrap_int_1d(p.sensor_datatype, p.nsensor)
 *         self._sensor_needstage = _wrap_int_1d(p.sensor_needstage, p.nsensor)             # <<<<<<<<<<<<<<
 *         self._sensor_objtype = _wrap_int_1d(p.sensor_objtype, p.nsensor)
 *         self._sensor_objid = _wrap_int_1d(p.sensor_objid, p.nsensor)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->sensor_needstage, __pyx_v_p->nsensor)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1471, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_sensor_needstage);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_sensor_needstage);
  __pyx_v_self->_sensor_needstage = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1472
 *         self._sensor_datatype = _wrap_int_1d(p.sensor_datatype, p.nsensor)
 *         self._sensor_needstage = _wrap_int_1d(p.sensor_needstage, p.nsensor)
 *         self._sensor_objtype = _wrap_int_1d(p.sensor_objtype, p.nsensor)             # <<<<<<<<<<<<<<
 *         self._sensor_objid = _wrap_int_1d(p.sensor_objid, p.nsensor)
 *         self._sensor_dim = _wrap_int_1d(p.sensor_dim, p.nsensor)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->sensor_objtype, __pyx_v_p->nsensor)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1472, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_sensor_objtype);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_sensor_objtype);
  __pyx_v_self->_sensor_objtype = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1473
 *         self._sensor_needstage = _wrap_int_1d(p.sensor_needstage, p.nsensor)
 *         self._sensor_objtype = _wrap_int_1d(p.sensor_objtype, p.nsensor)
 *         self._sensor_objid = _wrap_int_1d(p.sensor_objid, p.nsensor)             # <<<<<<<<<<<<<<
 *         self._sensor_dim = _wrap_int_1d(p.sensor_dim, p.nsensor)
 *         self._sensor_adr = _wrap_int_1d(p.sensor_adr, p.nsensor)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->sensor_objid, __pyx_v_p->nsensor)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_sensor_objid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_sensor_objid);
  __pyx_v_self->_sensor_objid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1474
 *         self._sensor_objtype = _wrap_int_1d(p.sensor_objtype, p.nsensor)
 *         self._sensor_objid = _wrap_int_1d(p.sensor_objid, p.nsensor)
 *         self._sensor_dim = _wrap_int_1d(p.sensor_dim, p.nsensor)             # <<<<<<<<<<<<<<
 *         self._sensor_adr = _wrap_int_1d(p.sensor_adr, p.nsensor)
 *         self._sensor_cutoff = _wrap_mjtNum_1d(p.sensor_cutoff, p.nsensor)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->sensor_dim, __pyx_v_p->nsensor)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_sensor_dim);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_sensor_dim);
  __pyx_v_self->_sensor_dim = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1475
 *         self._sensor_objid = _wrap_int_1d(p.sensor_objid, p.nsensor)
 *         self._sensor_dim = _wrap_int_1d(p.sensor_dim, p.nsensor)
 *         self._sensor_adr = _wrap_int_1d(p.sensor_adr, p.nsensor)             # <<<<<<<<<<<<<<
 *         self._sensor_cutoff = _wrap_mjtNum_1d(p.sensor_cutoff, p.nsensor)
 *         self._sensor_noise = _wrap_mjtNum_1d(p.sensor_noise, p.nsensor)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->sensor_adr, __pyx_v_p->nsensor)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_sensor_adr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_sensor_adr);
  __pyx_v_self->_sensor_adr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1476
 *         self._sensor_dim = _wrap_int_1d(p.sensor_dim, p.nsensor)
 *         self._sensor_adr = _wrap_int_1d(p.sensor_adr, p.nsensor)
 *         self._sensor_cutoff = _wrap_mjtNum_1d(p.sensor_cutoff, p.nsensor)             # <<<<<<<<<<<<<<
 *         self._sensor_noise = _wrap_mjtNum_1d(p.sensor_noise, p.nsensor)
 *         self._sensor_user = _wrap_mjtNum_2d(p.sensor_user, p.nsensor, p.nuser_sensor)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->sensor_cutoff, __pyx_v_p->nsensor)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1476, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_sensor_cutoff);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_sensor_cutoff);
  __pyx_v_self->_sensor_cutoff = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1477
 *         self._sensor_adr = _wrap_int_1d(p.sensor_adr, p.nsensor)
 *         self._sensor_cutoff = _wrap_mjtNum_1d(p.sensor_cutoff, p.nsensor)
 *         self._sensor_noise = _wrap_mjtNum_1d(p.sensor_noise, p.nsensor)             # <<<<<<<<<<<<<<
 *         self._sensor_user = _wrap_mjtNum_2d(p.sensor_user, p.nsensor, p.nuser_sensor)
 *         self._numeric_adr = _wrap_int_1d(p.numeric_adr, p.nnumeric)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->sensor_noise, __pyx_v_p->nsensor)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_sensor_noise);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_sensor_noise);
  __pyx_v_self->_sensor_noise = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1478
 *         self._sensor_cutoff = _wrap_mjtNum_1d(p.sensor_cutoff, p.nsensor)
 *         self._sensor_noise = _wrap_mjtNum_1d(p.sensor_noise, p.nsensor)
 *         self._sensor_user = _wrap_mjtNum_2d(p.sensor_user, p.nsensor, p.nuser_sensor)             # <<<<<<<<<<<<<<
 *         self._numeric_adr = _wrap_int_1d(p.numeric_adr, p.nnumeric)
 *         self._numeric_size = _wrap_int_1d(p.numeric_size, p.nnumeric)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->sensor_user, __pyx_v_p->nsensor, __pyx_v_p->nuser_sensor)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_sensor_user);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_sensor_user);
  __pyx_v_self->_sensor_user = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1479
 *         self._sensor_noise = _wrap_mjtNum_1d(p.sensor_noise, p.nsensor)
 *         self._sensor_user = _wrap_mjtNum_2d(p.sensor_user, p.nsensor, p.nuser_sensor)
 *         self._numeric_adr = _wrap_int_1d(p.numeric_adr, p.nnumeric)             # <<<<<<<<<<<<<<
 *         self._numeric_size = _wrap_int_1d(p.numeric_size, p.nnumeric)
 *         self._numeric_data = _wrap_mjtNum_1d(p.numeric_data, p.nnumericdata)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->numeric_adr, __pyx_v_p->nnumeric)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_numeric_adr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_numeric_adr);
  __pyx_v_self->_numeric_adr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1480
 *         self._sensor_user = _wrap_mjtNum_2d(p.sensor_user, p.nsensor, p.nuser_sensor)
 *         self._numeric_adr = _wrap_int_1d(p.numeric_adr, p.nnumeric)
 *         self._numeric_size = _wrap_int_1d(p.numeric_size, p.nnumeric)             # <<<<<<<<<<<<<<
 *         self._numeric_data = _wrap_mjtNum_1d(p.numeric_data, p.nnumericdata)
 *         self._text_adr = _wrap_int_1d(p.text_adr, p.ntext)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->numeric_size, __pyx_v_p->nnumeric)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_numeric_size);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_numeric_size);
  __pyx_v_self->_numeric_size = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1481
 *         self._numeric_adr = _wrap_int_1d(p.numeric_adr, p.nnumeric)
 *         self._numeric_size = _wrap_int_1d(p.numeric_size, p.nnumeric)
 *         self._numeric_data = _wrap_mjtNum_1d(p.numeric_data, p.nnumericdata)             # <<<<<<<<<<<<<<
 *         self._text_adr = _wrap_int_1d(p.text_adr, p.ntext)
 *         self._text_size = _wrap_int_1d(p.text_size, p.ntext)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->numeric_data, __pyx_v_p->nnumericdata)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_numeric_data);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_numeric_data);
  __pyx_v_self->_numeric_data = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1482
 *         self._numeric_size = _wrap_int_1d(p.numeric_size, p.nnumeric)
 *         self._numeric_data = _wrap_mjtNum_1d(p.numeric_data, p.nnumericdata)
 *         self._text_adr = _wrap_int_1d(p.text_adr, p.ntext)             # <<<<<<<<<<<<<<
 *         self._text_size = _wrap_int_1d(p.text_size, p.ntext)
 *         self._text_data = _wrap_char_1d(p.text_data, p.ntextdata)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->text_adr, __pyx_v_p->ntext)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1482, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_text_adr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_text_adr);
  __pyx_v_self->_text_adr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1483
 *         self._numeric_data = _wrap_mjtNum_1d(p.numeric_data, p.nnumericdata)
 *         self._text_adr = _wrap_int_1d(p.text_adr, p.ntext)
 *         self._text_size = _wrap_int_1d(p.text_size, p.ntext)             # <<<<<<<<<<<<<<
 *         self._text_data = _wrap_char_1d(p.text_data, p.ntextdata)
 *         self._tuple_adr = _wrap_int_1d(p.tuple_adr, p.ntuple)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->text_size, __pyx_v_p->ntext)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_text_size);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_text_size);
  __pyx_v_self->_text_size = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1484
 *         self._text_adr = _wrap_int_1d(p.text_adr, p.ntext)
 *         self._text_size = _wrap_int_1d(p.text_size, p.ntext)
 *         self._text_data = _wrap_char_1d(p.text_data, p.ntextdata)             # <<<<<<<<<<<<<<
 *         self._tuple_adr = _wrap_int_1d(p.tuple_adr, p.ntuple)
 *         self._tuple_size = _wrap_int_1d(p.tuple_size, p.ntuple)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_char_1d(__pyx_v_p->text_data, __pyx_v_p->ntextdata)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_text_data);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_text_data);
  __pyx_v_self->_text_data = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1485
 *         self._text_size = _wrap_int_1d(p.text_size, p.ntext)
 *         self._text_data = _wrap_char_1d(p.text_data, p.ntextdata)
 *         self._tuple_adr = _wrap_int_1d(p.tuple_adr, p.ntuple)             # <<<<<<<<<<<<<<
 *         self._tuple_size = _wrap_int_1d(p.tuple_size, p.ntuple)
 *         self._tuple_objtype = _wrap_int_1d(p.tuple_objtype, p.ntupledata)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->tuple_adr, __pyx_v_p->ntuple)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tuple_adr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tuple_adr);
  __pyx_v_self->_tuple_adr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1486
 *         self._text_data = _wrap_char_1d(p.text_data, p.ntextdata)
 *         self._tuple_adr = _wrap_int_1d(p.tuple_adr, p.ntuple)
 *         self._tuple_size = _wrap_int_1d(p.tuple_size, p.ntuple)             # <<<<<<<<<<<<<<
 *         self._tuple_objtype = _wrap_int_1d(p.tuple_objtype, p.ntupledata)
 *         self._tuple_objid = _wrap_int_1d(p.tuple_objid, p.ntupledata)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->tuple_size, __pyx_v_p->ntuple)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tuple_size);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tuple_size);
  __pyx_v_self->_tuple_size = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1487
 *         self._tuple_adr = _wrap_int_1d(p.tuple_adr, p.ntuple)
 *         self._tuple_size = _wrap_int_1d(p.tuple_size, p.ntuple)
 *         self._tuple_objtype = _wrap_int_1d(p.tuple_objtype, p.ntupledata)             # <<<<<<<<<<<<<<
 *         self._tuple_objid = _wrap_int_1d(p.tuple_objid, p.ntupledata)
 *         self._tuple_objprm = _wrap_mjtNum_1d(p.tuple_objprm, p.ntupledata)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->tuple_objtype, __pyx_v_p->ntupledata)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tuple_objtype);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tuple_objtype);
  __pyx_v_self->_tuple_objtype = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1488
 *         self._tuple_size = _wrap_int_1d(p.tuple_size, p.ntuple)
 *         self._tuple_objtype = _wrap_int_1d(p.tuple_objtype, p.ntupledata)
 *         self._tuple_objid = _wrap_int_1d(p.tuple_objid, p.ntupledata)             # <<<<<<<<<<<<<<
 *         self._tuple_objprm = _wrap_mjtNum_1d(p.tuple_objprm, p.ntupledata)
 *         self._key_time = _wrap_mjtNum_1d(p.key_time, p.nkey)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->tuple_objid, __pyx_v_p->ntupledata)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tuple_objid);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tuple_objid);
  __pyx_v_self->_tuple_objid = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1489
 *         self._tuple_objtype = _wrap_int_1d(p.tuple_objtype, p.ntupledata)
 *         self._tuple_objid = _wrap_int_1d(p.tuple_objid, p.ntupledata)
 *         self._tuple_objprm = _wrap_mjtNum_1d(p.tuple_objprm, p.ntupledata)             # <<<<<<<<<<<<<<
 *         self._key_time = _wrap_mjtNum_1d(p.key_time, p.nkey)
 *         self._key_qpos = _wrap_mjtNum_2d(p.key_qpos, p.nkey, p.nq)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->tuple_objprm, __pyx_v_p->ntupledata)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tuple_objprm);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tuple_objprm);
  __pyx_v_self->_tuple_objprm = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1490
 *         self._tuple_objid = _wrap_int_1d(p.tuple_objid, p.ntupledata)
 *         self._tuple_objprm = _wrap_mjtNum_1d(p.tuple_objprm, p.ntupledata)
 *         self._key_time = _wrap_mjtNum_1d(p.key_time, p.nkey)             # <<<<<<<<<<<<<<
 *         self._key_qpos = _wrap_mjtNum_2d(p.key_qpos, p.nkey, p.nq)
 *         self._key_qvel = _wrap_mjtNum_2d(p.key_qvel, p.nkey, p.nv)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->key_time, __pyx_v_p->nkey)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_key_time);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_key_time);
  __pyx_v_self->_key_time = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1491
 *         self._tuple_objprm = _wrap_mjtNum_1d(p.tuple_objprm, p.ntupledata)
 *         self._key_time = _wrap_mjtNum_1d(p.key_time, p.nkey)
 *         self._key_qpos = _wrap_mjtNum_2d(p.key_qpos, p.nkey, p.nq)             # <<<<<<<<<<<<<<
 *         self._key_qvel = _wrap_mjtNum_2d(p.key_qvel, p.nkey, p.nv)
 *         self._key_act = _wrap_mjtNum_2d(p.key_act, p.nkey, p.na)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->key_qpos, __pyx_v_p->nkey, __pyx_v_p->nq)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_key_qpos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_key_qpos);
  __pyx_v_self->_key_qpos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1492
 *         self._key_time = _wrap_mjtNum_1d(p.key_time, p.nkey)
 *         self._key_qpos = _wrap_mjtNum_2d(p.key_qpos, p.nkey, p.nq)
 *         self._key_qvel = _wrap_mjtNum_2d(p.key_qvel, p.nkey, p.nv)             # <<<<<<<<<<<<<<
 *         self._key_act = _wrap_mjtNum_2d(p.key_act, p.nkey, p.na)
 *         self._key_mpos = _wrap_mjtNum_2d(p.key_mpos, p.nkey, 3*p.nmocap)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->key_qvel, __pyx_v_p->nkey, __pyx_v_p->nv)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_key_qvel);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_key_qvel);
  __pyx_v_self->_key_qvel = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1493
 *         self._key_qpos = _wrap_mjtNum_2d(p.key_qpos, p.nkey, p.nq)
 *         self._key_qvel = _wrap_mjtNum_2d(p.key_qvel, p.nkey, p.nv)
 *         self._key_act = _wrap_mjtNum_2d(p.key_act, p.nkey, p.na)             # <<<<<<<<<<<<<<
 *         self._key_mpos = _wrap_mjtNum_2d(p.key_mpos, p.nkey, 3*p.nmocap)
 *         self._key_mquat = _wrap_mjtNum_2d(p.key_mquat, p.nkey, 4*p.nmocap)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->key_act, __pyx_v_p->nkey, __pyx_v_p->na)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_key_act);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_key_act);
  __pyx_v_self->_key_act = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1494
 *         self._key_qvel = _wrap_mjtNum_2d(p.key_qvel, p.nkey, p.nv)
 *         self._key_act = _wrap_mjtNum_2d(p.key_act, p.nkey, p.na)
 *         self._key_mpos = _wrap_mjtNum_2d(p.key_mpos, p.nkey, 3*p.nmocap)             # <<<<<<<<<<<<<<
 *         self._key_mquat = _wrap_mjtNum_2d(p.key_mquat, p.nkey, 4*p.nmocap)
 *         self._name_bodyadr = _wrap_int_1d(p.name_bodyadr, p.nbody)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->key_mpos, __pyx_v_p->nkey, (3 * __pyx_v_p->nmocap))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_key_mpos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_key_mpos);
  __pyx_v_self->_key_mpos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1495
 *         self._key_act = _wrap_mjtNum_2d(p.key_act, p.nkey, p.na)
 *         self._key_mpos = _wrap_mjtNum_2d(p.key_mpos, p.nkey, 3*p.nmocap)
 *         self._key_mquat = _wrap_mjtNum_2d(p.key_mquat, p.nkey, 4*p.nmocap)             # <<<<<<<<<<<<<<
 *         self._name_bodyadr = _wrap_int_1d(p.name_bodyadr, p.nbody)
 *         self._name_jntadr = _wrap_int_1d(p.name_jntadr, p.njnt)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->key_mquat, __pyx_v_p->nkey, (4 * __pyx_v_p->nmocap))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_key_mquat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_key_mquat);
  __pyx_v_self->_key_mquat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1496
 *         self._key_mpos = _wrap_mjtNum_2d(p.key_mpos, p.nkey, 3*p.nmocap)
 *         self._key_mquat = _wrap_mjtNum_2d(p.key_mquat, p.nkey, 4*p.nmocap)
 *         self._name_bodyadr = _wrap_int_1d(p.name_bodyadr, p.nbody)             # <<<<<<<<<<<<<<
 *         self._name_jntadr = _wrap_int_1d(p.name_jntadr, p.njnt)
 *         self._name_geomadr = _wrap_int_1d(p.name_geomadr, p.ngeom)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_bodyadr, __pyx_v_p->nbody)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1496, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_bodyadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_bodyadr);
  __pyx_v_self->_name_bodyadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1497
 *         self._key_mquat = _wrap_mjtNum_2d(p.key_mquat, p.nkey, 4*p.nmocap)
 *         self._name_bodyadr = _wrap_int_1d(p.name_bodyadr, p.nbody)
 *         self._name_jntadr = _wrap_int_1d(p.name_jntadr, p.njnt)             # <<<<<<<<<<<<<<
 *         self._name_geomadr = _wrap_int_1d(p.name_geomadr, p.ngeom)
 *         self._name_siteadr = _wrap_int_1d(p.name_siteadr, p.nsite)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_jntadr, __pyx_v_p->njnt)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_jntadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_jntadr);
  __pyx_v_self->_name_jntadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1498
 *         self._name_bodyadr = _wrap_int_1d(p.name_bodyadr, p.nbody)
 *         self._name_jntadr = _wrap_int_1d(p.name_jntadr, p.njnt)
 *         self._name_geomadr = _wrap_int_1d(p.name_geomadr, p.ngeom)             # <<<<<<<<<<<<<<
 *         self._name_siteadr = _wrap_int_1d(p.name_siteadr, p.nsite)
 *         self._name_camadr = _wrap_int_1d(p.name_camadr, p.ncam)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_geomadr, __pyx_v_p->ngeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1498, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_geomadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_geomadr);
  __pyx_v_self->_name_geomadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1499
 *         self._name_jntadr = _wrap_int_1d(p.name_jntadr, p.njnt)
 *         self._name_geomadr = _wrap_int_1d(p.name_geomadr, p.ngeom)
 *         self._name_siteadr = _wrap_int_1d(p.name_siteadr, p.nsite)             # <<<<<<<<<<<<<<
 *         self._name_camadr = _wrap_int_1d(p.name_camadr, p.ncam)
 *         self._name_lightadr = _wrap_int_1d(p.name_lightadr, p.nlight)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_siteadr, __pyx_v_p->nsite)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_siteadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_siteadr);
  __pyx_v_self->_name_siteadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1500
 *         self._name_geomadr = _wrap_int_1d(p.name_geomadr, p.ngeom)
 *         self._name_siteadr = _wrap_int_1d(p.name_siteadr, p.nsite)
 *         self._name_camadr = _wrap_int_1d(p.name_camadr, p.ncam)             # <<<<<<<<<<<<<<
 *         self._name_lightadr = _wrap_int_1d(p.name_lightadr, p.nlight)
 *         self._name_meshadr = _wrap_int_1d(p.name_meshadr, p.nmesh)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_camadr, __pyx_v_p->ncam)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_camadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_camadr);
  __pyx_v_self->_name_camadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1501
 *         self._name_siteadr = _wrap_int_1d(p.name_siteadr, p.nsite)
 *         self._name_camadr = _wrap_int_1d(p.name_camadr, p.ncam)
 *         self._name_lightadr = _wrap_int_1d(p.name_lightadr, p.nlight)             # <<<<<<<<<<<<<<
 *         self._name_meshadr = _wrap_int_1d(p.name_meshadr, p.nmesh)
 *         self._name_skinadr = _wrap_int_1d(p.name_skinadr, p.nskin)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_lightadr, __pyx_v_p->nlight)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_lightadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_lightadr);
  __pyx_v_self->_name_lightadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1502
 *         self._name_camadr = _wrap_int_1d(p.name_camadr, p.ncam)
 *         self._name_lightadr = _wrap_int_1d(p.name_lightadr, p.nlight)
 *         self._name_meshadr = _wrap_int_1d(p.name_meshadr, p.nmesh)             # <<<<<<<<<<<<<<
 *         self._name_skinadr = _wrap_int_1d(p.name_skinadr, p.nskin)
 *         self._name_hfieldadr = _wrap_int_1d(p.name_hfieldadr, p.nhfield)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_meshadr, __pyx_v_p->nmesh)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_meshadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_meshadr);
  __pyx_v_self->_name_meshadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1503
 *         self._name_lightadr = _wrap_int_1d(p.name_lightadr, p.nlight)
 *         self._name_meshadr = _wrap_int_1d(p.name_meshadr, p.nmesh)
 *         self._name_skinadr = _wrap_int_1d(p.name_skinadr, p.nskin)             # <<<<<<<<<<<<<<
 *         self._name_hfieldadr = _wrap_int_1d(p.name_hfieldadr, p.nhfield)
 *         self._name_texadr = _wrap_int_1d(p.name_texadr, p.ntex)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_skinadr, __pyx_v_p->nskin)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_skinadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_skinadr);
  __pyx_v_self->_name_skinadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1504
 *         self._name_meshadr = _wrap_int_1d(p.name_meshadr, p.nmesh)
 *         self._name_skinadr = _wrap_int_1d(p.name_skinadr, p.nskin)
 *         self._name_hfieldadr = _wrap_int_1d(p.name_hfieldadr, p.nhfield)             # <<<<<<<<<<<<<<
 *         self._name_texadr = _wrap_int_1d(p.name_texadr, p.ntex)
 *         self._name_matadr = _wrap_int_1d(p.name_matadr, p.nmat)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_hfieldadr, __pyx_v_p->nhfield)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_hfieldadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_hfieldadr);
  __pyx_v_self->_name_hfieldadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1505
 *         self._name_skinadr = _wrap_int_1d(p.name_skinadr, p.nskin)
 *         self._name_hfieldadr = _wrap_int_1d(p.name_hfieldadr, p.nhfield)
 *         self._name_texadr = _wrap_int_1d(p.name_texadr, p.ntex)             # <<<<<<<<<<<<<<
 *         self._name_matadr = _wrap_int_1d(p.name_matadr, p.nmat)
 *         self._name_pairadr = _wrap_int_1d(p.name_pairadr, p.npair)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_texadr, __pyx_v_p->ntex)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_texadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_texadr);
  __pyx_v_self->_name_texadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1506
 *         self._name_hfieldadr = _wrap_int_1d(p.name_hfieldadr, p.nhfield)
 *         self._name_texadr = _wrap_int_1d(p.name_texadr, p.ntex)
 *         self._name_matadr = _wrap_int_1d(p.name_matadr, p.nmat)             # <<<<<<<<<<<<<<
 *         self._name_pairadr = _wrap_int_1d(p.name_pairadr, p.npair)
 *         self._name_excludeadr = _wrap_int_1d(p.name_excludeadr, p.nexclude)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_matadr, __pyx_v_p->nmat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_matadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_matadr);
  __pyx_v_self->_name_matadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1507
 *         self._name_texadr = _wrap_int_1d(p.name_texadr, p.ntex)
 *         self._name_matadr = _wrap_int_1d(p.name_matadr, p.nmat)
 *         self._name_pairadr = _wrap_int_1d(p.name_pairadr, p.npair)             # <<<<<<<<<<<<<<
 *         self._name_excludeadr = _wrap_int_1d(p.name_excludeadr, p.nexclude)
 *         self._name_eqadr = _wrap_int_1d(p.name_eqadr, p.neq)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_pairadr, __pyx_v_p->npair)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_pairadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_pairadr);
  __pyx_v_self->_name_pairadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1508
 *         self._name_matadr = _wrap_int_1d(p.name_matadr, p.nmat)
 *         self._name_pairadr = _wrap_int_1d(p.name_pairadr, p.npair)
 *         self._name_excludeadr = _wrap_int_1d(p.name_excludeadr, p.nexclude)             # <<<<<<<<<<<<<<
 *         self._name_eqadr = _wrap_int_1d(p.name_eqadr, p.neq)
 *         self._name_tendonadr = _wrap_int_1d(p.name_tendonadr, p.ntendon)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_excludeadr, __pyx_v_p->nexclude)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_excludeadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_excludeadr);
  __pyx_v_self->_name_excludeadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1509
 *         self._name_pairadr = _wrap_int_1d(p.name_pairadr, p.npair)
 *         self._name_excludeadr = _wrap_int_1d(p.name_excludeadr, p.nexclude)
 *         self._name_eqadr = _wrap_int_1d(p.name_eqadr, p.neq)             # <<<<<<<<<<<<<<
 *         self._name_tendonadr = _wrap_int_1d(p.name_tendonadr, p.ntendon)
 *         self._name_actuatoradr = _wrap_int_1d(p.name_actuatoradr, p.nu)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_eqadr, __pyx_v_p->neq)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_eqadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_eqadr);
  __pyx_v_self->_name_eqadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1510
 *         self._name_excludeadr = _wrap_int_1d(p.name_excludeadr, p.nexclude)
 *         self._name_eqadr = _wrap_int_1d(p.name_eqadr, p.neq)
 *         self._name_tendonadr = _wrap_int_1d(p.name_tendonadr, p.ntendon)             # <<<<<<<<<<<<<<
 *         self._name_actuatoradr = _wrap_int_1d(p.name_actuatoradr, p.nu)
 *         self._name_sensoradr = _wrap_int_1d(p.name_sensoradr, p.nsensor)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_tendonadr, __pyx_v_p->ntendon)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_tendonadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_tendonadr);
  __pyx_v_self->_name_tendonadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1511
 *         self._name_eqadr = _wrap_int_1d(p.name_eqadr, p.neq)
 *         self._name_tendonadr = _wrap_int_1d(p.name_tendonadr, p.ntendon)
 *         self._name_actuatoradr = _wrap_int_1d(p.name_actuatoradr, p.nu)             # <<<<<<<<<<<<<<
 *         self._name_sensoradr = _wrap_int_1d(p.name_sensoradr, p.nsensor)
 *         self._name_numericadr = _wrap_int_1d(p.name_numericadr, p.nnumeric)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_actuatoradr, __pyx_v_p->nu)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_actuatoradr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_actuatoradr);
  __pyx_v_self->_name_actuatoradr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1512
 *         self._name_tendonadr = _wrap_int_1d(p.name_tendonadr, p.ntendon)
 *         self._name_actuatoradr = _wrap_int_1d(p.name_actuatoradr, p.nu)
 *         self._name_sensoradr = _wrap_int_1d(p.name_sensoradr, p.nsensor)             # <<<<<<<<<<<<<<
 *         self._name_numericadr = _wrap_int_1d(p.name_numericadr, p.nnumeric)
 *         self._name_textadr = _wrap_int_1d(p.name_textadr, p.ntext)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_sensoradr, __pyx_v_p->nsensor)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_sensoradr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_sensoradr);
  __pyx_v_self->_name_sensoradr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1513
 *         self._name_actuatoradr = _wrap_int_1d(p.name_actuatoradr, p.nu)
 *         self._name_sensoradr = _wrap_int_1d(p.name_sensoradr, p.nsensor)
 *         self._name_numericadr = _wrap_int_1d(p.name_numericadr, p.nnumeric)             # <<<<<<<<<<<<<<
 *         self._name_textadr = _wrap_int_1d(p.name_textadr, p.ntext)
 *         self._name_tupleadr = _wrap_int_1d(p.name_tupleadr, p.ntuple)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_numericadr, __pyx_v_p->nnumeric)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_numericadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_numericadr);
  __pyx_v_self->_name_numericadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1514
 *         self._name_sensoradr = _wrap_int_1d(p.name_sensoradr, p.nsensor)
 *         self._name_numericadr = _wrap_int_1d(p.name_numericadr, p.nnumeric)
 *         self._name_textadr = _wrap_int_1d(p.name_textadr, p.ntext)             # <<<<<<<<<<<<<<
 *         self._name_tupleadr = _wrap_int_1d(p.name_tupleadr, p.ntuple)
 *         self._name_keyadr = _wrap_int_1d(p.name_keyadr, p.nkey)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_textadr, __pyx_v_p->ntext)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_textadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_textadr);
  __pyx_v_self->_name_textadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1515
 *         self._name_numericadr = _wrap_int_1d(p.name_numericadr, p.nnumeric)
 *         self._name_textadr = _wrap_int_1d(p.name_textadr, p.ntext)
 *         self._name_tupleadr = _wrap_int_1d(p.name_tupleadr, p.ntuple)             # <<<<<<<<<<<<<<
 *         self._name_keyadr = _wrap_int_1d(p.name_keyadr, p.nkey)
 *         self._names = _wrap_char_1d(p.names, p.nnames)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_tupleadr, __pyx_v_p->ntuple)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_tupleadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_tupleadr);
  __pyx_v_self->_name_tupleadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1516
 *         self._name_textadr = _wrap_int_1d(p.name_textadr, p.ntext)
 *         self._name_tupleadr = _wrap_int_1d(p.name_tupleadr, p.ntuple)
 *         self._name_keyadr = _wrap_int_1d(p.name_keyadr, p.nkey)             # <<<<<<<<<<<<<<
 *         self._names = _wrap_char_1d(p.names, p.nnames)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->name_keyadr, __pyx_v_p->nkey)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name_keyadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name_keyadr);
  __pyx_v_self->_name_keyadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1517
 *         self._name_tupleadr = _wrap_int_1d(p.name_tupleadr, p.ntuple)
 *         self._name_keyadr = _wrap_int_1d(p.name_keyadr, p.nkey)
 *         self._names = _wrap_char_1d(p.names, p.nnames)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_char_1d(__pyx_v_p->names, __pyx_v_p->nnames)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_names);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_names);
  __pyx_v_self->_names = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1230
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjModel* p):             # <<<<<<<<<<<<<<
 * 
 *         self.body_names, self._body_name2id, self._body_id2name = self._extract_mj_names(p, p.name_bodyadr, p.nbody, mjtObj.mjOBJ_BODY)
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjModel._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":1519
 *         self._names = _wrap_char_1d(p.names, p.nnames)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def nq(self): return self.ptr.nq
 *     @nq.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nq_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nq_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nq___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nq___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1520
 * 
 *     @property
 *     def nq(self): return self.ptr.nq             # <<<<<<<<<<<<<<
 *     @nq.setter
 *     def nq(self, int x): self.ptr.nq = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nq); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1519
 *         self._names = _wrap_char_1d(p.names, p.nnames)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def nq(self): return self.ptr.nq
 *     @nq.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nq.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1521
 *     @property
 *     def nq(self): return self.ptr.nq
 *     @nq.setter             # <<<<<<<<<<<<<<
 *     def nq(self, int x): self.ptr.nq = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nq_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nq_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1522, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nq.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nq_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nq_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1522
 *     def nq(self): return self.ptr.nq
 *     @nq.setter
 *     def nq(self, int x): self.ptr.nq = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nv(self): return self.ptr.nv
 */
  __pyx_v_self->ptr->nq = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1521
 *     @property
 *     def nq(self): return self.ptr.nq
 *     @nq.setter             # <<<<<<<<<<<<<<
 *     def nq(self, int x): self.ptr.nq = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1523
 *     @nq.setter
 *     def nq(self, int x): self.ptr.nq = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nv(self): return self.ptr.nv
 *     @nv.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nv_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nv_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nv___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nv___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1524
 *     def nq(self, int x): self.ptr.nq = x
 *     @property
 *     def nv(self): return self.ptr.nv             # <<<<<<<<<<<<<<
 *     @nv.setter
 *     def nv(self, int x): self.ptr.nv = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nv); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1523
 *     @nq.setter
 *     def nq(self, int x): self.ptr.nq = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nv(self): return self.ptr.nv
 *     @nv.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nv.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1525
 *     @property
 *     def nv(self): return self.ptr.nv
 *     @nv.setter             # <<<<<<<<<<<<<<
 *     def nv(self, int x): self.ptr.nv = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nv_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nv_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1526, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nv.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nv_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nv_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1526
 *     def nv(self): return self.ptr.nv
 *     @nv.setter
 *     def nv(self, int x): self.ptr.nv = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nu(self): return self.ptr.nu
 */
  __pyx_v_self->ptr->nv = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1525
 *     @property
 *     def nv(self): return self.ptr.nv
 *     @nv.setter             # <<<<<<<<<<<<<<
 *     def nv(self, int x): self.ptr.nv = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1527
 *     @nv.setter
 *     def nv(self, int x): self.ptr.nv = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nu(self): return self.ptr.nu
 *     @nu.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nu_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nu_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nu___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nu___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1528
 *     def nv(self, int x): self.ptr.nv = x
 *     @property
 *     def nu(self): return self.ptr.nu             # <<<<<<<<<<<<<<
 *     @nu.setter
 *     def nu(self, int x): self.ptr.nu = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nu); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1528, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1527
 *     @nv.setter
 *     def nv(self, int x): self.ptr.nv = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nu(self): return self.ptr.nu
 *     @nu.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nu.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1529
 *     @property
 *     def nu(self): return self.ptr.nu
 *     @nu.setter             # <<<<<<<<<<<<<<
 *     def nu(self, int x): self.ptr.nu = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nu_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nu_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1530, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nu.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nu_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nu_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1530
 *     def nu(self): return self.ptr.nu
 *     @nu.setter
 *     def nu(self, int x): self.ptr.nu = x             # <<<<<<<<<<<<<<
 *     @property
 *     def na(self): return self.ptr.na
 */
  __pyx_v_self->ptr->nu = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1529
 *     @property
 *     def nu(self): return self.ptr.nu
 *     @nu.setter             # <<<<<<<<<<<<<<
 *     def nu(self, int x): self.ptr.nu = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1531
 *     @nu.setter
 *     def nu(self, int x): self.ptr.nu = x
 *     @property             # <<<<<<<<<<<<<<
 *     def na(self): return self.ptr.na
 *     @na.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_2na_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_2na_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2na___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_2na___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1532
 *     def nu(self, int x): self.ptr.nu = x
 *     @property
 *     def na(self): return self.ptr.na             # <<<<<<<<<<<<<<
 *     @na.setter
 *     def na(self, int x): self.ptr.na = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->na); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1532, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1531
 *     @nu.setter
 *     def nu(self, int x): self.ptr.nu = x
 *     @property             # <<<<<<<<<<<<<<
 *     def na(self): return self.ptr.na
 *     @na.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.na.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1533
 *     @property
 *     def na(self): return self.ptr.na
 *     @na.setter             # <<<<<<<<<<<<<<
 *     def na(self, int x): self.ptr.na = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2na_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2na_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1534, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.na.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2na_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2na_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1534
 *     def na(self): return self.ptr.na
 *     @na.setter
 *     def na(self, int x): self.ptr.na = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nbody(self): return self.ptr.nbody
 */
  __pyx_v_self->ptr->na = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1533
 *     @property
 *     def na(self): return self.ptr.na
 *     @na.setter             # <<<<<<<<<<<<<<
 *     def na(self, int x): self.ptr.na = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1535
 *     @na.setter
 *     def na(self, int x): self.ptr.na = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nbody(self): return self.ptr.nbody
 *     @nbody.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nbody_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nbody_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nbody___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nbody___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1536
 *     def na(self, int x): self.ptr.na = x
 *     @property
 *     def nbody(self): return self.ptr.nbody             # <<<<<<<<<<<<<<
 *     @nbody.setter
 *     def nbody(self, int x): self.ptr.nbody = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nbody); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1536, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1535
 *     @na.setter
 *     def na(self, int x): self.ptr.na = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nbody(self): return self.ptr.nbody
 *     @nbody.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nbody.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1537
 *     @property
 *     def nbody(self): return self.ptr.nbody
 *     @nbody.setter             # <<<<<<<<<<<<<<
 *     def nbody(self, int x): self.ptr.nbody = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nbody_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nbody_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1538, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nbody.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nbody_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nbody_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1538
 *     def nbody(self): return self.ptr.nbody
 *     @nbody.setter
 *     def nbody(self, int x): self.ptr.nbody = x             # <<<<<<<<<<<<<<
 *     @property
 *     def njnt(self): return self.ptr.njnt
 */
  __pyx_v_self->ptr->nbody = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1537
 *     @property
 *     def nbody(self): return self.ptr.nbody
 *     @nbody.setter             # <<<<<<<<<<<<<<
 *     def nbody(self, int x): self.ptr.nbody = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1539
 *     @nbody.setter
 *     def nbody(self, int x): self.ptr.nbody = x
 *     @property             # <<<<<<<<<<<<<<
 *     def njnt(self): return self.ptr.njnt
 *     @njnt.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_4njnt_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_4njnt_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4njnt___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_4njnt___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1540
 *     def nbody(self, int x): self.ptr.nbody = x
 *     @property
 *     def njnt(self): return self.ptr.njnt             # <<<<<<<<<<<<<<
 *     @njnt.setter
 *     def njnt(self, int x): self.ptr.njnt = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->njnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1539
 *     @nbody.setter
 *     def nbody(self, int x): self.ptr.nbody = x
 *     @property             # <<<<<<<<<<<<<<
 *     def njnt(self): return self.ptr.njnt
 *     @njnt.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.njnt.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1541
 *     @property
 *     def njnt(self): return self.ptr.njnt
 *     @njnt.setter             # <<<<<<<<<<<<<<
 *     def njnt(self, int x): self.ptr.njnt = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4njnt_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4njnt_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1542, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.njnt.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4njnt_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4njnt_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1542
 *     def njnt(self): return self.ptr.njnt
 *     @njnt.setter
 *     def njnt(self, int x): self.ptr.njnt = x             # <<<<<<<<<<<<<<
 *     @property
 *     def ngeom(self): return self.ptr.ngeom
 */
  __pyx_v_self->ptr->njnt = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1541
 *     @property
 *     def njnt(self): return self.ptr.njnt
 *     @njnt.setter             # <<<<<<<<<<<<<<
 *     def njnt(self, int x): self.ptr.njnt = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1543
 *     @njnt.setter
 *     def njnt(self, int x): self.ptr.njnt = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ngeom(self): return self.ptr.ngeom
 *     @ngeom.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5ngeom_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5ngeom_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5ngeom___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5ngeom___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1544
 *     def njnt(self, int x): self.ptr.njnt = x
 *     @property
 *     def ngeom(self): return self.ptr.ngeom             # <<<<<<<<<<<<<<
 *     @ngeom.setter
 *     def ngeom(self, int x): self.ptr.ngeom = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->ngeom); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1543
 *     @njnt.setter
 *     def njnt(self, int x): self.ptr.njnt = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ngeom(self): return self.ptr.ngeom
 *     @ngeom.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ngeom.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1545
 *     @property
 *     def ngeom(self): return self.ptr.ngeom
 *     @ngeom.setter             # <<<<<<<<<<<<<<
 *     def ngeom(self, int x): self.ptr.ngeom = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5ngeom_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5ngeom_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1546, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ngeom.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5ngeom_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5ngeom_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1546
 *     def ngeom(self): return self.ptr.ngeom
 *     @ngeom.setter
 *     def ngeom(self, int x): self.ptr.ngeom = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nsite(self): return self.ptr.nsite
 */
  __pyx_v_self->ptr->ngeom = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1545
 *     @property
 *     def ngeom(self): return self.ptr.ngeom
 *     @ngeom.setter             # <<<<<<<<<<<<<<
 *     def ngeom(self, int x): self.ptr.ngeom = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1547
 *     @ngeom.setter
 *     def ngeom(self, int x): self.ptr.ngeom = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nsite(self): return self.ptr.nsite
 *     @nsite.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nsite_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nsite_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nsite___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nsite___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1548
 *     def ngeom(self, int x): self.ptr.ngeom = x
 *     @property
 *     def nsite(self): return self.ptr.nsite             # <<<<<<<<<<<<<<
 *     @nsite.setter
 *     def nsite(self, int x): self.ptr.nsite = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nsite); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1547
 *     @ngeom.setter
 *     def ngeom(self, int x): self.ptr.ngeom = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nsite(self): return self.ptr.nsite
 *     @nsite.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nsite.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1549
 *     @property
 *     def nsite(self): return self.ptr.nsite
 *     @nsite.setter             # <<<<<<<<<<<<<<
 *     def nsite(self, int x): self.ptr.nsite = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nsite_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nsite_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1550, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nsite.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nsite_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nsite_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1550
 *     def nsite(self): return self.ptr.nsite
 *     @nsite.setter
 *     def nsite(self, int x): self.ptr.nsite = x             # <<<<<<<<<<<<<<
 *     @property
 *     def ncam(self): return self.ptr.ncam
 */
  __pyx_v_self->ptr->nsite = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1549
 *     @property
 *     def nsite(self): return self.ptr.nsite
 *     @nsite.setter             # <<<<<<<<<<<<<<
 *     def nsite(self, int x): self.ptr.nsite = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1551
 *     @nsite.setter
 *     def nsite(self, int x): self.ptr.nsite = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ncam(self): return self.ptr.ncam
 *     @ncam.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_4ncam_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_4ncam_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4ncam___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_4ncam___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1552
 *     def nsite(self, int x): self.ptr.nsite = x
 *     @property
 *     def ncam(self): return self.ptr.ncam             # <<<<<<<<<<<<<<
 *     @ncam.setter
 *     def ncam(self, int x): self.ptr.ncam = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->ncam); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1552, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1551
 *     @nsite.setter
 *     def nsite(self, int x): self.ptr.nsite = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ncam(self): return self.ptr.ncam
 *     @ncam.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ncam.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1553
 *     @property
 *     def ncam(self): return self.ptr.ncam
 *     @ncam.setter             # <<<<<<<<<<<<<<
 *     def ncam(self, int x): self.ptr.ncam = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4ncam_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4ncam_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1554, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ncam.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4ncam_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4ncam_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1554
 *     def ncam(self): return self.ptr.ncam
 *     @ncam.setter
 *     def ncam(self, int x): self.ptr.ncam = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nlight(self): return self.ptr.nlight
 */
  __pyx_v_self->ptr->ncam = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1553
 *     @property
 *     def ncam(self): return self.ptr.ncam
 *     @ncam.setter             # <<<<<<<<<<<<<<
 *     def ncam(self, int x): self.ptr.ncam = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1555
 *     @ncam.setter
 *     def ncam(self, int x): self.ptr.ncam = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nlight(self): return self.ptr.nlight
 *     @nlight.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nlight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nlight_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nlight___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nlight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1556
 *     def ncam(self, int x): self.ptr.ncam = x
 *     @property
 *     def nlight(self): return self.ptr.nlight             # <<<<<<<<<<<<<<
 *     @nlight.setter
 *     def nlight(self, int x): self.ptr.nlight = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nlight); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1555
 *     @ncam.setter
 *     def ncam(self, int x): self.ptr.ncam = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nlight(self): return self.ptr.nlight
 *     @nlight.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nlight.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1557
 *     @property
 *     def nlight(self): return self.ptr.nlight
 *     @nlight.setter             # <<<<<<<<<<<<<<
 *     def nlight(self, int x): self.ptr.nlight = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nlight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nlight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1558, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nlight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nlight_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nlight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1558
 *     def nlight(self): return self.ptr.nlight
 *     @nlight.setter
 *     def nlight(self, int x): self.ptr.nlight = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nmesh(self): return self.ptr.nmesh
 */
  __pyx_v_self->ptr->nlight = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1557
 *     @property
 *     def nlight(self): return self.ptr.nlight
 *     @nlight.setter             # <<<<<<<<<<<<<<
 *     def nlight(self, int x): self.ptr.nlight = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1559
 *     @nlight.setter
 *     def nlight(self, int x): self.ptr.nlight = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nmesh(self): return self.ptr.nmesh
 *     @nmesh.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nmesh_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nmesh_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nmesh___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nmesh___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1560
 *     def nlight(self, int x): self.ptr.nlight = x
 *     @property
 *     def nmesh(self): return self.ptr.nmesh             # <<<<<<<<<<<<<<
 *     @nmesh.setter
 *     def nmesh(self, int x): self.ptr.nmesh = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nmesh); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1559
 *     @nlight.setter
 *     def nlight(self, int x): self.ptr.nlight = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nmesh(self): return self.ptr.nmesh
 *     @nmesh.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nmesh.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1561
 *     @property
 *     def nmesh(self): return self.ptr.nmesh
 *     @nmesh.setter             # <<<<<<<<<<<<<<
 *     def nmesh(self, int x): self.ptr.nmesh = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nmesh_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nmesh_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1562, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nmesh.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nmesh_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nmesh_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1562
 *     def nmesh(self): return self.ptr.nmesh
 *     @nmesh.setter
 *     def nmesh(self, int x): self.ptr.nmesh = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nmeshvert(self): return self.ptr.nmeshvert
 */
  __pyx_v_self->ptr->nmesh = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1561
 *     @property
 *     def nmesh(self): return self.ptr.nmesh
 *     @nmesh.setter             # <<<<<<<<<<<<<<
 *     def nmesh(self, int x): self.ptr.nmesh = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1563
 *     @nmesh.setter
 *     def nmesh(self, int x): self.ptr.nmesh = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nmeshvert(self): return self.ptr.nmeshvert
 *     @nmeshvert.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nmeshvert_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nmeshvert_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nmeshvert___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nmeshvert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1564
 *     def nmesh(self, int x): self.ptr.nmesh = x
 *     @property
 *     def nmeshvert(self): return self.ptr.nmeshvert             # <<<<<<<<<<<<<<
 *     @nmeshvert.setter
 *     def nmeshvert(self, int x): self.ptr.nmeshvert = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nmeshvert); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1563
 *     @nmesh.setter
 *     def nmesh(self, int x): self.ptr.nmesh = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nmeshvert(self): return self.ptr.nmeshvert
 *     @nmeshvert.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nmeshvert.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1565
 *     @property
 *     def nmeshvert(self): return self.ptr.nmeshvert
 *     @nmeshvert.setter             # <<<<<<<<<<<<<<
 *     def nmeshvert(self, int x): self.ptr.nmeshvert = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nmeshvert_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nmeshvert_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1566, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nmeshvert.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nmeshvert_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nmeshvert_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1566
 *     def nmeshvert(self): return self.ptr.nmeshvert
 *     @nmeshvert.setter
 *     def nmeshvert(self, int x): self.ptr.nmeshvert = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nmeshtexvert(self): return self.ptr.nmeshtexvert
 */
  __pyx_v_self->ptr->nmeshvert = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1565
 *     @property
 *     def nmeshvert(self): return self.ptr.nmeshvert
 *     @nmeshvert.setter             # <<<<<<<<<<<<<<
 *     def nmeshvert(self, int x): self.ptr.nmeshvert = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1567
 *     @nmeshvert.setter
 *     def nmeshvert(self, int x): self.ptr.nmeshvert = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nmeshtexvert(self): return self.ptr.nmeshtexvert
 *     @nmeshtexvert.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nmeshtexvert_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nmeshtexvert_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nmeshtexvert___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nmeshtexvert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1568
 *     def nmeshvert(self, int x): self.ptr.nmeshvert = x
 *     @property
 *     def nmeshtexvert(self): return self.ptr.nmeshtexvert             # <<<<<<<<<<<<<<
 *     @nmeshtexvert.setter
 *     def nmeshtexvert(self, int x): self.ptr.nmeshtexvert = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nmeshtexvert); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1568, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1567
 *     @nmeshvert.setter
 *     def nmeshvert(self, int x): self.ptr.nmeshvert = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nmeshtexvert(self): return self.ptr.nmeshtexvert
 *     @nmeshtexvert.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nmeshtexvert.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1569
 *     @property
 *     def nmeshtexvert(self): return self.ptr.nmeshtexvert
 *     @nmeshtexvert.setter             # <<<<<<<<<<<<<<
 *     def nmeshtexvert(self, int x): self.ptr.nmeshtexvert = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nmeshtexvert_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nmeshtexvert_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1570, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nmeshtexvert.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nmeshtexvert_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nmeshtexvert_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1570
 *     def nmeshtexvert(self): return self.ptr.nmeshtexvert
 *     @nmeshtexvert.setter
 *     def nmeshtexvert(self, int x): self.ptr.nmeshtexvert = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nmeshface(self): return self.ptr.nmeshface
 */
  __pyx_v_self->ptr->nmeshtexvert = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1569
 *     @property
 *     def nmeshtexvert(self): return self.ptr.nmeshtexvert
 *     @nmeshtexvert.setter             # <<<<<<<<<<<<<<
 *     def nmeshtexvert(self, int x): self.ptr.nmeshtexvert = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1571
 *     @nmeshtexvert.setter
 *     def nmeshtexvert(self, int x): self.ptr.nmeshtexvert = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nmeshface(self): return self.ptr.nmeshface
 *     @nmeshface.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nmeshface_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nmeshface_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nmeshface___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nmeshface___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1572
 *     def nmeshtexvert(self, int x): self.ptr.nmeshtexvert = x
 *     @property
 *     def nmeshface(self): return self.ptr.nmeshface             # <<<<<<<<<<<<<<
 *     @nmeshface.setter
 *     def nmeshface(self, int x): self.ptr.nmeshface = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nmeshface); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1571
 *     @nmeshtexvert.setter
 *     def nmeshtexvert(self, int x): self.ptr.nmeshtexvert = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nmeshface(self): return self.ptr.nmeshface
 *     @nmeshface.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nmeshface.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1573
 *     @property
 *     def nmeshface(self): return self.ptr.nmeshface
 *     @nmeshface.setter             # <<<<<<<<<<<<<<
 *     def nmeshface(self, int x): self.ptr.nmeshface = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nmeshface_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nmeshface_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1574, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nmeshface.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nmeshface_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nmeshface_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1574
 *     def nmeshface(self): return self.ptr.nmeshface
 *     @nmeshface.setter
 *     def nmeshface(self, int x): self.ptr.nmeshface = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nmeshgraph(self): return self.ptr.nmeshgraph
 */
  __pyx_v_self->ptr->nmeshface = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1573
 *     @property
 *     def nmeshface(self): return self.ptr.nmeshface
 *     @nmeshface.setter             # <<<<<<<<<<<<<<
 *     def nmeshface(self, int x): self.ptr.nmeshface = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1575
 *     @nmeshface.setter
 *     def nmeshface(self, int x): self.ptr.nmeshface = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nmeshgraph(self): return self.ptr.nmeshgraph
 *     @nmeshgraph.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nmeshgraph_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nmeshgraph_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nmeshgraph___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nmeshgraph___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1576
 *     def nmeshface(self, int x): self.ptr.nmeshface = x
 *     @property
 *     def nmeshgraph(self): return self.ptr.nmeshgraph             # <<<<<<<<<<<<<<
 *     @nmeshgraph.setter
 *     def nmeshgraph(self, int x): self.ptr.nmeshgraph = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nmeshgraph); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1575
 *     @nmeshface.setter
 *     def nmeshface(self, int x): self.ptr.nmeshface = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nmeshgraph(self): return self.ptr.nmeshgraph
 *     @nmeshgraph.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nmeshgraph.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1577
 *     @property
 *     def nmeshgraph(self): return self.ptr.nmeshgraph
 *     @nmeshgraph.setter             # <<<<<<<<<<<<<<
 *     def nmeshgraph(self, int x): self.ptr.nmeshgraph = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nmeshgraph_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nmeshgraph_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1578, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nmeshgraph.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nmeshgraph_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nmeshgraph_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1578
 *     def nmeshgraph(self): return self.ptr.nmeshgraph
 *     @nmeshgraph.setter
 *     def nmeshgraph(self, int x): self.ptr.nmeshgraph = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nskin(self): return self.ptr.nskin
 */
  __pyx_v_self->ptr->nmeshgraph = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1577
 *     @property
 *     def nmeshgraph(self): return self.ptr.nmeshgraph
 *     @nmeshgraph.setter             # <<<<<<<<<<<<<<
 *     def nmeshgraph(self, int x): self.ptr.nmeshgraph = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1579
 *     @nmeshgraph.setter
 *     def nmeshgraph(self, int x): self.ptr.nmeshgraph = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskin(self): return self.ptr.nskin
 *     @nskin.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nskin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nskin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nskin___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nskin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1580
 *     def nmeshgraph(self, int x): self.ptr.nmeshgraph = x
 *     @property
 *     def nskin(self): return self.ptr.nskin             # <<<<<<<<<<<<<<
 *     @nskin.setter
 *     def nskin(self, int x): self.ptr.nskin = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nskin); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1580, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1579
 *     @nmeshgraph.setter
 *     def nmeshgraph(self, int x): self.ptr.nmeshgraph = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskin(self): return self.ptr.nskin
 *     @nskin.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nskin.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1581
 *     @property
 *     def nskin(self): return self.ptr.nskin
 *     @nskin.setter             # <<<<<<<<<<<<<<
 *     def nskin(self, int x): self.ptr.nskin = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nskin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nskin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1582, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nskin.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nskin_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nskin_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1582
 *     def nskin(self): return self.ptr.nskin
 *     @nskin.setter
 *     def nskin(self, int x): self.ptr.nskin = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nskinvert(self): return self.ptr.nskinvert
 */
  __pyx_v_self->ptr->nskin = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1581
 *     @property
 *     def nskin(self): return self.ptr.nskin
 *     @nskin.setter             # <<<<<<<<<<<<<<
 *     def nskin(self, int x): self.ptr.nskin = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1583
 *     @nskin.setter
 *     def nskin(self, int x): self.ptr.nskin = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskinvert(self): return self.ptr.nskinvert
 *     @nskinvert.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinvert_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinvert_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinvert___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinvert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1584
 *     def nskin(self, int x): self.ptr.nskin = x
 *     @property
 *     def nskinvert(self): return self.ptr.nskinvert             # <<<<<<<<<<<<<<
 *     @nskinvert.setter
 *     def nskinvert(self, int x): self.ptr.nskinvert = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nskinvert); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1583
 *     @nskin.setter
 *     def nskin(self, int x): self.ptr.nskin = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskinvert(self): return self.ptr.nskinvert
 *     @nskinvert.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nskinvert.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1585
 *     @property
 *     def nskinvert(self): return self.ptr.nskinvert
 *     @nskinvert.setter             # <<<<<<<<<<<<<<
 *     def nskinvert(self, int x): self.ptr.nskinvert = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinvert_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinvert_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1586, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nskinvert.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinvert_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinvert_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1586
 *     def nskinvert(self): return self.ptr.nskinvert
 *     @nskinvert.setter
 *     def nskinvert(self, int x): self.ptr.nskinvert = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nskintexvert(self): return self.ptr.nskintexvert
 */
  __pyx_v_self->ptr->nskinvert = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1585
 *     @property
 *     def nskinvert(self): return self.ptr.nskinvert
 *     @nskinvert.setter             # <<<<<<<<<<<<<<
 *     def nskinvert(self, int x): self.ptr.nskinvert = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1587
 *     @nskinvert.setter
 *     def nskinvert(self, int x): self.ptr.nskinvert = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskintexvert(self): return self.ptr.nskintexvert
 *     @nskintexvert.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nskintexvert_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nskintexvert_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nskintexvert___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nskintexvert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1588
 *     def nskinvert(self, int x): self.ptr.nskinvert = x
 *     @property
 *     def nskintexvert(self): return self.ptr.nskintexvert             # <<<<<<<<<<<<<<
 *     @nskintexvert.setter
 *     def nskintexvert(self, int x): self.ptr.nskintexvert = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nskintexvert); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1587
 *     @nskinvert.setter
 *     def nskinvert(self, int x): self.ptr.nskinvert = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskintexvert(self): return self.ptr.nskintexvert
 *     @nskintexvert.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nskintexvert.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1589
 *     @property
 *     def nskintexvert(self): return self.ptr.nskintexvert
 *     @nskintexvert.setter             # <<<<<<<<<<<<<<
 *     def nskintexvert(self, int x): self.ptr.nskintexvert = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nskintexvert_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nskintexvert_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1590, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nskintexvert.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nskintexvert_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nskintexvert_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1590
 *     def nskintexvert(self): return self.ptr.nskintexvert
 *     @nskintexvert.setter
 *     def nskintexvert(self, int x): self.ptr.nskintexvert = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nskinface(self): return self.ptr.nskinface
 */
  __pyx_v_self->ptr->nskintexvert = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1589
 *     @property
 *     def nskintexvert(self): return self.ptr.nskintexvert
 *     @nskintexvert.setter             # <<<<<<<<<<<<<<
 *     def nskintexvert(self, int x): self.ptr.nskintexvert = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1591
 *     @nskintexvert.setter
 *     def nskintexvert(self, int x): self.ptr.nskintexvert = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskinface(self): return self.ptr.nskinface
 *     @nskinface.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinface_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinface_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinface___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinface___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1592
 *     def nskintexvert(self, int x): self.ptr.nskintexvert = x
 *     @property
 *     def nskinface(self): return self.ptr.nskinface             # <<<<<<<<<<<<<<
 *     @nskinface.setter
 *     def nskinface(self, int x): self.ptr.nskinface = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nskinface); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1591
 *     @nskintexvert.setter
 *     def nskintexvert(self, int x): self.ptr.nskintexvert = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskinface(self): return self.ptr.nskinface
 *     @nskinface.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nskinface.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1593
 *     @property
 *     def nskinface(self): return self.ptr.nskinface
 *     @nskinface.setter             # <<<<<<<<<<<<<<
 *     def nskinface(self, int x): self.ptr.nskinface = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinface_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinface_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1594, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nskinface.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinface_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinface_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1594
 *     def nskinface(self): return self.ptr.nskinface
 *     @nskinface.setter
 *     def nskinface(self, int x): self.ptr.nskinface = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nskinbone(self): return self.ptr.nskinbone
 */
  __pyx_v_self->ptr->nskinface = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1593
 *     @property
 *     def nskinface(self): return self.ptr.nskinface
 *     @nskinface.setter             # <<<<<<<<<<<<<<
 *     def nskinface(self, int x): self.ptr.nskinface = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1595
 *     @nskinface.setter
 *     def nskinface(self, int x): self.ptr.nskinface = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskinbone(self): return self.ptr.nskinbone
 *     @nskinbone.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinbone_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinbone_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinbone___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinbone___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1596
 *     def nskinface(self, int x): self.ptr.nskinface = x
 *     @property
 *     def nskinbone(self): return self.ptr.nskinbone             # <<<<<<<<<<<<<<
 *     @nskinbone.setter
 *     def nskinbone(self, int x): self.ptr.nskinbone = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nskinbone); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1595
 *     @nskinface.setter
 *     def nskinface(self, int x): self.ptr.nskinface = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskinbone(self): return self.ptr.nskinbone
 *     @nskinbone.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nskinbone.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1597
 *     @property
 *     def nskinbone(self): return self.ptr.nskinbone
 *     @nskinbone.setter             # <<<<<<<<<<<<<<
 *     def nskinbone(self, int x): self.ptr.nskinbone = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinbone_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinbone_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1598, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nskinbone.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinbone_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nskinbone_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1598
 *     def nskinbone(self): return self.ptr.nskinbone
 *     @nskinbone.setter
 *     def nskinbone(self, int x): self.ptr.nskinbone = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nskinbonevert(self): return self.ptr.nskinbonevert
 */
  __pyx_v_self->ptr->nskinbone = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1597
 *     @property
 *     def nskinbone(self): return self.ptr.nskinbone
 *     @nskinbone.setter             # <<<<<<<<<<<<<<
 *     def nskinbone(self, int x): self.ptr.nskinbone = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1599
 *     @nskinbone.setter
 *     def nskinbone(self, int x): self.ptr.nskinbone = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskinbonevert(self): return self.ptr.nskinbonevert
 *     @nskinbonevert.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13nskinbonevert_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13nskinbonevert_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13nskinbonevert___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13nskinbonevert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1600
 *     def nskinbone(self, int x): self.ptr.nskinbone = x
 *     @property
 *     def nskinbonevert(self): return self.ptr.nskinbonevert             # <<<<<<<<<<<<<<
 *     @nskinbonevert.setter
 *     def nskinbonevert(self, int x): self.ptr.nskinbonevert = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nskinbonevert); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1599
 *     @nskinbone.setter
 *     def nskinbone(self, int x): self.ptr.nskinbone = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskinbonevert(self): return self.ptr.nskinbonevert
 *     @nskinbonevert.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nskinbonevert.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1601
 *     @property
 *     def nskinbonevert(self): return self.ptr.nskinbonevert
 *     @nskinbonevert.setter             # <<<<<<<<<<<<<<
 *     def nskinbonevert(self, int x): self.ptr.nskinbonevert = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13nskinbonevert_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13nskinbonevert_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1602, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nskinbonevert.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13nskinbonevert_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13nskinbonevert_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1602
 *     def nskinbonevert(self): return self.ptr.nskinbonevert
 *     @nskinbonevert.setter
 *     def nskinbonevert(self, int x): self.ptr.nskinbonevert = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nhfield(self): return self.ptr.nhfield
 */
  __pyx_v_self->ptr->nskinbonevert = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1601
 *     @property
 *     def nskinbonevert(self): return self.ptr.nskinbonevert
 *     @nskinbonevert.setter             # <<<<<<<<<<<<<<
 *     def nskinbonevert(self, int x): self.ptr.nskinbonevert = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1603
 *     @nskinbonevert.setter
 *     def nskinbonevert(self, int x): self.ptr.nskinbonevert = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nhfield(self): return self.ptr.nhfield
 *     @nhfield.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nhfield_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nhfield_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nhfield___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nhfield___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1604
 *     def nskinbonevert(self, int x): self.ptr.nskinbonevert = x
 *     @property
 *     def nhfield(self): return self.ptr.nhfield             # <<<<<<<<<<<<<<
 *     @nhfield.setter
 *     def nhfield(self, int x): self.ptr.nhfield = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nhfield); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1603
 *     @nskinbonevert.setter
 *     def nskinbonevert(self, int x): self.ptr.nskinbonevert = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nhfield(self): return self.ptr.nhfield
 *     @nhfield.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nhfield.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1605
 *     @property
 *     def nhfield(self): return self.ptr.nhfield
 *     @nhfield.setter             # <<<<<<<<<<<<<<
 *     def nhfield(self, int x): self.ptr.nhfield = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nhfield_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nhfield_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1606, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nhfield.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nhfield_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nhfield_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1606
 *     def nhfield(self): return self.ptr.nhfield
 *     @nhfield.setter
 *     def nhfield(self, int x): self.ptr.nhfield = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nhfielddata(self): return self.ptr.nhfielddata
 */
  __pyx_v_self->ptr->nhfield = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1605
 *     @property
 *     def nhfield(self): return self.ptr.nhfield
 *     @nhfield.setter             # <<<<<<<<<<<<<<
 *     def nhfield(self, int x): self.ptr.nhfield = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1607
 *     @nhfield.setter
 *     def nhfield(self, int x): self.ptr.nhfield = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nhfielddata(self): return self.ptr.nhfielddata
 *     @nhfielddata.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11nhfielddata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11nhfielddata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11nhfielddata___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11nhfielddata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1608
 *     def nhfield(self, int x): self.ptr.nhfield = x
 *     @property
 *     def nhfielddata(self): return self.ptr.nhfielddata             # <<<<<<<<<<<<<<
 *     @nhfielddata.setter
 *     def nhfielddata(self, int x): self.ptr.nhfielddata = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nhfielddata); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1608, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1607
 *     @nhfield.setter
 *     def nhfield(self, int x): self.ptr.nhfield = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nhfielddata(self): return self.ptr.nhfielddata
 *     @nhfielddata.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nhfielddata.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1609
 *     @property
 *     def nhfielddata(self): return self.ptr.nhfielddata
 *     @nhfielddata.setter             # <<<<<<<<<<<<<<
 *     def nhfielddata(self, int x): self.ptr.nhfielddata = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11nhfielddata_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11nhfielddata_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1610, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nhfielddata.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11nhfielddata_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11nhfielddata_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1610
 *     def nhfielddata(self): return self.ptr.nhfielddata
 *     @nhfielddata.setter
 *     def nhfielddata(self, int x): self.ptr.nhfielddata = x             # <<<<<<<<<<<<<<
 *     @property
 *     def ntex(self): return self.ptr.ntex
 */
  __pyx_v_self->ptr->nhfielddata = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1609
 *     @property
 *     def nhfielddata(self): return self.ptr.nhfielddata
 *     @nhfielddata.setter             # <<<<<<<<<<<<<<
 *     def nhfielddata(self, int x): self.ptr.nhfielddata = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1611
 *     @nhfielddata.setter
 *     def nhfielddata(self, int x): self.ptr.nhfielddata = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntex(self): return self.ptr.ntex
 *     @ntex.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_4ntex_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_4ntex_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4ntex___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_4ntex___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1612
 *     def nhfielddata(self, int x): self.ptr.nhfielddata = x
 *     @property
 *     def ntex(self): return self.ptr.ntex             # <<<<<<<<<<<<<<
 *     @ntex.setter
 *     def ntex(self, int x): self.ptr.ntex = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->ntex); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1611
 *     @nhfielddata.setter
 *     def nhfielddata(self, int x): self.ptr.nhfielddata = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntex(self): return self.ptr.ntex
 *     @ntex.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ntex.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1613
 *     @property
 *     def ntex(self): return self.ptr.ntex
 *     @ntex.setter             # <<<<<<<<<<<<<<
 *     def ntex(self, int x): self.ptr.ntex = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4ntex_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4ntex_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1614, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ntex.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4ntex_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4ntex_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1614
 *     def ntex(self): return self.ptr.ntex
 *     @ntex.setter
 *     def ntex(self, int x): self.ptr.ntex = x             # <<<<<<<<<<<<<<
 *     @property
 *     def ntexdata(self): return self.ptr.ntexdata
 */
  __pyx_v_self->ptr->ntex = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1613
 *     @property
 *     def ntex(self): return self.ptr.ntex
 *     @ntex.setter             # <<<<<<<<<<<<<<
 *     def ntex(self, int x): self.ptr.ntex = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1615
 *     @ntex.setter
 *     def ntex(self, int x): self.ptr.ntex = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntexdata(self): return self.ptr.ntexdata
 *     @ntexdata.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8ntexdata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8ntexdata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8ntexdata___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8ntexdata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1616
 *     def ntex(self, int x): self.ptr.ntex = x
 *     @property
 *     def ntexdata(self): return self.ptr.ntexdata             # <<<<<<<<<<<<<<
 *     @ntexdata.setter
 *     def ntexdata(self, int x): self.ptr.ntexdata = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->ntexdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1616, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1615
 *     @ntex.setter
 *     def ntex(self, int x): self.ptr.ntex = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntexdata(self): return self.ptr.ntexdata
 *     @ntexdata.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ntexdata.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1617
 *     @property
 *     def ntexdata(self): return self.ptr.ntexdata
 *     @ntexdata.setter             # <<<<<<<<<<<<<<
 *     def ntexdata(self, int x): self.ptr.ntexdata = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8ntexdata_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8ntexdata_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1618, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ntexdata.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8ntexdata_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8ntexdata_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1618
 *     def ntexdata(self): return self.ptr.ntexdata
 *     @ntexdata.setter
 *     def ntexdata(self, int x): self.ptr.ntexdata = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nmat(self): return self.ptr.nmat
 */
  __pyx_v_self->ptr->ntexdata = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1617
 *     @property
 *     def ntexdata(self): return self.ptr.ntexdata
 *     @ntexdata.setter             # <<<<<<<<<<<<<<
 *     def ntexdata(self, int x): self.ptr.ntexdata = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1619
 *     @ntexdata.setter
 *     def ntexdata(self, int x): self.ptr.ntexdata = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nmat(self): return self.ptr.nmat
 *     @nmat.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_4nmat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_4nmat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4nmat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_4nmat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1620
 *     def ntexdata(self, int x): self.ptr.ntexdata = x
 *     @property
 *     def nmat(self): return self.ptr.nmat             # <<<<<<<<<<<<<<
 *     @nmat.setter
 *     def nmat(self, int x): self.ptr.nmat = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nmat); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1619
 *     @ntexdata.setter
 *     def ntexdata(self, int x): self.ptr.ntexdata = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nmat(self): return self.ptr.nmat
 *     @nmat.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nmat.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1621
 *     @property
 *     def nmat(self): return self.ptr.nmat
 *     @nmat.setter             # <<<<<<<<<<<<<<
 *     def nmat(self, int x): self.ptr.nmat = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4nmat_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4nmat_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1622, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nmat.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4nmat_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4nmat_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1622
 *     def nmat(self): return self.ptr.nmat
 *     @nmat.setter
 *     def nmat(self, int x): self.ptr.nmat = x             # <<<<<<<<<<<<<<
 *     @property
 *     def npair(self): return self.ptr.npair
 */
  __pyx_v_self->ptr->nmat = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1621
 *     @property
 *     def nmat(self): return self.ptr.nmat
 *     @nmat.setter             # <<<<<<<<<<<<<<
 *     def nmat(self, int x): self.ptr.nmat = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1623
 *     @nmat.setter
 *     def nmat(self, int x): self.ptr.nmat = x
 *     @property             # <<<<<<<<<<<<<<
 *     def npair(self): return self.ptr.npair
 *     @npair.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5npair_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5npair_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5npair___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5npair___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1624
 *     def nmat(self, int x): self.ptr.nmat = x
 *     @property
 *     def npair(self): return self.ptr.npair             # <<<<<<<<<<<<<<
 *     @npair.setter
 *     def npair(self, int x): self.ptr.npair = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->npair); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1623
 *     @nmat.setter
 *     def nmat(self, int x): self.ptr.nmat = x
 *     @property             # <<<<<<<<<<<<<<
 *     def npair(self): return self.ptr.npair
 *     @npair.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.npair.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1625
 *     @property
 *     def npair(self): return self.ptr.npair
 *     @npair.setter             # <<<<<<<<<<<<<<
 *     def npair(self, int x): self.ptr.npair = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5npair_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5npair_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1626, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.npair.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5npair_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5npair_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1626
 *     def npair(self): return self.ptr.npair
 *     @npair.setter
 *     def npair(self, int x): self.ptr.npair = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nexclude(self): return self.ptr.nexclude
 */
  __pyx_v_self->ptr->npair = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1625
 *     @property
 *     def npair(self): return self.ptr.npair
 *     @npair.setter             # <<<<<<<<<<<<<<
 *     def npair(self, int x): self.ptr.npair = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1627
 *     @npair.setter
 *     def npair(self, int x): self.ptr.npair = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nexclude(self): return self.ptr.nexclude
 *     @nexclude.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8nexclude_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8nexclude_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8nexclude___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8nexclude___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1628
 *     def npair(self, int x): self.ptr.npair = x
 *     @property
 *     def nexclude(self): return self.ptr.nexclude             # <<<<<<<<<<<<<<
 *     @nexclude.setter
 *     def nexclude(self, int x): self.ptr.nexclude = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nexclude); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1627
 *     @npair.setter
 *     def npair(self, int x): self.ptr.npair = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nexclude(self): return self.ptr.nexclude
 *     @nexclude.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nexclude.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1629
 *     @property
 *     def nexclude(self): return self.ptr.nexclude
 *     @nexclude.setter             # <<<<<<<<<<<<<<
 *     def nexclude(self, int x): self.ptr.nexclude = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8nexclude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8nexclude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1630, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nexclude.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8nexclude_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8nexclude_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1630
 *     def nexclude(self): return self.ptr.nexclude
 *     @nexclude.setter
 *     def nexclude(self, int x): self.ptr.nexclude = x             # <<<<<<<<<<<<<<
 *     @property
 *     def neq(self): return self.ptr.neq
 */
  __pyx_v_self->ptr->nexclude = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1629
 *     @property
 *     def nexclude(self): return self.ptr.nexclude
 *     @nexclude.setter             # <<<<<<<<<<<<<<
 *     def nexclude(self, int x): self.ptr.nexclude = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1631
 *     @nexclude.setter
 *     def nexclude(self, int x): self.ptr.nexclude = x
 *     @property             # <<<<<<<<<<<<<<
 *     def neq(self): return self.ptr.neq
 *     @neq.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_3neq_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_3neq_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_3neq___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_3neq___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1632
 *     def nexclude(self, int x): self.ptr.nexclude = x
 *     @property
 *     def neq(self): return self.ptr.neq             # <<<<<<<<<<<<<<
 *     @neq.setter
 *     def neq(self, int x): self.ptr.neq = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->neq); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1631
 *     @nexclude.setter
 *     def nexclude(self, int x): self.ptr.nexclude = x
 *     @property             # <<<<<<<<<<<<<<
 *     def neq(self): return self.ptr.neq
 *     @neq.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.neq.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1633
 *     @property
 *     def neq(self): return self.ptr.neq
 *     @neq.setter             # <<<<<<<<<<<<<<
 *     def neq(self, int x): self.ptr.neq = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_3neq_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_3neq_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1634, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.neq.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_3neq_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_3neq_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1634
 *     def neq(self): return self.ptr.neq
 *     @neq.setter
 *     def neq(self, int x): self.ptr.neq = x             # <<<<<<<<<<<<<<
 *     @property
 *     def ntendon(self): return self.ptr.ntendon
 */
  __pyx_v_self->ptr->neq = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1633
 *     @property
 *     def neq(self): return self.ptr.neq
 *     @neq.setter             # <<<<<<<<<<<<<<
 *     def neq(self, int x): self.ptr.neq = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1635
 *     @neq.setter
 *     def neq(self, int x): self.ptr.neq = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntendon(self): return self.ptr.ntendon
 *     @ntendon.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7ntendon_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7ntendon_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7ntendon___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7ntendon___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1636
 *     def neq(self, int x): self.ptr.neq = x
 *     @property
 *     def ntendon(self): return self.ptr.ntendon             # <<<<<<<<<<<<<<
 *     @ntendon.setter
 *     def ntendon(self, int x): self.ptr.ntendon = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->ntendon); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1635
 *     @neq.setter
 *     def neq(self, int x): self.ptr.neq = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntendon(self): return self.ptr.ntendon
 *     @ntendon.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ntendon.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1637
 *     @property
 *     def ntendon(self): return self.ptr.ntendon
 *     @ntendon.setter             # <<<<<<<<<<<<<<
 *     def ntendon(self, int x): self.ptr.ntendon = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7ntendon_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7ntendon_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1638, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ntendon.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7ntendon_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7ntendon_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1638
 *     def ntendon(self): return self.ptr.ntendon
 *     @ntendon.setter
 *     def ntendon(self, int x): self.ptr.ntendon = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nwrap(self): return self.ptr.nwrap
 */
  __pyx_v_self->ptr->ntendon = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1637
 *     @property
 *     def ntendon(self): return self.ptr.ntendon
 *     @ntendon.setter             # <<<<<<<<<<<<<<
 *     def ntendon(self, int x): self.ptr.ntendon = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1639
 *     @ntendon.setter
 *     def ntendon(self, int x): self.ptr.ntendon = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nwrap(self): return self.ptr.nwrap
 *     @nwrap.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nwrap_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nwrap_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nwrap___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nwrap___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1640
 *     def ntendon(self, int x): self.ptr.ntendon = x
 *     @property
 *     def nwrap(self): return self.ptr.nwrap             # <<<<<<<<<<<<<<
 *     @nwrap.setter
 *     def nwrap(self, int x): self.ptr.nwrap = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nwrap); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1640, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1639
 *     @ntendon.setter
 *     def ntendon(self, int x): self.ptr.ntendon = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nwrap(self): return self.ptr.nwrap
 *     @nwrap.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nwrap.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1641
 *     @property
 *     def nwrap(self): return self.ptr.nwrap
 *     @nwrap.setter             # <<<<<<<<<<<<<<
 *     def nwrap(self, int x): self.ptr.nwrap = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nwrap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nwrap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1642, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nwrap.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nwrap_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nwrap_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1642
 *     def nwrap(self): return self.ptr.nwrap
 *     @nwrap.setter
 *     def nwrap(self, int x): self.ptr.nwrap = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nsensor(self): return self.ptr.nsensor
 */
  __pyx_v_self->ptr->nwrap = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1641
 *     @property
 *     def nwrap(self): return self.ptr.nwrap
 *     @nwrap.setter             # <<<<<<<<<<<<<<
 *     def nwrap(self, int x): self.ptr.nwrap = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1643
 *     @nwrap.setter
 *     def nwrap(self, int x): self.ptr.nwrap = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nsensor(self): return self.ptr.nsensor
 *     @nsensor.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nsensor_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nsensor_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nsensor___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nsensor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1644
 *     def nwrap(self, int x): self.ptr.nwrap = x
 *     @property
 *     def nsensor(self): return self.ptr.nsensor             # <<<<<<<<<<<<<<
 *     @nsensor.setter
 *     def nsensor(self, int x): self.ptr.nsensor = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nsensor); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1643
 *     @nwrap.setter
 *     def nwrap(self, int x): self.ptr.nwrap = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nsensor(self): return self.ptr.nsensor
 *     @nsensor.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nsensor.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1645
 *     @property
 *     def nsensor(self): return self.ptr.nsensor
 *     @nsensor.setter             # <<<<<<<<<<<<<<
 *     def nsensor(self, int x): self.ptr.nsensor = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nsensor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nsensor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1646, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nsensor.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nsensor_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nsensor_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1646
 *     def nsensor(self): return self.ptr.nsensor
 *     @nsensor.setter
 *     def nsensor(self, int x): self.ptr.nsensor = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nnumeric(self): return self.ptr.nnumeric
 */
  __pyx_v_self->ptr->nsensor = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1645
 *     @property
 *     def nsensor(self): return self.ptr.nsensor
 *     @nsensor.setter             # <<<<<<<<<<<<<<
 *     def nsensor(self, int x): self.ptr.nsensor = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1647
 *     @nsensor.setter
 *     def nsensor(self, int x): self.ptr.nsensor = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nnumeric(self): return self.ptr.nnumeric
 *     @nnumeric.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8nnumeric_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8nnumeric_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8nnumeric___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8nnumeric___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1648
 *     def nsensor(self, int x): self.ptr.nsensor = x
 *     @property
 *     def nnumeric(self): return self.ptr.nnumeric             # <<<<<<<<<<<<<<
 *     @nnumeric.setter
 *     def nnumeric(self, int x): self.ptr.nnumeric = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nnumeric); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1648, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1647
 *     @nsensor.setter
 *     def nsensor(self, int x): self.ptr.nsensor = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nnumeric(self): return self.ptr.nnumeric
 *     @nnumeric.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nnumeric.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1649
 *     @property
 *     def nnumeric(self): return self.ptr.nnumeric
 *     @nnumeric.setter             # <<<<<<<<<<<<<<
 *     def nnumeric(self, int x): self.ptr.nnumeric = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8nnumeric_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8nnumeric_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1650, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nnumeric.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8nnumeric_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8nnumeric_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1650
 *     def nnumeric(self): return self.ptr.nnumeric
 *     @nnumeric.setter
 *     def nnumeric(self, int x): self.ptr.nnumeric = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nnumericdata(self): return self.ptr.nnumericdata
 */
  __pyx_v_self->ptr->nnumeric = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1649
 *     @property
 *     def nnumeric(self): return self.ptr.nnumeric
 *     @nnumeric.setter             # <<<<<<<<<<<<<<
 *     def nnumeric(self, int x): self.ptr.nnumeric = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1651
 *     @nnumeric.setter
 *     def nnumeric(self, int x): self.ptr.nnumeric = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nnumericdata(self): return self.ptr.nnumericdata
 *     @nnumericdata.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nnumericdata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nnumericdata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nnumericdata___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nnumericdata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1652
 *     def nnumeric(self, int x): self.ptr.nnumeric = x
 *     @property
 *     def nnumericdata(self): return self.ptr.nnumericdata             # <<<<<<<<<<<<<<
 *     @nnumericdata.setter
 *     def nnumericdata(self, int x): self.ptr.nnumericdata = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nnumericdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1651
 *     @nnumeric.setter
 *     def nnumeric(self, int x): self.ptr.nnumeric = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nnumericdata(self): return self.ptr.nnumericdata
 *     @nnumericdata.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nnumericdata.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1653
 *     @property
 *     def nnumericdata(self): return self.ptr.nnumericdata
 *     @nnumericdata.setter             # <<<<<<<<<<<<<<
 *     def nnumericdata(self, int x): self.ptr.nnumericdata = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nnumericdata_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nnumericdata_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1654, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nnumericdata.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nnumericdata_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nnumericdata_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1654
 *     def nnumericdata(self): return self.ptr.nnumericdata
 *     @nnumericdata.setter
 *     def nnumericdata(self, int x): self.ptr.nnumericdata = x             # <<<<<<<<<<<<<<
 *     @property
 *     def ntext(self): return self.ptr.ntext
 */
  __pyx_v_self->ptr->nnumericdata = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1653
 *     @property
 *     def nnumericdata(self): return self.ptr.nnumericdata
 *     @nnumericdata.setter             # <<<<<<<<<<<<<<
 *     def nnumericdata(self, int x): self.ptr.nnumericdata = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1655
 *     @nnumericdata.setter
 *     def nnumericdata(self, int x): self.ptr.nnumericdata = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntext(self): return self.ptr.ntext
 *     @ntext.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5ntext_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5ntext_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5ntext___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5ntext___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1656
 *     def nnumericdata(self, int x): self.ptr.nnumericdata = x
 *     @property
 *     def ntext(self): return self.ptr.ntext             # <<<<<<<<<<<<<<
 *     @ntext.setter
 *     def ntext(self, int x): self.ptr.ntext = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->ntext); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1656, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1655
 *     @nnumericdata.setter
 *     def nnumericdata(self, int x): self.ptr.nnumericdata = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntext(self): return self.ptr.ntext
 *     @ntext.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ntext.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1657
 *     @property
 *     def ntext(self): return self.ptr.ntext
 *     @ntext.setter             # <<<<<<<<<<<<<<
 *     def ntext(self, int x): self.ptr.ntext = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5ntext_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5ntext_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1658, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ntext.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5ntext_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5ntext_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1658
 *     def ntext(self): return self.ptr.ntext
 *     @ntext.setter
 *     def ntext(self, int x): self.ptr.ntext = x             # <<<<<<<<<<<<<<
 *     @property
 *     def ntextdata(self): return self.ptr.ntextdata
 */
  __pyx_v_self->ptr->ntext = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1657
 *     @property
 *     def ntext(self): return self.ptr.ntext
 *     @ntext.setter             # <<<<<<<<<<<<<<
 *     def ntext(self, int x): self.ptr.ntext = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1659
 *     @ntext.setter
 *     def ntext(self, int x): self.ptr.ntext = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntextdata(self): return self.ptr.ntextdata
 *     @ntextdata.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9ntextdata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9ntextdata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9ntextdata___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9ntextdata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1660
 *     def ntext(self, int x): self.ptr.ntext = x
 *     @property
 *     def ntextdata(self): return self.ptr.ntextdata             # <<<<<<<<<<<<<<
 *     @ntextdata.setter
 *     def ntextdata(self, int x): self.ptr.ntextdata = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->ntextdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1659
 *     @ntext.setter
 *     def ntext(self, int x): self.ptr.ntext = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntextdata(self): return self.ptr.ntextdata
 *     @ntextdata.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ntextdata.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1661
 *     @property
 *     def ntextdata(self): return self.ptr.ntextdata
 *     @ntextdata.setter             # <<<<<<<<<<<<<<
 *     def ntextdata(self, int x): self.ptr.ntextdata = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9ntextdata_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9ntextdata_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1662, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ntextdata.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9ntextdata_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9ntextdata_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1662
 *     def ntextdata(self): return self.ptr.ntextdata
 *     @ntextdata.setter
 *     def ntextdata(self, int x): self.ptr.ntextdata = x             # <<<<<<<<<<<<<<
 *     @property
 *     def ntuple(self): return self.ptr.ntuple
 */
  __pyx_v_self->ptr->ntextdata = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1661
 *     @property
 *     def ntextdata(self): return self.ptr.ntextdata
 *     @ntextdata.setter             # <<<<<<<<<<<<<<
 *     def ntextdata(self, int x): self.ptr.ntextdata = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1663
 *     @ntextdata.setter
 *     def ntextdata(self, int x): self.ptr.ntextdata = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntuple(self): return self.ptr.ntuple
 *     @ntuple.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_6ntuple_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_6ntuple_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6ntuple___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_6ntuple___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1664
 *     def ntextdata(self, int x): self.ptr.ntextdata = x
 *     @property
 *     def ntuple(self): return self.ptr.ntuple             # <<<<<<<<<<<<<<
 *     @ntuple.setter
 *     def ntuple(self, int x): self.ptr.ntuple = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->ntuple); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1663
 *     @ntextdata.setter
 *     def ntextdata(self, int x): self.ptr.ntextdata = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntuple(self): return self.ptr.ntuple
 *     @ntuple.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ntuple.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1665
 *     @property
 *     def ntuple(self): return self.ptr.ntuple
 *     @ntuple.setter             # <<<<<<<<<<<<<<
 *     def ntuple(self, int x): self.ptr.ntuple = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6ntuple_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6ntuple_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1666, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ntuple.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6ntuple_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6ntuple_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1666
 *     def ntuple(self): return self.ptr.ntuple
 *     @ntuple.setter
 *     def ntuple(self, int x): self.ptr.ntuple = x             # <<<<<<<<<<<<<<
 *     @property
 *     def ntupledata(self): return self.ptr.ntupledata
 */
  __pyx_v_self->ptr->ntuple = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1665
 *     @property
 *     def ntuple(self): return self.ptr.ntuple
 *     @ntuple.setter             # <<<<<<<<<<<<<<
 *     def ntuple(self, int x): self.ptr.ntuple = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1667
 *     @ntuple.setter
 *     def ntuple(self, int x): self.ptr.ntuple = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntupledata(self): return self.ptr.ntupledata
 *     @ntupledata.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10ntupledata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10ntupledata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10ntupledata___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10ntupledata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1668
 *     def ntuple(self, int x): self.ptr.ntuple = x
 *     @property
 *     def ntupledata(self): return self.ptr.ntupledata             # <<<<<<<<<<<<<<
 *     @ntupledata.setter
 *     def ntupledata(self, int x): self.ptr.ntupledata = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->ntupledata); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1668, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1667
 *     @ntuple.setter
 *     def ntuple(self, int x): self.ptr.ntuple = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntupledata(self): return self.ptr.ntupledata
 *     @ntupledata.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ntupledata.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1669
 *     @property
 *     def ntupledata(self): return self.ptr.ntupledata
 *     @ntupledata.setter             # <<<<<<<<<<<<<<
 *     def ntupledata(self, int x): self.ptr.ntupledata = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10ntupledata_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10ntupledata_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1670, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.ntupledata.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10ntupledata_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10ntupledata_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1670
 *     def ntupledata(self): return self.ptr.ntupledata
 *     @ntupledata.setter
 *     def ntupledata(self, int x): self.ptr.ntupledata = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nkey(self): return self.ptr.nkey
 */
  __pyx_v_self->ptr->ntupledata = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1669
 *     @property
 *     def ntupledata(self): return self.ptr.ntupledata
 *     @ntupledata.setter             # <<<<<<<<<<<<<<
 *     def ntupledata(self, int x): self.ptr.ntupledata = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1671
 *     @ntupledata.setter
 *     def ntupledata(self, int x): self.ptr.ntupledata = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nkey(self): return self.ptr.nkey
 *     @nkey.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_4nkey_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_4nkey_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4nkey___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_4nkey___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1672
 *     def ntupledata(self, int x): self.ptr.ntupledata = x
 *     @property
 *     def nkey(self): return self.ptr.nkey             # <<<<<<<<<<<<<<
 *     @nkey.setter
 *     def nkey(self, int x): self.ptr.nkey = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nkey); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1672, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1671
 *     @ntupledata.setter
 *     def ntupledata(self, int x): self.ptr.ntupledata = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nkey(self): return self.ptr.nkey
 *     @nkey.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nkey.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1673
 *     @property
 *     def nkey(self): return self.ptr.nkey
 *     @nkey.setter             # <<<<<<<<<<<<<<
 *     def nkey(self, int x): self.ptr.nkey = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4nkey_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4nkey_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1674, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nkey.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4nkey_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4nkey_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1674
 *     def nkey(self): return self.ptr.nkey
 *     @nkey.setter
 *     def nkey(self, int x): self.ptr.nkey = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nmocap(self): return self.ptr.nmocap
 */
  __pyx_v_self->ptr->nkey = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1673
 *     @property
 *     def nkey(self): return self.ptr.nkey
 *     @nkey.setter             # <<<<<<<<<<<<<<
 *     def nkey(self, int x): self.ptr.nkey = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1675
 *     @nkey.setter
 *     def nkey(self, int x): self.ptr.nkey = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nmocap(self): return self.ptr.nmocap
 *     @nmocap.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nmocap_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nmocap_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nmocap___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nmocap___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1676
 *     def nkey(self, int x): self.ptr.nkey = x
 *     @property
 *     def nmocap(self): return self.ptr.nmocap             # <<<<<<<<<<<<<<
 *     @nmocap.setter
 *     def nmocap(self, int x): self.ptr.nmocap = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nmocap); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1675
 *     @nkey.setter
 *     def nkey(self, int x): self.ptr.nkey = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nmocap(self): return self.ptr.nmocap
 *     @nmocap.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nmocap.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1677
 *     @property
 *     def nmocap(self): return self.ptr.nmocap
 *     @nmocap.setter             # <<<<<<<<<<<<<<
 *     def nmocap(self, int x): self.ptr.nmocap = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nmocap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nmocap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1678, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nmocap.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nmocap_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nmocap_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1678
 *     def nmocap(self): return self.ptr.nmocap
 *     @nmocap.setter
 *     def nmocap(self, int x): self.ptr.nmocap = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nuser_body(self): return self.ptr.nuser_body
 */
  __pyx_v_self->ptr->nmocap = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1677
 *     @property
 *     def nmocap(self): return self.ptr.nmocap
 *     @nmocap.setter             # <<<<<<<<<<<<<<
 *     def nmocap(self, int x): self.ptr.nmocap = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1679
 *     @nmocap.setter
 *     def nmocap(self, int x): self.ptr.nmocap = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_body(self): return self.ptr.nuser_body
 *     @nuser_body.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_body_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_body_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_body___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_body___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1680
 *     def nmocap(self, int x): self.ptr.nmocap = x
 *     @property
 *     def nuser_body(self): return self.ptr.nuser_body             # <<<<<<<<<<<<<<
 *     @nuser_body.setter
 *     def nuser_body(self, int x): self.ptr.nuser_body = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nuser_body); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1680, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1679
 *     @nmocap.setter
 *     def nmocap(self, int x): self.ptr.nmocap = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_body(self): return self.ptr.nuser_body
 *     @nuser_body.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_body.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1681
 *     @property
 *     def nuser_body(self): return self.ptr.nuser_body
 *     @nuser_body.setter             # <<<<<<<<<<<<<<
 *     def nuser_body(self, int x): self.ptr.nuser_body = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_body_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_body_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1682, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_body.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_body_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_body_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1682
 *     def nuser_body(self): return self.ptr.nuser_body
 *     @nuser_body.setter
 *     def nuser_body(self, int x): self.ptr.nuser_body = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nuser_jnt(self): return self.ptr.nuser_jnt
 */
  __pyx_v_self->ptr->nuser_body = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1681
 *     @property
 *     def nuser_body(self): return self.ptr.nuser_body
 *     @nuser_body.setter             # <<<<<<<<<<<<<<
 *     def nuser_body(self, int x): self.ptr.nuser_body = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1683
 *     @nuser_body.setter
 *     def nuser_body(self, int x): self.ptr.nuser_body = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_jnt(self): return self.ptr.nuser_jnt
 *     @nuser_jnt.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuser_jnt_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuser_jnt_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuser_jnt___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuser_jnt___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1684
 *     def nuser_body(self, int x): self.ptr.nuser_body = x
 *     @property
 *     def nuser_jnt(self): return self.ptr.nuser_jnt             # <<<<<<<<<<<<<<
 *     @nuser_jnt.setter
 *     def nuser_jnt(self, int x): self.ptr.nuser_jnt = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nuser_jnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1684, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1683
 *     @nuser_body.setter
 *     def nuser_body(self, int x): self.ptr.nuser_body = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_jnt(self): return self.ptr.nuser_jnt
 *     @nuser_jnt.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_jnt.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1685
 *     @property
 *     def nuser_jnt(self): return self.ptr.nuser_jnt
 *     @nuser_jnt.setter             # <<<<<<<<<<<<<<
 *     def nuser_jnt(self, int x): self.ptr.nuser_jnt = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuser_jnt_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuser_jnt_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1686, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_jnt.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuser_jnt_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuser_jnt_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1686
 *     def nuser_jnt(self): return self.ptr.nuser_jnt
 *     @nuser_jnt.setter
 *     def nuser_jnt(self, int x): self.ptr.nuser_jnt = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nuser_geom(self): return self.ptr.nuser_geom
 */
  __pyx_v_self->ptr->nuser_jnt = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1685
 *     @property
 *     def nuser_jnt(self): return self.ptr.nuser_jnt
 *     @nuser_jnt.setter             # <<<<<<<<<<<<<<
 *     def nuser_jnt(self, int x): self.ptr.nuser_jnt = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1687
 *     @nuser_jnt.setter
 *     def nuser_jnt(self, int x): self.ptr.nuser_jnt = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_geom(self): return self.ptr.nuser_geom
 *     @nuser_geom.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_geom_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_geom_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_geom___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_geom___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1688
 *     def nuser_jnt(self, int x): self.ptr.nuser_jnt = x
 *     @property
 *     def nuser_geom(self): return self.ptr.nuser_geom             # <<<<<<<<<<<<<<
 *     @nuser_geom.setter
 *     def nuser_geom(self, int x): self.ptr.nuser_geom = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nuser_geom); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1687
 *     @nuser_jnt.setter
 *     def nuser_jnt(self, int x): self.ptr.nuser_jnt = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_geom(self): return self.ptr.nuser_geom
 *     @nuser_geom.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_geom.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1689
 *     @property
 *     def nuser_geom(self): return self.ptr.nuser_geom
 *     @nuser_geom.setter             # <<<<<<<<<<<<<<
 *     def nuser_geom(self, int x): self.ptr.nuser_geom = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_geom_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_geom_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1690, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_geom.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_geom_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_geom_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1690
 *     def nuser_geom(self): return self.ptr.nuser_geom
 *     @nuser_geom.setter
 *     def nuser_geom(self, int x): self.ptr.nuser_geom = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nuser_site(self): return self.ptr.nuser_site
 */
  __pyx_v_self->ptr->nuser_geom = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1689
 *     @property
 *     def nuser_geom(self): return self.ptr.nuser_geom
 *     @nuser_geom.setter             # <<<<<<<<<<<<<<
 *     def nuser_geom(self, int x): self.ptr.nuser_geom = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1691
 *     @nuser_geom.setter
 *     def nuser_geom(self, int x): self.ptr.nuser_geom = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_site(self): return self.ptr.nuser_site
 *     @nuser_site.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_site_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_site_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_site___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_site___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1692
 *     def nuser_geom(self, int x): self.ptr.nuser_geom = x
 *     @property
 *     def nuser_site(self): return self.ptr.nuser_site             # <<<<<<<<<<<<<<
 *     @nuser_site.setter
 *     def nuser_site(self, int x): self.ptr.nuser_site = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nuser_site); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1692, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1691
 *     @nuser_geom.setter
 *     def nuser_geom(self, int x): self.ptr.nuser_geom = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_site(self): return self.ptr.nuser_site
 *     @nuser_site.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_site.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1693
 *     @property
 *     def nuser_site(self): return self.ptr.nuser_site
 *     @nuser_site.setter             # <<<<<<<<<<<<<<
 *     def nuser_site(self, int x): self.ptr.nuser_site = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_site_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_site_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1694, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_site.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_site_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10nuser_site_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1694
 *     def nuser_site(self): return self.ptr.nuser_site
 *     @nuser_site.setter
 *     def nuser_site(self, int x): self.ptr.nuser_site = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nuser_cam(self): return self.ptr.nuser_cam
 */
  __pyx_v_self->ptr->nuser_site = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1693
 *     @property
 *     def nuser_site(self): return self.ptr.nuser_site
 *     @nuser_site.setter             # <<<<<<<<<<<<<<
 *     def nuser_site(self, int x): self.ptr.nuser_site = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1695
 *     @nuser_site.setter
 *     def nuser_site(self, int x): self.ptr.nuser_site = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_cam(self): return self.ptr.nuser_cam
 *     @nuser_cam.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuser_cam_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuser_cam_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuser_cam___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuser_cam___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1696
 *     def nuser_site(self, int x): self.ptr.nuser_site = x
 *     @property
 *     def nuser_cam(self): return self.ptr.nuser_cam             # <<<<<<<<<<<<<<
 *     @nuser_cam.setter
 *     def nuser_cam(self, int x): self.ptr.nuser_cam = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nuser_cam); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1695
 *     @nuser_site.setter
 *     def nuser_site(self, int x): self.ptr.nuser_site = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_cam(self): return self.ptr.nuser_cam
 *     @nuser_cam.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_cam.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1697
 *     @property
 *     def nuser_cam(self): return self.ptr.nuser_cam
 *     @nuser_cam.setter             # <<<<<<<<<<<<<<
 *     def nuser_cam(self, int x): self.ptr.nuser_cam = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuser_cam_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuser_cam_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1698, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_cam.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuser_cam_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuser_cam_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1698
 *     def nuser_cam(self): return self.ptr.nuser_cam
 *     @nuser_cam.setter
 *     def nuser_cam(self, int x): self.ptr.nuser_cam = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nuser_tendon(self): return self.ptr.nuser_tendon
 */
  __pyx_v_self->ptr->nuser_cam = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1697
 *     @property
 *     def nuser_cam(self): return self.ptr.nuser_cam
 *     @nuser_cam.setter             # <<<<<<<<<<<<<<
 *     def nuser_cam(self, int x): self.ptr.nuser_cam = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1699
 *     @nuser_cam.setter
 *     def nuser_cam(self, int x): self.ptr.nuser_cam = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_tendon(self): return self.ptr.nuser_tendon
 *     @nuser_tendon.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nuser_tendon_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nuser_tendon_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nuser_tendon___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nuser_tendon___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1700
 *     def nuser_cam(self, int x): self.ptr.nuser_cam = x
 *     @property
 *     def nuser_tendon(self): return self.ptr.nuser_tendon             # <<<<<<<<<<<<<<
 *     @nuser_tendon.setter
 *     def nuser_tendon(self, int x): self.ptr.nuser_tendon = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nuser_tendon); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1699
 *     @nuser_cam.setter
 *     def nuser_cam(self, int x): self.ptr.nuser_cam = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_tendon(self): return self.ptr.nuser_tendon
 *     @nuser_tendon.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_tendon.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1701
 *     @property
 *     def nuser_tendon(self): return self.ptr.nuser_tendon
 *     @nuser_tendon.setter             # <<<<<<<<<<<<<<
 *     def nuser_tendon(self, int x): self.ptr.nuser_tendon = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nuser_tendon_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nuser_tendon_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1702, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_tendon.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nuser_tendon_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nuser_tendon_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1702
 *     def nuser_tendon(self): return self.ptr.nuser_tendon
 *     @nuser_tendon.setter
 *     def nuser_tendon(self, int x): self.ptr.nuser_tendon = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nuser_actuator(self): return self.ptr.nuser_actuator
 */
  __pyx_v_self->ptr->nuser_tendon = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1701
 *     @property
 *     def nuser_tendon(self): return self.ptr.nuser_tendon
 *     @nuser_tendon.setter             # <<<<<<<<<<<<<<
 *     def nuser_tendon(self, int x): self.ptr.nuser_tendon = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1703
 *     @nuser_tendon.setter
 *     def nuser_tendon(self, int x): self.ptr.nuser_tendon = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_actuator(self): return self.ptr.nuser_actuator
 *     @nuser_actuator.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14nuser_actuator_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14nuser_actuator_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14nuser_actuator___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14nuser_actuator___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1704
 *     def nuser_tendon(self, int x): self.ptr.nuser_tendon = x
 *     @property
 *     def nuser_actuator(self): return self.ptr.nuser_actuator             # <<<<<<<<<<<<<<
 *     @nuser_actuator.setter
 *     def nuser_actuator(self, int x): self.ptr.nuser_actuator = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nuser_actuator); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1703
 *     @nuser_tendon.setter
 *     def nuser_tendon(self, int x): self.ptr.nuser_tendon = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_actuator(self): return self.ptr.nuser_actuator
 *     @nuser_actuator.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_actuator.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1705
 *     @property
 *     def nuser_actuator(self): return self.ptr.nuser_actuator
 *     @nuser_actuator.setter             # <<<<<<<<<<<<<<
 *     def nuser_actuator(self, int x): self.ptr.nuser_actuator = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14nuser_actuator_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14nuser_actuator_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1706, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_actuator.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14nuser_actuator_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14nuser_actuator_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1706
 *     def nuser_actuator(self): return self.ptr.nuser_actuator
 *     @nuser_actuator.setter
 *     def nuser_actuator(self, int x): self.ptr.nuser_actuator = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nuser_sensor(self): return self.ptr.nuser_sensor
 */
  __pyx_v_self->ptr->nuser_actuator = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1705
 *     @property
 *     def nuser_actuator(self): return self.ptr.nuser_actuator
 *     @nuser_actuator.setter             # <<<<<<<<<<<<<<
 *     def nuser_actuator(self, int x): self.ptr.nuser_actuator = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1707
 *     @nuser_actuator.setter
 *     def nuser_actuator(self, int x): self.ptr.nuser_actuator = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_sensor(self): return self.ptr.nuser_sensor
 *     @nuser_sensor.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nuser_sensor_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nuser_sensor_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nuser_sensor___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nuser_sensor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1708
 *     def nuser_actuator(self, int x): self.ptr.nuser_actuator = x
 *     @property
 *     def nuser_sensor(self): return self.ptr.nuser_sensor             # <<<<<<<<<<<<<<
 *     @nuser_sensor.setter
 *     def nuser_sensor(self, int x): self.ptr.nuser_sensor = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nuser_sensor); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1708, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1707
 *     @nuser_actuator.setter
 *     def nuser_actuator(self, int x): self.ptr.nuser_actuator = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuser_sensor(self): return self.ptr.nuser_sensor
 *     @nuser_sensor.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_sensor.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1709
 *     @property
 *     def nuser_sensor(self): return self.ptr.nuser_sensor
 *     @nuser_sensor.setter             # <<<<<<<<<<<<<<
 *     def nuser_sensor(self, int x): self.ptr.nuser_sensor = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nuser_sensor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nuser_sensor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1710, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuser_sensor.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nuser_sensor_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12nuser_sensor_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1710
 *     def nuser_sensor(self): return self.ptr.nuser_sensor
 *     @nuser_sensor.setter
 *     def nuser_sensor(self, int x): self.ptr.nuser_sensor = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nnames(self): return self.ptr.nnames
 */
  __pyx_v_self->ptr->nuser_sensor = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1709
 *     @property
 *     def nuser_sensor(self): return self.ptr.nuser_sensor
 *     @nuser_sensor.setter             # <<<<<<<<<<<<<<
 *     def nuser_sensor(self, int x): self.ptr.nuser_sensor = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1711
 *     @nuser_sensor.setter
 *     def nuser_sensor(self, int x): self.ptr.nuser_sensor = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nnames(self): return self.ptr.nnames
 *     @nnames.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nnames_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nnames_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nnames___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nnames___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1712
 *     def nuser_sensor(self, int x): self.ptr.nuser_sensor = x
 *     @property
 *     def nnames(self): return self.ptr.nnames             # <<<<<<<<<<<<<<
 *     @nnames.setter
 *     def nnames(self, int x): self.ptr.nnames = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nnames); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1711
 *     @nuser_sensor.setter
 *     def nuser_sensor(self, int x): self.ptr.nuser_sensor = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nnames(self): return self.ptr.nnames
 *     @nnames.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nnames.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1713
 *     @property
 *     def nnames(self): return self.ptr.nnames
 *     @nnames.setter             # <<<<<<<<<<<<<<
 *     def nnames(self, int x): self.ptr.nnames = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nnames_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nnames_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1714, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nnames.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nnames_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nnames_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1714
 *     def nnames(self): return self.ptr.nnames
 *     @nnames.setter
 *     def nnames(self, int x): self.ptr.nnames = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nM(self): return self.ptr.nM
 */
  __pyx_v_self->ptr->nnames = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1713
 *     @property
 *     def nnames(self): return self.ptr.nnames
 *     @nnames.setter             # <<<<<<<<<<<<<<
 *     def nnames(self, int x): self.ptr.nnames = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1715
 *     @nnames.setter
 *     def nnames(self, int x): self.ptr.nnames = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nM(self): return self.ptr.nM
 *     @nM.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nM_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nM_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nM___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nM___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1716
 *     def nnames(self, int x): self.ptr.nnames = x
 *     @property
 *     def nM(self): return self.ptr.nM             # <<<<<<<<<<<<<<
 *     @nM.setter
 *     def nM(self, int x): self.ptr.nM = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nM); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1716, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1715
 *     @nnames.setter
 *     def nnames(self, int x): self.ptr.nnames = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nM(self): return self.ptr.nM
 *     @nM.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nM.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1717
 *     @property
 *     def nM(self): return self.ptr.nM
 *     @nM.setter             # <<<<<<<<<<<<<<
 *     def nM(self, int x): self.ptr.nM = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nM_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nM_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1718, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nM.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nM_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_2nM_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1718
 *     def nM(self): return self.ptr.nM
 *     @nM.setter
 *     def nM(self, int x): self.ptr.nM = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nemax(self): return self.ptr.nemax
 */
  __pyx_v_self->ptr->nM = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1717
 *     @property
 *     def nM(self): return self.ptr.nM
 *     @nM.setter             # <<<<<<<<<<<<<<
 *     def nM(self, int x): self.ptr.nM = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1719
 *     @nM.setter
 *     def nM(self, int x): self.ptr.nM = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nemax(self): return self.ptr.nemax
 *     @nemax.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nemax_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nemax_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nemax___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nemax___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1720
 *     def nM(self, int x): self.ptr.nM = x
 *     @property
 *     def nemax(self): return self.ptr.nemax             # <<<<<<<<<<<<<<
 *     @nemax.setter
 *     def nemax(self, int x): self.ptr.nemax = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nemax); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1719
 *     @nM.setter
 *     def nM(self, int x): self.ptr.nM = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nemax(self): return self.ptr.nemax
 *     @nemax.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nemax.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1721
 *     @property
 *     def nemax(self): return self.ptr.nemax
 *     @nemax.setter             # <<<<<<<<<<<<<<
 *     def nemax(self, int x): self.ptr.nemax = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nemax_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nemax_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1722, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nemax.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nemax_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5nemax_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1722
 *     def nemax(self): return self.ptr.nemax
 *     @nemax.setter
 *     def nemax(self, int x): self.ptr.nemax = x             # <<<<<<<<<<<<<<
 *     @property
 *     def njmax(self): return self.ptr.njmax
 */
  __pyx_v_self->ptr->nemax = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1721
 *     @property
 *     def nemax(self): return self.ptr.nemax
 *     @nemax.setter             # <<<<<<<<<<<<<<
 *     def nemax(self, int x): self.ptr.nemax = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1723
 *     @nemax.setter
 *     def nemax(self, int x): self.ptr.nemax = x
 *     @property             # <<<<<<<<<<<<<<
 *     def njmax(self): return self.ptr.njmax
 *     @njmax.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5njmax_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5njmax_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5njmax___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5njmax___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1724
 *     def nemax(self, int x): self.ptr.nemax = x
 *     @property
 *     def njmax(self): return self.ptr.njmax             # <<<<<<<<<<<<<<
 *     @njmax.setter
 *     def njmax(self, int x): self.ptr.njmax = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->njmax); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1724, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1723
 *     @nemax.setter
 *     def nemax(self, int x): self.ptr.nemax = x
 *     @property             # <<<<<<<<<<<<<<
 *     def njmax(self): return self.ptr.njmax
 *     @njmax.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.njmax.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1725
 *     @property
 *     def njmax(self): return self.ptr.njmax
 *     @njmax.setter             # <<<<<<<<<<<<<<
 *     def njmax(self, int x): self.ptr.njmax = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5njmax_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5njmax_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1726, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.njmax.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5njmax_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5njmax_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1726
 *     def njmax(self): return self.ptr.njmax
 *     @njmax.setter
 *     def njmax(self, int x): self.ptr.njmax = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nconmax(self): return self.ptr.nconmax
 */
  __pyx_v_self->ptr->njmax = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1725
 *     @property
 *     def njmax(self): return self.ptr.njmax
 *     @njmax.setter             # <<<<<<<<<<<<<<
 *     def njmax(self, int x): self.ptr.njmax = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1727
 *     @njmax.setter
 *     def njmax(self, int x): self.ptr.njmax = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nconmax(self): return self.ptr.nconmax
 *     @nconmax.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nconmax_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nconmax_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nconmax___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nconmax___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1728
 *     def njmax(self, int x): self.ptr.njmax = x
 *     @property
 *     def nconmax(self): return self.ptr.nconmax             # <<<<<<<<<<<<<<
 *     @nconmax.setter
 *     def nconmax(self, int x): self.ptr.nconmax = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nconmax); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1727
 *     @njmax.setter
 *     def njmax(self, int x): self.ptr.njmax = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nconmax(self): return self.ptr.nconmax
 *     @nconmax.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nconmax.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1729
 *     @property
 *     def nconmax(self): return self.ptr.nconmax
 *     @nconmax.setter             # <<<<<<<<<<<<<<
 *     def nconmax(self, int x): self.ptr.nconmax = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nconmax_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nconmax_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1730, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nconmax.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nconmax_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nconmax_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1730
 *     def nconmax(self): return self.ptr.nconmax
 *     @nconmax.setter
 *     def nconmax(self, int x): self.ptr.nconmax = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nstack(self): return self.ptr.nstack
 */
  __pyx_v_self->ptr->nconmax = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1729
 *     @property
 *     def nconmax(self): return self.ptr.nconmax
 *     @nconmax.setter             # <<<<<<<<<<<<<<
 *     def nconmax(self, int x): self.ptr.nconmax = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1731
 *     @nconmax.setter
 *     def nconmax(self, int x): self.ptr.nconmax = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nstack(self): return self.ptr.nstack
 *     @nstack.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nstack_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nstack_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nstack___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nstack___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1732
 *     def nconmax(self, int x): self.ptr.nconmax = x
 *     @property
 *     def nstack(self): return self.ptr.nstack             # <<<<<<<<<<<<<<
 *     @nstack.setter
 *     def nstack(self, int x): self.ptr.nstack = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nstack); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1731
 *     @nconmax.setter
 *     def nconmax(self, int x): self.ptr.nconmax = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nstack(self): return self.ptr.nstack
 *     @nstack.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nstack.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1733
 *     @property
 *     def nstack(self): return self.ptr.nstack
 *     @nstack.setter             # <<<<<<<<<<<<<<
 *     def nstack(self, int x): self.ptr.nstack = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nstack_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nstack_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1734, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nstack.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nstack_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6nstack_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1734
 *     def nstack(self): return self.ptr.nstack
 *     @nstack.setter
 *     def nstack(self, int x): self.ptr.nstack = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nuserdata(self): return self.ptr.nuserdata
 */
  __pyx_v_self->ptr->nstack = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1733
 *     @property
 *     def nstack(self): return self.ptr.nstack
 *     @nstack.setter             # <<<<<<<<<<<<<<
 *     def nstack(self, int x): self.ptr.nstack = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1735
 *     @nstack.setter
 *     def nstack(self, int x): self.ptr.nstack = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuserdata(self): return self.ptr.nuserdata
 *     @nuserdata.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuserdata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuserdata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuserdata___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuserdata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1736
 *     def nstack(self, int x): self.ptr.nstack = x
 *     @property
 *     def nuserdata(self): return self.ptr.nuserdata             # <<<<<<<<<<<<<<
 *     @nuserdata.setter
 *     def nuserdata(self, int x): self.ptr.nuserdata = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nuserdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1736, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1735
 *     @nstack.setter
 *     def nstack(self, int x): self.ptr.nstack = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nuserdata(self): return self.ptr.nuserdata
 *     @nuserdata.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuserdata.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1737
 *     @property
 *     def nuserdata(self): return self.ptr.nuserdata
 *     @nuserdata.setter             # <<<<<<<<<<<<<<
 *     def nuserdata(self, int x): self.ptr.nuserdata = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuserdata_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuserdata_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1738, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nuserdata.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuserdata_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9nuserdata_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1738
 *     def nuserdata(self): return self.ptr.nuserdata
 *     @nuserdata.setter
 *     def nuserdata(self, int x): self.ptr.nuserdata = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nsensordata(self): return self.ptr.nsensordata
 */
  __pyx_v_self->ptr->nuserdata = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1737
 *     @property
 *     def nuserdata(self): return self.ptr.nuserdata
 *     @nuserdata.setter             # <<<<<<<<<<<<<<
 *     def nuserdata(self, int x): self.ptr.nuserdata = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1739
 *     @nuserdata.setter
 *     def nuserdata(self, int x): self.ptr.nuserdata = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nsensordata(self): return self.ptr.nsensordata
 *     @nsensordata.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11nsensordata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11nsensordata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11nsensordata___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11nsensordata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1740
 *     def nuserdata(self, int x): self.ptr.nuserdata = x
 *     @property
 *     def nsensordata(self): return self.ptr.nsensordata             # <<<<<<<<<<<<<<
 *     @nsensordata.setter
 *     def nsensordata(self, int x): self.ptr.nsensordata = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nsensordata); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1739
 *     @nuserdata.setter
 *     def nuserdata(self, int x): self.ptr.nuserdata = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nsensordata(self): return self.ptr.nsensordata
 *     @nsensordata.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nsensordata.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1741
 *     @property
 *     def nsensordata(self): return self.ptr.nsensordata
 *     @nsensordata.setter             # <<<<<<<<<<<<<<
 *     def nsensordata(self, int x): self.ptr.nsensordata = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11nsensordata_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11nsensordata_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1742, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nsensordata.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11nsensordata_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11nsensordata_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1742
 *     def nsensordata(self): return self.ptr.nsensordata
 *     @nsensordata.setter
 *     def nsensordata(self, int x): self.ptr.nsensordata = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nbuffer(self): return self.ptr.nbuffer
 */
  __pyx_v_self->ptr->nsensordata = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1741
 *     @property
 *     def nsensordata(self): return self.ptr.nsensordata
 *     @nsensordata.setter             # <<<<<<<<<<<<<<
 *     def nsensordata(self, int x): self.ptr.nsensordata = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1743
 *     @nsensordata.setter
 *     def nsensordata(self, int x): self.ptr.nsensordata = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nbuffer(self): return self.ptr.nbuffer
 *     @nbuffer.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nbuffer_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nbuffer_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nbuffer___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nbuffer___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1744
 *     def nsensordata(self, int x): self.ptr.nsensordata = x
 *     @property
 *     def nbuffer(self): return self.ptr.nbuffer             # <<<<<<<<<<<<<<
 *     @nbuffer.setter
 *     def nbuffer(self, int x): self.ptr.nbuffer = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nbuffer); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1743
 *     @nsensordata.setter
 *     def nsensordata(self, int x): self.ptr.nsensordata = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nbuffer(self): return self.ptr.nbuffer
 *     @nbuffer.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nbuffer.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1745
 *     @property
 *     def nbuffer(self): return self.ptr.nbuffer
 *     @nbuffer.setter             # <<<<<<<<<<<<<<
 *     def nbuffer(self, int x): self.ptr.nbuffer = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nbuffer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nbuffer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1746, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.nbuffer.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nbuffer_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7nbuffer_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":1746
 *     def nbuffer(self): return self.ptr.nbuffer
 *     @nbuffer.setter
 *     def nbuffer(self, int x): self.ptr.nbuffer = x             # <<<<<<<<<<<<<<
 *     @property
 *     def opt(self): return self._opt
 */
  __pyx_v_self->ptr->nbuffer = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":1745
 *     @property
 *     def nbuffer(self): return self.ptr.nbuffer
 *     @nbuffer.setter             # <<<<<<<<<<<<<<
 *     def nbuffer(self, int x): self.ptr.nbuffer = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1747
 *     @nbuffer.setter
 *     def nbuffer(self, int x): self.ptr.nbuffer = x
 *     @property             # <<<<<<<<<<<<<<
 *     def opt(self): return self._opt
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_3opt_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_3opt_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_3opt___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_3opt___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1748
 *     def nbuffer(self, int x): self.ptr.nbuffer = x
 *     @property
 *     def opt(self): return self._opt             # <<<<<<<<<<<<<<
 *     @property
 *     def vis(self): return self._vis
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_opt);
  __pyx_r = ((PyObject *)__pyx_v_self->_opt);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1747
 *     @nbuffer.setter
 *     def nbuffer(self, int x): self.ptr.nbuffer = x
 *     @property             # <<<<<<<<<<<<<<
 *     def opt(self): return self._opt
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1749
 *     @property
 *     def opt(self): return self._opt
 *     @property             # <<<<<<<<<<<<<<
 *     def vis(self): return self._vis
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_3vis_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_3vis_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_3vis___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_3vis___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1750
 *     def opt(self): return self._opt
 *     @property
 *     def vis(self): return self._vis             # <<<<<<<<<<<<<<
 *     @property
 *     def stat(self): return self._stat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_vis);
  __pyx_r = ((PyObject *)__pyx_v_self->_vis);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1749
 *     @property
 *     def opt(self): return self._opt
 *     @property             # <<<<<<<<<<<<<<
 *     def vis(self): return self._vis
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1751
 *     @property
 *     def vis(self): return self._vis
 *     @property             # <<<<<<<<<<<<<<
 *     def stat(self): return self._stat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_4stat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_4stat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_4stat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_4stat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1752
 *     def vis(self): return self._vis
 *     @property
 *     def stat(self): return self._stat             # <<<<<<<<<<<<<<
 *     @property
 *     def qpos0(self): return self._qpos0
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_stat);
  __pyx_r = ((PyObject *)__pyx_v_self->_stat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1751
 *     @property
 *     def vis(self): return self._vis
 *     @property             # <<<<<<<<<<<<<<
 *     def stat(self): return self._stat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1753
 *     @property
 *     def stat(self): return self._stat
 *     @property             # <<<<<<<<<<<<<<
 *     def qpos0(self): return self._qpos0
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5qpos0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5qpos0_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5qpos0___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5qpos0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1754
 *     def stat(self): return self._stat
 *     @property
 *     def qpos0(self): return self._qpos0             # <<<<<<<<<<<<<<
 *     @property
 *     def qpos_spring(self): return self._qpos_spring
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qpos0);
  __pyx_r = ((PyObject *)__pyx_v_self->_qpos0);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1753
 *     @property
 *     def stat(self): return self._stat
 *     @property             # <<<<<<<<<<<<<<
 *     def qpos0(self): return self._qpos0
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1755
 *     @property
 *     def qpos0(self): return self._qpos0
 *     @property             # <<<<<<<<<<<<<<
 *     def qpos_spring(self): return self._qpos_spring
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11qpos_spring_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11qpos_spring_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11qpos_spring___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11qpos_spring___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1756
 *     def qpos0(self): return self._qpos0
 *     @property
 *     def qpos_spring(self): return self._qpos_spring             # <<<<<<<<<<<<<<
 *     @property
 *     def body_parentid(self): return self._body_parentid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qpos_spring);
  __pyx_r = ((PyObject *)__pyx_v_self->_qpos_spring);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1755
 *     @property
 *     def qpos0(self): return self._qpos0
 *     @property             # <<<<<<<<<<<<<<
 *     def qpos_spring(self): return self._qpos_spring
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1757
 *     @property
 *     def qpos_spring(self): return self._qpos_spring
 *     @property             # <<<<<<<<<<<<<<
 *     def body_parentid(self): return self._body_parentid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13body_parentid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13body_parentid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13body_parentid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13body_parentid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1758
 *     def qpos_spring(self): return self._qpos_spring
 *     @property
 *     def body_parentid(self): return self._body_parentid             # <<<<<<<<<<<<<<
 *     @property
 *     def body_rootid(self): return self._body_rootid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_parentid);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_parentid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1757
 *     @property
 *     def qpos_spring(self): return self._qpos_spring
 *     @property             # <<<<<<<<<<<<<<
 *     def body_parentid(self): return self._body_parentid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1759
 *     @property
 *     def body_parentid(self): return self._body_parentid
 *     @property             # <<<<<<<<<<<<<<
 *     def body_rootid(self): return self._body_rootid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_rootid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_rootid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_rootid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_rootid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1760
 *     def body_parentid(self): return self._body_parentid
 *     @property
 *     def body_rootid(self): return self._body_rootid             # <<<<<<<<<<<<<<
 *     @property
 *     def body_weldid(self): return self._body_weldid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_rootid);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_rootid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1759
 *     @property
 *     def body_parentid(self): return self._body_parentid
 *     @property             # <<<<<<<<<<<<<<
 *     def body_rootid(self): return self._body_rootid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1761
 *     @property
 *     def body_rootid(self): return self._body_rootid
 *     @property             # <<<<<<<<<<<<<<
 *     def body_weldid(self): return self._body_weldid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_weldid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_weldid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_weldid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_weldid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1762
 *     def body_rootid(self): return self._body_rootid
 *     @property
 *     def body_weldid(self): return self._body_weldid             # <<<<<<<<<<<<<<
 *     @property
 *     def body_mocapid(self): return self._body_mocapid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_weldid);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_weldid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1761
 *     @property
 *     def body_rootid(self): return self._body_rootid
 *     @property             # <<<<<<<<<<<<<<
 *     def body_weldid(self): return self._body_weldid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1763
 *     @property
 *     def body_weldid(self): return self._body_weldid
 *     @property             # <<<<<<<<<<<<<<
 *     def body_mocapid(self): return self._body_mocapid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12body_mocapid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12body_mocapid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12body_mocapid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12body_mocapid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1764
 *     def body_weldid(self): return self._body_weldid
 *     @property
 *     def body_mocapid(self): return self._body_mocapid             # <<<<<<<<<<<<<<
 *     @property
 *     def body_jntnum(self): return self._body_jntnum
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_mocapid);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_mocapid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1763
 *     @property
 *     def body_weldid(self): return self._body_weldid
 *     @property             # <<<<<<<<<<<<<<
 *     def body_mocapid(self): return self._body_mocapid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1765
 *     @property
 *     def body_mocapid(self): return self._body_mocapid
 *     @property             # <<<<<<<<<<<<<<
 *     def body_jntnum(self): return self._body_jntnum
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_jntnum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_jntnum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_jntnum___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_jntnum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1766
 *     def body_mocapid(self): return self._body_mocapid
 *     @property
 *     def body_jntnum(self): return self._body_jntnum             # <<<<<<<<<<<<<<
 *     @property
 *     def body_jntadr(self): return self._body_jntadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_jntnum);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_jntnum);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1765
 *     @property
 *     def body_mocapid(self): return self._body_mocapid
 *     @property             # <<<<<<<<<<<<<<
 *     def body_jntnum(self): return self._body_jntnum
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1767
 *     @property
 *     def body_jntnum(self): return self._body_jntnum
 *     @property             # <<<<<<<<<<<<<<
 *     def body_jntadr(self): return self._body_jntadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_jntadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_jntadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_jntadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_jntadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1768
 *     def body_jntnum(self): return self._body_jntnum
 *     @property
 *     def body_jntadr(self): return self._body_jntadr             # <<<<<<<<<<<<<<
 *     @property
 *     def body_dofnum(self): return self._body_dofnum
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_jntadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_jntadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1767
 *     @property
 *     def body_jntnum(self): return self._body_jntnum
 *     @property             # <<<<<<<<<<<<<<
 *     def body_jntadr(self): return self._body_jntadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1769
 *     @property
 *     def body_jntadr(self): return self._body_jntadr
 *     @property             # <<<<<<<<<<<<<<
 *     def body_dofnum(self): return self._body_dofnum
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_dofnum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_dofnum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_dofnum___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_dofnum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1770
 *     def body_jntadr(self): return self._body_jntadr
 *     @property
 *     def body_dofnum(self): return self._body_dofnum             # <<<<<<<<<<<<<<
 *     @property
 *     def body_dofadr(self): return self._body_dofadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_dofnum);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_dofnum);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1769
 *     @property
 *     def body_jntadr(self): return self._body_jntadr
 *     @property             # <<<<<<<<<<<<<<
 *     def body_dofnum(self): return self._body_dofnum
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1771
 *     @property
 *     def body_dofnum(self): return self._body_dofnum
 *     @property             # <<<<<<<<<<<<<<
 *     def body_dofadr(self): return self._body_dofadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_dofadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_dofadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_dofadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_dofadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1772
 *     def body_dofnum(self): return self._body_dofnum
 *     @property
 *     def body_dofadr(self): return self._body_dofadr             # <<<<<<<<<<<<<<
 *     @property
 *     def body_geomnum(self): return self._body_geomnum
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_dofadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_dofadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1771
 *     @property
 *     def body_dofnum(self): return self._body_dofnum
 *     @property             # <<<<<<<<<<<<<<
 *     def body_dofadr(self): return self._body_dofadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1773
 *     @property
 *     def body_dofadr(self): return self._body_dofadr
 *     @property             # <<<<<<<<<<<<<<
 *     def body_geomnum(self): return self._body_geomnum
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12body_geomnum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12body_geomnum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12body_geomnum___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12body_geomnum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1774
 *     def body_dofadr(self): return self._body_dofadr
 *     @property
 *     def body_geomnum(self): return self._body_geomnum             # <<<<<<<<<<<<<<
 *     @property
 *     def body_geomadr(self): return self._body_geomadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_geomnum);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_geomnum);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1773
 *     @property
 *     def body_dofadr(self): return self._body_dofadr
 *     @property             # <<<<<<<<<<<<<<
 *     def body_geomnum(self): return self._body_geomnum
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1775
 *     @property
 *     def body_geomnum(self): return self._body_geomnum
 *     @property             # <<<<<<<<<<<<<<
 *     def body_geomadr(self): return self._body_geomadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12body_geomadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12body_geomadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12body_geomadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12body_geomadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1776
 *     def body_geomnum(self): return self._body_geomnum
 *     @property
 *     def body_geomadr(self): return self._body_geomadr             # <<<<<<<<<<<<<<
 *     @property
 *     def body_simple(self): return self._body_simple
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_geomadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_geomadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1775
 *     @property
 *     def body_geomnum(self): return self._body_geomnum
 *     @property             # <<<<<<<<<<<<<<
 *     def body_geomadr(self): return self._body_geomadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1777
 *     @property
 *     def body_geomadr(self): return self._body_geomadr
 *     @property             # <<<<<<<<<<<<<<
 *     def body_simple(self): return self._body_simple
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_simple_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_simple_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_simple___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11body_simple___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1778
 *     def body_geomadr(self): return self._body_geomadr
 *     @property
 *     def body_simple(self): return self._body_simple             # <<<<<<<<<<<<<<
 *     @property
 *     def body_sameframe(self): return self._body_sameframe
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_simple);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_simple);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1777
 *     @property
 *     def body_geomadr(self): return self._body_geomadr
 *     @property             # <<<<<<<<<<<<<<
 *     def body_simple(self): return self._body_simple
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1779
 *     @property
 *     def body_simple(self): return self._body_simple
 *     @property             # <<<<<<<<<<<<<<
 *     def body_sameframe(self): return self._body_sameframe
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14body_sameframe_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14body_sameframe_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14body_sameframe___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14body_sameframe___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1780
 *     def body_simple(self): return self._body_simple
 *     @property
 *     def body_sameframe(self): return self._body_sameframe             # <<<<<<<<<<<<<<
 *     @property
 *     def body_pos(self): return self._body_pos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_sameframe);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_sameframe);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1779
 *     @property
 *     def body_simple(self): return self._body_simple
 *     @property             # <<<<<<<<<<<<<<
 *     def body_sameframe(self): return self._body_sameframe
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1781
 *     @property
 *     def body_sameframe(self): return self._body_sameframe
 *     @property             # <<<<<<<<<<<<<<
 *     def body_pos(self): return self._body_pos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8body_pos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8body_pos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8body_pos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8body_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1782
 *     def body_sameframe(self): return self._body_sameframe
 *     @property
 *     def body_pos(self): return self._body_pos             # <<<<<<<<<<<<<<
 *     @property
 *     def body_quat(self): return self._body_quat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_pos);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_pos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1781
 *     @property
 *     def body_sameframe(self): return self._body_sameframe
 *     @property             # <<<<<<<<<<<<<<
 *     def body_pos(self): return self._body_pos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1783
 *     @property
 *     def body_pos(self): return self._body_pos
 *     @property             # <<<<<<<<<<<<<<
 *     def body_quat(self): return self._body_quat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9body_quat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9body_quat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9body_quat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9body_quat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1784
 *     def body_pos(self): return self._body_pos
 *     @property
 *     def body_quat(self): return self._body_quat             # <<<<<<<<<<<<<<
 *     @property
 *     def body_ipos(self): return self._body_ipos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_quat);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_quat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1783
 *     @property
 *     def body_pos(self): return self._body_pos
 *     @property             # <<<<<<<<<<<<<<
 *     def body_quat(self): return self._body_quat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1785
 *     @property
 *     def body_quat(self): return self._body_quat
 *     @property             # <<<<<<<<<<<<<<
 *     def body_ipos(self): return self._body_ipos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9body_ipos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9body_ipos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9body_ipos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9body_ipos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1786
 *     def body_quat(self): return self._body_quat
 *     @property
 *     def body_ipos(self): return self._body_ipos             # <<<<<<<<<<<<<<
 *     @property
 *     def body_iquat(self): return self._body_iquat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_ipos);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_ipos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1785
 *     @property
 *     def body_quat(self): return self._body_quat
 *     @property             # <<<<<<<<<<<<<<
 *     def body_ipos(self): return self._body_ipos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1787
 *     @property
 *     def body_ipos(self): return self._body_ipos
 *     @property             # <<<<<<<<<<<<<<
 *     def body_iquat(self): return self._body_iquat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10body_iquat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10body_iquat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10body_iquat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10body_iquat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1788
 *     def body_ipos(self): return self._body_ipos
 *     @property
 *     def body_iquat(self): return self._body_iquat             # <<<<<<<<<<<<<<
 *     @property
 *     def body_mass(self): return self._body_mass
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_iquat);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_iquat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1787
 *     @property
 *     def body_ipos(self): return self._body_ipos
 *     @property             # <<<<<<<<<<<<<<
 *     def body_iquat(self): return self._body_iquat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1789
 *     @property
 *     def body_iquat(self): return self._body_iquat
 *     @property             # <<<<<<<<<<<<<<
 *     def body_mass(self): return self._body_mass
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9body_mass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9body_mass_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9body_mass___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9body_mass___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1790
 *     def body_iquat(self): return self._body_iquat
 *     @property
 *     def body_mass(self): return self._body_mass             # <<<<<<<<<<<<<<
 *     @property
 *     def body_subtreemass(self): return self._body_subtreemass
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_mass);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_mass);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1789
 *     @property
 *     def body_iquat(self): return self._body_iquat
 *     @property             # <<<<<<<<<<<<<<
 *     def body_mass(self): return self._body_mass
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1791
 *     @property
 *     def body_mass(self): return self._body_mass
 *     @property             # <<<<<<<<<<<<<<
 *     def body_subtreemass(self): return self._body_subtreemass
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16body_subtreemass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16body_subtreemass_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16body_subtreemass___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16body_subtreemass___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1792
 *     def body_mass(self): return self._body_mass
 *     @property
 *     def body_subtreemass(self): return self._body_subtreemass             # <<<<<<<<<<<<<<
 *     @property
 *     def body_inertia(self): return self._body_inertia
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_subtreemass);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_subtreemass);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1791
 *     @property
 *     def body_mass(self): return self._body_mass
 *     @property             # <<<<<<<<<<<<<<
 *     def body_subtreemass(self): return self._body_subtreemass
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1793
 *     @property
 *     def body_subtreemass(self): return self._body_subtreemass
 *     @property             # <<<<<<<<<<<<<<
 *     def body_inertia(self): return self._body_inertia
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12body_inertia_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12body_inertia_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12body_inertia___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12body_inertia___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1794
 *     def body_subtreemass(self): return self._body_subtreemass
 *     @property
 *     def body_inertia(self): return self._body_inertia             # <<<<<<<<<<<<<<
 *     @property
 *     def body_invweight0(self): return self._body_invweight0
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_inertia);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_inertia);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1793
 *     @property
 *     def body_subtreemass(self): return self._body_subtreemass
 *     @property             # <<<<<<<<<<<<<<
 *     def body_inertia(self): return self._body_inertia
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1795
 *     @property
 *     def body_inertia(self): return self._body_inertia
 *     @property             # <<<<<<<<<<<<<<
 *     def body_invweight0(self): return self._body_invweight0
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15body_invweight0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15body_invweight0_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_15body_invweight0___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15body_invweight0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1796
 *     def body_inertia(self): return self._body_inertia
 *     @property
 *     def body_invweight0(self): return self._body_invweight0             # <<<<<<<<<<<<<<
 *     @property
 *     def body_user(self): return self._body_user
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_invweight0);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_invweight0);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1795
 *     @property
 *     def body_inertia(self): return self._body_inertia
 *     @property             # <<<<<<<<<<<<<<
 *     def body_invweight0(self): return self._body_invweight0
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1797
 *     @property
 *     def body_invweight0(self): return self._body_invweight0
 *     @property             # <<<<<<<<<<<<<<
 *     def body_user(self): return self._body_user
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9body_user_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9body_user_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9body_user___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9body_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1798
 *     def body_invweight0(self): return self._body_invweight0
 *     @property
 *     def body_user(self): return self._body_user             # <<<<<<<<<<<<<<
 *     @property
 *     def jnt_type(self): return self._jnt_type
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_body_user);
  __pyx_r = ((PyObject *)__pyx_v_self->_body_user);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1797
 *     @property
 *     def body_invweight0(self): return self._body_invweight0
 *     @property             # <<<<<<<<<<<<<<
 *     def body_user(self): return self._body_user
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1799
 *     @property
 *     def body_user(self): return self._body_user
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_type(self): return self._jnt_type
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8jnt_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8jnt_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8jnt_type___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8jnt_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1800
 *     def body_user(self): return self._body_user
 *     @property
 *     def jnt_type(self): return self._jnt_type             # <<<<<<<<<<<<<<
 *     @property
 *     def jnt_qposadr(self): return self._jnt_qposadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_jnt_type);
  __pyx_r = ((PyObject *)__pyx_v_self->_jnt_type);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1799
 *     @property
 *     def body_user(self): return self._body_user
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_type(self): return self._jnt_type
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1801
 *     @property
 *     def jnt_type(self): return self._jnt_type
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_qposadr(self): return self._jnt_qposadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11jnt_qposadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11jnt_qposadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11jnt_qposadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11jnt_qposadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1802
 *     def jnt_type(self): return self._jnt_type
 *     @property
 *     def jnt_qposadr(self): return self._jnt_qposadr             # <<<<<<<<<<<<<<
 *     @property
 *     def jnt_dofadr(self): return self._jnt_dofadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_jnt_qposadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_jnt_qposadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1801
 *     @property
 *     def jnt_type(self): return self._jnt_type
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_qposadr(self): return self._jnt_qposadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1803
 *     @property
 *     def jnt_qposadr(self): return self._jnt_qposadr
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_dofadr(self): return self._jnt_dofadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10jnt_dofadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10jnt_dofadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10jnt_dofadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10jnt_dofadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1804
 *     def jnt_qposadr(self): return self._jnt_qposadr
 *     @property
 *     def jnt_dofadr(self): return self._jnt_dofadr             # <<<<<<<<<<<<<<
 *     @property
 *     def jnt_bodyid(self): return self._jnt_bodyid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_jnt_dofadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_jnt_dofadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1803
 *     @property
 *     def jnt_qposadr(self): return self._jnt_qposadr
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_dofadr(self): return self._jnt_dofadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1805
 *     @property
 *     def jnt_dofadr(self): return self._jnt_dofadr
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_bodyid(self): return self._jnt_bodyid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10jnt_bodyid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10jnt_bodyid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10jnt_bodyid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10jnt_bodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1806
 *     def jnt_dofadr(self): return self._jnt_dofadr
 *     @property
 *     def jnt_bodyid(self): return self._jnt_bodyid             # <<<<<<<<<<<<<<
 *     @property
 *     def jnt_group(self): return self._jnt_group
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_jnt_bodyid);
  __pyx_r = ((PyObject *)__pyx_v_self->_jnt_bodyid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1805
 *     @property
 *     def jnt_dofadr(self): return self._jnt_dofadr
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_bodyid(self): return self._jnt_bodyid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1807
 *     @property
 *     def jnt_bodyid(self): return self._jnt_bodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_group(self): return self._jnt_group
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9jnt_group_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9jnt_group_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9jnt_group___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9jnt_group___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1808
 *     def jnt_bodyid(self): return self._jnt_bodyid
 *     @property
 *     def jnt_group(self): return self._jnt_group             # <<<<<<<<<<<<<<
 *     @property
 *     def jnt_limited(self): return self._jnt_limited
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_jnt_group);
  __pyx_r = ((PyObject *)__pyx_v_self->_jnt_group);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1807
 *     @property
 *     def jnt_bodyid(self): return self._jnt_bodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_group(self): return self._jnt_group
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1809
 *     @property
 *     def jnt_group(self): return self._jnt_group
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_limited(self): return self._jnt_limited
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11jnt_limited_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11jnt_limited_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11jnt_limited___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11jnt_limited___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1810
 *     def jnt_group(self): return self._jnt_group
 *     @property
 *     def jnt_limited(self): return self._jnt_limited             # <<<<<<<<<<<<<<
 *     @property
 *     def jnt_solref(self): return self._jnt_solref
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_jnt_limited);
  __pyx_r = ((PyObject *)__pyx_v_self->_jnt_limited);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1809
 *     @property
 *     def jnt_group(self): return self._jnt_group
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_limited(self): return self._jnt_limited
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1811
 *     @property
 *     def jnt_limited(self): return self._jnt_limited
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_solref(self): return self._jnt_solref
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10jnt_solref_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10jnt_solref_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10jnt_solref___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10jnt_solref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1812
 *     def jnt_limited(self): return self._jnt_limited
 *     @property
 *     def jnt_solref(self): return self._jnt_solref             # <<<<<<<<<<<<<<
 *     @property
 *     def jnt_solimp(self): return self._jnt_solimp
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_jnt_solref);
  __pyx_r = ((PyObject *)__pyx_v_self->_jnt_solref);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1811
 *     @property
 *     def jnt_limited(self): return self._jnt_limited
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_solref(self): return self._jnt_solref
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1813
 *     @property
 *     def jnt_solref(self): return self._jnt_solref
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_solimp(self): return self._jnt_solimp
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10jnt_solimp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10jnt_solimp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10jnt_solimp___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10jnt_solimp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1814
 *     def jnt_solref(self): return self._jnt_solref
 *     @property
 *     def jnt_solimp(self): return self._jnt_solimp             # <<<<<<<<<<<<<<
 *     @property
 *     def jnt_pos(self): return self._jnt_pos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_jnt_solimp);
  __pyx_r = ((PyObject *)__pyx_v_self->_jnt_solimp);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1813
 *     @property
 *     def jnt_solref(self): return self._jnt_solref
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_solimp(self): return self._jnt_solimp
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1815
 *     @property
 *     def jnt_solimp(self): return self._jnt_solimp
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_pos(self): return self._jnt_pos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7jnt_pos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7jnt_pos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7jnt_pos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7jnt_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1816
 *     def jnt_solimp(self): return self._jnt_solimp
 *     @property
 *     def jnt_pos(self): return self._jnt_pos             # <<<<<<<<<<<<<<
 *     @property
 *     def jnt_axis(self): return self._jnt_axis
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_jnt_pos);
  __pyx_r = ((PyObject *)__pyx_v_self->_jnt_pos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1815
 *     @property
 *     def jnt_solimp(self): return self._jnt_solimp
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_pos(self): return self._jnt_pos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1817
 *     @property
 *     def jnt_pos(self): return self._jnt_pos
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_axis(self): return self._jnt_axis
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8jnt_axis_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8jnt_axis_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8jnt_axis___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8jnt_axis___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1818
 *     def jnt_pos(self): return self._jnt_pos
 *     @property
 *     def jnt_axis(self): return self._jnt_axis             # <<<<<<<<<<<<<<
 *     @property
 *     def jnt_stiffness(self): return self._jnt_stiffness
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_jnt_axis);
  __pyx_r = ((PyObject *)__pyx_v_self->_jnt_axis);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1817
 *     @property
 *     def jnt_pos(self): return self._jnt_pos
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_axis(self): return self._jnt_axis
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1819
 *     @property
 *     def jnt_axis(self): return self._jnt_axis
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_stiffness(self): return self._jnt_stiffness
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13jnt_stiffness_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13jnt_stiffness_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13jnt_stiffness___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13jnt_stiffness___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1820
 *     def jnt_axis(self): return self._jnt_axis
 *     @property
 *     def jnt_stiffness(self): return self._jnt_stiffness             # <<<<<<<<<<<<<<
 *     @property
 *     def jnt_range(self): return self._jnt_range
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_jnt_stiffness);
  __pyx_r = ((PyObject *)__pyx_v_self->_jnt_stiffness);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1819
 *     @property
 *     def jnt_axis(self): return self._jnt_axis
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_stiffness(self): return self._jnt_stiffness
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1821
 *     @property
 *     def jnt_stiffness(self): return self._jnt_stiffness
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_range(self): return self._jnt_range
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9jnt_range_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9jnt_range_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9jnt_range___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9jnt_range___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1822
 *     def jnt_stiffness(self): return self._jnt_stiffness
 *     @property
 *     def jnt_range(self): return self._jnt_range             # <<<<<<<<<<<<<<
 *     @property
 *     def jnt_margin(self): return self._jnt_margin
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_jnt_range);
  __pyx_r = ((PyObject *)__pyx_v_self->_jnt_range);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1821
 *     @property
 *     def jnt_stiffness(self): return self._jnt_stiffness
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_range(self): return self._jnt_range
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1823
 *     @property
 *     def jnt_range(self): return self._jnt_range
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_margin(self): return self._jnt_margin
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10jnt_margin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10jnt_margin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10jnt_margin___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10jnt_margin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1824
 *     def jnt_range(self): return self._jnt_range
 *     @property
 *     def jnt_margin(self): return self._jnt_margin             # <<<<<<<<<<<<<<
 *     @property
 *     def jnt_user(self): return self._jnt_user
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_jnt_margin);
  __pyx_r = ((PyObject *)__pyx_v_self->_jnt_margin);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1823
 *     @property
 *     def jnt_range(self): return self._jnt_range
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_margin(self): return self._jnt_margin
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1825
 *     @property
 *     def jnt_margin(self): return self._jnt_margin
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_user(self): return self._jnt_user
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8jnt_user_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8jnt_user_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8jnt_user___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8jnt_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1826
 *     def jnt_margin(self): return self._jnt_margin
 *     @property
 *     def jnt_user(self): return self._jnt_user             # <<<<<<<<<<<<<<
 *     @property
 *     def dof_bodyid(self): return self._dof_bodyid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_jnt_user);
  __pyx_r = ((PyObject *)__pyx_v_self->_jnt_user);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1825
 *     @property
 *     def jnt_margin(self): return self._jnt_margin
 *     @property             # <<<<<<<<<<<<<<
 *     def jnt_user(self): return self._jnt_user
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1827
 *     @property
 *     def jnt_user(self): return self._jnt_user
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_bodyid(self): return self._dof_bodyid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10dof_bodyid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10dof_bodyid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10dof_bodyid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10dof_bodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1828
 *     def jnt_user(self): return self._jnt_user
 *     @property
 *     def dof_bodyid(self): return self._dof_bodyid             # <<<<<<<<<<<<<<
 *     @property
 *     def dof_jntid(self): return self._dof_jntid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_dof_bodyid);
  __pyx_r = ((PyObject *)__pyx_v_self->_dof_bodyid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1827
 *     @property
 *     def jnt_user(self): return self._jnt_user
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_bodyid(self): return self._dof_bodyid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1829
 *     @property
 *     def dof_bodyid(self): return self._dof_bodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_jntid(self): return self._dof_jntid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9dof_jntid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9dof_jntid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9dof_jntid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9dof_jntid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1830
 *     def dof_bodyid(self): return self._dof_bodyid
 *     @property
 *     def dof_jntid(self): return self._dof_jntid             # <<<<<<<<<<<<<<
 *     @property
 *     def dof_parentid(self): return self._dof_parentid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_dof_jntid);
  __pyx_r = ((PyObject *)__pyx_v_self->_dof_jntid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1829
 *     @property
 *     def dof_bodyid(self): return self._dof_bodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_jntid(self): return self._dof_jntid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1831
 *     @property
 *     def dof_jntid(self): return self._dof_jntid
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_parentid(self): return self._dof_parentid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12dof_parentid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12dof_parentid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12dof_parentid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12dof_parentid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1832
 *     def dof_jntid(self): return self._dof_jntid
 *     @property
 *     def dof_parentid(self): return self._dof_parentid             # <<<<<<<<<<<<<<
 *     @property
 *     def dof_Madr(self): return self._dof_Madr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_dof_parentid);
  __pyx_r = ((PyObject *)__pyx_v_self->_dof_parentid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1831
 *     @property
 *     def dof_jntid(self): return self._dof_jntid
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_parentid(self): return self._dof_parentid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1833
 *     @property
 *     def dof_parentid(self): return self._dof_parentid
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_Madr(self): return self._dof_Madr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8dof_Madr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8dof_Madr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8dof_Madr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8dof_Madr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1834
 *     def dof_parentid(self): return self._dof_parentid
 *     @property
 *     def dof_Madr(self): return self._dof_Madr             # <<<<<<<<<<<<<<
 *     @property
 *     def dof_simplenum(self): return self._dof_simplenum
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_dof_Madr);
  __pyx_r = ((PyObject *)__pyx_v_self->_dof_Madr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1833
 *     @property
 *     def dof_parentid(self): return self._dof_parentid
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_Madr(self): return self._dof_Madr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1835
 *     @property
 *     def dof_Madr(self): return self._dof_Madr
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_simplenum(self): return self._dof_simplenum
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13dof_simplenum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13dof_simplenum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13dof_simplenum___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13dof_simplenum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1836
 *     def dof_Madr(self): return self._dof_Madr
 *     @property
 *     def dof_simplenum(self): return self._dof_simplenum             # <<<<<<<<<<<<<<
 *     @property
 *     def dof_solref(self): return self._dof_solref
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_dof_simplenum);
  __pyx_r = ((PyObject *)__pyx_v_self->_dof_simplenum);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1835
 *     @property
 *     def dof_Madr(self): return self._dof_Madr
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_simplenum(self): return self._dof_simplenum
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1837
 *     @property
 *     def dof_simplenum(self): return self._dof_simplenum
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_solref(self): return self._dof_solref
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10dof_solref_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10dof_solref_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10dof_solref___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10dof_solref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1838
 *     def dof_simplenum(self): return self._dof_simplenum
 *     @property
 *     def dof_solref(self): return self._dof_solref             # <<<<<<<<<<<<<<
 *     @property
 *     def dof_solimp(self): return self._dof_solimp
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_dof_solref);
  __pyx_r = ((PyObject *)__pyx_v_self->_dof_solref);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1837
 *     @property
 *     def dof_simplenum(self): return self._dof_simplenum
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_solref(self): return self._dof_solref
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1839
 *     @property
 *     def dof_solref(self): return self._dof_solref
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_solimp(self): return self._dof_solimp
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10dof_solimp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10dof_solimp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10dof_solimp___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10dof_solimp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1840
 *     def dof_solref(self): return self._dof_solref
 *     @property
 *     def dof_solimp(self): return self._dof_solimp             # <<<<<<<<<<<<<<
 *     @property
 *     def dof_frictionloss(self): return self._dof_frictionloss
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_dof_solimp);
  __pyx_r = ((PyObject *)__pyx_v_self->_dof_solimp);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1839
 *     @property
 *     def dof_solref(self): return self._dof_solref
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_solimp(self): return self._dof_solimp
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1841
 *     @property
 *     def dof_solimp(self): return self._dof_solimp
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_frictionloss(self): return self._dof_frictionloss
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16dof_frictionloss_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16dof_frictionloss_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16dof_frictionloss___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16dof_frictionloss___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1842
 *     def dof_solimp(self): return self._dof_solimp
 *     @property
 *     def dof_frictionloss(self): return self._dof_frictionloss             # <<<<<<<<<<<<<<
 *     @property
 *     def dof_armature(self): return self._dof_armature
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_dof_frictionloss);
  __pyx_r = ((PyObject *)__pyx_v_self->_dof_frictionloss);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1841
 *     @property
 *     def dof_solimp(self): return self._dof_solimp
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_frictionloss(self): return self._dof_frictionloss
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1843
 *     @property
 *     def dof_frictionloss(self): return self._dof_frictionloss
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_armature(self): return self._dof_armature
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12dof_armature_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12dof_armature_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12dof_armature___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12dof_armature___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1844
 *     def dof_frictionloss(self): return self._dof_frictionloss
 *     @property
 *     def dof_armature(self): return self._dof_armature             # <<<<<<<<<<<<<<
 *     @property
 *     def dof_damping(self): return self._dof_damping
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_dof_armature);
  __pyx_r = ((PyObject *)__pyx_v_self->_dof_armature);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1843
 *     @property
 *     def dof_frictionloss(self): return self._dof_frictionloss
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_armature(self): return self._dof_armature
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1845
 *     @property
 *     def dof_armature(self): return self._dof_armature
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_damping(self): return self._dof_damping
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11dof_damping_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11dof_damping_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11dof_damping___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11dof_damping___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1846
 *     def dof_armature(self): return self._dof_armature
 *     @property
 *     def dof_damping(self): return self._dof_damping             # <<<<<<<<<<<<<<
 *     @property
 *     def dof_invweight0(self): return self._dof_invweight0
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_dof_damping);
  __pyx_r = ((PyObject *)__pyx_v_self->_dof_damping);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1845
 *     @property
 *     def dof_armature(self): return self._dof_armature
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_damping(self): return self._dof_damping
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1847
 *     @property
 *     def dof_damping(self): return self._dof_damping
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_invweight0(self): return self._dof_invweight0
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14dof_invweight0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14dof_invweight0_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14dof_invweight0___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14dof_invweight0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1848
 *     def dof_damping(self): return self._dof_damping
 *     @property
 *     def dof_invweight0(self): return self._dof_invweight0             # <<<<<<<<<<<<<<
 *     @property
 *     def dof_M0(self): return self._dof_M0
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_dof_invweight0);
  __pyx_r = ((PyObject *)__pyx_v_self->_dof_invweight0);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1847
 *     @property
 *     def dof_damping(self): return self._dof_damping
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_invweight0(self): return self._dof_invweight0
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1849
 *     @property
 *     def dof_invweight0(self): return self._dof_invweight0
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_M0(self): return self._dof_M0
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_6dof_M0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_6dof_M0_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_6dof_M0___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_6dof_M0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1850
 *     def dof_invweight0(self): return self._dof_invweight0
 *     @property
 *     def dof_M0(self): return self._dof_M0             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_type(self): return self._geom_type
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_dof_M0);
  __pyx_r = ((PyObject *)__pyx_v_self->_dof_M0);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1849
 *     @property
 *     def dof_invweight0(self): return self._dof_invweight0
 *     @property             # <<<<<<<<<<<<<<
 *     def dof_M0(self): return self._dof_M0
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1851
 *     @property
 *     def dof_M0(self): return self._dof_M0
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_type(self): return self._geom_type
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9geom_type___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9geom_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1852
 *     def dof_M0(self): return self._dof_M0
 *     @property
 *     def geom_type(self): return self._geom_type             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_contype(self): return self._geom_contype
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_type);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_type);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1851
 *     @property
 *     def dof_M0(self): return self._dof_M0
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_type(self): return self._geom_type
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1853
 *     @property
 *     def geom_type(self): return self._geom_type
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_contype(self): return self._geom_contype
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12geom_contype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12geom_contype_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12geom_contype___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12geom_contype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1854
 *     def geom_type(self): return self._geom_type
 *     @property
 *     def geom_contype(self): return self._geom_contype             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_conaffinity(self): return self._geom_conaffinity
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_contype);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_contype);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1853
 *     @property
 *     def geom_type(self): return self._geom_type
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_contype(self): return self._geom_contype
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1855
 *     @property
 *     def geom_contype(self): return self._geom_contype
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_conaffinity(self): return self._geom_conaffinity
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16geom_conaffinity_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16geom_conaffinity_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16geom_conaffinity___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16geom_conaffinity___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1856
 *     def geom_contype(self): return self._geom_contype
 *     @property
 *     def geom_conaffinity(self): return self._geom_conaffinity             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_condim(self): return self._geom_condim
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_conaffinity);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_conaffinity);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1855
 *     @property
 *     def geom_contype(self): return self._geom_contype
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_conaffinity(self): return self._geom_conaffinity
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1857
 *     @property
 *     def geom_conaffinity(self): return self._geom_conaffinity
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_condim(self): return self._geom_condim
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_condim_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_condim_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_condim___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_condim___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1858
 *     def geom_conaffinity(self): return self._geom_conaffinity
 *     @property
 *     def geom_condim(self): return self._geom_condim             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_bodyid(self): return self._geom_bodyid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_condim);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_condim);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1857
 *     @property
 *     def geom_conaffinity(self): return self._geom_conaffinity
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_condim(self): return self._geom_condim
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1859
 *     @property
 *     def geom_condim(self): return self._geom_condim
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_bodyid(self): return self._geom_bodyid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_bodyid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_bodyid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_bodyid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_bodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1860
 *     def geom_condim(self): return self._geom_condim
 *     @property
 *     def geom_bodyid(self): return self._geom_bodyid             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_dataid(self): return self._geom_dataid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_bodyid);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_bodyid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1859
 *     @property
 *     def geom_condim(self): return self._geom_condim
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_bodyid(self): return self._geom_bodyid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1861
 *     @property
 *     def geom_bodyid(self): return self._geom_bodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_dataid(self): return self._geom_dataid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_dataid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_dataid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_dataid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_dataid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1862
 *     def geom_bodyid(self): return self._geom_bodyid
 *     @property
 *     def geom_dataid(self): return self._geom_dataid             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_matid(self): return self._geom_matid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_dataid);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_dataid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1861
 *     @property
 *     def geom_bodyid(self): return self._geom_bodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_dataid(self): return self._geom_dataid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1863
 *     @property
 *     def geom_dataid(self): return self._geom_dataid
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_matid(self): return self._geom_matid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10geom_matid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10geom_matid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10geom_matid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10geom_matid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1864
 *     def geom_dataid(self): return self._geom_dataid
 *     @property
 *     def geom_matid(self): return self._geom_matid             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_group(self): return self._geom_group
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_matid);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_matid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1863
 *     @property
 *     def geom_dataid(self): return self._geom_dataid
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_matid(self): return self._geom_matid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1865
 *     @property
 *     def geom_matid(self): return self._geom_matid
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_group(self): return self._geom_group
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10geom_group_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10geom_group_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10geom_group___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10geom_group___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1866
 *     def geom_matid(self): return self._geom_matid
 *     @property
 *     def geom_group(self): return self._geom_group             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_priority(self): return self._geom_priority
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_group);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_group);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1865
 *     @property
 *     def geom_matid(self): return self._geom_matid
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_group(self): return self._geom_group
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1867
 *     @property
 *     def geom_group(self): return self._geom_group
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_priority(self): return self._geom_priority
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13geom_priority_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13geom_priority_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13geom_priority___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13geom_priority___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1868
 *     def geom_group(self): return self._geom_group
 *     @property
 *     def geom_priority(self): return self._geom_priority             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_sameframe(self): return self._geom_sameframe
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_priority);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_priority);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1867
 *     @property
 *     def geom_group(self): return self._geom_group
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_priority(self): return self._geom_priority
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1869
 *     @property
 *     def geom_priority(self): return self._geom_priority
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_sameframe(self): return self._geom_sameframe
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14geom_sameframe_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14geom_sameframe_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14geom_sameframe___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14geom_sameframe___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1870
 *     def geom_priority(self): return self._geom_priority
 *     @property
 *     def geom_sameframe(self): return self._geom_sameframe             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_solmix(self): return self._geom_solmix
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_sameframe);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_sameframe);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1869
 *     @property
 *     def geom_priority(self): return self._geom_priority
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_sameframe(self): return self._geom_sameframe
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1871
 *     @property
 *     def geom_sameframe(self): return self._geom_sameframe
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_solmix(self): return self._geom_solmix
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_solmix_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_solmix_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_solmix___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_solmix___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1872
 *     def geom_sameframe(self): return self._geom_sameframe
 *     @property
 *     def geom_solmix(self): return self._geom_solmix             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_solref(self): return self._geom_solref
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_solmix);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_solmix);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1871
 *     @property
 *     def geom_sameframe(self): return self._geom_sameframe
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_solmix(self): return self._geom_solmix
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1873
 *     @property
 *     def geom_solmix(self): return self._geom_solmix
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_solref(self): return self._geom_solref
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_solref_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_solref_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_solref___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_solref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1874
 *     def geom_solmix(self): return self._geom_solmix
 *     @property
 *     def geom_solref(self): return self._geom_solref             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_solimp(self): return self._geom_solimp
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_solref);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_solref);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1873
 *     @property
 *     def geom_solmix(self): return self._geom_solmix
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_solref(self): return self._geom_solref
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1875
 *     @property
 *     def geom_solref(self): return self._geom_solref
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_solimp(self): return self._geom_solimp
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_solimp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_solimp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_solimp___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_solimp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1876
 *     def geom_solref(self): return self._geom_solref
 *     @property
 *     def geom_solimp(self): return self._geom_solimp             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_size(self): return self._geom_size
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_solimp);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_solimp);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1875
 *     @property
 *     def geom_solref(self): return self._geom_solref
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_solimp(self): return self._geom_solimp
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1877
 *     @property
 *     def geom_solimp(self): return self._geom_solimp
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_size(self): return self._geom_size
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_size_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_size_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9geom_size___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9geom_size___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1878
 *     def geom_solimp(self): return self._geom_solimp
 *     @property
 *     def geom_size(self): return self._geom_size             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_rbound(self): return self._geom_rbound
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_size);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_size);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1877
 *     @property
 *     def geom_solimp(self): return self._geom_solimp
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_size(self): return self._geom_size
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1879
 *     @property
 *     def geom_size(self): return self._geom_size
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_rbound(self): return self._geom_rbound
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_rbound_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_rbound_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_rbound___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_rbound___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1880
 *     def geom_size(self): return self._geom_size
 *     @property
 *     def geom_rbound(self): return self._geom_rbound             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_pos(self): return self._geom_pos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_rbound);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_rbound);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1879
 *     @property
 *     def geom_size(self): return self._geom_size
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_rbound(self): return self._geom_rbound
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1881
 *     @property
 *     def geom_rbound(self): return self._geom_rbound
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_pos(self): return self._geom_pos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8geom_pos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8geom_pos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8geom_pos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8geom_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1882
 *     def geom_rbound(self): return self._geom_rbound
 *     @property
 *     def geom_pos(self): return self._geom_pos             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_quat(self): return self._geom_quat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_pos);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_pos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1881
 *     @property
 *     def geom_rbound(self): return self._geom_rbound
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_pos(self): return self._geom_pos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1883
 *     @property
 *     def geom_pos(self): return self._geom_pos
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_quat(self): return self._geom_quat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_quat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_quat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9geom_quat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9geom_quat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1884
 *     def geom_pos(self): return self._geom_pos
 *     @property
 *     def geom_quat(self): return self._geom_quat             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_friction(self): return self._geom_friction
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_quat);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_quat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1883
 *     @property
 *     def geom_pos(self): return self._geom_pos
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_quat(self): return self._geom_quat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1885
 *     @property
 *     def geom_quat(self): return self._geom_quat
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_friction(self): return self._geom_friction
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13geom_friction_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13geom_friction_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13geom_friction___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13geom_friction___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1886
 *     def geom_quat(self): return self._geom_quat
 *     @property
 *     def geom_friction(self): return self._geom_friction             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_margin(self): return self._geom_margin
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_friction);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_friction);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1885
 *     @property
 *     def geom_quat(self): return self._geom_quat
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_friction(self): return self._geom_friction
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1887
 *     @property
 *     def geom_friction(self): return self._geom_friction
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_margin(self): return self._geom_margin
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_margin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_margin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_margin___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11geom_margin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1888
 *     def geom_friction(self): return self._geom_friction
 *     @property
 *     def geom_margin(self): return self._geom_margin             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_gap(self): return self._geom_gap
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_margin);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_margin);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1887
 *     @property
 *     def geom_friction(self): return self._geom_friction
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_margin(self): return self._geom_margin
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1889
 *     @property
 *     def geom_margin(self): return self._geom_margin
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_gap(self): return self._geom_gap
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8geom_gap_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8geom_gap_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8geom_gap___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8geom_gap___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1890
 *     def geom_margin(self): return self._geom_margin
 *     @property
 *     def geom_gap(self): return self._geom_gap             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_user(self): return self._geom_user
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_gap);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_gap);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1889
 *     @property
 *     def geom_margin(self): return self._geom_margin
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_gap(self): return self._geom_gap
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1891
 *     @property
 *     def geom_gap(self): return self._geom_gap
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_user(self): return self._geom_user
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_user_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_user_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9geom_user___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9geom_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1892
 *     def geom_gap(self): return self._geom_gap
 *     @property
 *     def geom_user(self): return self._geom_user             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_rgba(self): return self._geom_rgba
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_user);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_user);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1891
 *     @property
 *     def geom_gap(self): return self._geom_gap
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_user(self): return self._geom_user
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1893
 *     @property
 *     def geom_user(self): return self._geom_user
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_rgba(self): return self._geom_rgba
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_rgba_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_rgba_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9geom_rgba___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9geom_rgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1894
 *     def geom_user(self): return self._geom_user
 *     @property
 *     def geom_rgba(self): return self._geom_rgba             # <<<<<<<<<<<<<<
 *     @property
 *     def site_type(self): return self._site_type
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_rgba);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_rgba);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1893
 *     @property
 *     def geom_user(self): return self._geom_user
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_rgba(self): return self._geom_rgba
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1895
 *     @property
 *     def geom_rgba(self): return self._geom_rgba
 *     @property             # <<<<<<<<<<<<<<
 *     def site_type(self): return self._site_type
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9site_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9site_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9site_type___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9site_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1896
 *     def geom_rgba(self): return self._geom_rgba
 *     @property
 *     def site_type(self): return self._site_type             # <<<<<<<<<<<<<<
 *     @property
 *     def site_bodyid(self): return self._site_bodyid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_site_type);
  __pyx_r = ((PyObject *)__pyx_v_self->_site_type);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1895
 *     @property
 *     def geom_rgba(self): return self._geom_rgba
 *     @property             # <<<<<<<<<<<<<<
 *     def site_type(self): return self._site_type
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1897
 *     @property
 *     def site_type(self): return self._site_type
 *     @property             # <<<<<<<<<<<<<<
 *     def site_bodyid(self): return self._site_bodyid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11site_bodyid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11site_bodyid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11site_bodyid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11site_bodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1898
 *     def site_type(self): return self._site_type
 *     @property
 *     def site_bodyid(self): return self._site_bodyid             # <<<<<<<<<<<<<<
 *     @property
 *     def site_matid(self): return self._site_matid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_site_bodyid);
  __pyx_r = ((PyObject *)__pyx_v_self->_site_bodyid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1897
 *     @property
 *     def site_type(self): return self._site_type
 *     @property             # <<<<<<<<<<<<<<
 *     def site_bodyid(self): return self._site_bodyid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1899
 *     @property
 *     def site_bodyid(self): return self._site_bodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def site_matid(self): return self._site_matid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10site_matid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10site_matid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10site_matid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10site_matid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1900
 *     def site_bodyid(self): return self._site_bodyid
 *     @property
 *     def site_matid(self): return self._site_matid             # <<<<<<<<<<<<<<
 *     @property
 *     def site_group(self): return self._site_group
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_site_matid);
  __pyx_r = ((PyObject *)__pyx_v_self->_site_matid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1899
 *     @property
 *     def site_bodyid(self): return self._site_bodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def site_matid(self): return self._site_matid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1901
 *     @property
 *     def site_matid(self): return self._site_matid
 *     @property             # <<<<<<<<<<<<<<
 *     def site_group(self): return self._site_group
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10site_group_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10site_group_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10site_group___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10site_group___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1902
 *     def site_matid(self): return self._site_matid
 *     @property
 *     def site_group(self): return self._site_group             # <<<<<<<<<<<<<<
 *     @property
 *     def site_sameframe(self): return self._site_sameframe
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_site_group);
  __pyx_r = ((PyObject *)__pyx_v_self->_site_group);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1901
 *     @property
 *     def site_matid(self): return self._site_matid
 *     @property             # <<<<<<<<<<<<<<
 *     def site_group(self): return self._site_group
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1903
 *     @property
 *     def site_group(self): return self._site_group
 *     @property             # <<<<<<<<<<<<<<
 *     def site_sameframe(self): return self._site_sameframe
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14site_sameframe_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14site_sameframe_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14site_sameframe___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14site_sameframe___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1904
 *     def site_group(self): return self._site_group
 *     @property
 *     def site_sameframe(self): return self._site_sameframe             # <<<<<<<<<<<<<<
 *     @property
 *     def site_size(self): return self._site_size
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_site_sameframe);
  __pyx_r = ((PyObject *)__pyx_v_self->_site_sameframe);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1903
 *     @property
 *     def site_group(self): return self._site_group
 *     @property             # <<<<<<<<<<<<<<
 *     def site_sameframe(self): return self._site_sameframe
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1905
 *     @property
 *     def site_sameframe(self): return self._site_sameframe
 *     @property             # <<<<<<<<<<<<<<
 *     def site_size(self): return self._site_size
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9site_size_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9site_size_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9site_size___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9site_size___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1906
 *     def site_sameframe(self): return self._site_sameframe
 *     @property
 *     def site_size(self): return self._site_size             # <<<<<<<<<<<<<<
 *     @property
 *     def site_pos(self): return self._site_pos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_site_size);
  __pyx_r = ((PyObject *)__pyx_v_self->_site_size);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1905
 *     @property
 *     def site_sameframe(self): return self._site_sameframe
 *     @property             # <<<<<<<<<<<<<<
 *     def site_size(self): return self._site_size
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1907
 *     @property
 *     def site_size(self): return self._site_size
 *     @property             # <<<<<<<<<<<<<<
 *     def site_pos(self): return self._site_pos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8site_pos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8site_pos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8site_pos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8site_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1908
 *     def site_size(self): return self._site_size
 *     @property
 *     def site_pos(self): return self._site_pos             # <<<<<<<<<<<<<<
 *     @property
 *     def site_quat(self): return self._site_quat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_site_pos);
  __pyx_r = ((PyObject *)__pyx_v_self->_site_pos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1907
 *     @property
 *     def site_size(self): return self._site_size
 *     @property             # <<<<<<<<<<<<<<
 *     def site_pos(self): return self._site_pos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1909
 *     @property
 *     def site_pos(self): return self._site_pos
 *     @property             # <<<<<<<<<<<<<<
 *     def site_quat(self): return self._site_quat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9site_quat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9site_quat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9site_quat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9site_quat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1910
 *     def site_pos(self): return self._site_pos
 *     @property
 *     def site_quat(self): return self._site_quat             # <<<<<<<<<<<<<<
 *     @property
 *     def site_user(self): return self._site_user
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_site_quat);
  __pyx_r = ((PyObject *)__pyx_v_self->_site_quat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1909
 *     @property
 *     def site_pos(self): return self._site_pos
 *     @property             # <<<<<<<<<<<<<<
 *     def site_quat(self): return self._site_quat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1911
 *     @property
 *     def site_quat(self): return self._site_quat
 *     @property             # <<<<<<<<<<<<<<
 *     def site_user(self): return self._site_user
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9site_user_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9site_user_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9site_user___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9site_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1912
 *     def site_quat(self): return self._site_quat
 *     @property
 *     def site_user(self): return self._site_user             # <<<<<<<<<<<<<<
 *     @property
 *     def site_rgba(self): return self._site_rgba
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_site_user);
  __pyx_r = ((PyObject *)__pyx_v_self->_site_user);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1911
 *     @property
 *     def site_quat(self): return self._site_quat
 *     @property             # <<<<<<<<<<<<<<
 *     def site_user(self): return self._site_user
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1913
 *     @property
 *     def site_user(self): return self._site_user
 *     @property             # <<<<<<<<<<<<<<
 *     def site_rgba(self): return self._site_rgba
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9site_rgba_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9site_rgba_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9site_rgba___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9site_rgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1914
 *     def site_user(self): return self._site_user
 *     @property
 *     def site_rgba(self): return self._site_rgba             # <<<<<<<<<<<<<<
 *     @property
 *     def cam_mode(self): return self._cam_mode
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_site_rgba);
  __pyx_r = ((PyObject *)__pyx_v_self->_site_rgba);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1913
 *     @property
 *     def site_user(self): return self._site_user
 *     @property             # <<<<<<<<<<<<<<
 *     def site_rgba(self): return self._site_rgba
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1915
 *     @property
 *     def site_rgba(self): return self._site_rgba
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_mode(self): return self._cam_mode
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_mode_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_mode_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_mode___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_mode___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1916
 *     def site_rgba(self): return self._site_rgba
 *     @property
 *     def cam_mode(self): return self._cam_mode             # <<<<<<<<<<<<<<
 *     @property
 *     def cam_bodyid(self): return self._cam_bodyid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cam_mode);
  __pyx_r = ((PyObject *)__pyx_v_self->_cam_mode);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1915
 *     @property
 *     def site_rgba(self): return self._site_rgba
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_mode(self): return self._cam_mode
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1917
 *     @property
 *     def cam_mode(self): return self._cam_mode
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_bodyid(self): return self._cam_bodyid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10cam_bodyid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10cam_bodyid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10cam_bodyid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10cam_bodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1918
 *     def cam_mode(self): return self._cam_mode
 *     @property
 *     def cam_bodyid(self): return self._cam_bodyid             # <<<<<<<<<<<<<<
 *     @property
 *     def cam_targetbodyid(self): return self._cam_targetbodyid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cam_bodyid);
  __pyx_r = ((PyObject *)__pyx_v_self->_cam_bodyid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1917
 *     @property
 *     def cam_mode(self): return self._cam_mode
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_bodyid(self): return self._cam_bodyid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1919
 *     @property
 *     def cam_bodyid(self): return self._cam_bodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_targetbodyid(self): return self._cam_targetbodyid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16cam_targetbodyid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16cam_targetbodyid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16cam_targetbodyid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16cam_targetbodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1920
 *     def cam_bodyid(self): return self._cam_bodyid
 *     @property
 *     def cam_targetbodyid(self): return self._cam_targetbodyid             # <<<<<<<<<<<<<<
 *     @property
 *     def cam_pos(self): return self._cam_pos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cam_targetbodyid);
  __pyx_r = ((PyObject *)__pyx_v_self->_cam_targetbodyid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1919
 *     @property
 *     def cam_bodyid(self): return self._cam_bodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_targetbodyid(self): return self._cam_targetbodyid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1921
 *     @property
 *     def cam_targetbodyid(self): return self._cam_targetbodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_pos(self): return self._cam_pos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7cam_pos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7cam_pos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7cam_pos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7cam_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1922
 *     def cam_targetbodyid(self): return self._cam_targetbodyid
 *     @property
 *     def cam_pos(self): return self._cam_pos             # <<<<<<<<<<<<<<
 *     @property
 *     def cam_quat(self): return self._cam_quat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cam_pos);
  __pyx_r = ((PyObject *)__pyx_v_self->_cam_pos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1921
 *     @property
 *     def cam_targetbodyid(self): return self._cam_targetbodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_pos(self): return self._cam_pos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1923
 *     @property
 *     def cam_pos(self): return self._cam_pos
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_quat(self): return self._cam_quat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_quat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_quat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_quat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_quat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1924
 *     def cam_pos(self): return self._cam_pos
 *     @property
 *     def cam_quat(self): return self._cam_quat             # <<<<<<<<<<<<<<
 *     @property
 *     def cam_poscom0(self): return self._cam_poscom0
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cam_quat);
  __pyx_r = ((PyObject *)__pyx_v_self->_cam_quat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1923
 *     @property
 *     def cam_pos(self): return self._cam_pos
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_quat(self): return self._cam_quat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1925
 *     @property
 *     def cam_quat(self): return self._cam_quat
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_poscom0(self): return self._cam_poscom0
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11cam_poscom0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11cam_poscom0_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11cam_poscom0___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11cam_poscom0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1926
 *     def cam_quat(self): return self._cam_quat
 *     @property
 *     def cam_poscom0(self): return self._cam_poscom0             # <<<<<<<<<<<<<<
 *     @property
 *     def cam_pos0(self): return self._cam_pos0
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cam_poscom0);
  __pyx_r = ((PyObject *)__pyx_v_self->_cam_poscom0);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1925
 *     @property
 *     def cam_quat(self): return self._cam_quat
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_poscom0(self): return self._cam_poscom0
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1927
 *     @property
 *     def cam_poscom0(self): return self._cam_poscom0
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_pos0(self): return self._cam_pos0
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_pos0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_pos0_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_pos0___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_pos0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1928
 *     def cam_poscom0(self): return self._cam_poscom0
 *     @property
 *     def cam_pos0(self): return self._cam_pos0             # <<<<<<<<<<<<<<
 *     @property
 *     def cam_mat0(self): return self._cam_mat0
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cam_pos0);
  __pyx_r = ((PyObject *)__pyx_v_self->_cam_pos0);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1927
 *     @property
 *     def cam_poscom0(self): return self._cam_poscom0
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_pos0(self): return self._cam_pos0
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1929
 *     @property
 *     def cam_pos0(self): return self._cam_pos0
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_mat0(self): return self._cam_mat0
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_mat0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_mat0_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_mat0___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_mat0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1930
 *     def cam_pos0(self): return self._cam_pos0
 *     @property
 *     def cam_mat0(self): return self._cam_mat0             # <<<<<<<<<<<<<<
 *     @property
 *     def cam_fovy(self): return self._cam_fovy
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cam_mat0);
  __pyx_r = ((PyObject *)__pyx_v_self->_cam_mat0);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1929
 *     @property
 *     def cam_pos0(self): return self._cam_pos0
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_mat0(self): return self._cam_mat0
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1931
 *     @property
 *     def cam_mat0(self): return self._cam_mat0
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_fovy(self): return self._cam_fovy
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_fovy_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_fovy_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_fovy___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_fovy___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1932
 *     def cam_mat0(self): return self._cam_mat0
 *     @property
 *     def cam_fovy(self): return self._cam_fovy             # <<<<<<<<<<<<<<
 *     @property
 *     def cam_ipd(self): return self._cam_ipd
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cam_fovy);
  __pyx_r = ((PyObject *)__pyx_v_self->_cam_fovy);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1931
 *     @property
 *     def cam_mat0(self): return self._cam_mat0
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_fovy(self): return self._cam_fovy
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1933
 *     @property
 *     def cam_fovy(self): return self._cam_fovy
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_ipd(self): return self._cam_ipd
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7cam_ipd_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7cam_ipd_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7cam_ipd___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7cam_ipd___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1934
 *     def cam_fovy(self): return self._cam_fovy
 *     @property
 *     def cam_ipd(self): return self._cam_ipd             # <<<<<<<<<<<<<<
 *     @property
 *     def cam_user(self): return self._cam_user
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cam_ipd);
  __pyx_r = ((PyObject *)__pyx_v_self->_cam_ipd);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1933
 *     @property
 *     def cam_fovy(self): return self._cam_fovy
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_ipd(self): return self._cam_ipd
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1935
 *     @property
 *     def cam_ipd(self): return self._cam_ipd
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_user(self): return self._cam_user
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_user_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_user_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_user___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8cam_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1936
 *     def cam_ipd(self): return self._cam_ipd
 *     @property
 *     def cam_user(self): return self._cam_user             # <<<<<<<<<<<<<<
 *     @property
 *     def light_mode(self): return self._light_mode
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cam_user);
  __pyx_r = ((PyObject *)__pyx_v_self->_cam_user);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1935
 *     @property
 *     def cam_ipd(self): return self._cam_ipd
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_user(self): return self._cam_user
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1937
 *     @property
 *     def cam_user(self): return self._cam_user
 *     @property             # <<<<<<<<<<<<<<
 *     def light_mode(self): return self._light_mode
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10light_mode_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10light_mode_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10light_mode___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10light_mode___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1938
 *     def cam_user(self): return self._cam_user
 *     @property
 *     def light_mode(self): return self._light_mode             # <<<<<<<<<<<<<<
 *     @property
 *     def light_bodyid(self): return self._light_bodyid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_mode);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_mode);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1937
 *     @property
 *     def cam_user(self): return self._cam_user
 *     @property             # <<<<<<<<<<<<<<
 *     def light_mode(self): return self._light_mode
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1939
 *     @property
 *     def light_mode(self): return self._light_mode
 *     @property             # <<<<<<<<<<<<<<
 *     def light_bodyid(self): return self._light_bodyid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12light_bodyid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12light_bodyid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12light_bodyid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12light_bodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1940
 *     def light_mode(self): return self._light_mode
 *     @property
 *     def light_bodyid(self): return self._light_bodyid             # <<<<<<<<<<<<<<
 *     @property
 *     def light_targetbodyid(self): return self._light_targetbodyid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_bodyid);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_bodyid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1939
 *     @property
 *     def light_mode(self): return self._light_mode
 *     @property             # <<<<<<<<<<<<<<
 *     def light_bodyid(self): return self._light_bodyid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1941
 *     @property
 *     def light_bodyid(self): return self._light_bodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def light_targetbodyid(self): return self._light_targetbodyid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_18light_targetbodyid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_18light_targetbodyid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_18light_targetbodyid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_18light_targetbodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1942
 *     def light_bodyid(self): return self._light_bodyid
 *     @property
 *     def light_targetbodyid(self): return self._light_targetbodyid             # <<<<<<<<<<<<<<
 *     @property
 *     def light_directional(self): return self._light_directional
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_targetbodyid);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_targetbodyid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1941
 *     @property
 *     def light_bodyid(self): return self._light_bodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def light_targetbodyid(self): return self._light_targetbodyid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1943
 *     @property
 *     def light_targetbodyid(self): return self._light_targetbodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def light_directional(self): return self._light_directional
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17light_directional_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17light_directional_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17light_directional___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17light_directional___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1944
 *     def light_targetbodyid(self): return self._light_targetbodyid
 *     @property
 *     def light_directional(self): return self._light_directional             # <<<<<<<<<<<<<<
 *     @property
 *     def light_castshadow(self): return self._light_castshadow
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_directional);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_directional);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1943
 *     @property
 *     def light_targetbodyid(self): return self._light_targetbodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def light_directional(self): return self._light_directional
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1945
 *     @property
 *     def light_directional(self): return self._light_directional
 *     @property             # <<<<<<<<<<<<<<
 *     def light_castshadow(self): return self._light_castshadow
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16light_castshadow_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16light_castshadow_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16light_castshadow___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16light_castshadow___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1946
 *     def light_directional(self): return self._light_directional
 *     @property
 *     def light_castshadow(self): return self._light_castshadow             # <<<<<<<<<<<<<<
 *     @property
 *     def light_active(self): return self._light_active
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_castshadow);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_castshadow);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1945
 *     @property
 *     def light_directional(self): return self._light_directional
 *     @property             # <<<<<<<<<<<<<<
 *     def light_castshadow(self): return self._light_castshadow
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1947
 *     @property
 *     def light_castshadow(self): return self._light_castshadow
 *     @property             # <<<<<<<<<<<<<<
 *     def light_active(self): return self._light_active
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12light_active_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12light_active_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12light_active___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12light_active___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1948
 *     def light_castshadow(self): return self._light_castshadow
 *     @property
 *     def light_active(self): return self._light_active             # <<<<<<<<<<<<<<
 *     @property
 *     def light_pos(self): return self._light_pos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_active);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_active);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1947
 *     @property
 *     def light_castshadow(self): return self._light_castshadow
 *     @property             # <<<<<<<<<<<<<<
 *     def light_active(self): return self._light_active
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1949
 *     @property
 *     def light_active(self): return self._light_active
 *     @property             # <<<<<<<<<<<<<<
 *     def light_pos(self): return self._light_pos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9light_pos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9light_pos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9light_pos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9light_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1950
 *     def light_active(self): return self._light_active
 *     @property
 *     def light_pos(self): return self._light_pos             # <<<<<<<<<<<<<<
 *     @property
 *     def light_dir(self): return self._light_dir
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_pos);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_pos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1949
 *     @property
 *     def light_active(self): return self._light_active
 *     @property             # <<<<<<<<<<<<<<
 *     def light_pos(self): return self._light_pos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1951
 *     @property
 *     def light_pos(self): return self._light_pos
 *     @property             # <<<<<<<<<<<<<<
 *     def light_dir(self): return self._light_dir
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9light_dir_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9light_dir_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9light_dir___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9light_dir___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1952
 *     def light_pos(self): return self._light_pos
 *     @property
 *     def light_dir(self): return self._light_dir             # <<<<<<<<<<<<<<
 *     @property
 *     def light_poscom0(self): return self._light_poscom0
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_dir);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_dir);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1951
 *     @property
 *     def light_pos(self): return self._light_pos
 *     @property             # <<<<<<<<<<<<<<
 *     def light_dir(self): return self._light_dir
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1953
 *     @property
 *     def light_dir(self): return self._light_dir
 *     @property             # <<<<<<<<<<<<<<
 *     def light_poscom0(self): return self._light_poscom0
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13light_poscom0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13light_poscom0_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13light_poscom0___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13light_poscom0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1954
 *     def light_dir(self): return self._light_dir
 *     @property
 *     def light_poscom0(self): return self._light_poscom0             # <<<<<<<<<<<<<<
 *     @property
 *     def light_pos0(self): return self._light_pos0
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_poscom0);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_poscom0);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1953
 *     @property
 *     def light_dir(self): return self._light_dir
 *     @property             # <<<<<<<<<<<<<<
 *     def light_poscom0(self): return self._light_poscom0
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1955
 *     @property
 *     def light_poscom0(self): return self._light_poscom0
 *     @property             # <<<<<<<<<<<<<<
 *     def light_pos0(self): return self._light_pos0
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10light_pos0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10light_pos0_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10light_pos0___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10light_pos0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1956
 *     def light_poscom0(self): return self._light_poscom0
 *     @property
 *     def light_pos0(self): return self._light_pos0             # <<<<<<<<<<<<<<
 *     @property
 *     def light_dir0(self): return self._light_dir0
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_pos0);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_pos0);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1955
 *     @property
 *     def light_poscom0(self): return self._light_poscom0
 *     @property             # <<<<<<<<<<<<<<
 *     def light_pos0(self): return self._light_pos0
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1957
 *     @property
 *     def light_pos0(self): return self._light_pos0
 *     @property             # <<<<<<<<<<<<<<
 *     def light_dir0(self): return self._light_dir0
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10light_dir0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10light_dir0_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10light_dir0___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10light_dir0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1958
 *     def light_pos0(self): return self._light_pos0
 *     @property
 *     def light_dir0(self): return self._light_dir0             # <<<<<<<<<<<<<<
 *     @property
 *     def light_attenuation(self): return self._light_attenuation
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_dir0);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_dir0);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1957
 *     @property
 *     def light_pos0(self): return self._light_pos0
 *     @property             # <<<<<<<<<<<<<<
 *     def light_dir0(self): return self._light_dir0
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1959
 *     @property
 *     def light_dir0(self): return self._light_dir0
 *     @property             # <<<<<<<<<<<<<<
 *     def light_attenuation(self): return self._light_attenuation
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17light_attenuation_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17light_attenuation_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17light_attenuation___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17light_attenuation___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1960
 *     def light_dir0(self): return self._light_dir0
 *     @property
 *     def light_attenuation(self): return self._light_attenuation             # <<<<<<<<<<<<<<
 *     @property
 *     def light_cutoff(self): return self._light_cutoff
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_attenuation);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_attenuation);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1959
 *     @property
 *     def light_dir0(self): return self._light_dir0
 *     @property             # <<<<<<<<<<<<<<
 *     def light_attenuation(self): return self._light_attenuation
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1961
 *     @property
 *     def light_attenuation(self): return self._light_attenuation
 *     @property             # <<<<<<<<<<<<<<
 *     def light_cutoff(self): return self._light_cutoff
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12light_cutoff_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12light_cutoff_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12light_cutoff___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12light_cutoff___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1962
 *     def light_attenuation(self): return self._light_attenuation
 *     @property
 *     def light_cutoff(self): return self._light_cutoff             # <<<<<<<<<<<<<<
 *     @property
 *     def light_exponent(self): return self._light_exponent
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_cutoff);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_cutoff);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1961
 *     @property
 *     def light_attenuation(self): return self._light_attenuation
 *     @property             # <<<<<<<<<<<<<<
 *     def light_cutoff(self): return self._light_cutoff
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1963
 *     @property
 *     def light_cutoff(self): return self._light_cutoff
 *     @property             # <<<<<<<<<<<<<<
 *     def light_exponent(self): return self._light_exponent
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14light_exponent_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14light_exponent_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14light_exponent___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14light_exponent___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1964
 *     def light_cutoff(self): return self._light_cutoff
 *     @property
 *     def light_exponent(self): return self._light_exponent             # <<<<<<<<<<<<<<
 *     @property
 *     def light_ambient(self): return self._light_ambient
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_exponent);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_exponent);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1963
 *     @property
 *     def light_cutoff(self): return self._light_cutoff
 *     @property             # <<<<<<<<<<<<<<
 *     def light_exponent(self): return self._light_exponent
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1965
 *     @property
 *     def light_exponent(self): return self._light_exponent
 *     @property             # <<<<<<<<<<<<<<
 *     def light_ambient(self): return self._light_ambient
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13light_ambient_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13light_ambient_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13light_ambient___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13light_ambient___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1966
 *     def light_exponent(self): return self._light_exponent
 *     @property
 *     def light_ambient(self): return self._light_ambient             # <<<<<<<<<<<<<<
 *     @property
 *     def light_diffuse(self): return self._light_diffuse
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_ambient);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_ambient);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1965
 *     @property
 *     def light_exponent(self): return self._light_exponent
 *     @property             # <<<<<<<<<<<<<<
 *     def light_ambient(self): return self._light_ambient
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1967
 *     @property
 *     def light_ambient(self): return self._light_ambient
 *     @property             # <<<<<<<<<<<<<<
 *     def light_diffuse(self): return self._light_diffuse
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13light_diffuse_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13light_diffuse_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13light_diffuse___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13light_diffuse___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1968
 *     def light_ambient(self): return self._light_ambient
 *     @property
 *     def light_diffuse(self): return self._light_diffuse             # <<<<<<<<<<<<<<
 *     @property
 *     def light_specular(self): return self._light_specular
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_diffuse);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_diffuse);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1967
 *     @property
 *     def light_ambient(self): return self._light_ambient
 *     @property             # <<<<<<<<<<<<<<
 *     def light_diffuse(self): return self._light_diffuse
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1969
 *     @property
 *     def light_diffuse(self): return self._light_diffuse
 *     @property             # <<<<<<<<<<<<<<
 *     def light_specular(self): return self._light_specular
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14light_specular_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14light_specular_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14light_specular___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14light_specular___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1970
 *     def light_diffuse(self): return self._light_diffuse
 *     @property
 *     def light_specular(self): return self._light_specular             # <<<<<<<<<<<<<<
 *     @property
 *     def mesh_vertadr(self): return self._mesh_vertadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_specular);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_specular);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1969
 *     @property
 *     def light_diffuse(self): return self._light_diffuse
 *     @property             # <<<<<<<<<<<<<<
 *     def light_specular(self): return self._light_specular
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1971
 *     @property
 *     def light_specular(self): return self._light_specular
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_vertadr(self): return self._mesh_vertadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mesh_vertadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mesh_vertadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mesh_vertadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mesh_vertadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1972
 *     def light_specular(self): return self._light_specular
 *     @property
 *     def mesh_vertadr(self): return self._mesh_vertadr             # <<<<<<<<<<<<<<
 *     @property
 *     def mesh_vertnum(self): return self._mesh_vertnum
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mesh_vertadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_mesh_vertadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1971
 *     @property
 *     def light_specular(self): return self._light_specular
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_vertadr(self): return self._mesh_vertadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1973
 *     @property
 *     def mesh_vertadr(self): return self._mesh_vertadr
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_vertnum(self): return self._mesh_vertnum
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mesh_vertnum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mesh_vertnum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mesh_vertnum___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mesh_vertnum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1974
 *     def mesh_vertadr(self): return self._mesh_vertadr
 *     @property
 *     def mesh_vertnum(self): return self._mesh_vertnum             # <<<<<<<<<<<<<<
 *     @property
 *     def mesh_texcoordadr(self): return self._mesh_texcoordadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mesh_vertnum);
  __pyx_r = ((PyObject *)__pyx_v_self->_mesh_vertnum);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1973
 *     @property
 *     def mesh_vertadr(self): return self._mesh_vertadr
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_vertnum(self): return self._mesh_vertnum
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1975
 *     @property
 *     def mesh_vertnum(self): return self._mesh_vertnum
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_texcoordadr(self): return self._mesh_texcoordadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16mesh_texcoordadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16mesh_texcoordadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16mesh_texcoordadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16mesh_texcoordadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1976
 *     def mesh_vertnum(self): return self._mesh_vertnum
 *     @property
 *     def mesh_texcoordadr(self): return self._mesh_texcoordadr             # <<<<<<<<<<<<<<
 *     @property
 *     def mesh_faceadr(self): return self._mesh_faceadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mesh_texcoordadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_mesh_texcoordadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1975
 *     @property
 *     def mesh_vertnum(self): return self._mesh_vertnum
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_texcoordadr(self): return self._mesh_texcoordadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1977
 *     @property
 *     def mesh_texcoordadr(self): return self._mesh_texcoordadr
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_faceadr(self): return self._mesh_faceadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mesh_faceadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mesh_faceadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mesh_faceadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mesh_faceadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1978
 *     def mesh_texcoordadr(self): return self._mesh_texcoordadr
 *     @property
 *     def mesh_faceadr(self): return self._mesh_faceadr             # <<<<<<<<<<<<<<
 *     @property
 *     def mesh_facenum(self): return self._mesh_facenum
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mesh_faceadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_mesh_faceadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1977
 *     @property
 *     def mesh_texcoordadr(self): return self._mesh_texcoordadr
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_faceadr(self): return self._mesh_faceadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1979
 *     @property
 *     def mesh_faceadr(self): return self._mesh_faceadr
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_facenum(self): return self._mesh_facenum
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mesh_facenum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mesh_facenum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mesh_facenum___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mesh_facenum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1980
 *     def mesh_faceadr(self): return self._mesh_faceadr
 *     @property
 *     def mesh_facenum(self): return self._mesh_facenum             # <<<<<<<<<<<<<<
 *     @property
 *     def mesh_graphadr(self): return self._mesh_graphadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mesh_facenum);
  __pyx_r = ((PyObject *)__pyx_v_self->_mesh_facenum);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1979
 *     @property
 *     def mesh_faceadr(self): return self._mesh_faceadr
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_facenum(self): return self._mesh_facenum
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1981
 *     @property
 *     def mesh_facenum(self): return self._mesh_facenum
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_graphadr(self): return self._mesh_graphadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13mesh_graphadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13mesh_graphadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13mesh_graphadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13mesh_graphadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1982
 *     def mesh_facenum(self): return self._mesh_facenum
 *     @property
 *     def mesh_graphadr(self): return self._mesh_graphadr             # <<<<<<<<<<<<<<
 *     @property
 *     def mesh_vert(self): return self._mesh_vert
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mesh_graphadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_mesh_graphadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1981
 *     @property
 *     def mesh_facenum(self): return self._mesh_facenum
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_graphadr(self): return self._mesh_graphadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1983
 *     @property
 *     def mesh_graphadr(self): return self._mesh_graphadr
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_vert(self): return self._mesh_vert
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9mesh_vert_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9mesh_vert_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9mesh_vert___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9mesh_vert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1984
 *     def mesh_graphadr(self): return self._mesh_graphadr
 *     @property
 *     def mesh_vert(self): return self._mesh_vert             # <<<<<<<<<<<<<<
 *     @property
 *     def mesh_normal(self): return self._mesh_normal
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mesh_vert);
  __pyx_r = ((PyObject *)__pyx_v_self->_mesh_vert);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1983
 *     @property
 *     def mesh_graphadr(self): return self._mesh_graphadr
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_vert(self): return self._mesh_vert
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1985
 *     @property
 *     def mesh_vert(self): return self._mesh_vert
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_normal(self): return self._mesh_normal
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11mesh_normal_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11mesh_normal_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11mesh_normal___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11mesh_normal___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1986
 *     def mesh_vert(self): return self._mesh_vert
 *     @property
 *     def mesh_normal(self): return self._mesh_normal             # <<<<<<<<<<<<<<
 *     @property
 *     def mesh_texcoord(self): return self._mesh_texcoord
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mesh_normal);
  __pyx_r = ((PyObject *)__pyx_v_self->_mesh_normal);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1985
 *     @property
 *     def mesh_vert(self): return self._mesh_vert
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_normal(self): return self._mesh_normal
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1987
 *     @property
 *     def mesh_normal(self): return self._mesh_normal
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_texcoord(self): return self._mesh_texcoord
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13mesh_texcoord_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13mesh_texcoord_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13mesh_texcoord___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13mesh_texcoord___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1988
 *     def mesh_normal(self): return self._mesh_normal
 *     @property
 *     def mesh_texcoord(self): return self._mesh_texcoord             # <<<<<<<<<<<<<<
 *     @property
 *     def mesh_face(self): return self._mesh_face
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mesh_texcoord);
  __pyx_r = ((PyObject *)__pyx_v_self->_mesh_texcoord);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1987
 *     @property
 *     def mesh_normal(self): return self._mesh_normal
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_texcoord(self): return self._mesh_texcoord
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1989
 *     @property
 *     def mesh_texcoord(self): return self._mesh_texcoord
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_face(self): return self._mesh_face
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9mesh_face_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9mesh_face_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9mesh_face___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9mesh_face___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1990
 *     def mesh_texcoord(self): return self._mesh_texcoord
 *     @property
 *     def mesh_face(self): return self._mesh_face             # <<<<<<<<<<<<<<
 *     @property
 *     def mesh_graph(self): return self._mesh_graph
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mesh_face);
  __pyx_r = ((PyObject *)__pyx_v_self->_mesh_face);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1989
 *     @property
 *     def mesh_texcoord(self): return self._mesh_texcoord
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_face(self): return self._mesh_face
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1991
 *     @property
 *     def mesh_face(self): return self._mesh_face
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_graph(self): return self._mesh_graph
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10mesh_graph_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10mesh_graph_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10mesh_graph___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10mesh_graph___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1992
 *     def mesh_face(self): return self._mesh_face
 *     @property
 *     def mesh_graph(self): return self._mesh_graph             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_matid(self): return self._skin_matid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mesh_graph);
  __pyx_r = ((PyObject *)__pyx_v_self->_mesh_graph);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1991
 *     @property
 *     def mesh_face(self): return self._mesh_face
 *     @property             # <<<<<<<<<<<<<<
 *     def mesh_graph(self): return self._mesh_graph
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1993
 *     @property
 *     def mesh_graph(self): return self._mesh_graph
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_matid(self): return self._skin_matid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10skin_matid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10skin_matid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10skin_matid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10skin_matid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1994
 *     def mesh_graph(self): return self._mesh_graph
 *     @property
 *     def skin_matid(self): return self._skin_matid             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_rgba(self): return self._skin_rgba
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_matid);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_matid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1993
 *     @property
 *     def mesh_graph(self): return self._mesh_graph
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_matid(self): return self._skin_matid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1995
 *     @property
 *     def skin_matid(self): return self._skin_matid
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_rgba(self): return self._skin_rgba
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9skin_rgba_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9skin_rgba_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9skin_rgba___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9skin_rgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1996
 *     def skin_matid(self): return self._skin_matid
 *     @property
 *     def skin_rgba(self): return self._skin_rgba             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_inflate(self): return self._skin_inflate
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_rgba);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_rgba);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1995
 *     @property
 *     def skin_matid(self): return self._skin_matid
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_rgba(self): return self._skin_rgba
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1997
 *     @property
 *     def skin_rgba(self): return self._skin_rgba
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_inflate(self): return self._skin_inflate
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_inflate_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_inflate_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_inflate___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_inflate___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":1998
 *     def skin_rgba(self): return self._skin_rgba
 *     @property
 *     def skin_inflate(self): return self._skin_inflate             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_vertadr(self): return self._skin_vertadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_inflate);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_inflate);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1997
 *     @property
 *     def skin_rgba(self): return self._skin_rgba
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_inflate(self): return self._skin_inflate
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1999
 *     @property
 *     def skin_inflate(self): return self._skin_inflate
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_vertadr(self): return self._skin_vertadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_vertadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_vertadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_vertadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_vertadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2000
 *     def skin_inflate(self): return self._skin_inflate
 *     @property
 *     def skin_vertadr(self): return self._skin_vertadr             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_vertnum(self): return self._skin_vertnum
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_vertadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_vertadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":1999
 *     @property
 *     def skin_inflate(self): return self._skin_inflate
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_vertadr(self): return self._skin_vertadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2001
 *     @property
 *     def skin_vertadr(self): return self._skin_vertadr
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_vertnum(self): return self._skin_vertnum
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_vertnum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_vertnum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_vertnum___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_vertnum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2002
 *     def skin_vertadr(self): return self._skin_vertadr
 *     @property
 *     def skin_vertnum(self): return self._skin_vertnum             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_texcoordadr(self): return self._skin_texcoordadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_vertnum);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_vertnum);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2001
 *     @property
 *     def skin_vertadr(self): return self._skin_vertadr
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_vertnum(self): return self._skin_vertnum
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2003
 *     @property
 *     def skin_vertnum(self): return self._skin_vertnum
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_texcoordadr(self): return self._skin_texcoordadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16skin_texcoordadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16skin_texcoordadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16skin_texcoordadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16skin_texcoordadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2004
 *     def skin_vertnum(self): return self._skin_vertnum
 *     @property
 *     def skin_texcoordadr(self): return self._skin_texcoordadr             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_faceadr(self): return self._skin_faceadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_texcoordadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_texcoordadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2003
 *     @property
 *     def skin_vertnum(self): return self._skin_vertnum
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_texcoordadr(self): return self._skin_texcoordadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2005
 *     @property
 *     def skin_texcoordadr(self): return self._skin_texcoordadr
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_faceadr(self): return self._skin_faceadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_faceadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_faceadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_faceadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_faceadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2006
 *     def skin_texcoordadr(self): return self._skin_texcoordadr
 *     @property
 *     def skin_faceadr(self): return self._skin_faceadr             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_facenum(self): return self._skin_facenum
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_faceadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_faceadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2005
 *     @property
 *     def skin_texcoordadr(self): return self._skin_texcoordadr
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_faceadr(self): return self._skin_faceadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2007
 *     @property
 *     def skin_faceadr(self): return self._skin_faceadr
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_facenum(self): return self._skin_facenum
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_facenum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_facenum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_facenum___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_facenum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2008
 *     def skin_faceadr(self): return self._skin_faceadr
 *     @property
 *     def skin_facenum(self): return self._skin_facenum             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_boneadr(self): return self._skin_boneadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_facenum);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_facenum);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2007
 *     @property
 *     def skin_faceadr(self): return self._skin_faceadr
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_facenum(self): return self._skin_facenum
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2009
 *     @property
 *     def skin_facenum(self): return self._skin_facenum
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_boneadr(self): return self._skin_boneadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_boneadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_boneadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_boneadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_boneadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2010
 *     def skin_facenum(self): return self._skin_facenum
 *     @property
 *     def skin_boneadr(self): return self._skin_boneadr             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_bonenum(self): return self._skin_bonenum
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_boneadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_boneadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2009
 *     @property
 *     def skin_facenum(self): return self._skin_facenum
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_boneadr(self): return self._skin_boneadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2011
 *     @property
 *     def skin_boneadr(self): return self._skin_boneadr
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonenum(self): return self._skin_bonenum
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_bonenum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_bonenum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_bonenum___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12skin_bonenum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2012
 *     def skin_boneadr(self): return self._skin_boneadr
 *     @property
 *     def skin_bonenum(self): return self._skin_bonenum             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_vert(self): return self._skin_vert
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_bonenum);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_bonenum);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2011
 *     @property
 *     def skin_boneadr(self): return self._skin_boneadr
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonenum(self): return self._skin_bonenum
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2013
 *     @property
 *     def skin_bonenum(self): return self._skin_bonenum
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_vert(self): return self._skin_vert
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9skin_vert_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9skin_vert_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9skin_vert___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9skin_vert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2014
 *     def skin_bonenum(self): return self._skin_bonenum
 *     @property
 *     def skin_vert(self): return self._skin_vert             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_texcoord(self): return self._skin_texcoord
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_vert);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_vert);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2013
 *     @property
 *     def skin_bonenum(self): return self._skin_bonenum
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_vert(self): return self._skin_vert
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2015
 *     @property
 *     def skin_vert(self): return self._skin_vert
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_texcoord(self): return self._skin_texcoord
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13skin_texcoord_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13skin_texcoord_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13skin_texcoord___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13skin_texcoord___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2016
 *     def skin_vert(self): return self._skin_vert
 *     @property
 *     def skin_texcoord(self): return self._skin_texcoord             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_face(self): return self._skin_face
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_texcoord);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_texcoord);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2015
 *     @property
 *     def skin_vert(self): return self._skin_vert
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_texcoord(self): return self._skin_texcoord
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2017
 *     @property
 *     def skin_texcoord(self): return self._skin_texcoord
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_face(self): return self._skin_face
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9skin_face_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9skin_face_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9skin_face___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9skin_face___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2018
 *     def skin_texcoord(self): return self._skin_texcoord
 *     @property
 *     def skin_face(self): return self._skin_face             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_bonevertadr(self): return self._skin_bonevertadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_face);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_face);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2017
 *     @property
 *     def skin_texcoord(self): return self._skin_texcoord
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_face(self): return self._skin_face
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2019
 *     @property
 *     def skin_face(self): return self._skin_face
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonevertadr(self): return self._skin_bonevertadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16skin_bonevertadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16skin_bonevertadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16skin_bonevertadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16skin_bonevertadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2020
 *     def skin_face(self): return self._skin_face
 *     @property
 *     def skin_bonevertadr(self): return self._skin_bonevertadr             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_bonevertnum(self): return self._skin_bonevertnum
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_bonevertadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_bonevertadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2019
 *     @property
 *     def skin_face(self): return self._skin_face
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonevertadr(self): return self._skin_bonevertadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2021
 *     @property
 *     def skin_bonevertadr(self): return self._skin_bonevertadr
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonevertnum(self): return self._skin_bonevertnum
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16skin_bonevertnum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16skin_bonevertnum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16skin_bonevertnum___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16skin_bonevertnum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2022
 *     def skin_bonevertadr(self): return self._skin_bonevertadr
 *     @property
 *     def skin_bonevertnum(self): return self._skin_bonevertnum             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_bonebindpos(self): return self._skin_bonebindpos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_bonevertnum);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_bonevertnum);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2021
 *     @property
 *     def skin_bonevertadr(self): return self._skin_bonevertadr
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonevertnum(self): return self._skin_bonevertnum
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2023
 *     @property
 *     def skin_bonevertnum(self): return self._skin_bonevertnum
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonebindpos(self): return self._skin_bonebindpos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16skin_bonebindpos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16skin_bonebindpos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16skin_bonebindpos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16skin_bonebindpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2024
 *     def skin_bonevertnum(self): return self._skin_bonevertnum
 *     @property
 *     def skin_bonebindpos(self): return self._skin_bonebindpos             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_bonebindquat(self): return self._skin_bonebindquat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_bonebindpos);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_bonebindpos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2023
 *     @property
 *     def skin_bonevertnum(self): return self._skin_bonevertnum
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonebindpos(self): return self._skin_bonebindpos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2025
 *     @property
 *     def skin_bonebindpos(self): return self._skin_bonebindpos
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonebindquat(self): return self._skin_bonebindquat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17skin_bonebindquat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17skin_bonebindquat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17skin_bonebindquat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17skin_bonebindquat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2026
 *     def skin_bonebindpos(self): return self._skin_bonebindpos
 *     @property
 *     def skin_bonebindquat(self): return self._skin_bonebindquat             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_bonebodyid(self): return self._skin_bonebodyid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_bonebindquat);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_bonebindquat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2025
 *     @property
 *     def skin_bonebindpos(self): return self._skin_bonebindpos
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonebindquat(self): return self._skin_bonebindquat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2027
 *     @property
 *     def skin_bonebindquat(self): return self._skin_bonebindquat
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonebodyid(self): return self._skin_bonebodyid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15skin_bonebodyid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15skin_bonebodyid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_15skin_bonebodyid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15skin_bonebodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2028
 *     def skin_bonebindquat(self): return self._skin_bonebindquat
 *     @property
 *     def skin_bonebodyid(self): return self._skin_bonebodyid             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_bonevertid(self): return self._skin_bonevertid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_bonebodyid);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_bonebodyid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2027
 *     @property
 *     def skin_bonebindquat(self): return self._skin_bonebindquat
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonebodyid(self): return self._skin_bonebodyid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2029
 *     @property
 *     def skin_bonebodyid(self): return self._skin_bonebodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonevertid(self): return self._skin_bonevertid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15skin_bonevertid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15skin_bonevertid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_15skin_bonevertid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15skin_bonevertid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2030
 *     def skin_bonebodyid(self): return self._skin_bonebodyid
 *     @property
 *     def skin_bonevertid(self): return self._skin_bonevertid             # <<<<<<<<<<<<<<
 *     @property
 *     def skin_bonevertweight(self): return self._skin_bonevertweight
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_bonevertid);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_bonevertid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2029
 *     @property
 *     def skin_bonebodyid(self): return self._skin_bonebodyid
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonevertid(self): return self._skin_bonevertid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2031
 *     @property
 *     def skin_bonevertid(self): return self._skin_bonevertid
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonevertweight(self): return self._skin_bonevertweight
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_19skin_bonevertweight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_19skin_bonevertweight_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_19skin_bonevertweight___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_19skin_bonevertweight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2032
 *     def skin_bonevertid(self): return self._skin_bonevertid
 *     @property
 *     def skin_bonevertweight(self): return self._skin_bonevertweight             # <<<<<<<<<<<<<<
 *     @property
 *     def hfield_size(self): return self._hfield_size
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_skin_bonevertweight);
  __pyx_r = ((PyObject *)__pyx_v_self->_skin_bonevertweight);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2031
 *     @property
 *     def skin_bonevertid(self): return self._skin_bonevertid
 *     @property             # <<<<<<<<<<<<<<
 *     def skin_bonevertweight(self): return self._skin_bonevertweight
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2033
 *     @property
 *     def skin_bonevertweight(self): return self._skin_bonevertweight
 *     @property             # <<<<<<<<<<<<<<
 *     def hfield_size(self): return self._hfield_size
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11hfield_size_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11hfield_size_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11hfield_size___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11hfield_size___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2034
 *     def skin_bonevertweight(self): return self._skin_bonevertweight
 *     @property
 *     def hfield_size(self): return self._hfield_size             # <<<<<<<<<<<<<<
 *     @property
 *     def hfield_nrow(self): return self._hfield_nrow
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_hfield_size);
  __pyx_r = ((PyObject *)__pyx_v_self->_hfield_size);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2033
 *     @property
 *     def skin_bonevertweight(self): return self._skin_bonevertweight
 *     @property             # <<<<<<<<<<<<<<
 *     def hfield_size(self): return self._hfield_size
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2035
 *     @property
 *     def hfield_size(self): return self._hfield_size
 *     @property             # <<<<<<<<<<<<<<
 *     def hfield_nrow(self): return self._hfield_nrow
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11hfield_nrow_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11hfield_nrow_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11hfield_nrow___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11hfield_nrow___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2036
 *     def hfield_size(self): return self._hfield_size
 *     @property
 *     def hfield_nrow(self): return self._hfield_nrow             # <<<<<<<<<<<<<<
 *     @property
 *     def hfield_ncol(self): return self._hfield_ncol
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_hfield_nrow);
  __pyx_r = ((PyObject *)__pyx_v_self->_hfield_nrow);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2035
 *     @property
 *     def hfield_size(self): return self._hfield_size
 *     @property             # <<<<<<<<<<<<<<
 *     def hfield_nrow(self): return self._hfield_nrow
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2037
 *     @property
 *     def hfield_nrow(self): return self._hfield_nrow
 *     @property             # <<<<<<<<<<<<<<
 *     def hfield_ncol(self): return self._hfield_ncol
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11hfield_ncol_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11hfield_ncol_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11hfield_ncol___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11hfield_ncol___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2038
 *     def hfield_nrow(self): return self._hfield_nrow
 *     @property
 *     def hfield_ncol(self): return self._hfield_ncol             # <<<<<<<<<<<<<<
 *     @property
 *     def hfield_adr(self): return self._hfield_adr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_hfield_ncol);
  __pyx_r = ((PyObject *)__pyx_v_self->_hfield_ncol);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2037
 *     @property
 *     def hfield_nrow(self): return self._hfield_nrow
 *     @property             # <<<<<<<<<<<<<<
 *     def hfield_ncol(self): return self._hfield_ncol
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2039
 *     @property
 *     def hfield_ncol(self): return self._hfield_ncol
 *     @property             # <<<<<<<<<<<<<<
 *     def hfield_adr(self): return self._hfield_adr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10hfield_adr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10hfield_adr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10hfield_adr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10hfield_adr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2040
 *     def hfield_ncol(self): return self._hfield_ncol
 *     @property
 *     def hfield_adr(self): return self._hfield_adr             # <<<<<<<<<<<<<<
 *     @property
 *     def hfield_data(self): return self._hfield_data
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_hfield_adr);
  __pyx_r = ((PyObject *)__pyx_v_self->_hfield_adr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2039
 *     @property
 *     def hfield_ncol(self): return self._hfield_ncol
 *     @property             # <<<<<<<<<<<<<<
 *     def hfield_adr(self): return self._hfield_adr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2041
 *     @property
 *     def hfield_adr(self): return self._hfield_adr
 *     @property             # <<<<<<<<<<<<<<
 *     def hfield_data(self): return self._hfield_data
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11hfield_data_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11hfield_data_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11hfield_data___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11hfield_data___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2042
 *     def hfield_adr(self): return self._hfield_adr
 *     @property
 *     def hfield_data(self): return self._hfield_data             # <<<<<<<<<<<<<<
 *     @property
 *     def tex_type(self): return self._tex_type
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_hfield_data);
  __pyx_r = ((PyObject *)__pyx_v_self->_hfield_data);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2041
 *     @property
 *     def hfield_adr(self): return self._hfield_adr
 *     @property             # <<<<<<<<<<<<<<
 *     def hfield_data(self): return self._hfield_data
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2043
 *     @property
 *     def hfield_data(self): return self._hfield_data
 *     @property             # <<<<<<<<<<<<<<
 *     def tex_type(self): return self._tex_type
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8tex_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8tex_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8tex_type___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8tex_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2044
 *     def hfield_data(self): return self._hfield_data
 *     @property
 *     def tex_type(self): return self._tex_type             # <<<<<<<<<<<<<<
 *     @property
 *     def tex_height(self): return self._tex_height
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tex_type);
  __pyx_r = ((PyObject *)__pyx_v_self->_tex_type);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2043
 *     @property
 *     def hfield_data(self): return self._hfield_data
 *     @property             # <<<<<<<<<<<<<<
 *     def tex_type(self): return self._tex_type
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2045
 *     @property
 *     def tex_type(self): return self._tex_type
 *     @property             # <<<<<<<<<<<<<<
 *     def tex_height(self): return self._tex_height
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10tex_height_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10tex_height_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10tex_height___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10tex_height___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2046
 *     def tex_type(self): return self._tex_type
 *     @property
 *     def tex_height(self): return self._tex_height             # <<<<<<<<<<<<<<
 *     @property
 *     def tex_width(self): return self._tex_width
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tex_height);
  __pyx_r = ((PyObject *)__pyx_v_self->_tex_height);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2045
 *     @property
 *     def tex_type(self): return self._tex_type
 *     @property             # <<<<<<<<<<<<<<
 *     def tex_height(self): return self._tex_height
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2047
 *     @property
 *     def tex_height(self): return self._tex_height
 *     @property             # <<<<<<<<<<<<<<
 *     def tex_width(self): return self._tex_width
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9tex_width_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9tex_width_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9tex_width___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9tex_width___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2048
 *     def tex_height(self): return self._tex_height
 *     @property
 *     def tex_width(self): return self._tex_width             # <<<<<<<<<<<<<<
 *     @property
 *     def tex_adr(self): return self._tex_adr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tex_width);
  __pyx_r = ((PyObject *)__pyx_v_self->_tex_width);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2047
 *     @property
 *     def tex_height(self): return self._tex_height
 *     @property             # <<<<<<<<<<<<<<
 *     def tex_width(self): return self._tex_width
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2049
 *     @property
 *     def tex_width(self): return self._tex_width
 *     @property             # <<<<<<<<<<<<<<
 *     def tex_adr(self): return self._tex_adr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7tex_adr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7tex_adr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7tex_adr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7tex_adr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2050
 *     def tex_width(self): return self._tex_width
 *     @property
 *     def tex_adr(self): return self._tex_adr             # <<<<<<<<<<<<<<
 *     @property
 *     def tex_rgb(self): return self._tex_rgb
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tex_adr);
  __pyx_r = ((PyObject *)__pyx_v_self->_tex_adr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2049
 *     @property
 *     def tex_width(self): return self._tex_width
 *     @property             # <<<<<<<<<<<<<<
 *     def tex_adr(self): return self._tex_adr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2051
 *     @property
 *     def tex_adr(self): return self._tex_adr
 *     @property             # <<<<<<<<<<<<<<
 *     def tex_rgb(self): return self._tex_rgb
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7tex_rgb_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7tex_rgb_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7tex_rgb___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7tex_rgb___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2052
 *     def tex_adr(self): return self._tex_adr
 *     @property
 *     def tex_rgb(self): return self._tex_rgb             # <<<<<<<<<<<<<<
 *     @property
 *     def mat_texid(self): return self._mat_texid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tex_rgb);
  __pyx_r = ((PyObject *)__pyx_v_self->_tex_rgb);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2051
 *     @property
 *     def tex_adr(self): return self._tex_adr
 *     @property             # <<<<<<<<<<<<<<
 *     def tex_rgb(self): return self._tex_rgb
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2053
 *     @property
 *     def tex_rgb(self): return self._tex_rgb
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_texid(self): return self._mat_texid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9mat_texid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9mat_texid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9mat_texid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9mat_texid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2054
 *     def tex_rgb(self): return self._tex_rgb
 *     @property
 *     def mat_texid(self): return self._mat_texid             # <<<<<<<<<<<<<<
 *     @property
 *     def mat_texuniform(self): return self._mat_texuniform
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mat_texid);
  __pyx_r = ((PyObject *)__pyx_v_self->_mat_texid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2053
 *     @property
 *     def tex_rgb(self): return self._tex_rgb
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_texid(self): return self._mat_texid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2055
 *     @property
 *     def mat_texid(self): return self._mat_texid
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_texuniform(self): return self._mat_texuniform
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14mat_texuniform_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14mat_texuniform_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14mat_texuniform___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14mat_texuniform___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2056
 *     def mat_texid(self): return self._mat_texid
 *     @property
 *     def mat_texuniform(self): return self._mat_texuniform             # <<<<<<<<<<<<<<
 *     @property
 *     def mat_texrepeat(self): return self._mat_texrepeat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mat_texuniform);
  __pyx_r = ((PyObject *)__pyx_v_self->_mat_texuniform);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2055
 *     @property
 *     def mat_texid(self): return self._mat_texid
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_texuniform(self): return self._mat_texuniform
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2057
 *     @property
 *     def mat_texuniform(self): return self._mat_texuniform
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_texrepeat(self): return self._mat_texrepeat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13mat_texrepeat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13mat_texrepeat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13mat_texrepeat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13mat_texrepeat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2058
 *     def mat_texuniform(self): return self._mat_texuniform
 *     @property
 *     def mat_texrepeat(self): return self._mat_texrepeat             # <<<<<<<<<<<<<<
 *     @property
 *     def mat_emission(self): return self._mat_emission
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mat_texrepeat);
  __pyx_r = ((PyObject *)__pyx_v_self->_mat_texrepeat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2057
 *     @property
 *     def mat_texuniform(self): return self._mat_texuniform
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_texrepeat(self): return self._mat_texrepeat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2059
 *     @property
 *     def mat_texrepeat(self): return self._mat_texrepeat
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_emission(self): return self._mat_emission
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mat_emission_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mat_emission_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mat_emission___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mat_emission___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2060
 *     def mat_texrepeat(self): return self._mat_texrepeat
 *     @property
 *     def mat_emission(self): return self._mat_emission             # <<<<<<<<<<<<<<
 *     @property
 *     def mat_specular(self): return self._mat_specular
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mat_emission);
  __pyx_r = ((PyObject *)__pyx_v_self->_mat_emission);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2059
 *     @property
 *     def mat_texrepeat(self): return self._mat_texrepeat
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_emission(self): return self._mat_emission
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2061
 *     @property
 *     def mat_emission(self): return self._mat_emission
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_specular(self): return self._mat_specular
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mat_specular_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mat_specular_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mat_specular___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12mat_specular___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2062
 *     def mat_emission(self): return self._mat_emission
 *     @property
 *     def mat_specular(self): return self._mat_specular             # <<<<<<<<<<<<<<
 *     @property
 *     def mat_shininess(self): return self._mat_shininess
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mat_specular);
  __pyx_r = ((PyObject *)__pyx_v_self->_mat_specular);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2061
 *     @property
 *     def mat_emission(self): return self._mat_emission
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_specular(self): return self._mat_specular
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2063
 *     @property
 *     def mat_specular(self): return self._mat_specular
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_shininess(self): return self._mat_shininess
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13mat_shininess_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13mat_shininess_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13mat_shininess___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13mat_shininess___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2064
 *     def mat_specular(self): return self._mat_specular
 *     @property
 *     def mat_shininess(self): return self._mat_shininess             # <<<<<<<<<<<<<<
 *     @property
 *     def mat_reflectance(self): return self._mat_reflectance
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mat_shininess);
  __pyx_r = ((PyObject *)__pyx_v_self->_mat_shininess);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2063
 *     @property
 *     def mat_specular(self): return self._mat_specular
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_shininess(self): return self._mat_shininess
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2065
 *     @property
 *     def mat_shininess(self): return self._mat_shininess
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_reflectance(self): return self._mat_reflectance
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15mat_reflectance_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15mat_reflectance_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_15mat_reflectance___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15mat_reflectance___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2066
 *     def mat_shininess(self): return self._mat_shininess
 *     @property
 *     def mat_reflectance(self): return self._mat_reflectance             # <<<<<<<<<<<<<<
 *     @property
 *     def mat_rgba(self): return self._mat_rgba
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mat_reflectance);
  __pyx_r = ((PyObject *)__pyx_v_self->_mat_reflectance);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2065
 *     @property
 *     def mat_shininess(self): return self._mat_shininess
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_reflectance(self): return self._mat_reflectance
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2067
 *     @property
 *     def mat_reflectance(self): return self._mat_reflectance
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_rgba(self): return self._mat_rgba
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8mat_rgba_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8mat_rgba_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8mat_rgba___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8mat_rgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2068
 *     def mat_reflectance(self): return self._mat_reflectance
 *     @property
 *     def mat_rgba(self): return self._mat_rgba             # <<<<<<<<<<<<<<
 *     @property
 *     def pair_dim(self): return self._pair_dim
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mat_rgba);
  __pyx_r = ((PyObject *)__pyx_v_self->_mat_rgba);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2067
 *     @property
 *     def mat_reflectance(self): return self._mat_reflectance
 *     @property             # <<<<<<<<<<<<<<
 *     def mat_rgba(self): return self._mat_rgba
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2069
 *     @property
 *     def mat_rgba(self): return self._mat_rgba
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_dim(self): return self._pair_dim
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8pair_dim_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8pair_dim_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8pair_dim___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8pair_dim___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2070
 *     def mat_rgba(self): return self._mat_rgba
 *     @property
 *     def pair_dim(self): return self._pair_dim             # <<<<<<<<<<<<<<
 *     @property
 *     def pair_geom1(self): return self._pair_geom1
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_pair_dim);
  __pyx_r = ((PyObject *)__pyx_v_self->_pair_dim);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2069
 *     @property
 *     def mat_rgba(self): return self._mat_rgba
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_dim(self): return self._pair_dim
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2071
 *     @property
 *     def pair_dim(self): return self._pair_dim
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_geom1(self): return self._pair_geom1
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10pair_geom1_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10pair_geom1_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10pair_geom1___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10pair_geom1___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2072
 *     def pair_dim(self): return self._pair_dim
 *     @property
 *     def pair_geom1(self): return self._pair_geom1             # <<<<<<<<<<<<<<
 *     @property
 *     def pair_geom2(self): return self._pair_geom2
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_pair_geom1);
  __pyx_r = ((PyObject *)__pyx_v_self->_pair_geom1);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2071
 *     @property
 *     def pair_dim(self): return self._pair_dim
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_geom1(self): return self._pair_geom1
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2073
 *     @property
 *     def pair_geom1(self): return self._pair_geom1
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_geom2(self): return self._pair_geom2
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10pair_geom2_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10pair_geom2_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10pair_geom2___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10pair_geom2___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2074
 *     def pair_geom1(self): return self._pair_geom1
 *     @property
 *     def pair_geom2(self): return self._pair_geom2             # <<<<<<<<<<<<<<
 *     @property
 *     def pair_signature(self): return self._pair_signature
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_pair_geom2);
  __pyx_r = ((PyObject *)__pyx_v_self->_pair_geom2);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2073
 *     @property
 *     def pair_geom1(self): return self._pair_geom1
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_geom2(self): return self._pair_geom2
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2075
 *     @property
 *     def pair_geom2(self): return self._pair_geom2
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_signature(self): return self._pair_signature
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14pair_signature_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14pair_signature_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14pair_signature___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14pair_signature___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2076
 *     def pair_geom2(self): return self._pair_geom2
 *     @property
 *     def pair_signature(self): return self._pair_signature             # <<<<<<<<<<<<<<
 *     @property
 *     def pair_solref(self): return self._pair_solref
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_pair_signature);
  __pyx_r = ((PyObject *)__pyx_v_self->_pair_signature);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2075
 *     @property
 *     def pair_geom2(self): return self._pair_geom2
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_signature(self): return self._pair_signature
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2077
 *     @property
 *     def pair_signature(self): return self._pair_signature
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_solref(self): return self._pair_solref
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11pair_solref_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11pair_solref_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11pair_solref___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11pair_solref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2078
 *     def pair_signature(self): return self._pair_signature
 *     @property
 *     def pair_solref(self): return self._pair_solref             # <<<<<<<<<<<<<<
 *     @property
 *     def pair_solimp(self): return self._pair_solimp
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_pair_solref);
  __pyx_r = ((PyObject *)__pyx_v_self->_pair_solref);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2077
 *     @property
 *     def pair_signature(self): return self._pair_signature
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_solref(self): return self._pair_solref
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2079
 *     @property
 *     def pair_solref(self): return self._pair_solref
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_solimp(self): return self._pair_solimp
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11pair_solimp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11pair_solimp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11pair_solimp___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11pair_solimp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2080
 *     def pair_solref(self): return self._pair_solref
 *     @property
 *     def pair_solimp(self): return self._pair_solimp             # <<<<<<<<<<<<<<
 *     @property
 *     def pair_margin(self): return self._pair_margin
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_pair_solimp);
  __pyx_r = ((PyObject *)__pyx_v_self->_pair_solimp);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2079
 *     @property
 *     def pair_solref(self): return self._pair_solref
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_solimp(self): return self._pair_solimp
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2081
 *     @property
 *     def pair_solimp(self): return self._pair_solimp
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_margin(self): return self._pair_margin
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11pair_margin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11pair_margin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11pair_margin___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11pair_margin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2082
 *     def pair_solimp(self): return self._pair_solimp
 *     @property
 *     def pair_margin(self): return self._pair_margin             # <<<<<<<<<<<<<<
 *     @property
 *     def pair_gap(self): return self._pair_gap
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_pair_margin);
  __pyx_r = ((PyObject *)__pyx_v_self->_pair_margin);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2081
 *     @property
 *     def pair_solimp(self): return self._pair_solimp
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_margin(self): return self._pair_margin
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2083
 *     @property
 *     def pair_margin(self): return self._pair_margin
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_gap(self): return self._pair_gap
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8pair_gap_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8pair_gap_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8pair_gap___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8pair_gap___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2084
 *     def pair_margin(self): return self._pair_margin
 *     @property
 *     def pair_gap(self): return self._pair_gap             # <<<<<<<<<<<<<<
 *     @property
 *     def pair_friction(self): return self._pair_friction
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_pair_gap);
  __pyx_r = ((PyObject *)__pyx_v_self->_pair_gap);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2083
 *     @property
 *     def pair_margin(self): return self._pair_margin
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_gap(self): return self._pair_gap
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2085
 *     @property
 *     def pair_gap(self): return self._pair_gap
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_friction(self): return self._pair_friction
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13pair_friction_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13pair_friction_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13pair_friction___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13pair_friction___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2086
 *     def pair_gap(self): return self._pair_gap
 *     @property
 *     def pair_friction(self): return self._pair_friction             # <<<<<<<<<<<<<<
 *     @property
 *     def exclude_signature(self): return self._exclude_signature
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_pair_friction);
  __pyx_r = ((PyObject *)__pyx_v_self->_pair_friction);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2085
 *     @property
 *     def pair_gap(self): return self._pair_gap
 *     @property             # <<<<<<<<<<<<<<
 *     def pair_friction(self): return self._pair_friction
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2087
 *     @property
 *     def pair_friction(self): return self._pair_friction
 *     @property             # <<<<<<<<<<<<<<
 *     def exclude_signature(self): return self._exclude_signature
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17exclude_signature_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17exclude_signature_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17exclude_signature___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17exclude_signature___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2088
 *     def pair_friction(self): return self._pair_friction
 *     @property
 *     def exclude_signature(self): return self._exclude_signature             # <<<<<<<<<<<<<<
 *     @property
 *     def eq_type(self): return self._eq_type
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_exclude_signature);
  __pyx_r = ((PyObject *)__pyx_v_self->_exclude_signature);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2087
 *     @property
 *     def pair_friction(self): return self._pair_friction
 *     @property             # <<<<<<<<<<<<<<
 *     def exclude_signature(self): return self._exclude_signature
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2089
 *     @property
 *     def exclude_signature(self): return self._exclude_signature
 *     @property             # <<<<<<<<<<<<<<
 *     def eq_type(self): return self._eq_type
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7eq_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7eq_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7eq_type___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7eq_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2090
 *     def exclude_signature(self): return self._exclude_signature
 *     @property
 *     def eq_type(self): return self._eq_type             # <<<<<<<<<<<<<<
 *     @property
 *     def eq_obj1id(self): return self._eq_obj1id
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_eq_type);
  __pyx_r = ((PyObject *)__pyx_v_self->_eq_type);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2089
 *     @property
 *     def exclude_signature(self): return self._exclude_signature
 *     @property             # <<<<<<<<<<<<<<
 *     def eq_type(self): return self._eq_type
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2091
 *     @property
 *     def eq_type(self): return self._eq_type
 *     @property             # <<<<<<<<<<<<<<
 *     def eq_obj1id(self): return self._eq_obj1id
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9eq_obj1id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9eq_obj1id_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9eq_obj1id___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9eq_obj1id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2092
 *     def eq_type(self): return self._eq_type
 *     @property
 *     def eq_obj1id(self): return self._eq_obj1id             # <<<<<<<<<<<<<<
 *     @property
 *     def eq_obj2id(self): return self._eq_obj2id
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_eq_obj1id);
  __pyx_r = ((PyObject *)__pyx_v_self->_eq_obj1id);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2091
 *     @property
 *     def eq_type(self): return self._eq_type
 *     @property             # <<<<<<<<<<<<<<
 *     def eq_obj1id(self): return self._eq_obj1id
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2093
 *     @property
 *     def eq_obj1id(self): return self._eq_obj1id
 *     @property             # <<<<<<<<<<<<<<
 *     def eq_obj2id(self): return self._eq_obj2id
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9eq_obj2id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9eq_obj2id_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9eq_obj2id___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9eq_obj2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2094
 *     def eq_obj1id(self): return self._eq_obj1id
 *     @property
 *     def eq_obj2id(self): return self._eq_obj2id             # <<<<<<<<<<<<<<
 *     @property
 *     def eq_active(self): return self._eq_active
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_eq_obj2id);
  __pyx_r = ((PyObject *)__pyx_v_self->_eq_obj2id);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2093
 *     @property
 *     def eq_obj1id(self): return self._eq_obj1id
 *     @property             # <<<<<<<<<<<<<<
 *     def eq_obj2id(self): return self._eq_obj2id
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2095
 *     @property
 *     def eq_obj2id(self): return self._eq_obj2id
 *     @property             # <<<<<<<<<<<<<<
 *     def eq_active(self): return self._eq_active
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9eq_active_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9eq_active_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9eq_active___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9eq_active___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2096
 *     def eq_obj2id(self): return self._eq_obj2id
 *     @property
 *     def eq_active(self): return self._eq_active             # <<<<<<<<<<<<<<
 *     @property
 *     def eq_solref(self): return self._eq_solref
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_eq_active);
  __pyx_r = ((PyObject *)__pyx_v_self->_eq_active);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2095
 *     @property
 *     def eq_obj2id(self): return self._eq_obj2id
 *     @property             # <<<<<<<<<<<<<<
 *     def eq_active(self): return self._eq_active
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2097
 *     @property
 *     def eq_active(self): return self._eq_active
 *     @property             # <<<<<<<<<<<<<<
 *     def eq_solref(self): return self._eq_solref
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9eq_solref_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9eq_solref_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9eq_solref___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9eq_solref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2098
 *     def eq_active(self): return self._eq_active
 *     @property
 *     def eq_solref(self): return self._eq_solref             # <<<<<<<<<<<<<<
 *     @property
 *     def eq_solimp(self): return self._eq_solimp
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_eq_solref);
  __pyx_r = ((PyObject *)__pyx_v_self->_eq_solref);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2097
 *     @property
 *     def eq_active(self): return self._eq_active
 *     @property             # <<<<<<<<<<<<<<
 *     def eq_solref(self): return self._eq_solref
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2099
 *     @property
 *     def eq_solref(self): return self._eq_solref
 *     @property             # <<<<<<<<<<<<<<
 *     def eq_solimp(self): return self._eq_solimp
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9eq_solimp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9eq_solimp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9eq_solimp___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9eq_solimp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2100
 *     def eq_solref(self): return self._eq_solref
 *     @property
 *     def eq_solimp(self): return self._eq_solimp             # <<<<<<<<<<<<<<
 *     @property
 *     def eq_data(self): return self._eq_data
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_eq_solimp);
  __pyx_r = ((PyObject *)__pyx_v_self->_eq_solimp);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2099
 *     @property
 *     def eq_solref(self): return self._eq_solref
 *     @property             # <<<<<<<<<<<<<<
 *     def eq_solimp(self): return self._eq_solimp
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2101
 *     @property
 *     def eq_solimp(self): return self._eq_solimp
 *     @property             # <<<<<<<<<<<<<<
 *     def eq_data(self): return self._eq_data
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7eq_data_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7eq_data_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7eq_data___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7eq_data___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2102
 *     def eq_solimp(self): return self._eq_solimp
 *     @property
 *     def eq_data(self): return self._eq_data             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_adr(self): return self._tendon_adr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_eq_data);
  __pyx_r = ((PyObject *)__pyx_v_self->_eq_data);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2101
 *     @property
 *     def eq_solimp(self): return self._eq_solimp
 *     @property             # <<<<<<<<<<<<<<
 *     def eq_data(self): return self._eq_data
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2103
 *     @property
 *     def eq_data(self): return self._eq_data
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_adr(self): return self._tendon_adr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10tendon_adr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10tendon_adr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10tendon_adr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10tendon_adr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2104
 *     def eq_data(self): return self._eq_data
 *     @property
 *     def tendon_adr(self): return self._tendon_adr             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_num(self): return self._tendon_num
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_adr);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_adr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2103
 *     @property
 *     def eq_data(self): return self._eq_data
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_adr(self): return self._tendon_adr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2105
 *     @property
 *     def tendon_adr(self): return self._tendon_adr
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_num(self): return self._tendon_num
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10tendon_num_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10tendon_num_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10tendon_num___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10tendon_num___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2106
 *     def tendon_adr(self): return self._tendon_adr
 *     @property
 *     def tendon_num(self): return self._tendon_num             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_matid(self): return self._tendon_matid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_num);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_num);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2105
 *     @property
 *     def tendon_adr(self): return self._tendon_adr
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_num(self): return self._tendon_num
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2107
 *     @property
 *     def tendon_num(self): return self._tendon_num
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_matid(self): return self._tendon_matid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tendon_matid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tendon_matid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tendon_matid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tendon_matid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2108
 *     def tendon_num(self): return self._tendon_num
 *     @property
 *     def tendon_matid(self): return self._tendon_matid             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_group(self): return self._tendon_group
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_matid);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_matid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2107
 *     @property
 *     def tendon_num(self): return self._tendon_num
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_matid(self): return self._tendon_matid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2109
 *     @property
 *     def tendon_matid(self): return self._tendon_matid
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_group(self): return self._tendon_group
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tendon_group_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tendon_group_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tendon_group___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tendon_group___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2110
 *     def tendon_matid(self): return self._tendon_matid
 *     @property
 *     def tendon_group(self): return self._tendon_group             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_limited(self): return self._tendon_limited
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_group);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_group);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2109
 *     @property
 *     def tendon_matid(self): return self._tendon_matid
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_group(self): return self._tendon_group
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2111
 *     @property
 *     def tendon_group(self): return self._tendon_group
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_limited(self): return self._tendon_limited
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14tendon_limited_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14tendon_limited_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14tendon_limited___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14tendon_limited___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2112
 *     def tendon_group(self): return self._tendon_group
 *     @property
 *     def tendon_limited(self): return self._tendon_limited             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_width(self): return self._tendon_width
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_limited);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_limited);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2111
 *     @property
 *     def tendon_group(self): return self._tendon_group
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_limited(self): return self._tendon_limited
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2113
 *     @property
 *     def tendon_limited(self): return self._tendon_limited
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_width(self): return self._tendon_width
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tendon_width_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tendon_width_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tendon_width___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tendon_width___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2114
 *     def tendon_limited(self): return self._tendon_limited
 *     @property
 *     def tendon_width(self): return self._tendon_width             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_solref_lim(self): return self._tendon_solref_lim
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_width);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_width);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2113
 *     @property
 *     def tendon_limited(self): return self._tendon_limited
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_width(self): return self._tendon_width
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2115
 *     @property
 *     def tendon_width(self): return self._tendon_width
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_solref_lim(self): return self._tendon_solref_lim
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17tendon_solref_lim_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17tendon_solref_lim_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17tendon_solref_lim___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17tendon_solref_lim___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2116
 *     def tendon_width(self): return self._tendon_width
 *     @property
 *     def tendon_solref_lim(self): return self._tendon_solref_lim             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_solimp_lim(self): return self._tendon_solimp_lim
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_solref_lim);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_solref_lim);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2115
 *     @property
 *     def tendon_width(self): return self._tendon_width
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_solref_lim(self): return self._tendon_solref_lim
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2117
 *     @property
 *     def tendon_solref_lim(self): return self._tendon_solref_lim
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_solimp_lim(self): return self._tendon_solimp_lim
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17tendon_solimp_lim_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17tendon_solimp_lim_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17tendon_solimp_lim___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17tendon_solimp_lim___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2118
 *     def tendon_solref_lim(self): return self._tendon_solref_lim
 *     @property
 *     def tendon_solimp_lim(self): return self._tendon_solimp_lim             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_solref_fri(self): return self._tendon_solref_fri
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_solimp_lim);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_solimp_lim);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2117
 *     @property
 *     def tendon_solref_lim(self): return self._tendon_solref_lim
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_solimp_lim(self): return self._tendon_solimp_lim
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2119
 *     @property
 *     def tendon_solimp_lim(self): return self._tendon_solimp_lim
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_solref_fri(self): return self._tendon_solref_fri
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17tendon_solref_fri_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17tendon_solref_fri_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17tendon_solref_fri___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17tendon_solref_fri___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2120
 *     def tendon_solimp_lim(self): return self._tendon_solimp_lim
 *     @property
 *     def tendon_solref_fri(self): return self._tendon_solref_fri             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_solimp_fri(self): return self._tendon_solimp_fri
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_solref_fri);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_solref_fri);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2119
 *     @property
 *     def tendon_solimp_lim(self): return self._tendon_solimp_lim
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_solref_fri(self): return self._tendon_solref_fri
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2121
 *     @property
 *     def tendon_solref_fri(self): return self._tendon_solref_fri
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_solimp_fri(self): return self._tendon_solimp_fri
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17tendon_solimp_fri_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17tendon_solimp_fri_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17tendon_solimp_fri___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17tendon_solimp_fri___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2122
 *     def tendon_solref_fri(self): return self._tendon_solref_fri
 *     @property
 *     def tendon_solimp_fri(self): return self._tendon_solimp_fri             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_range(self): return self._tendon_range
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_solimp_fri);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_solimp_fri);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2121
 *     @property
 *     def tendon_solref_fri(self): return self._tendon_solref_fri
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_solimp_fri(self): return self._tendon_solimp_fri
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2123
 *     @property
 *     def tendon_solimp_fri(self): return self._tendon_solimp_fri
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_range(self): return self._tendon_range
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tendon_range_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tendon_range_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tendon_range___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tendon_range___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2124
 *     def tendon_solimp_fri(self): return self._tendon_solimp_fri
 *     @property
 *     def tendon_range(self): return self._tendon_range             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_margin(self): return self._tendon_margin
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_range);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_range);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2123
 *     @property
 *     def tendon_solimp_fri(self): return self._tendon_solimp_fri
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_range(self): return self._tendon_range
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2125
 *     @property
 *     def tendon_range(self): return self._tendon_range
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_margin(self): return self._tendon_margin
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13tendon_margin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13tendon_margin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13tendon_margin___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13tendon_margin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2126
 *     def tendon_range(self): return self._tendon_range
 *     @property
 *     def tendon_margin(self): return self._tendon_margin             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_stiffness(self): return self._tendon_stiffness
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_margin);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_margin);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2125
 *     @property
 *     def tendon_range(self): return self._tendon_range
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_margin(self): return self._tendon_margin
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2127
 *     @property
 *     def tendon_margin(self): return self._tendon_margin
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_stiffness(self): return self._tendon_stiffness
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16tendon_stiffness_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16tendon_stiffness_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16tendon_stiffness___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16tendon_stiffness___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2128
 *     def tendon_margin(self): return self._tendon_margin
 *     @property
 *     def tendon_stiffness(self): return self._tendon_stiffness             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_damping(self): return self._tendon_damping
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_stiffness);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_stiffness);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2127
 *     @property
 *     def tendon_margin(self): return self._tendon_margin
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_stiffness(self): return self._tendon_stiffness
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2129
 *     @property
 *     def tendon_stiffness(self): return self._tendon_stiffness
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_damping(self): return self._tendon_damping
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14tendon_damping_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14tendon_damping_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14tendon_damping___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14tendon_damping___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2130
 *     def tendon_stiffness(self): return self._tendon_stiffness
 *     @property
 *     def tendon_damping(self): return self._tendon_damping             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_frictionloss(self): return self._tendon_frictionloss
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_damping);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_damping);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2129
 *     @property
 *     def tendon_stiffness(self): return self._tendon_stiffness
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_damping(self): return self._tendon_damping
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2131
 *     @property
 *     def tendon_damping(self): return self._tendon_damping
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_frictionloss(self): return self._tendon_frictionloss
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_19tendon_frictionloss_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_19tendon_frictionloss_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_19tendon_frictionloss___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_19tendon_frictionloss___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2132
 *     def tendon_damping(self): return self._tendon_damping
 *     @property
 *     def tendon_frictionloss(self): return self._tendon_frictionloss             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_lengthspring(self): return self._tendon_lengthspring
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_frictionloss);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_frictionloss);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2131
 *     @property
 *     def tendon_damping(self): return self._tendon_damping
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_frictionloss(self): return self._tendon_frictionloss
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2133
 *     @property
 *     def tendon_frictionloss(self): return self._tendon_frictionloss
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_lengthspring(self): return self._tendon_lengthspring
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_19tendon_lengthspring_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_19tendon_lengthspring_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_19tendon_lengthspring___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_19tendon_lengthspring___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2134
 *     def tendon_frictionloss(self): return self._tendon_frictionloss
 *     @property
 *     def tendon_lengthspring(self): return self._tendon_lengthspring             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_length0(self): return self._tendon_length0
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_lengthspring);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_lengthspring);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2133
 *     @property
 *     def tendon_frictionloss(self): return self._tendon_frictionloss
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_lengthspring(self): return self._tendon_lengthspring
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2135
 *     @property
 *     def tendon_lengthspring(self): return self._tendon_lengthspring
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_length0(self): return self._tendon_length0
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14tendon_length0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14tendon_length0_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14tendon_length0___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14tendon_length0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2136
 *     def tendon_lengthspring(self): return self._tendon_lengthspring
 *     @property
 *     def tendon_length0(self): return self._tendon_length0             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_invweight0(self): return self._tendon_invweight0
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_length0);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_length0);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2135
 *     @property
 *     def tendon_lengthspring(self): return self._tendon_lengthspring
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_length0(self): return self._tendon_length0
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2137
 *     @property
 *     def tendon_length0(self): return self._tendon_length0
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_invweight0(self): return self._tendon_invweight0
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17tendon_invweight0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17tendon_invweight0_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17tendon_invweight0___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17tendon_invweight0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2138
 *     def tendon_length0(self): return self._tendon_length0
 *     @property
 *     def tendon_invweight0(self): return self._tendon_invweight0             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_user(self): return self._tendon_user
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_invweight0);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_invweight0);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2137
 *     @property
 *     def tendon_length0(self): return self._tendon_length0
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_invweight0(self): return self._tendon_invweight0
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2139
 *     @property
 *     def tendon_invweight0(self): return self._tendon_invweight0
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_user(self): return self._tendon_user
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11tendon_user_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11tendon_user_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11tendon_user___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11tendon_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2140
 *     def tendon_invweight0(self): return self._tendon_invweight0
 *     @property
 *     def tendon_user(self): return self._tendon_user             # <<<<<<<<<<<<<<
 *     @property
 *     def tendon_rgba(self): return self._tendon_rgba
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_user);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_user);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2139
 *     @property
 *     def tendon_invweight0(self): return self._tendon_invweight0
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_user(self): return self._tendon_user
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2141
 *     @property
 *     def tendon_user(self): return self._tendon_user
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_rgba(self): return self._tendon_rgba
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11tendon_rgba_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11tendon_rgba_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11tendon_rgba___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11tendon_rgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2142
 *     def tendon_user(self): return self._tendon_user
 *     @property
 *     def tendon_rgba(self): return self._tendon_rgba             # <<<<<<<<<<<<<<
 *     @property
 *     def wrap_type(self): return self._wrap_type
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendon_rgba);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendon_rgba);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2141
 *     @property
 *     def tendon_user(self): return self._tendon_user
 *     @property             # <<<<<<<<<<<<<<
 *     def tendon_rgba(self): return self._tendon_rgba
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2143
 *     @property
 *     def tendon_rgba(self): return self._tendon_rgba
 *     @property             # <<<<<<<<<<<<<<
 *     def wrap_type(self): return self._wrap_type
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9wrap_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9wrap_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9wrap_type___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9wrap_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2144
 *     def tendon_rgba(self): return self._tendon_rgba
 *     @property
 *     def wrap_type(self): return self._wrap_type             # <<<<<<<<<<<<<<
 *     @property
 *     def wrap_objid(self): return self._wrap_objid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_wrap_type);
  __pyx_r = ((PyObject *)__pyx_v_self->_wrap_type);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2143
 *     @property
 *     def tendon_rgba(self): return self._tendon_rgba
 *     @property             # <<<<<<<<<<<<<<
 *     def wrap_type(self): return self._wrap_type
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2145
 *     @property
 *     def wrap_type(self): return self._wrap_type
 *     @property             # <<<<<<<<<<<<<<
 *     def wrap_objid(self): return self._wrap_objid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10wrap_objid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10wrap_objid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10wrap_objid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10wrap_objid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2146
 *     def wrap_type(self): return self._wrap_type
 *     @property
 *     def wrap_objid(self): return self._wrap_objid             # <<<<<<<<<<<<<<
 *     @property
 *     def wrap_prm(self): return self._wrap_prm
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_wrap_objid);
  __pyx_r = ((PyObject *)__pyx_v_self->_wrap_objid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2145
 *     @property
 *     def wrap_type(self): return self._wrap_type
 *     @property             # <<<<<<<<<<<<<<
 *     def wrap_objid(self): return self._wrap_objid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2147
 *     @property
 *     def wrap_objid(self): return self._wrap_objid
 *     @property             # <<<<<<<<<<<<<<
 *     def wrap_prm(self): return self._wrap_prm
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8wrap_prm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8wrap_prm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8wrap_prm___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8wrap_prm___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2148
 *     def wrap_objid(self): return self._wrap_objid
 *     @property
 *     def wrap_prm(self): return self._wrap_prm             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_trntype(self): return self._actuator_trntype
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_wrap_prm);
  __pyx_r = ((PyObject *)__pyx_v_self->_wrap_prm);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2147
 *     @property
 *     def wrap_objid(self): return self._wrap_objid
 *     @property             # <<<<<<<<<<<<<<
 *     def wrap_prm(self): return self._wrap_prm
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2149
 *     @property
 *     def wrap_prm(self): return self._wrap_prm
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_trntype(self): return self._actuator_trntype
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16actuator_trntype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16actuator_trntype_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16actuator_trntype___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16actuator_trntype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2150
 *     def wrap_prm(self): return self._wrap_prm
 *     @property
 *     def actuator_trntype(self): return self._actuator_trntype             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_dyntype(self): return self._actuator_dyntype
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_trntype);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_trntype);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2149
 *     @property
 *     def wrap_prm(self): return self._wrap_prm
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_trntype(self): return self._actuator_trntype
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2151
 *     @property
 *     def actuator_trntype(self): return self._actuator_trntype
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_dyntype(self): return self._actuator_dyntype
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16actuator_dyntype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16actuator_dyntype_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16actuator_dyntype___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16actuator_dyntype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2152
 *     def actuator_trntype(self): return self._actuator_trntype
 *     @property
 *     def actuator_dyntype(self): return self._actuator_dyntype             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_gaintype(self): return self._actuator_gaintype
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_dyntype);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_dyntype);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2151
 *     @property
 *     def actuator_trntype(self): return self._actuator_trntype
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_dyntype(self): return self._actuator_dyntype
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2153
 *     @property
 *     def actuator_dyntype(self): return self._actuator_dyntype
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_gaintype(self): return self._actuator_gaintype
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17actuator_gaintype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17actuator_gaintype_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17actuator_gaintype___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17actuator_gaintype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2154
 *     def actuator_dyntype(self): return self._actuator_dyntype
 *     @property
 *     def actuator_gaintype(self): return self._actuator_gaintype             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_biastype(self): return self._actuator_biastype
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_gaintype);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_gaintype);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2153
 *     @property
 *     def actuator_dyntype(self): return self._actuator_dyntype
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_gaintype(self): return self._actuator_gaintype
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2155
 *     @property
 *     def actuator_gaintype(self): return self._actuator_gaintype
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_biastype(self): return self._actuator_biastype
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17actuator_biastype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17actuator_biastype_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17actuator_biastype___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17actuator_biastype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2156
 *     def actuator_gaintype(self): return self._actuator_gaintype
 *     @property
 *     def actuator_biastype(self): return self._actuator_biastype             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_trnid(self): return self._actuator_trnid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_biastype);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_biastype);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2155
 *     @property
 *     def actuator_gaintype(self): return self._actuator_gaintype
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_biastype(self): return self._actuator_biastype
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2157
 *     @property
 *     def actuator_biastype(self): return self._actuator_biastype
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_trnid(self): return self._actuator_trnid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14actuator_trnid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14actuator_trnid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14actuator_trnid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14actuator_trnid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2158
 *     def actuator_biastype(self): return self._actuator_biastype
 *     @property
 *     def actuator_trnid(self): return self._actuator_trnid             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_group(self): return self._actuator_group
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_trnid);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_trnid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2157
 *     @property
 *     def actuator_biastype(self): return self._actuator_biastype
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_trnid(self): return self._actuator_trnid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2159
 *     @property
 *     def actuator_trnid(self): return self._actuator_trnid
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_group(self): return self._actuator_group
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14actuator_group_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14actuator_group_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14actuator_group___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14actuator_group___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2160
 *     def actuator_trnid(self): return self._actuator_trnid
 *     @property
 *     def actuator_group(self): return self._actuator_group             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_ctrllimited(self): return self._actuator_ctrllimited
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_group);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_group);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2159
 *     @property
 *     def actuator_trnid(self): return self._actuator_trnid
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_group(self): return self._actuator_group
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2161
 *     @property
 *     def actuator_group(self): return self._actuator_group
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_ctrllimited(self): return self._actuator_ctrllimited
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_20actuator_ctrllimited_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_20actuator_ctrllimited_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_20actuator_ctrllimited___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_20actuator_ctrllimited___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2162
 *     def actuator_group(self): return self._actuator_group
 *     @property
 *     def actuator_ctrllimited(self): return self._actuator_ctrllimited             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_forcelimited(self): return self._actuator_forcelimited
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_ctrllimited);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_ctrllimited);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2161
 *     @property
 *     def actuator_group(self): return self._actuator_group
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_ctrllimited(self): return self._actuator_ctrllimited
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2163
 *     @property
 *     def actuator_ctrllimited(self): return self._actuator_ctrllimited
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_forcelimited(self): return self._actuator_forcelimited
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_21actuator_forcelimited_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_21actuator_forcelimited_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_21actuator_forcelimited___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_21actuator_forcelimited___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2164
 *     def actuator_ctrllimited(self): return self._actuator_ctrllimited
 *     @property
 *     def actuator_forcelimited(self): return self._actuator_forcelimited             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_dynprm(self): return self._actuator_dynprm
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_forcelimited);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_forcelimited);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2163
 *     @property
 *     def actuator_ctrllimited(self): return self._actuator_ctrllimited
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_forcelimited(self): return self._actuator_forcelimited
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2165
 *     @property
 *     def actuator_forcelimited(self): return self._actuator_forcelimited
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_dynprm(self): return self._actuator_dynprm
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15actuator_dynprm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15actuator_dynprm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_15actuator_dynprm___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15actuator_dynprm___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2166
 *     def actuator_forcelimited(self): return self._actuator_forcelimited
 *     @property
 *     def actuator_dynprm(self): return self._actuator_dynprm             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_gainprm(self): return self._actuator_gainprm
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_dynprm);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_dynprm);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2165
 *     @property
 *     def actuator_forcelimited(self): return self._actuator_forcelimited
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_dynprm(self): return self._actuator_dynprm
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2167
 *     @property
 *     def actuator_dynprm(self): return self._actuator_dynprm
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_gainprm(self): return self._actuator_gainprm
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16actuator_gainprm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16actuator_gainprm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16actuator_gainprm___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16actuator_gainprm___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2168
 *     def actuator_dynprm(self): return self._actuator_dynprm
 *     @property
 *     def actuator_gainprm(self): return self._actuator_gainprm             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_biasprm(self): return self._actuator_biasprm
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_gainprm);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_gainprm);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2167
 *     @property
 *     def actuator_dynprm(self): return self._actuator_dynprm
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_gainprm(self): return self._actuator_gainprm
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2169
 *     @property
 *     def actuator_gainprm(self): return self._actuator_gainprm
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_biasprm(self): return self._actuator_biasprm
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16actuator_biasprm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16actuator_biasprm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16actuator_biasprm___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16actuator_biasprm___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2170
 *     def actuator_gainprm(self): return self._actuator_gainprm
 *     @property
 *     def actuator_biasprm(self): return self._actuator_biasprm             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_ctrlrange(self): return self._actuator_ctrlrange
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_biasprm);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_biasprm);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2169
 *     @property
 *     def actuator_gainprm(self): return self._actuator_gainprm
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_biasprm(self): return self._actuator_biasprm
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2171
 *     @property
 *     def actuator_biasprm(self): return self._actuator_biasprm
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_ctrlrange(self): return self._actuator_ctrlrange
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_18actuator_ctrlrange_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_18actuator_ctrlrange_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_18actuator_ctrlrange___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_18actuator_ctrlrange___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2172
 *     def actuator_biasprm(self): return self._actuator_biasprm
 *     @property
 *     def actuator_ctrlrange(self): return self._actuator_ctrlrange             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_forcerange(self): return self._actuator_forcerange
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_ctrlrange);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_ctrlrange);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2171
 *     @property
 *     def actuator_biasprm(self): return self._actuator_biasprm
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_ctrlrange(self): return self._actuator_ctrlrange
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2173
 *     @property
 *     def actuator_ctrlrange(self): return self._actuator_ctrlrange
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_forcerange(self): return self._actuator_forcerange
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_19actuator_forcerange_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_19actuator_forcerange_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_19actuator_forcerange___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_19actuator_forcerange___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2174
 *     def actuator_ctrlrange(self): return self._actuator_ctrlrange
 *     @property
 *     def actuator_forcerange(self): return self._actuator_forcerange             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_gear(self): return self._actuator_gear
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_forcerange);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_forcerange);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2173
 *     @property
 *     def actuator_ctrlrange(self): return self._actuator_ctrlrange
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_forcerange(self): return self._actuator_forcerange
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2175
 *     @property
 *     def actuator_forcerange(self): return self._actuator_forcerange
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_gear(self): return self._actuator_gear
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13actuator_gear_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13actuator_gear_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13actuator_gear___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13actuator_gear___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2176
 *     def actuator_forcerange(self): return self._actuator_forcerange
 *     @property
 *     def actuator_gear(self): return self._actuator_gear             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_cranklength(self): return self._actuator_cranklength
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_gear);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_gear);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2175
 *     @property
 *     def actuator_forcerange(self): return self._actuator_forcerange
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_gear(self): return self._actuator_gear
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2177
 *     @property
 *     def actuator_gear(self): return self._actuator_gear
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_cranklength(self): return self._actuator_cranklength
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_20actuator_cranklength_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_20actuator_cranklength_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_20actuator_cranklength___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_20actuator_cranklength___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2178
 *     def actuator_gear(self): return self._actuator_gear
 *     @property
 *     def actuator_cranklength(self): return self._actuator_cranklength             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_acc0(self): return self._actuator_acc0
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_cranklength);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_cranklength);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2177
 *     @property
 *     def actuator_gear(self): return self._actuator_gear
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_cranklength(self): return self._actuator_cranklength
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2179
 *     @property
 *     def actuator_cranklength(self): return self._actuator_cranklength
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_acc0(self): return self._actuator_acc0
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13actuator_acc0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13actuator_acc0_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13actuator_acc0___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13actuator_acc0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2180
 *     def actuator_cranklength(self): return self._actuator_cranklength
 *     @property
 *     def actuator_acc0(self): return self._actuator_acc0             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_length0(self): return self._actuator_length0
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_acc0);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_acc0);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2179
 *     @property
 *     def actuator_cranklength(self): return self._actuator_cranklength
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_acc0(self): return self._actuator_acc0
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2181
 *     @property
 *     def actuator_acc0(self): return self._actuator_acc0
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_length0(self): return self._actuator_length0
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16actuator_length0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16actuator_length0_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16actuator_length0___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16actuator_length0___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2182
 *     def actuator_acc0(self): return self._actuator_acc0
 *     @property
 *     def actuator_length0(self): return self._actuator_length0             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_lengthrange(self): return self._actuator_lengthrange
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_length0);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_length0);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2181
 *     @property
 *     def actuator_acc0(self): return self._actuator_acc0
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_length0(self): return self._actuator_length0
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2183
 *     @property
 *     def actuator_length0(self): return self._actuator_length0
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_lengthrange(self): return self._actuator_lengthrange
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_20actuator_lengthrange_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_20actuator_lengthrange_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_20actuator_lengthrange___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_20actuator_lengthrange___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2184
 *     def actuator_length0(self): return self._actuator_length0
 *     @property
 *     def actuator_lengthrange(self): return self._actuator_lengthrange             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_user(self): return self._actuator_user
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_lengthrange);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_lengthrange);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2183
 *     @property
 *     def actuator_length0(self): return self._actuator_length0
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_lengthrange(self): return self._actuator_lengthrange
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2185
 *     @property
 *     def actuator_lengthrange(self): return self._actuator_lengthrange
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_user(self): return self._actuator_user
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13actuator_user_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13actuator_user_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13actuator_user___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13actuator_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2186
 *     def actuator_lengthrange(self): return self._actuator_lengthrange
 *     @property
 *     def actuator_user(self): return self._actuator_user             # <<<<<<<<<<<<<<
 *     @property
 *     def sensor_type(self): return self._sensor_type
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_user);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_user);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2185
 *     @property
 *     def actuator_lengthrange(self): return self._actuator_lengthrange
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_user(self): return self._actuator_user
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2187
 *     @property
 *     def actuator_user(self): return self._actuator_user
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_type(self): return self._sensor_type
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11sensor_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11sensor_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11sensor_type___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11sensor_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2188
 *     def actuator_user(self): return self._actuator_user
 *     @property
 *     def sensor_type(self): return self._sensor_type             # <<<<<<<<<<<<<<
 *     @property
 *     def sensor_datatype(self): return self._sensor_datatype
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_sensor_type);
  __pyx_r = ((PyObject *)__pyx_v_self->_sensor_type);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2187
 *     @property
 *     def actuator_user(self): return self._actuator_user
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_type(self): return self._sensor_type
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2189
 *     @property
 *     def sensor_type(self): return self._sensor_type
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_datatype(self): return self._sensor_datatype
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15sensor_datatype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15sensor_datatype_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_15sensor_datatype___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15sensor_datatype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2190
 *     def sensor_type(self): return self._sensor_type
 *     @property
 *     def sensor_datatype(self): return self._sensor_datatype             # <<<<<<<<<<<<<<
 *     @property
 *     def sensor_needstage(self): return self._sensor_needstage
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_sensor_datatype);
  __pyx_r = ((PyObject *)__pyx_v_self->_sensor_datatype);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2189
 *     @property
 *     def sensor_type(self): return self._sensor_type
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_datatype(self): return self._sensor_datatype
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2191
 *     @property
 *     def sensor_datatype(self): return self._sensor_datatype
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_needstage(self): return self._sensor_needstage
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16sensor_needstage_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16sensor_needstage_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16sensor_needstage___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16sensor_needstage___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2192
 *     def sensor_datatype(self): return self._sensor_datatype
 *     @property
 *     def sensor_needstage(self): return self._sensor_needstage             # <<<<<<<<<<<<<<
 *     @property
 *     def sensor_objtype(self): return self._sensor_objtype
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_sensor_needstage);
  __pyx_r = ((PyObject *)__pyx_v_self->_sensor_needstage);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2191
 *     @property
 *     def sensor_datatype(self): return self._sensor_datatype
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_needstage(self): return self._sensor_needstage
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2193
 *     @property
 *     def sensor_needstage(self): return self._sensor_needstage
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_objtype(self): return self._sensor_objtype
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14sensor_objtype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14sensor_objtype_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14sensor_objtype___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14sensor_objtype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2194
 *     def sensor_needstage(self): return self._sensor_needstage
 *     @property
 *     def sensor_objtype(self): return self._sensor_objtype             # <<<<<<<<<<<<<<
 *     @property
 *     def sensor_objid(self): return self._sensor_objid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_sensor_objtype);
  __pyx_r = ((PyObject *)__pyx_v_self->_sensor_objtype);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2193
 *     @property
 *     def sensor_needstage(self): return self._sensor_needstage
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_objtype(self): return self._sensor_objtype
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2195
 *     @property
 *     def sensor_objtype(self): return self._sensor_objtype
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_objid(self): return self._sensor_objid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12sensor_objid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12sensor_objid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12sensor_objid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12sensor_objid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2196
 *     def sensor_objtype(self): return self._sensor_objtype
 *     @property
 *     def sensor_objid(self): return self._sensor_objid             # <<<<<<<<<<<<<<
 *     @property
 *     def sensor_dim(self): return self._sensor_dim
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_sensor_objid);
  __pyx_r = ((PyObject *)__pyx_v_self->_sensor_objid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2195
 *     @property
 *     def sensor_objtype(self): return self._sensor_objtype
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_objid(self): return self._sensor_objid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2197
 *     @property
 *     def sensor_objid(self): return self._sensor_objid
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_dim(self): return self._sensor_dim
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10sensor_dim_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10sensor_dim_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10sensor_dim___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10sensor_dim___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2198
 *     def sensor_objid(self): return self._sensor_objid
 *     @property
 *     def sensor_dim(self): return self._sensor_dim             # <<<<<<<<<<<<<<
 *     @property
 *     def sensor_adr(self): return self._sensor_adr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_sensor_dim);
  __pyx_r = ((PyObject *)__pyx_v_self->_sensor_dim);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2197
 *     @property
 *     def sensor_objid(self): return self._sensor_objid
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_dim(self): return self._sensor_dim
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2199
 *     @property
 *     def sensor_dim(self): return self._sensor_dim
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_adr(self): return self._sensor_adr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10sensor_adr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10sensor_adr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10sensor_adr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10sensor_adr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2200
 *     def sensor_dim(self): return self._sensor_dim
 *     @property
 *     def sensor_adr(self): return self._sensor_adr             # <<<<<<<<<<<<<<
 *     @property
 *     def sensor_cutoff(self): return self._sensor_cutoff
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_sensor_adr);
  __pyx_r = ((PyObject *)__pyx_v_self->_sensor_adr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2199
 *     @property
 *     def sensor_dim(self): return self._sensor_dim
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_adr(self): return self._sensor_adr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2201
 *     @property
 *     def sensor_adr(self): return self._sensor_adr
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_cutoff(self): return self._sensor_cutoff
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13sensor_cutoff_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13sensor_cutoff_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13sensor_cutoff___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13sensor_cutoff___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2202
 *     def sensor_adr(self): return self._sensor_adr
 *     @property
 *     def sensor_cutoff(self): return self._sensor_cutoff             # <<<<<<<<<<<<<<
 *     @property
 *     def sensor_noise(self): return self._sensor_noise
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_sensor_cutoff);
  __pyx_r = ((PyObject *)__pyx_v_self->_sensor_cutoff);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2201
 *     @property
 *     def sensor_adr(self): return self._sensor_adr
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_cutoff(self): return self._sensor_cutoff
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2203
 *     @property
 *     def sensor_cutoff(self): return self._sensor_cutoff
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_noise(self): return self._sensor_noise
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12sensor_noise_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12sensor_noise_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12sensor_noise___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12sensor_noise___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2204
 *     def sensor_cutoff(self): return self._sensor_cutoff
 *     @property
 *     def sensor_noise(self): return self._sensor_noise             # <<<<<<<<<<<<<<
 *     @property
 *     def sensor_user(self): return self._sensor_user
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_sensor_noise);
  __pyx_r = ((PyObject *)__pyx_v_self->_sensor_noise);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2203
 *     @property
 *     def sensor_cutoff(self): return self._sensor_cutoff
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_noise(self): return self._sensor_noise
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2205
 *     @property
 *     def sensor_noise(self): return self._sensor_noise
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_user(self): return self._sensor_user
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11sensor_user_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11sensor_user_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11sensor_user___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11sensor_user___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2206
 *     def sensor_noise(self): return self._sensor_noise
 *     @property
 *     def sensor_user(self): return self._sensor_user             # <<<<<<<<<<<<<<
 *     @property
 *     def numeric_adr(self): return self._numeric_adr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_sensor_user);
  __pyx_r = ((PyObject *)__pyx_v_self->_sensor_user);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2205
 *     @property
 *     def sensor_noise(self): return self._sensor_noise
 *     @property             # <<<<<<<<<<<<<<
 *     def sensor_user(self): return self._sensor_user
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2207
 *     @property
 *     def sensor_user(self): return self._sensor_user
 *     @property             # <<<<<<<<<<<<<<
 *     def numeric_adr(self): return self._numeric_adr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11numeric_adr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11numeric_adr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11numeric_adr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11numeric_adr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2208
 *     def sensor_user(self): return self._sensor_user
 *     @property
 *     def numeric_adr(self): return self._numeric_adr             # <<<<<<<<<<<<<<
 *     @property
 *     def numeric_size(self): return self._numeric_size
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_numeric_adr);
  __pyx_r = ((PyObject *)__pyx_v_self->_numeric_adr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2207
 *     @property
 *     def sensor_user(self): return self._sensor_user
 *     @property             # <<<<<<<<<<<<<<
 *     def numeric_adr(self): return self._numeric_adr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2209
 *     @property
 *     def numeric_adr(self): return self._numeric_adr
 *     @property             # <<<<<<<<<<<<<<
 *     def numeric_size(self): return self._numeric_size
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12numeric_size_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12numeric_size_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12numeric_size___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12numeric_size___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2210
 *     def numeric_adr(self): return self._numeric_adr
 *     @property
 *     def numeric_size(self): return self._numeric_size             # <<<<<<<<<<<<<<
 *     @property
 *     def numeric_data(self): return self._numeric_data
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_numeric_size);
  __pyx_r = ((PyObject *)__pyx_v_self->_numeric_size);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2209
 *     @property
 *     def numeric_adr(self): return self._numeric_adr
 *     @property             # <<<<<<<<<<<<<<
 *     def numeric_size(self): return self._numeric_size
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2211
 *     @property
 *     def numeric_size(self): return self._numeric_size
 *     @property             # <<<<<<<<<<<<<<
 *     def numeric_data(self): return self._numeric_data
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12numeric_data_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12numeric_data_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12numeric_data___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12numeric_data___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2212
 *     def numeric_size(self): return self._numeric_size
 *     @property
 *     def numeric_data(self): return self._numeric_data             # <<<<<<<<<<<<<<
 *     @property
 *     def text_adr(self): return self._text_adr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_numeric_data);
  __pyx_r = ((PyObject *)__pyx_v_self->_numeric_data);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2211
 *     @property
 *     def numeric_size(self): return self._numeric_size
 *     @property             # <<<<<<<<<<<<<<
 *     def numeric_data(self): return self._numeric_data
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2213
 *     @property
 *     def numeric_data(self): return self._numeric_data
 *     @property             # <<<<<<<<<<<<<<
 *     def text_adr(self): return self._text_adr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8text_adr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8text_adr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8text_adr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8text_adr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2214
 *     def numeric_data(self): return self._numeric_data
 *     @property
 *     def text_adr(self): return self._text_adr             # <<<<<<<<<<<<<<
 *     @property
 *     def text_size(self): return self._text_size
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_text_adr);
  __pyx_r = ((PyObject *)__pyx_v_self->_text_adr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2213
 *     @property
 *     def numeric_data(self): return self._numeric_data
 *     @property             # <<<<<<<<<<<<<<
 *     def text_adr(self): return self._text_adr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2215
 *     @property
 *     def text_adr(self): return self._text_adr
 *     @property             # <<<<<<<<<<<<<<
 *     def text_size(self): return self._text_size
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9text_size_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9text_size_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9text_size___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9text_size___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2216
 *     def text_adr(self): return self._text_adr
 *     @property
 *     def text_size(self): return self._text_size             # <<<<<<<<<<<<<<
 *     @property
 *     def text_data(self): return self._text_data
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_text_size);
  __pyx_r = ((PyObject *)__pyx_v_self->_text_size);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2215
 *     @property
 *     def text_adr(self): return self._text_adr
 *     @property             # <<<<<<<<<<<<<<
 *     def text_size(self): return self._text_size
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2217
 *     @property
 *     def text_size(self): return self._text_size
 *     @property             # <<<<<<<<<<<<<<
 *     def text_data(self): return self._text_data
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9text_data_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9text_data_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9text_data___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9text_data___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2218
 *     def text_size(self): return self._text_size
 *     @property
 *     def text_data(self): return self._text_data             # <<<<<<<<<<<<<<
 *     @property
 *     def tuple_adr(self): return self._tuple_adr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_text_data);
  __pyx_r = ((PyObject *)__pyx_v_self->_text_data);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2217
 *     @property
 *     def text_size(self): return self._text_size
 *     @property             # <<<<<<<<<<<<<<
 *     def text_data(self): return self._text_data
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2219
 *     @property
 *     def text_data(self): return self._text_data
 *     @property             # <<<<<<<<<<<<<<
 *     def tuple_adr(self): return self._tuple_adr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9tuple_adr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9tuple_adr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9tuple_adr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9tuple_adr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2220
 *     def text_data(self): return self._text_data
 *     @property
 *     def tuple_adr(self): return self._tuple_adr             # <<<<<<<<<<<<<<
 *     @property
 *     def tuple_size(self): return self._tuple_size
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tuple_adr);
  __pyx_r = ((PyObject *)__pyx_v_self->_tuple_adr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2219
 *     @property
 *     def text_data(self): return self._text_data
 *     @property             # <<<<<<<<<<<<<<
 *     def tuple_adr(self): return self._tuple_adr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2221
 *     @property
 *     def tuple_adr(self): return self._tuple_adr
 *     @property             # <<<<<<<<<<<<<<
 *     def tuple_size(self): return self._tuple_size
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10tuple_size_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10tuple_size_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10tuple_size___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10tuple_size___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2222
 *     def tuple_adr(self): return self._tuple_adr
 *     @property
 *     def tuple_size(self): return self._tuple_size             # <<<<<<<<<<<<<<
 *     @property
 *     def tuple_objtype(self): return self._tuple_objtype
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tuple_size);
  __pyx_r = ((PyObject *)__pyx_v_self->_tuple_size);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2221
 *     @property
 *     def tuple_adr(self): return self._tuple_adr
 *     @property             # <<<<<<<<<<<<<<
 *     def tuple_size(self): return self._tuple_size
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2223
 *     @property
 *     def tuple_size(self): return self._tuple_size
 *     @property             # <<<<<<<<<<<<<<
 *     def tuple_objtype(self): return self._tuple_objtype
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13tuple_objtype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13tuple_objtype_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13tuple_objtype___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13tuple_objtype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2224
 *     def tuple_size(self): return self._tuple_size
 *     @property
 *     def tuple_objtype(self): return self._tuple_objtype             # <<<<<<<<<<<<<<
 *     @property
 *     def tuple_objid(self): return self._tuple_objid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tuple_objtype);
  __pyx_r = ((PyObject *)__pyx_v_self->_tuple_objtype);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2223
 *     @property
 *     def tuple_size(self): return self._tuple_size
 *     @property             # <<<<<<<<<<<<<<
 *     def tuple_objtype(self): return self._tuple_objtype
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2225
 *     @property
 *     def tuple_objtype(self): return self._tuple_objtype
 *     @property             # <<<<<<<<<<<<<<
 *     def tuple_objid(self): return self._tuple_objid
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11tuple_objid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11tuple_objid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11tuple_objid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11tuple_objid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2226
 *     def tuple_objtype(self): return self._tuple_objtype
 *     @property
 *     def tuple_objid(self): return self._tuple_objid             # <<<<<<<<<<<<<<
 *     @property
 *     def tuple_objprm(self): return self._tuple_objprm
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tuple_objid);
  __pyx_r = ((PyObject *)__pyx_v_self->_tuple_objid);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2225
 *     @property
 *     def tuple_objtype(self): return self._tuple_objtype
 *     @property             # <<<<<<<<<<<<<<
 *     def tuple_objid(self): return self._tuple_objid
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2227
 *     @property
 *     def tuple_objid(self): return self._tuple_objid
 *     @property             # <<<<<<<<<<<<<<
 *     def tuple_objprm(self): return self._tuple_objprm
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tuple_objprm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tuple_objprm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tuple_objprm___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tuple_objprm___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2228
 *     def tuple_objid(self): return self._tuple_objid
 *     @property
 *     def tuple_objprm(self): return self._tuple_objprm             # <<<<<<<<<<<<<<
 *     @property
 *     def key_time(self): return self._key_time
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tuple_objprm);
  __pyx_r = ((PyObject *)__pyx_v_self->_tuple_objprm);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2227
 *     @property
 *     def tuple_objid(self): return self._tuple_objid
 *     @property             # <<<<<<<<<<<<<<
 *     def tuple_objprm(self): return self._tuple_objprm
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2229
 *     @property
 *     def tuple_objprm(self): return self._tuple_objprm
 *     @property             # <<<<<<<<<<<<<<
 *     def key_time(self): return self._key_time
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8key_time_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8key_time_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8key_time___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8key_time___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2230
 *     def tuple_objprm(self): return self._tuple_objprm
 *     @property
 *     def key_time(self): return self._key_time             # <<<<<<<<<<<<<<
 *     @property
 *     def key_qpos(self): return self._key_qpos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_key_time);
  __pyx_r = ((PyObject *)__pyx_v_self->_key_time);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2229
 *     @property
 *     def tuple_objprm(self): return self._tuple_objprm
 *     @property             # <<<<<<<<<<<<<<
 *     def key_time(self): return self._key_time
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2231
 *     @property
 *     def key_time(self): return self._key_time
 *     @property             # <<<<<<<<<<<<<<
 *     def key_qpos(self): return self._key_qpos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8key_qpos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8key_qpos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8key_qpos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8key_qpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2232
 *     def key_time(self): return self._key_time
 *     @property
 *     def key_qpos(self): return self._key_qpos             # <<<<<<<<<<<<<<
 *     @property
 *     def key_qvel(self): return self._key_qvel
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_key_qpos);
  __pyx_r = ((PyObject *)__pyx_v_self->_key_qpos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2231
 *     @property
 *     def key_time(self): return self._key_time
 *     @property             # <<<<<<<<<<<<<<
 *     def key_qpos(self): return self._key_qpos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2233
 *     @property
 *     def key_qpos(self): return self._key_qpos
 *     @property             # <<<<<<<<<<<<<<
 *     def key_qvel(self): return self._key_qvel
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8key_qvel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8key_qvel_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8key_qvel___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8key_qvel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2234
 *     def key_qpos(self): return self._key_qpos
 *     @property
 *     def key_qvel(self): return self._key_qvel             # <<<<<<<<<<<<<<
 *     @property
 *     def key_act(self): return self._key_act
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_key_qvel);
  __pyx_r = ((PyObject *)__pyx_v_self->_key_qvel);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2233
 *     @property
 *     def key_qpos(self): return self._key_qpos
 *     @property             # <<<<<<<<<<<<<<
 *     def key_qvel(self): return self._key_qvel
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2235
 *     @property
 *     def key_qvel(self): return self._key_qvel
 *     @property             # <<<<<<<<<<<<<<
 *     def key_act(self): return self._key_act
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7key_act_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7key_act_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_7key_act___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_7key_act___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2236
 *     def key_qvel(self): return self._key_qvel
 *     @property
 *     def key_act(self): return self._key_act             # <<<<<<<<<<<<<<
 *     @property
 *     def key_mpos(self): return self._key_mpos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_key_act);
  __pyx_r = ((PyObject *)__pyx_v_self->_key_act);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2235
 *     @property
 *     def key_qvel(self): return self._key_qvel
 *     @property             # <<<<<<<<<<<<<<
 *     def key_act(self): return self._key_act
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2237
 *     @property
 *     def key_act(self): return self._key_act
 *     @property             # <<<<<<<<<<<<<<
 *     def key_mpos(self): return self._key_mpos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8key_mpos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_8key_mpos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_8key_mpos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_8key_mpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2238
 *     def key_act(self): return self._key_act
 *     @property
 *     def key_mpos(self): return self._key_mpos             # <<<<<<<<<<<<<<
 *     @property
 *     def key_mquat(self): return self._key_mquat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_key_mpos);
  __pyx_r = ((PyObject *)__pyx_v_self->_key_mpos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2237
 *     @property
 *     def key_act(self): return self._key_act
 *     @property             # <<<<<<<<<<<<<<
 *     def key_mpos(self): return self._key_mpos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2239
 *     @property
 *     def key_mpos(self): return self._key_mpos
 *     @property             # <<<<<<<<<<<<<<
 *     def key_mquat(self): return self._key_mquat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9key_mquat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9key_mquat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_9key_mquat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_9key_mquat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2240
 *     def key_mpos(self): return self._key_mpos
 *     @property
 *     def key_mquat(self): return self._key_mquat             # <<<<<<<<<<<<<<
 *     @property
 *     def name_bodyadr(self): return self._name_bodyadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_key_mquat);
  __pyx_r = ((PyObject *)__pyx_v_self->_key_mquat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2239
 *     @property
 *     def key_mpos(self): return self._key_mpos
 *     @property             # <<<<<<<<<<<<<<
 *     def key_mquat(self): return self._key_mquat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2241
 *     @property
 *     def key_mquat(self): return self._key_mquat
 *     @property             # <<<<<<<<<<<<<<
 *     def name_bodyadr(self): return self._name_bodyadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_bodyadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_bodyadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_bodyadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_bodyadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2242
 *     def key_mquat(self): return self._key_mquat
 *     @property
 *     def name_bodyadr(self): return self._name_bodyadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_jntadr(self): return self._name_jntadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_bodyadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_bodyadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2241
 *     @property
 *     def key_mquat(self): return self._key_mquat
 *     @property             # <<<<<<<<<<<<<<
 *     def name_bodyadr(self): return self._name_bodyadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2243
 *     @property
 *     def name_bodyadr(self): return self._name_bodyadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_jntadr(self): return self._name_jntadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11name_jntadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11name_jntadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11name_jntadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11name_jntadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2244
 *     def name_bodyadr(self): return self._name_bodyadr
 *     @property
 *     def name_jntadr(self): return self._name_jntadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_geomadr(self): return self._name_geomadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_jntadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_jntadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2243
 *     @property
 *     def name_bodyadr(self): return self._name_bodyadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_jntadr(self): return self._name_jntadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2245
 *     @property
 *     def name_jntadr(self): return self._name_jntadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_geomadr(self): return self._name_geomadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_geomadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_geomadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_geomadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_geomadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2246
 *     def name_jntadr(self): return self._name_jntadr
 *     @property
 *     def name_geomadr(self): return self._name_geomadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_siteadr(self): return self._name_siteadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_geomadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_geomadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2245
 *     @property
 *     def name_jntadr(self): return self._name_jntadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_geomadr(self): return self._name_geomadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2247
 *     @property
 *     def name_geomadr(self): return self._name_geomadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_siteadr(self): return self._name_siteadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_siteadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_siteadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_siteadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_siteadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2248
 *     def name_geomadr(self): return self._name_geomadr
 *     @property
 *     def name_siteadr(self): return self._name_siteadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_camadr(self): return self._name_camadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_siteadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_siteadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2247
 *     @property
 *     def name_geomadr(self): return self._name_geomadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_siteadr(self): return self._name_siteadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2249
 *     @property
 *     def name_siteadr(self): return self._name_siteadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_camadr(self): return self._name_camadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11name_camadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11name_camadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11name_camadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11name_camadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2250
 *     def name_siteadr(self): return self._name_siteadr
 *     @property
 *     def name_camadr(self): return self._name_camadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_lightadr(self): return self._name_lightadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_camadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_camadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2249
 *     @property
 *     def name_siteadr(self): return self._name_siteadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_camadr(self): return self._name_camadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2251
 *     @property
 *     def name_camadr(self): return self._name_camadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_lightadr(self): return self._name_lightadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13name_lightadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13name_lightadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13name_lightadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13name_lightadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2252
 *     def name_camadr(self): return self._name_camadr
 *     @property
 *     def name_lightadr(self): return self._name_lightadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_meshadr(self): return self._name_meshadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_lightadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_lightadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2251
 *     @property
 *     def name_camadr(self): return self._name_camadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_lightadr(self): return self._name_lightadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2253
 *     @property
 *     def name_lightadr(self): return self._name_lightadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_meshadr(self): return self._name_meshadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_meshadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_meshadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_meshadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_meshadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2254
 *     def name_lightadr(self): return self._name_lightadr
 *     @property
 *     def name_meshadr(self): return self._name_meshadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_skinadr(self): return self._name_skinadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_meshadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_meshadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2253
 *     @property
 *     def name_lightadr(self): return self._name_lightadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_meshadr(self): return self._name_meshadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2255
 *     @property
 *     def name_meshadr(self): return self._name_meshadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_skinadr(self): return self._name_skinadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_skinadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_skinadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_skinadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_skinadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2256
 *     def name_meshadr(self): return self._name_meshadr
 *     @property
 *     def name_skinadr(self): return self._name_skinadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_hfieldadr(self): return self._name_hfieldadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_skinadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_skinadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2255
 *     @property
 *     def name_meshadr(self): return self._name_meshadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_skinadr(self): return self._name_skinadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2257
 *     @property
 *     def name_skinadr(self): return self._name_skinadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_hfieldadr(self): return self._name_hfieldadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14name_hfieldadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14name_hfieldadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14name_hfieldadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14name_hfieldadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2258
 *     def name_skinadr(self): return self._name_skinadr
 *     @property
 *     def name_hfieldadr(self): return self._name_hfieldadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_texadr(self): return self._name_texadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_hfieldadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_hfieldadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2257
 *     @property
 *     def name_skinadr(self): return self._name_skinadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_hfieldadr(self): return self._name_hfieldadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2259
 *     @property
 *     def name_hfieldadr(self): return self._name_hfieldadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_texadr(self): return self._name_texadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11name_texadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11name_texadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11name_texadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11name_texadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2260
 *     def name_hfieldadr(self): return self._name_hfieldadr
 *     @property
 *     def name_texadr(self): return self._name_texadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_matadr(self): return self._name_matadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_texadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_texadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2259
 *     @property
 *     def name_hfieldadr(self): return self._name_hfieldadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_texadr(self): return self._name_texadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2261
 *     @property
 *     def name_texadr(self): return self._name_texadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_matadr(self): return self._name_matadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11name_matadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11name_matadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11name_matadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11name_matadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2262
 *     def name_texadr(self): return self._name_texadr
 *     @property
 *     def name_matadr(self): return self._name_matadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_pairadr(self): return self._name_pairadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_matadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_matadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2261
 *     @property
 *     def name_texadr(self): return self._name_texadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_matadr(self): return self._name_matadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2263
 *     @property
 *     def name_matadr(self): return self._name_matadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_pairadr(self): return self._name_pairadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_pairadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_pairadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_pairadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_pairadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2264
 *     def name_matadr(self): return self._name_matadr
 *     @property
 *     def name_pairadr(self): return self._name_pairadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_excludeadr(self): return self._name_excludeadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_pairadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_pairadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2263
 *     @property
 *     def name_matadr(self): return self._name_matadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_pairadr(self): return self._name_pairadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2265
 *     @property
 *     def name_pairadr(self): return self._name_pairadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_excludeadr(self): return self._name_excludeadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15name_excludeadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15name_excludeadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_15name_excludeadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15name_excludeadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2266
 *     def name_pairadr(self): return self._name_pairadr
 *     @property
 *     def name_excludeadr(self): return self._name_excludeadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_eqadr(self): return self._name_eqadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_excludeadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_excludeadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2265
 *     @property
 *     def name_pairadr(self): return self._name_pairadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_excludeadr(self): return self._name_excludeadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2267
 *     @property
 *     def name_excludeadr(self): return self._name_excludeadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_eqadr(self): return self._name_eqadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10name_eqadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10name_eqadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10name_eqadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10name_eqadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2268
 *     def name_excludeadr(self): return self._name_excludeadr
 *     @property
 *     def name_eqadr(self): return self._name_eqadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_tendonadr(self): return self._name_tendonadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_eqadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_eqadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2267
 *     @property
 *     def name_excludeadr(self): return self._name_excludeadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_eqadr(self): return self._name_eqadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2269
 *     @property
 *     def name_eqadr(self): return self._name_eqadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_tendonadr(self): return self._name_tendonadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14name_tendonadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14name_tendonadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14name_tendonadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14name_tendonadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2270
 *     def name_eqadr(self): return self._name_eqadr
 *     @property
 *     def name_tendonadr(self): return self._name_tendonadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_actuatoradr(self): return self._name_actuatoradr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_tendonadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_tendonadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2269
 *     @property
 *     def name_eqadr(self): return self._name_eqadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_tendonadr(self): return self._name_tendonadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2271
 *     @property
 *     def name_tendonadr(self): return self._name_tendonadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_actuatoradr(self): return self._name_actuatoradr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16name_actuatoradr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_16name_actuatoradr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_16name_actuatoradr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_16name_actuatoradr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2272
 *     def name_tendonadr(self): return self._name_tendonadr
 *     @property
 *     def name_actuatoradr(self): return self._name_actuatoradr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_sensoradr(self): return self._name_sensoradr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_actuatoradr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_actuatoradr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2271
 *     @property
 *     def name_tendonadr(self): return self._name_tendonadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_actuatoradr(self): return self._name_actuatoradr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2273
 *     @property
 *     def name_actuatoradr(self): return self._name_actuatoradr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_sensoradr(self): return self._name_sensoradr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14name_sensoradr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14name_sensoradr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14name_sensoradr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14name_sensoradr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2274
 *     def name_actuatoradr(self): return self._name_actuatoradr
 *     @property
 *     def name_sensoradr(self): return self._name_sensoradr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_numericadr(self): return self._name_numericadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_sensoradr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_sensoradr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2273
 *     @property
 *     def name_actuatoradr(self): return self._name_actuatoradr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_sensoradr(self): return self._name_sensoradr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2275
 *     @property
 *     def name_sensoradr(self): return self._name_sensoradr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_numericadr(self): return self._name_numericadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15name_numericadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15name_numericadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_15name_numericadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15name_numericadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2276
 *     def name_sensoradr(self): return self._name_sensoradr
 *     @property
 *     def name_numericadr(self): return self._name_numericadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_textadr(self): return self._name_textadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_numericadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_numericadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2275
 *     @property
 *     def name_sensoradr(self): return self._name_sensoradr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_numericadr(self): return self._name_numericadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2277
 *     @property
 *     def name_numericadr(self): return self._name_numericadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_textadr(self): return self._name_textadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_textadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_textadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_textadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12name_textadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2278
 *     def name_numericadr(self): return self._name_numericadr
 *     @property
 *     def name_textadr(self): return self._name_textadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_tupleadr(self): return self._name_tupleadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_textadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_textadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2277
 *     @property
 *     def name_numericadr(self): return self._name_numericadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_textadr(self): return self._name_textadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2279
 *     @property
 *     def name_textadr(self): return self._name_textadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_tupleadr(self): return self._name_tupleadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13name_tupleadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13name_tupleadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13name_tupleadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13name_tupleadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2280
 *     def name_textadr(self): return self._name_textadr
 *     @property
 *     def name_tupleadr(self): return self._name_tupleadr             # <<<<<<<<<<<<<<
 *     @property
 *     def name_keyadr(self): return self._name_keyadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_tupleadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_tupleadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2279
 *     @property
 *     def name_textadr(self): return self._name_textadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_tupleadr(self): return self._name_tupleadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2281
 *     @property
 *     def name_tupleadr(self): return self._name_tupleadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_keyadr(self): return self._name_keyadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11name_keyadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11name_keyadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11name_keyadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11name_keyadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2282
 *     def name_tupleadr(self): return self._name_tupleadr
 *     @property
 *     def name_keyadr(self): return self._name_keyadr             # <<<<<<<<<<<<<<
 *     @property
 *     def names(self): return self._names
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name_keyadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_name_keyadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2281
 *     @property
 *     def name_tupleadr(self): return self._name_tupleadr
 *     @property             # <<<<<<<<<<<<<<
 *     def name_keyadr(self): return self._name_keyadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2283
 *     @property
 *     def name_keyadr(self): return self._name_keyadr
 *     @property             # <<<<<<<<<<<<<<
 *     def names(self): return self._names
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5names_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5names_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_5names___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_5names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2284
 *     def name_keyadr(self): return self._name_keyadr
 *     @property
 *     def names(self): return self._names             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjModel WrapMjModel(mjModel* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_names);
  __pyx_r = ((PyObject *)__pyx_v_self->_names);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2283
 *     @property
 *     def name_keyadr(self): return self._name_keyadr
 *     @property             # <<<<<<<<<<<<<<
 *     def names(self): return self._names
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1010
 *     cdef np.ndarray _names
 * 
 *     cdef readonly tuple body_names, joint_names, geom_names, site_names, light_names, camera_names, actuator_names, sensor_names, tendon_names, mesh_names             # <<<<<<<<<<<<<<
 *     cdef readonly dict _body_id2name, _joint_id2name, _geom_id2name, _site_id2name, _light_id2name, _camera_id2name, _actuator_id2name, _sensor_id2name, _tendon_id2name, _mesh_id2name
 *     cdef readonly dict _body_name2id, _joint_name2id, _geom_name2id, _site_name2id, _light_name2id, _camera_name2id, _actuator_name2id, _sensor_name2id, _tendon_name2id, _mesh_name2id
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10body_names_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10body_names_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10body_names___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10body_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->body_names);
  __pyx_r = __pyx_v_self->body_names;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11joint_names_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11joint_names_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11joint_names___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11joint_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->joint_names);
  __pyx_r = __pyx_v_self->joint_names;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10geom_names_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10geom_names_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10geom_names___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10geom_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->geom_names);
  __pyx_r = __pyx_v_self->geom_names;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10site_names_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10site_names_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10site_names___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10site_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->site_names);
  __pyx_r = __pyx_v_self->site_names;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11light_names_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11light_names_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_11light_names___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_11light_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->light_names);
  __pyx_r = __pyx_v_self->light_names;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12camera_names_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12camera_names_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12camera_names___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12camera_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->camera_names);
  __pyx_r = __pyx_v_self->camera_names;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14actuator_names_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14actuator_names_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14actuator_names___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14actuator_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->actuator_names);
  __pyx_r = __pyx_v_self->actuator_names;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12sensor_names_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12sensor_names_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12sensor_names___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12sensor_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->sensor_names);
  __pyx_r = __pyx_v_self->sensor_names;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tendon_names_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tendon_names_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tendon_names___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_12tendon_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->tendon_names);
  __pyx_r = __pyx_v_self->tendon_names;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10mesh_names_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_10mesh_names_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_10mesh_names___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_10mesh_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->mesh_names);
  __pyx_r = __pyx_v_self->mesh_names;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1011
 * 
 *     cdef readonly tuple body_names, joint_names, geom_names, site_names, light_names, camera_names, actuator_names, sensor_names, tendon_names, mesh_names
 *     cdef readonly dict _body_id2name, _joint_id2name, _geom_id2name, _site_id2name, _light_id2name, _camera_id2name, _actuator_id2name, _sensor_id2name, _tendon_id2name, _mesh_id2name             # <<<<<<<<<<<<<<
 *     cdef readonly dict _body_name2id, _joint_name2id, _geom_name2id, _site_name2id, _light_name2id, _camera_name2id, _actuator_name2id, _sensor_name2id, _tendon_name2id, _mesh_name2id
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_body_id2name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_body_id2name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_body_id2name___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_body_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_body_id2name);
  __pyx_r = __pyx_v_self->_body_id2name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14_joint_id2name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14_joint_id2name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14_joint_id2name___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14_joint_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_joint_id2name);
  __pyx_r = __pyx_v_self->_joint_id2name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_geom_id2name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_geom_id2name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_geom_id2name___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_geom_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_geom_id2name);
  __pyx_r = __pyx_v_self->_geom_id2name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_site_id2name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_site_id2name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_site_id2name___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_site_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_site_id2name);
  __pyx_r = __pyx_v_self->_site_id2name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14_light_id2name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14_light_id2name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14_light_id2name___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14_light_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_light_id2name);
  __pyx_r = __pyx_v_self->_light_id2name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_camera_id2name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_camera_id2name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_camera_id2name___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_camera_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_camera_id2name);
  __pyx_r = __pyx_v_self->_camera_id2name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_actuator_id2name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_actuator_id2name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_actuator_id2name___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_actuator_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_actuator_id2name);
  __pyx_r = __pyx_v_self->_actuator_id2name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_sensor_id2name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_sensor_id2name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_sensor_id2name___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_sensor_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_sensor_id2name);
  __pyx_r = __pyx_v_self->_sensor_id2name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_tendon_id2name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_tendon_id2name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_tendon_id2name___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_tendon_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_tendon_id2name);
  __pyx_r = __pyx_v_self->_tendon_id2name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_mesh_id2name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_mesh_id2name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_mesh_id2name___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_mesh_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_mesh_id2name);
  __pyx_r = __pyx_v_self->_mesh_id2name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1012
 *     cdef readonly tuple body_names, joint_names, geom_names, site_names, light_names, camera_names, actuator_names, sensor_names, tendon_names, mesh_names
 *     cdef readonly dict _body_id2name, _joint_id2name, _geom_id2name, _site_id2name, _light_id2name, _camera_id2name, _actuator_id2name, _sensor_id2name, _tendon_id2name, _mesh_id2name
 *     cdef readonly dict _body_name2id, _joint_name2id, _geom_name2id, _site_name2id, _light_name2id, _camera_name2id, _actuator_name2id, _sensor_name2id, _tendon_name2id, _mesh_name2id             # <<<<<<<<<<<<<<
 * 
 *     def body_id2name(self, id):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_body_name2id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_body_name2id_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_body_name2id___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_body_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_body_name2id);
  __pyx_r = __pyx_v_self->_body_name2id;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14_joint_name2id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14_joint_name2id_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14_joint_name2id___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14_joint_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_joint_name2id);
  __pyx_r = __pyx_v_self->_joint_name2id;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_geom_name2id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_geom_name2id_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_geom_name2id___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_geom_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_geom_name2id);
  __pyx_r = __pyx_v_self->_geom_name2id;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_site_name2id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_site_name2id_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_site_name2id___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_site_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_site_name2id);
  __pyx_r = __pyx_v_self->_site_name2id;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14_light_name2id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14_light_name2id_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14_light_name2id___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14_light_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_light_name2id);
  __pyx_r = __pyx_v_self->_light_name2id;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_camera_name2id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_camera_name2id_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_camera_name2id___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_camera_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_camera_name2id);
  __pyx_r = __pyx_v_self->_camera_name2id;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_actuator_name2id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_actuator_name2id_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_actuator_name2id___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_actuator_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_actuator_name2id);
  __pyx_r = __pyx_v_self->_actuator_name2id;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_sensor_name2id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_sensor_name2id_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_sensor_name2id___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_sensor_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_sensor_name2id);
  __pyx_r = __pyx_v_self->_sensor_name2id;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_tendon_name2id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_tendon_name2id_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_tendon_name2id___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_15_tendon_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_tendon_name2id);
  __pyx_r = __pyx_v_self->_tendon_name2id;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_mesh_name2id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_mesh_name2id_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_mesh_name2id___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_13_mesh_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_mesh_name2id);
  __pyx_r = __pyx_v_self->_mesh_name2id;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1113
 *             raise ValueError("No \"mesh\" with name %s exists. Available \"mesh\" names = %s." % (name, self.mesh_names))
 *         return self._mesh_name2id[name]
 *     cdef public tuple userdata_names             # <<<<<<<<<<<<<<
 *     cdef public dict _userdata_id2name
 *     cdef public dict _userdata_name2id
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14userdata_names_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_14userdata_names_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14userdata_names___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_14userdata_names___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->userdata_names);
  __pyx_r = __pyx_v_self->userdata_names;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14userdata_names_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14userdata_names_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14userdata_names_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14userdata_names_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(PyTuple_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v_value))) __PYX_ERR(4, 1113, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->userdata_names);
  __Pyx_DECREF(__pyx_v_self->userdata_names);
  __pyx_v_self->userdata_names = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.userdata_names.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14userdata_names_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14userdata_names_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14userdata_names_4__del__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_14userdata_names_4__del__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->userdata_names);
  __Pyx_DECREF(__pyx_v_self->userdata_names);
  __pyx_v_self->userdata_names = ((PyObject*)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1114
 *         return self._mesh_name2id[name]
 *     cdef public tuple userdata_names
 *     cdef public dict _userdata_id2name             # <<<<<<<<<<<<<<
 *     cdef public dict _userdata_name2id
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_userdata_id2name);
  __pyx_r = __pyx_v_self->_userdata_id2name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(PyDict_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_v_value))) __PYX_ERR(4, 1114, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_userdata_id2name);
  __Pyx_DECREF(__pyx_v_self->_userdata_id2name);
  __pyx_v_self->_userdata_id2name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel._userdata_id2name.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name_4__del__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name_4__del__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_userdata_id2name);
  __Pyx_DECREF(__pyx_v_self->_userdata_id2name);
  __pyx_v_self->_userdata_id2name = ((PyObject*)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":1115
 *     cdef public tuple userdata_names
 *     cdef public dict _userdata_id2name
 *     cdef public dict _userdata_name2id             # <<<<<<<<<<<<<<
 * 
 *     def userdata_id2name(self, id):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_userdata_name2id);
  __pyx_r = __pyx_v_self->_userdata_name2id;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(PyDict_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_v_value))) __PYX_ERR(4, 1115, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_userdata_name2id);
  __Pyx_DECREF(__pyx_v_self->_userdata_name2id);
  __pyx_v_self->_userdata_name2id = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel._userdata_name2id.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id_4__del__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id_4__del__(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_userdata_name2id);
  __Pyx_DECREF(__pyx_v_self->_userdata_name2id);
  __pyx_v_self->_userdata_name2id = ((PyObject*)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_57__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_57__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_57__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_57__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_56__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_56__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_ptr_cannot_be_converted_to, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_59__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjModel_59__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_59__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjModel_59__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjModel_58__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjModel_58__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_ptr_cannot_be_converted_to, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjModel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2286
 *     def names(self): return self._names
 * 
 * cdef PyMjModel WrapMjModel(mjModel* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjModel o = PyMjModel()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_f_9mujoco_py_4cymj_WrapMjModel(mjModel *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjModel", 1);

  /* "mujoco_py/generated/wrappers.pxi":2287
 * 
 * cdef PyMjModel WrapMjModel(mjModel* p):
 *     cdef PyMjModel o = PyMjModel()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2288
 * cdef PyMjModel WrapMjModel(mjModel* p):
 *     cdef PyMjModel o = PyMjModel()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjModel *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":2289
 *     cdef PyMjModel o = PyMjModel()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjContact(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2286
 *     def names(self): return self._names
 * 
 * cdef PyMjModel WrapMjModel(mjModel* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjModel o = PyMjModel()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2302
 *     cdef np.ndarray _H
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2303
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":2302
 *     cdef np.ndarray _H
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2306
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2307
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjContact* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2306
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2309
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjContact* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_11PyMjContact__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, mjContact *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":2311
 *     cdef void _set(self, mjContact* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":2314
 * 
 * 
 *         self._pos = _wrap_mjtNum_1d(&p.pos[0], 3)             # <<<<<<<<<<<<<<
 *         self._frame = _wrap_mjtNum_1d(&p.frame[0], 9)
 *         self._friction = _wrap_mjtNum_1d(&p.friction[0], 5)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->pos[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_pos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_pos);
  __pyx_v_self->_pos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2315
 * 
 *         self._pos = _wrap_mjtNum_1d(&p.pos[0], 3)
 *         self._frame = _wrap_mjtNum_1d(&p.frame[0], 9)             # <<<<<<<<<<<<<<
 *         self._friction = _wrap_mjtNum_1d(&p.friction[0], 5)
 *         self._solref = _wrap_mjtNum_1d(&p.solref[0], 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->frame[0])), 9)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_frame);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_frame);
  __pyx_v_self->_frame = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2316
 *         self._pos = _wrap_mjtNum_1d(&p.pos[0], 3)
 *         self._frame = _wrap_mjtNum_1d(&p.frame[0], 9)
 *         self._friction = _wrap_mjtNum_1d(&p.friction[0], 5)             # <<<<<<<<<<<<<<
 *         self._solref = _wrap_mjtNum_1d(&p.solref[0], 2)
 *         self._solimp = _wrap_mjtNum_1d(&p.solimp[0], 5)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->friction[0])), 5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_friction);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_friction);
  __pyx_v_self->_friction = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2317
 *         self._frame = _wrap_mjtNum_1d(&p.frame[0], 9)
 *         self._friction = _wrap_mjtNum_1d(&p.friction[0], 5)
 *         self._solref = _wrap_mjtNum_1d(&p.solref[0], 2)             # <<<<<<<<<<<<<<
 *         self._solimp = _wrap_mjtNum_1d(&p.solimp[0], 5)
 *         self._H = _wrap_mjtNum_1d(&p.H[0], 36)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->solref[0])), 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_solref);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_solref);
  __pyx_v_self->_solref = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2318
 *         self._friction = _wrap_mjtNum_1d(&p.friction[0], 5)
 *         self._solref = _wrap_mjtNum_1d(&p.solref[0], 2)
 *         self._solimp = _wrap_mjtNum_1d(&p.solimp[0], 5)             # <<<<<<<<<<<<<<
 *         self._H = _wrap_mjtNum_1d(&p.H[0], 36)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->solimp[0])), 5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_solimp);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_solimp);
  __pyx_v_self->_solimp = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2319
 *         self._solref = _wrap_mjtNum_1d(&p.solref[0], 2)
 *         self._solimp = _wrap_mjtNum_1d(&p.solimp[0], 5)
 *         self._H = _wrap_mjtNum_1d(&p.H[0], 36)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->H[0])), 36)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_H);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_H);
  __pyx_v_self->_H = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2309
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjContact* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjContact._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":2321
 *         self._H = _wrap_mjtNum_1d(&p.H[0], 36)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def dist(self): return self.ptr.dist
 *     @dist.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_4dist_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_4dist_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_4dist___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_4dist___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2322
 * 
 *     @property
 *     def dist(self): return self.ptr.dist             # <<<<<<<<<<<<<<
 *     @dist.setter
 *     def dist(self, mjtNum x): self.ptr.dist = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->dist); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2321
 *         self._H = _wrap_mjtNum_1d(&p.H[0], 36)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def dist(self): return self.ptr.dist
 *     @dist.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.dist.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2323
 *     @property
 *     def dist(self): return self.ptr.dist
 *     @dist.setter             # <<<<<<<<<<<<<<
 *     def dist(self, mjtNum x): self.ptr.dist = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_4dist_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_4dist_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 2324, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.dist.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_4dist_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_4dist_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2324
 *     def dist(self): return self.ptr.dist
 *     @dist.setter
 *     def dist(self, mjtNum x): self.ptr.dist = x             # <<<<<<<<<<<<<<
 *     @property
 *     def includemargin(self): return self.ptr.includemargin
 */
  __pyx_v_self->ptr->dist = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2323
 *     @property
 *     def dist(self): return self.ptr.dist
 *     @dist.setter             # <<<<<<<<<<<<<<
 *     def dist(self, mjtNum x): self.ptr.dist = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2325
 *     @dist.setter
 *     def dist(self, mjtNum x): self.ptr.dist = x
 *     @property             # <<<<<<<<<<<<<<
 *     def includemargin(self): return self.ptr.includemargin
 *     @includemargin.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_13includemargin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_13includemargin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_13includemargin___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_13includemargin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2326
 *     def dist(self, mjtNum x): self.ptr.dist = x
 *     @property
 *     def includemargin(self): return self.ptr.includemargin             # <<<<<<<<<<<<<<
 *     @includemargin.setter
 *     def includemargin(self, mjtNum x): self.ptr.includemargin = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->includemargin); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2325
 *     @dist.setter
 *     def dist(self, mjtNum x): self.ptr.dist = x
 *     @property             # <<<<<<<<<<<<<<
 *     def includemargin(self): return self.ptr.includemargin
 *     @includemargin.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.includemargin.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2327
 *     @property
 *     def includemargin(self): return self.ptr.includemargin
 *     @includemargin.setter             # <<<<<<<<<<<<<<
 *     def includemargin(self, mjtNum x): self.ptr.includemargin = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_13includemargin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_13includemargin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 2328, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.includemargin.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_13includemargin_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_13includemargin_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2328
 *     def includemargin(self): return self.ptr.includemargin
 *     @includemargin.setter
 *     def includemargin(self, mjtNum x): self.ptr.includemargin = x             # <<<<<<<<<<<<<<
 *     @property
 *     def mu(self): return self.ptr.mu
 */
  __pyx_v_self->ptr->includemargin = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2327
 *     @property
 *     def includemargin(self): return self.ptr.includemargin
 *     @includemargin.setter             # <<<<<<<<<<<<<<
 *     def includemargin(self, mjtNum x): self.ptr.includemargin = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2329
 *     @includemargin.setter
 *     def includemargin(self, mjtNum x): self.ptr.includemargin = x
 *     @property             # <<<<<<<<<<<<<<
 *     def mu(self): return self.ptr.mu
 *     @mu.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_2mu_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_2mu_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_2mu___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_2mu___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2330
 *     def includemargin(self, mjtNum x): self.ptr.includemargin = x
 *     @property
 *     def mu(self): return self.ptr.mu             # <<<<<<<<<<<<<<
 *     @mu.setter
 *     def mu(self, mjtNum x): self.ptr.mu = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->mu); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2329
 *     @includemargin.setter
 *     def includemargin(self, mjtNum x): self.ptr.includemargin = x
 *     @property             # <<<<<<<<<<<<<<
 *     def mu(self): return self.ptr.mu
 *     @mu.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.mu.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2331
 *     @property
 *     def mu(self): return self.ptr.mu
 *     @mu.setter             # <<<<<<<<<<<<<<
 *     def mu(self, mjtNum x): self.ptr.mu = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_2mu_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_2mu_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 2332, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.mu.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_2mu_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_2mu_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2332
 *     def mu(self): return self.ptr.mu
 *     @mu.setter
 *     def mu(self, mjtNum x): self.ptr.mu = x             # <<<<<<<<<<<<<<
 *     @property
 *     def dim(self): return self.ptr.dim
 */
  __pyx_v_self->ptr->mu = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2331
 *     @property
 *     def mu(self): return self.ptr.mu
 *     @mu.setter             # <<<<<<<<<<<<<<
 *     def mu(self, mjtNum x): self.ptr.mu = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2333
 *     @mu.setter
 *     def mu(self, mjtNum x): self.ptr.mu = x
 *     @property             # <<<<<<<<<<<<<<
 *     def dim(self): return self.ptr.dim
 *     @dim.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_3dim_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_3dim_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_3dim___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_3dim___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2334
 *     def mu(self, mjtNum x): self.ptr.mu = x
 *     @property
 *     def dim(self): return self.ptr.dim             # <<<<<<<<<<<<<<
 *     @dim.setter
 *     def dim(self, int x): self.ptr.dim = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->dim); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2333
 *     @mu.setter
 *     def mu(self, mjtNum x): self.ptr.mu = x
 *     @property             # <<<<<<<<<<<<<<
 *     def dim(self): return self.ptr.dim
 *     @dim.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.dim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2335
 *     @property
 *     def dim(self): return self.ptr.dim
 *     @dim.setter             # <<<<<<<<<<<<<<
 *     def dim(self, int x): self.ptr.dim = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_3dim_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_3dim_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2336, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.dim.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_3dim_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_3dim_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2336
 *     def dim(self): return self.ptr.dim
 *     @dim.setter
 *     def dim(self, int x): self.ptr.dim = x             # <<<<<<<<<<<<<<
 *     @property
 *     def geom1(self): return self.ptr.geom1
 */
  __pyx_v_self->ptr->dim = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2335
 *     @property
 *     def dim(self): return self.ptr.dim
 *     @dim.setter             # <<<<<<<<<<<<<<
 *     def dim(self, int x): self.ptr.dim = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2337
 *     @dim.setter
 *     def dim(self, int x): self.ptr.dim = x
 *     @property             # <<<<<<<<<<<<<<
 *     def geom1(self): return self.ptr.geom1
 *     @geom1.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_5geom1_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_5geom1_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_5geom1___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_5geom1___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2338
 *     def dim(self, int x): self.ptr.dim = x
 *     @property
 *     def geom1(self): return self.ptr.geom1             # <<<<<<<<<<<<<<
 *     @geom1.setter
 *     def geom1(self, int x): self.ptr.geom1 = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->geom1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2337
 *     @dim.setter
 *     def dim(self, int x): self.ptr.dim = x
 *     @property             # <<<<<<<<<<<<<<
 *     def geom1(self): return self.ptr.geom1
 *     @geom1.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.geom1.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2339
 *     @property
 *     def geom1(self): return self.ptr.geom1
 *     @geom1.setter             # <<<<<<<<<<<<<<
 *     def geom1(self, int x): self.ptr.geom1 = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_5geom1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_5geom1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2340, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.geom1.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_5geom1_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_5geom1_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2340
 *     def geom1(self): return self.ptr.geom1
 *     @geom1.setter
 *     def geom1(self, int x): self.ptr.geom1 = x             # <<<<<<<<<<<<<<
 *     @property
 *     def geom2(self): return self.ptr.geom2
 */
  __pyx_v_self->ptr->geom1 = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2339
 *     @property
 *     def geom1(self): return self.ptr.geom1
 *     @geom1.setter             # <<<<<<<<<<<<<<
 *     def geom1(self, int x): self.ptr.geom1 = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2341
 *     @geom1.setter
 *     def geom1(self, int x): self.ptr.geom1 = x
 *     @property             # <<<<<<<<<<<<<<
 *     def geom2(self): return self.ptr.geom2
 *     @geom2.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_5geom2_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_5geom2_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_5geom2___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_5geom2___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2342
 *     def geom1(self, int x): self.ptr.geom1 = x
 *     @property
 *     def geom2(self): return self.ptr.geom2             # <<<<<<<<<<<<<<
 *     @geom2.setter
 *     def geom2(self, int x): self.ptr.geom2 = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->geom2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2341
 *     @geom1.setter
 *     def geom1(self, int x): self.ptr.geom1 = x
 *     @property             # <<<<<<<<<<<<<<
 *     def geom2(self): return self.ptr.geom2
 *     @geom2.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.geom2.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2343
 *     @property
 *     def geom2(self): return self.ptr.geom2
 *     @geom2.setter             # <<<<<<<<<<<<<<
 *     def geom2(self, int x): self.ptr.geom2 = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_5geom2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_5geom2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2344, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.geom2.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_5geom2_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_5geom2_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2344
 *     def geom2(self): return self.ptr.geom2
 *     @geom2.setter
 *     def geom2(self, int x): self.ptr.geom2 = x             # <<<<<<<<<<<<<<
 *     @property
 *     def exclude(self): return self.ptr.exclude
 */
  __pyx_v_self->ptr->geom2 = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2343
 *     @property
 *     def geom2(self): return self.ptr.geom2
 *     @geom2.setter             # <<<<<<<<<<<<<<
 *     def geom2(self, int x): self.ptr.geom2 = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2345
 *     @geom2.setter
 *     def geom2(self, int x): self.ptr.geom2 = x
 *     @property             # <<<<<<<<<<<<<<
 *     def exclude(self): return self.ptr.exclude
 *     @exclude.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_7exclude_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_7exclude_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_7exclude___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_7exclude___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2346
 *     def geom2(self, int x): self.ptr.geom2 = x
 *     @property
 *     def exclude(self): return self.ptr.exclude             # <<<<<<<<<<<<<<
 *     @exclude.setter
 *     def exclude(self, int x): self.ptr.exclude = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->exclude); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2345
 *     @geom2.setter
 *     def geom2(self, int x): self.ptr.geom2 = x
 *     @property             # <<<<<<<<<<<<<<
 *     def exclude(self): return self.ptr.exclude
 *     @exclude.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.exclude.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2347
 *     @property
 *     def exclude(self): return self.ptr.exclude
 *     @exclude.setter             # <<<<<<<<<<<<<<
 *     def exclude(self, int x): self.ptr.exclude = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_7exclude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_7exclude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2348, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.exclude.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_7exclude_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_7exclude_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2348
 *     def exclude(self): return self.ptr.exclude
 *     @exclude.setter
 *     def exclude(self, int x): self.ptr.exclude = x             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_address(self): return self.ptr.efc_address
 */
  __pyx_v_self->ptr->exclude = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2347
 *     @property
 *     def exclude(self): return self.ptr.exclude
 *     @exclude.setter             # <<<<<<<<<<<<<<
 *     def exclude(self, int x): self.ptr.exclude = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2349
 *     @exclude.setter
 *     def exclude(self, int x): self.ptr.exclude = x
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_address(self): return self.ptr.efc_address
 *     @efc_address.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_11efc_address_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_11efc_address_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_11efc_address___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_11efc_address___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2350
 *     def exclude(self, int x): self.ptr.exclude = x
 *     @property
 *     def efc_address(self): return self.ptr.efc_address             # <<<<<<<<<<<<<<
 *     @efc_address.setter
 *     def efc_address(self, int x): self.ptr.efc_address = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->efc_address); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2349
 *     @exclude.setter
 *     def exclude(self, int x): self.ptr.exclude = x
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_address(self): return self.ptr.efc_address
 *     @efc_address.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.efc_address.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2351
 *     @property
 *     def efc_address(self): return self.ptr.efc_address
 *     @efc_address.setter             # <<<<<<<<<<<<<<
 *     def efc_address(self, int x): self.ptr.efc_address = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_11efc_address_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjContact_11efc_address_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2352, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.efc_address.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_11efc_address_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjContact_11efc_address_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2352
 *     def efc_address(self): return self.ptr.efc_address
 *     @efc_address.setter
 *     def efc_address(self, int x): self.ptr.efc_address = x             # <<<<<<<<<<<<<<
 *     @property
 *     def pos(self): return self._pos
 */
  __pyx_v_self->ptr->efc_address = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2351
 *     @property
 *     def efc_address(self): return self.ptr.efc_address
 *     @efc_address.setter             # <<<<<<<<<<<<<<
 *     def efc_address(self, int x): self.ptr.efc_address = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2353
 *     @efc_address.setter
 *     def efc_address(self, int x): self.ptr.efc_address = x
 *     @property             # <<<<<<<<<<<<<<
 *     def pos(self): return self._pos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_3pos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_3pos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_3pos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_3pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2354
 *     def efc_address(self, int x): self.ptr.efc_address = x
 *     @property
 *     def pos(self): return self._pos             # <<<<<<<<<<<<<<
 *     @property
 *     def frame(self): return self._frame
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_pos);
  __pyx_r = ((PyObject *)__pyx_v_self->_pos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2353
 *     @efc_address.setter
 *     def efc_address(self, int x): self.ptr.efc_address = x
 *     @property             # <<<<<<<<<<<<<<
 *     def pos(self): return self._pos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2355
 *     @property
 *     def pos(self): return self._pos
 *     @property             # <<<<<<<<<<<<<<
 *     def frame(self): return self._frame
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_5frame_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_5frame_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_5frame___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_5frame___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2356
 *     def pos(self): return self._pos
 *     @property
 *     def frame(self): return self._frame             # <<<<<<<<<<<<<<
 *     @property
 *     def friction(self): return self._friction
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_frame);
  __pyx_r = ((PyObject *)__pyx_v_self->_frame);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2355
 *     @property
 *     def pos(self): return self._pos
 *     @property             # <<<<<<<<<<<<<<
 *     def frame(self): return self._frame
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2357
 *     @property
 *     def frame(self): return self._frame
 *     @property             # <<<<<<<<<<<<<<
 *     def friction(self): return self._friction
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_8friction_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_8friction_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_8friction___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_8friction___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2358
 *     def frame(self): return self._frame
 *     @property
 *     def friction(self): return self._friction             # <<<<<<<<<<<<<<
 *     @property
 *     def solref(self): return self._solref
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_friction);
  __pyx_r = ((PyObject *)__pyx_v_self->_friction);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2357
 *     @property
 *     def frame(self): return self._frame
 *     @property             # <<<<<<<<<<<<<<
 *     def friction(self): return self._friction
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2359
 *     @property
 *     def friction(self): return self._friction
 *     @property             # <<<<<<<<<<<<<<
 *     def solref(self): return self._solref
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_6solref_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_6solref_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_6solref___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_6solref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2360
 *     def friction(self): return self._friction
 *     @property
 *     def solref(self): return self._solref             # <<<<<<<<<<<<<<
 *     @property
 *     def solimp(self): return self._solimp
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_solref);
  __pyx_r = ((PyObject *)__pyx_v_self->_solref);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2359
 *     @property
 *     def friction(self): return self._friction
 *     @property             # <<<<<<<<<<<<<<
 *     def solref(self): return self._solref
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2361
 *     @property
 *     def solref(self): return self._solref
 *     @property             # <<<<<<<<<<<<<<
 *     def solimp(self): return self._solimp
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_6solimp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_6solimp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_6solimp___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_6solimp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2362
 *     def solref(self): return self._solref
 *     @property
 *     def solimp(self): return self._solimp             # <<<<<<<<<<<<<<
 *     @property
 *     def H(self): return self._H
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_solimp);
  __pyx_r = ((PyObject *)__pyx_v_self->_solimp);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2361
 *     @property
 *     def solref(self): return self._solref
 *     @property             # <<<<<<<<<<<<<<
 *     def solimp(self): return self._solimp
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2363
 *     @property
 *     def solimp(self): return self._solimp
 *     @property             # <<<<<<<<<<<<<<
 *     def H(self): return self._H
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_1H_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_1H_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_1H___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_1H___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2364
 *     def solimp(self): return self._solimp
 *     @property
 *     def H(self): return self._H             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjContact WrapMjContact(mjContact* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_H);
  __pyx_r = ((PyObject *)__pyx_v_self->_H);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2363
 *     @property
 *     def solimp(self): return self._solimp
 *     @property             # <<<<<<<<<<<<<<
 *     def H(self): return self._H
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11PyMjContact_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjContact_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11PyMjContact_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjContact_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjContact_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjContact_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjContact_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjContact.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2366
 *     def H(self): return self._H
 * 
 * cdef PyMjContact WrapMjContact(mjContact* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjContact o = PyMjContact()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_f_9mujoco_py_4cymj_WrapMjContact(mjContact *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjContact", 1);

  /* "mujoco_py/generated/wrappers.pxi":2367
 * 
 * cdef PyMjContact WrapMjContact(mjContact* p):
 *     cdef PyMjContact o = PyMjContact()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjContact)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2368
 * cdef PyMjContact WrapMjContact(mjContact* p):
 *     cdef PyMjContact o = PyMjContact()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjContact *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":2369
 *     cdef PyMjContact o = PyMjContact()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjWarningStat(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2366
 *     def H(self): return self._H
 * 
 * cdef PyMjContact WrapMjContact(mjContact* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjContact o = PyMjContact()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjContact", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2376
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2377
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":2376
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2380
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2381
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjWarningStat* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2380
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjWarningStat.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2383
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjWarningStat* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_15PyMjWarningStat__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self, mjWarningStat *__pyx_v_p) {

  /* "mujoco_py/generated/wrappers.pxi":2385
 *     cdef void _set(self, mjWarningStat* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":2383
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjWarningStat* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
}

/* "mujoco_py/generated/wrappers.pxi":2389
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def lastinfo(self): return self.ptr.lastinfo
 *     @lastinfo.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_8lastinfo_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_8lastinfo_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_8lastinfo___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_8lastinfo___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2390
 * 
 *     @property
 *     def lastinfo(self): return self.ptr.lastinfo             # <<<<<<<<<<<<<<
 *     @lastinfo.setter
 *     def lastinfo(self, int x): self.ptr.lastinfo = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->lastinfo); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2389
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def lastinfo(self): return self.ptr.lastinfo
 *     @lastinfo.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjWarningStat.lastinfo.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2391
 *     @property
 *     def lastinfo(self): return self.ptr.lastinfo
 *     @lastinfo.setter             # <<<<<<<<<<<<<<
 *     def lastinfo(self, int x): self.ptr.lastinfo = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_8lastinfo_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_8lastinfo_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2392, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjWarningStat.lastinfo.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_8lastinfo_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_8lastinfo_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2392
 *     def lastinfo(self): return self.ptr.lastinfo
 *     @lastinfo.setter
 *     def lastinfo(self, int x): self.ptr.lastinfo = x             # <<<<<<<<<<<<<<
 *     @property
 *     def number(self): return self.ptr.number
 */
  __pyx_v_self->ptr->lastinfo = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2391
 *     @property
 *     def lastinfo(self): return self.ptr.lastinfo
 *     @lastinfo.setter             # <<<<<<<<<<<<<<
 *     def lastinfo(self, int x): self.ptr.lastinfo = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2393
 *     @lastinfo.setter
 *     def lastinfo(self, int x): self.ptr.lastinfo = x
 *     @property             # <<<<<<<<<<<<<<
 *     def number(self): return self.ptr.number
 *     @number.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_6number_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_6number_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_6number___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_6number___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2394
 *     def lastinfo(self, int x): self.ptr.lastinfo = x
 *     @property
 *     def number(self): return self.ptr.number             # <<<<<<<<<<<<<<
 *     @number.setter
 *     def number(self, int x): self.ptr.number = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->number); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2393
 *     @lastinfo.setter
 *     def lastinfo(self, int x): self.ptr.lastinfo = x
 *     @property             # <<<<<<<<<<<<<<
 *     def number(self): return self.ptr.number
 *     @number.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjWarningStat.number.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2395
 *     @property
 *     def number(self): return self.ptr.number
 *     @number.setter             # <<<<<<<<<<<<<<
 *     def number(self, int x): self.ptr.number = x
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_6number_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_6number_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2396, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjWarningStat.number.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_6number_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_6number_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2396
 *     def number(self): return self.ptr.number
 *     @number.setter
 *     def number(self, int x): self.ptr.number = x             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjWarningStat WrapMjWarningStat(mjWarningStat* p):
 */
  __pyx_v_self->ptr->number = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2395
 *     @property
 *     def number(self): return self.ptr.number
 *     @number.setter             # <<<<<<<<<<<<<<
 *     def number(self, int x): self.ptr.number = x
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15PyMjWarningStat_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjWarningStat.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15PyMjWarningStat_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjWarningStat.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15PyMjWarningStat_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjWarningStat.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2398
 *     def number(self, int x): self.ptr.number = x
 * 
 * cdef PyMjWarningStat WrapMjWarningStat(mjWarningStat* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjWarningStat o = PyMjWarningStat()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_f_9mujoco_py_4cymj_WrapMjWarningStat(mjWarningStat *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjWarningStat", 1);

  /* "mujoco_py/generated/wrappers.pxi":2399
 * 
 * cdef PyMjWarningStat WrapMjWarningStat(mjWarningStat* p):
 *     cdef PyMjWarningStat o = PyMjWarningStat()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2400
 * cdef PyMjWarningStat WrapMjWarningStat(mjWarningStat* p):
 *     cdef PyMjWarningStat o = PyMjWarningStat()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjWarningStat *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":2401
 *     cdef PyMjWarningStat o = PyMjWarningStat()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjTimerStat(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2398
 *     def number(self, int x): self.ptr.number = x
 * 
 * cdef PyMjWarningStat WrapMjWarningStat(mjWarningStat* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjWarningStat o = PyMjWarningStat()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjWarningStat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2408
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2409
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":2408
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2412
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2413
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjTimerStat* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2412
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjTimerStat.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2415
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjTimerStat* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_13PyMjTimerStat__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self, mjTimerStat *__pyx_v_p) {

  /* "mujoco_py/generated/wrappers.pxi":2417
 *     cdef void _set(self, mjTimerStat* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":2415
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjTimerStat* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
}

/* "mujoco_py/generated/wrappers.pxi":2421
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def duration(self): return self.ptr.duration
 *     @duration.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_8duration_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_8duration_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_8duration___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_8duration___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2422
 * 
 *     @property
 *     def duration(self): return self.ptr.duration             # <<<<<<<<<<<<<<
 *     @duration.setter
 *     def duration(self, mjtNum x): self.ptr.duration = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->duration); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2421
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def duration(self): return self.ptr.duration
 *     @duration.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjTimerStat.duration.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2423
 *     @property
 *     def duration(self): return self.ptr.duration
 *     @duration.setter             # <<<<<<<<<<<<<<
 *     def duration(self, mjtNum x): self.ptr.duration = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_8duration_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_8duration_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 2424, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjTimerStat.duration.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_8duration_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_8duration_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2424
 *     def duration(self): return self.ptr.duration
 *     @duration.setter
 *     def duration(self, mjtNum x): self.ptr.duration = x             # <<<<<<<<<<<<<<
 *     @property
 *     def number(self): return self.ptr.number
 */
  __pyx_v_self->ptr->duration = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2423
 *     @property
 *     def duration(self): return self.ptr.duration
 *     @duration.setter             # <<<<<<<<<<<<<<
 *     def duration(self, mjtNum x): self.ptr.duration = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2425
 *     @duration.setter
 *     def duration(self, mjtNum x): self.ptr.duration = x
 *     @property             # <<<<<<<<<<<<<<
 *     def number(self): return self.ptr.number
 *     @number.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_6number_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_6number_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_6number___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_6number___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2426
 *     def duration(self, mjtNum x): self.ptr.duration = x
 *     @property
 *     def number(self): return self.ptr.number             # <<<<<<<<<<<<<<
 *     @number.setter
 *     def number(self, int x): self.ptr.number = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->number); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2425
 *     @duration.setter
 *     def duration(self, mjtNum x): self.ptr.duration = x
 *     @property             # <<<<<<<<<<<<<<
 *     def number(self): return self.ptr.number
 *     @number.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjTimerStat.number.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2427
 *     @property
 *     def number(self): return self.ptr.number
 *     @number.setter             # <<<<<<<<<<<<<<
 *     def number(self, int x): self.ptr.number = x
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_6number_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_6number_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2428, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjTimerStat.number.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_6number_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_6number_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2428
 *     def number(self): return self.ptr.number
 *     @number.setter
 *     def number(self, int x): self.ptr.number = x             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjTimerStat WrapMjTimerStat(mjTimerStat* p):
 */
  __pyx_v_self->ptr->number = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2427
 *     @property
 *     def number(self): return self.ptr.number
 *     @number.setter             # <<<<<<<<<<<<<<
 *     def number(self, int x): self.ptr.number = x
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_13PyMjTimerStat_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjTimerStat.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_13PyMjTimerStat_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjTimerStat.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjTimerStat_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjTimerStat.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2430
 *     def number(self, int x): self.ptr.number = x
 * 
 * cdef PyMjTimerStat WrapMjTimerStat(mjTimerStat* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjTimerStat o = PyMjTimerStat()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_f_9mujoco_py_4cymj_WrapMjTimerStat(mjTimerStat *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjTimerStat", 1);

  /* "mujoco_py/generated/wrappers.pxi":2431
 * 
 * cdef PyMjTimerStat WrapMjTimerStat(mjTimerStat* p):
 *     cdef PyMjTimerStat o = PyMjTimerStat()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2432
 * cdef PyMjTimerStat WrapMjTimerStat(mjTimerStat* p):
 *     cdef PyMjTimerStat o = PyMjTimerStat()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjTimerStat *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":2433
 *     cdef PyMjTimerStat o = PyMjTimerStat()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjSolverStat(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2430
 *     def number(self, int x): self.ptr.number = x
 * 
 * cdef PyMjTimerStat WrapMjTimerStat(mjTimerStat* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjTimerStat o = PyMjTimerStat()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjTimerStat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2440
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2441
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":2440
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2444
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2445
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjSolverStat* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2445, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2444
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2447
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjSolverStat* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_14PyMjSolverStat__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, mjSolverStat *__pyx_v_p) {

  /* "mujoco_py/generated/wrappers.pxi":2449
 *     cdef void _set(self, mjSolverStat* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":2447
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjSolverStat* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
}

/* "mujoco_py/generated/wrappers.pxi":2453
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def improvement(self): return self.ptr.improvement
 *     @improvement.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_11improvement_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_11improvement_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_11improvement___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_11improvement___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2454
 * 
 *     @property
 *     def improvement(self): return self.ptr.improvement             # <<<<<<<<<<<<<<
 *     @improvement.setter
 *     def improvement(self, mjtNum x): self.ptr.improvement = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->improvement); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2453
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def improvement(self): return self.ptr.improvement
 *     @improvement.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.improvement.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2455
 *     @property
 *     def improvement(self): return self.ptr.improvement
 *     @improvement.setter             # <<<<<<<<<<<<<<
 *     def improvement(self, mjtNum x): self.ptr.improvement = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_11improvement_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_11improvement_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 2456, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.improvement.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_11improvement_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_11improvement_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2456
 *     def improvement(self): return self.ptr.improvement
 *     @improvement.setter
 *     def improvement(self, mjtNum x): self.ptr.improvement = x             # <<<<<<<<<<<<<<
 *     @property
 *     def gradient(self): return self.ptr.gradient
 */
  __pyx_v_self->ptr->improvement = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2455
 *     @property
 *     def improvement(self): return self.ptr.improvement
 *     @improvement.setter             # <<<<<<<<<<<<<<
 *     def improvement(self, mjtNum x): self.ptr.improvement = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2457
 *     @improvement.setter
 *     def improvement(self, mjtNum x): self.ptr.improvement = x
 *     @property             # <<<<<<<<<<<<<<
 *     def gradient(self): return self.ptr.gradient
 *     @gradient.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_8gradient_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_8gradient_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_8gradient___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_8gradient___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2458
 *     def improvement(self, mjtNum x): self.ptr.improvement = x
 *     @property
 *     def gradient(self): return self.ptr.gradient             # <<<<<<<<<<<<<<
 *     @gradient.setter
 *     def gradient(self, mjtNum x): self.ptr.gradient = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->gradient); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2457
 *     @improvement.setter
 *     def improvement(self, mjtNum x): self.ptr.improvement = x
 *     @property             # <<<<<<<<<<<<<<
 *     def gradient(self): return self.ptr.gradient
 *     @gradient.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.gradient.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2459
 *     @property
 *     def gradient(self): return self.ptr.gradient
 *     @gradient.setter             # <<<<<<<<<<<<<<
 *     def gradient(self, mjtNum x): self.ptr.gradient = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_8gradient_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_8gradient_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 2460, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.gradient.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_8gradient_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_8gradient_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2460
 *     def gradient(self): return self.ptr.gradient
 *     @gradient.setter
 *     def gradient(self, mjtNum x): self.ptr.gradient = x             # <<<<<<<<<<<<<<
 *     @property
 *     def lineslope(self): return self.ptr.lineslope
 */
  __pyx_v_self->ptr->gradient = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2459
 *     @property
 *     def gradient(self): return self.ptr.gradient
 *     @gradient.setter             # <<<<<<<<<<<<<<
 *     def gradient(self, mjtNum x): self.ptr.gradient = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2461
 *     @gradient.setter
 *     def gradient(self, mjtNum x): self.ptr.gradient = x
 *     @property             # <<<<<<<<<<<<<<
 *     def lineslope(self): return self.ptr.lineslope
 *     @lineslope.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_9lineslope_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_9lineslope_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_9lineslope___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_9lineslope___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2462
 *     def gradient(self, mjtNum x): self.ptr.gradient = x
 *     @property
 *     def lineslope(self): return self.ptr.lineslope             # <<<<<<<<<<<<<<
 *     @lineslope.setter
 *     def lineslope(self, mjtNum x): self.ptr.lineslope = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->lineslope); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2462, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2461
 *     @gradient.setter
 *     def gradient(self, mjtNum x): self.ptr.gradient = x
 *     @property             # <<<<<<<<<<<<<<
 *     def lineslope(self): return self.ptr.lineslope
 *     @lineslope.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.lineslope.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2463
 *     @property
 *     def lineslope(self): return self.ptr.lineslope
 *     @lineslope.setter             # <<<<<<<<<<<<<<
 *     def lineslope(self, mjtNum x): self.ptr.lineslope = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_9lineslope_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_9lineslope_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 2464, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.lineslope.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_9lineslope_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_9lineslope_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2464
 *     def lineslope(self): return self.ptr.lineslope
 *     @lineslope.setter
 *     def lineslope(self, mjtNum x): self.ptr.lineslope = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nactive(self): return self.ptr.nactive
 */
  __pyx_v_self->ptr->lineslope = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2463
 *     @property
 *     def lineslope(self): return self.ptr.lineslope
 *     @lineslope.setter             # <<<<<<<<<<<<<<
 *     def lineslope(self, mjtNum x): self.ptr.lineslope = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2465
 *     @lineslope.setter
 *     def lineslope(self, mjtNum x): self.ptr.lineslope = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nactive(self): return self.ptr.nactive
 *     @nactive.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nactive_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nactive_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nactive___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nactive___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2466
 *     def lineslope(self, mjtNum x): self.ptr.lineslope = x
 *     @property
 *     def nactive(self): return self.ptr.nactive             # <<<<<<<<<<<<<<
 *     @nactive.setter
 *     def nactive(self, int x): self.ptr.nactive = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nactive); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2465
 *     @lineslope.setter
 *     def lineslope(self, mjtNum x): self.ptr.lineslope = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nactive(self): return self.ptr.nactive
 *     @nactive.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.nactive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2467
 *     @property
 *     def nactive(self): return self.ptr.nactive
 *     @nactive.setter             # <<<<<<<<<<<<<<
 *     def nactive(self, int x): self.ptr.nactive = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nactive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nactive_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2468, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.nactive.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nactive_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nactive_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2468
 *     def nactive(self): return self.ptr.nactive
 *     @nactive.setter
 *     def nactive(self, int x): self.ptr.nactive = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nchange(self): return self.ptr.nchange
 */
  __pyx_v_self->ptr->nactive = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2467
 *     @property
 *     def nactive(self): return self.ptr.nactive
 *     @nactive.setter             # <<<<<<<<<<<<<<
 *     def nactive(self, int x): self.ptr.nactive = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2469
 *     @nactive.setter
 *     def nactive(self, int x): self.ptr.nactive = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nchange(self): return self.ptr.nchange
 *     @nchange.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nchange_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nchange_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nchange___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nchange___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2470
 *     def nactive(self, int x): self.ptr.nactive = x
 *     @property
 *     def nchange(self): return self.ptr.nchange             # <<<<<<<<<<<<<<
 *     @nchange.setter
 *     def nchange(self, int x): self.ptr.nchange = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nchange); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2469
 *     @nactive.setter
 *     def nactive(self, int x): self.ptr.nactive = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nchange(self): return self.ptr.nchange
 *     @nchange.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.nchange.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2471
 *     @property
 *     def nchange(self): return self.ptr.nchange
 *     @nchange.setter             # <<<<<<<<<<<<<<
 *     def nchange(self, int x): self.ptr.nchange = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nchange_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nchange_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2472, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.nchange.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nchange_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nchange_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2472
 *     def nchange(self): return self.ptr.nchange
 *     @nchange.setter
 *     def nchange(self, int x): self.ptr.nchange = x             # <<<<<<<<<<<<<<
 *     @property
 *     def neval(self): return self.ptr.neval
 */
  __pyx_v_self->ptr->nchange = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2471
 *     @property
 *     def nchange(self): return self.ptr.nchange
 *     @nchange.setter             # <<<<<<<<<<<<<<
 *     def nchange(self, int x): self.ptr.nchange = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2473
 *     @nchange.setter
 *     def nchange(self, int x): self.ptr.nchange = x
 *     @property             # <<<<<<<<<<<<<<
 *     def neval(self): return self.ptr.neval
 *     @neval.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_5neval_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_5neval_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_5neval___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_5neval___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2474
 *     def nchange(self, int x): self.ptr.nchange = x
 *     @property
 *     def neval(self): return self.ptr.neval             # <<<<<<<<<<<<<<
 *     @neval.setter
 *     def neval(self, int x): self.ptr.neval = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->neval); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2473
 *     @nchange.setter
 *     def nchange(self, int x): self.ptr.nchange = x
 *     @property             # <<<<<<<<<<<<<<
 *     def neval(self): return self.ptr.neval
 *     @neval.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.neval.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2475
 *     @property
 *     def neval(self): return self.ptr.neval
 *     @neval.setter             # <<<<<<<<<<<<<<
 *     def neval(self, int x): self.ptr.neval = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_5neval_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_5neval_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2476, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.neval.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_5neval_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_5neval_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2476
 *     def neval(self): return self.ptr.neval
 *     @neval.setter
 *     def neval(self, int x): self.ptr.neval = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nupdate(self): return self.ptr.nupdate
 */
  __pyx_v_self->ptr->neval = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2475
 *     @property
 *     def neval(self): return self.ptr.neval
 *     @neval.setter             # <<<<<<<<<<<<<<
 *     def neval(self, int x): self.ptr.neval = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2477
 *     @neval.setter
 *     def neval(self, int x): self.ptr.neval = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nupdate(self): return self.ptr.nupdate
 *     @nupdate.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nupdate_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nupdate_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nupdate___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nupdate___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2478
 *     def neval(self, int x): self.ptr.neval = x
 *     @property
 *     def nupdate(self): return self.ptr.nupdate             # <<<<<<<<<<<<<<
 *     @nupdate.setter
 *     def nupdate(self, int x): self.ptr.nupdate = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nupdate); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2477
 *     @neval.setter
 *     def neval(self, int x): self.ptr.neval = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nupdate(self): return self.ptr.nupdate
 *     @nupdate.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.nupdate.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2479
 *     @property
 *     def nupdate(self): return self.ptr.nupdate
 *     @nupdate.setter             # <<<<<<<<<<<<<<
 *     def nupdate(self, int x): self.ptr.nupdate = x
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nupdate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nupdate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2480, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.nupdate.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nupdate_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_7nupdate_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2480
 *     def nupdate(self): return self.ptr.nupdate
 *     @nupdate.setter
 *     def nupdate(self, int x): self.ptr.nupdate = x             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjSolverStat WrapMjSolverStat(mjSolverStat* p):
 */
  __pyx_v_self->ptr->nupdate = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2479
 *     @property
 *     def nupdate(self): return self.ptr.nupdate
 *     @nupdate.setter             # <<<<<<<<<<<<<<
 *     def nupdate(self, int x): self.ptr.nupdate = x
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_14PyMjSolverStat_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_14PyMjSolverStat_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14PyMjSolverStat_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjSolverStat.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2482
 *     def nupdate(self, int x): self.ptr.nupdate = x
 * 
 * cdef PyMjSolverStat WrapMjSolverStat(mjSolverStat* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjSolverStat o = PyMjSolverStat()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_f_9mujoco_py_4cymj_WrapMjSolverStat(mjSolverStat *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjSolverStat", 1);

  /* "mujoco_py/generated/wrappers.pxi":2483
 * 
 * cdef PyMjSolverStat WrapMjSolverStat(mjSolverStat* p):
 *     cdef PyMjSolverStat o = PyMjSolverStat()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2484
 * cdef PyMjSolverStat WrapMjSolverStat(mjSolverStat* p):
 *     cdef PyMjSolverStat o = PyMjSolverStat()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjSolverStat *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":2485
 *     cdef PyMjSolverStat o = PyMjSolverStat()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjData(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2482
 *     def nupdate(self, int x): self.ptr.nupdate = x
 * 
 * cdef PyMjSolverStat WrapMjSolverStat(mjSolverStat* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjSolverStat o = PyMjSolverStat()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjSolverStat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2591
 *     cdef np.ndarray _energy
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def body_xpos(self):
 *         return self._xpos
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9body_xpos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9body_xpos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9body_xpos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9body_xpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2593
 *     @property
 *     def body_xpos(self):
 *         return self._xpos             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_xpos);
  __pyx_r = ((PyObject *)__pyx_v_self->_xpos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2591
 *     cdef np.ndarray _energy
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def body_xpos(self):
 *         return self._xpos
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2595
 *         return self._xpos
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def body_xquat(self):
 *         return self._xquat
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10body_xquat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10body_xquat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10body_xquat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10body_xquat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2597
 *     @property
 *     def body_xquat(self):
 *         return self._xquat             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_xquat);
  __pyx_r = ((PyObject *)__pyx_v_self->_xquat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2595
 *         return self._xpos
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def body_xquat(self):
 *         return self._xquat
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2599
 *         return self._xquat
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def body_xmat(self):
 *         return self._xmat
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9body_xmat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9body_xmat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9body_xmat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9body_xmat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2601
 *     @property
 *     def body_xmat(self):
 *         return self._xmat             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_xmat);
  __pyx_r = ((PyObject *)__pyx_v_self->_xmat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2599
 *         return self._xquat
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def body_xmat(self):
 *         return self._xmat
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2603
 *         return self._xmat
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def active_contacts_efc_pos(self):
 *         return self._efc_pos[self.ne:self.nefc]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_23active_contacts_efc_pos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_23active_contacts_efc_pos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_23active_contacts_efc_pos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_23active_contacts_efc_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2605
 *     @property
 *     def active_contacts_efc_pos(self):
 *         return self._efc_pos[self.ne:self.nefc]             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ne); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_nefc); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetSlice(((PyObject *)__pyx_v_self->_efc_pos), 0, 0, &__pyx_t_1, &__pyx_t_2, NULL, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2603
 *         return self._xmat
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def active_contacts_efc_pos(self):
 *         return self._efc_pos[self.ne:self.nefc]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.active_contacts_efc_pos.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2607
 *         return self._efc_pos[self.ne:self.nefc]
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         mj_deleteData(self.ptr)
 * 
 */

/* Python wrapper */
static void __pyx_pw_9mujoco_py_4cymj_8PyMjData_1__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_9mujoco_py_4cymj_8PyMjData_1__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_9mujoco_py_4cymj_8PyMjData___dealloc__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_9mujoco_py_4cymj_8PyMjData___dealloc__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {

  /* "mujoco_py/generated/wrappers.pxi":2608
 * 
 *     def __dealloc__(self):
 *         mj_deleteData(self.ptr)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  mj_deleteData(__pyx_v_self->ptr);

  /* "mujoco_py/generated/wrappers.pxi":2607
 *         return self._efc_pos[self.ne:self.nefc]
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         mj_deleteData(self.ptr)
 * 
 */

  /* function exit code */
}

/* "mujoco_py/generated/wrappers.pxi":2611
 * 
 * 
 *     def get_body_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xpos[id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_3get_body_xpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_3get_body_xpos = {"get_body_xpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_3get_body_xpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_3get_body_xpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_body_xpos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2611, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_body_xpos") < 0)) __PYX_ERR(4, 2611, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_body_xpos", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2611, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_xpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_2get_body_xpos(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_2get_body_xpos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_body_xpos", 1);

  /* "mujoco_py/generated/wrappers.pxi":2612
 * 
 *     def get_body_xpos(self, name):
 *         id = self._model.body_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._xpos[id]
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2612, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2613
 *     def get_body_xpos(self, name):
 *         id = self._model.body_name2id(name)
 *         return self._xpos[id]             # <<<<<<<<<<<<<<
 * 
 *     def get_xpos(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_xpos), __pyx_v_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2613, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2611
 * 
 * 
 *     def get_body_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xpos[id]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_xpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2615
 *         return self._xpos[id]
 * 
 *     def get_xpos(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xpos should be used instead of get_xpos")
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5get_xpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_5get_xpos = {"get_xpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_5get_xpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5get_xpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_xpos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2615, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_xpos") < 0)) __PYX_ERR(4, 2615, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_xpos", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2615, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_xpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4get_xpos(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4get_xpos(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_xpos", 1);

  /* "mujoco_py/generated/wrappers.pxi":2616
 * 
 *     def get_xpos(self, name):
 *         raise RuntimeError("get_body_xpos should be used instead of get_xpos")             # <<<<<<<<<<<<<<
 * 
 *     def get_body_xquat(self, name):
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2616, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(4, 2616, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2615
 *         return self._xpos[id]
 * 
 *     def get_xpos(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xpos should be used instead of get_xpos")
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_xpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2618
 *         raise RuntimeError("get_body_xpos should be used instead of get_xpos")
 * 
 *     def get_body_xquat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xquat[id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7get_body_xquat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_7get_body_xquat = {"get_body_xquat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_7get_body_xquat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7get_body_xquat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_body_xquat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2618, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_body_xquat") < 0)) __PYX_ERR(4, 2618, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_body_xquat", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2618, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_xquat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_6get_body_xquat(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6get_body_xquat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_body_xquat", 1);

  /* "mujoco_py/generated/wrappers.pxi":2619
 * 
 *     def get_body_xquat(self, name):
 *         id = self._model.body_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._xquat[id]
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2619, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2620
 *     def get_body_xquat(self, name):
 *         id = self._model.body_name2id(name)
 *         return self._xquat[id]             # <<<<<<<<<<<<<<
 * 
 *     def get_xquat(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_xquat), __pyx_v_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2618
 *         raise RuntimeError("get_body_xpos should be used instead of get_xpos")
 * 
 *     def get_body_xquat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xquat[id]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_xquat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2622
 *         return self._xquat[id]
 * 
 *     def get_xquat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xquat should be used instead of get_xquat")
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9get_xquat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_9get_xquat = {"get_xquat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_9get_xquat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9get_xquat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_xquat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2622, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_xquat") < 0)) __PYX_ERR(4, 2622, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_xquat", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2622, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_xquat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_8get_xquat(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8get_xquat(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_xquat", 1);

  /* "mujoco_py/generated/wrappers.pxi":2623
 * 
 *     def get_xquat(self, name):
 *         raise RuntimeError("get_body_xquat should be used instead of get_xquat")             # <<<<<<<<<<<<<<
 * 
 *     def get_body_xmat(self, name):
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(4, 2623, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2622
 *         return self._xquat[id]
 * 
 *     def get_xquat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xquat should be used instead of get_xquat")
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_xquat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2625
 *         raise RuntimeError("get_body_xquat should be used instead of get_xquat")
 * 
 *     def get_body_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xmat[id].reshape((3, 3))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_11get_body_xmat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_11get_body_xmat = {"get_body_xmat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_11get_body_xmat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_11get_body_xmat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_body_xmat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2625, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_body_xmat") < 0)) __PYX_ERR(4, 2625, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_body_xmat", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2625, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_xmat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10get_body_xmat(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10get_body_xmat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_body_xmat", 1);

  /* "mujoco_py/generated/wrappers.pxi":2626
 * 
 *     def get_body_xmat(self, name):
 *         id = self._model.body_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._xmat[id].reshape((3, 3))
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2626, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2627
 *     def get_body_xmat(self, name):
 *         id = self._model.body_name2id(name)
 *         return self._xmat[id].reshape((3, 3))             # <<<<<<<<<<<<<<
 * 
 *     def get_xmat(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_xmat), __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_tuple__20};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2625
 *         raise RuntimeError("get_body_xquat should be used instead of get_xquat")
 * 
 *     def get_body_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xmat[id].reshape((3, 3))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_xmat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2629
 *         return self._xmat[id].reshape((3, 3))
 * 
 *     def get_xmat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xmat should be used instead of get_xmat")
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13get_xmat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_13get_xmat = {"get_xmat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_13get_xmat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13get_xmat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_xmat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2629, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_xmat") < 0)) __PYX_ERR(4, 2629, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_xmat", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2629, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_xmat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_12get_xmat(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12get_xmat(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_xmat", 1);

  /* "mujoco_py/generated/wrappers.pxi":2630
 * 
 *     def get_xmat(self, name):
 *         raise RuntimeError("get_body_xmat should be used instead of get_xmat")             # <<<<<<<<<<<<<<
 * 
 *     def get_body_xipos(self, name):
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(4, 2630, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2629
 *         return self._xmat[id].reshape((3, 3))
 * 
 *     def get_xmat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xmat should be used instead of get_xmat")
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_xmat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2632
 *         raise RuntimeError("get_body_xmat should be used instead of get_xmat")
 * 
 *     def get_body_xipos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xipos[id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_15get_body_xipos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_15get_body_xipos = {"get_body_xipos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_15get_body_xipos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_15get_body_xipos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_body_xipos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2632, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_body_xipos") < 0)) __PYX_ERR(4, 2632, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_body_xipos", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2632, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_xipos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_14get_body_xipos(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_14get_body_xipos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_body_xipos", 1);

  /* "mujoco_py/generated/wrappers.pxi":2633
 * 
 *     def get_body_xipos(self, name):
 *         id = self._model.body_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._xipos[id]
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2633, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2634
 *     def get_body_xipos(self, name):
 *         id = self._model.body_name2id(name)
 *         return self._xipos[id]             # <<<<<<<<<<<<<<
 * 
 *     def get_xipos(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_xipos), __pyx_v_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2634, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2632
 *         raise RuntimeError("get_body_xmat should be used instead of get_xmat")
 * 
 *     def get_body_xipos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xipos[id]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_xipos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2636
 *         return self._xipos[id]
 * 
 *     def get_xipos(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xipos should be used instead of get_xipos")
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_17get_xipos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_17get_xipos = {"get_xipos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_17get_xipos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_17get_xipos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_xipos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2636, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_xipos") < 0)) __PYX_ERR(4, 2636, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_xipos", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2636, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_xipos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_16get_xipos(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_16get_xipos(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_xipos", 1);

  /* "mujoco_py/generated/wrappers.pxi":2637
 * 
 *     def get_xipos(self, name):
 *         raise RuntimeError("get_body_xipos should be used instead of get_xipos")             # <<<<<<<<<<<<<<
 * 
 *     def get_body_ximat(self, name):
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(4, 2637, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2636
 *         return self._xipos[id]
 * 
 *     def get_xipos(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xipos should be used instead of get_xipos")
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_xipos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2639
 *         raise RuntimeError("get_body_xipos should be used instead of get_xipos")
 * 
 *     def get_body_ximat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._ximat[id].reshape((3, 3))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_19get_body_ximat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_19get_body_ximat = {"get_body_ximat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_19get_body_ximat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_19get_body_ximat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_body_ximat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2639, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_body_ximat") < 0)) __PYX_ERR(4, 2639, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_body_ximat", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2639, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_ximat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_18get_body_ximat(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_18get_body_ximat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_body_ximat", 1);

  /* "mujoco_py/generated/wrappers.pxi":2640
 * 
 *     def get_body_ximat(self, name):
 *         id = self._model.body_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._ximat[id].reshape((3, 3))
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2640, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2641
 *     def get_body_ximat(self, name):
 *         id = self._model.body_name2id(name)
 *         return self._ximat[id].reshape((3, 3))             # <<<<<<<<<<<<<<
 * 
 *     def get_ximat(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_ximat), __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_tuple__20};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2639
 *         raise RuntimeError("get_body_xipos should be used instead of get_xipos")
 * 
 *     def get_body_ximat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._ximat[id].reshape((3, 3))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_ximat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2643
 *         return self._ximat[id].reshape((3, 3))
 * 
 *     def get_ximat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_ximat should be used instead of get_ximat")
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_21get_ximat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_21get_ximat = {"get_ximat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_21get_ximat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_21get_ximat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_ximat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2643, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_ximat") < 0)) __PYX_ERR(4, 2643, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_ximat", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2643, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_ximat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_20get_ximat(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_20get_ximat(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_ximat", 1);

  /* "mujoco_py/generated/wrappers.pxi":2644
 * 
 *     def get_ximat(self, name):
 *         raise RuntimeError("get_body_ximat should be used instead of get_ximat")             # <<<<<<<<<<<<<<
 * 
 *     def get_body_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(4, 2644, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2643
 *         return self._ximat[id].reshape((3, 3))
 * 
 *     def get_ximat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_ximat should be used instead of get_ximat")
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_ximat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2646
 *         raise RuntimeError("get_body_ximat should be used instead of get_ximat")
 * 
 *     def get_body_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         if jacp is None:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_23get_body_jacp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_23get_body_jacp = {"get_body_jacp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_23get_body_jacp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_23get_body_jacp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyArrayObject *__pyx_v_jacp = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_body_jacp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_jacp,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL((PyObject *)((PyArrayObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2646, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacp);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2646, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_body_jacp") < 0)) __PYX_ERR(4, 2646, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_name = values[0];
    __pyx_v_jacp = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_body_jacp", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2646, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_jacp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacp), __pyx_ptype_5numpy_ndarray, 1, "jacp", 0))) __PYX_ERR(4, 2646, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_22get_body_jacp(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name, __pyx_v_jacp);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_22get_body_jacp(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_jacp) {
  PyObject *__pyx_v_id = NULL;
  double *__pyx_v_jacp_view;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacp;
  __Pyx_Buffer __pyx_pybuffer_jacp;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyArrayObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  Py_ssize_t __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_body_jacp", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_jacp);
  __pyx_pybuffer_jacp.pybuffer.buf = NULL;
  __pyx_pybuffer_jacp.refcount = 0;
  __pyx_pybuffernd_jacp.data = NULL;
  __pyx_pybuffernd_jacp.rcbuffer = &__pyx_pybuffer_jacp;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacp, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 2646, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacp.diminfo[0].strides = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacp.diminfo[0].shape = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":2647
 * 
 *     def get_body_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):
 *         id = self._model.body_name2id(name)             # <<<<<<<<<<<<<<
 *         if jacp is None:
 *             jacp = np.zeros(3 * self._model.nv)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2647, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2648
 *     def get_body_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):
 *         id = self._model.body_name2id(name)
 *         if jacp is None:             # <<<<<<<<<<<<<<
 *             jacp = np.zeros(3 * self._model.nv)
 *         cdef double * jacp_view = &jacp[0]
 */
  __pyx_t_5 = (((PyObject *)__pyx_v_jacp) == Py_None);
  if (__pyx_t_5) {

    /* "mujoco_py/generated/wrappers.pxi":2649
 *         id = self._model.body_name2id(name)
 *         if jacp is None:
 *             jacp = np.zeros(3 * self._model.nv)             # <<<<<<<<<<<<<<
 *         cdef double * jacp_view = &jacp[0]
 *         mj_jacBody(self._model.ptr, self.ptr, jacp_view, NULL, id)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2649, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2649, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2649, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyInt_MultiplyCObj(__pyx_int_3, __pyx_t_2, 3, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2649, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2649, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 2649, __pyx_L1_error)
    __pyx_t_7 = ((PyArrayObject *)__pyx_t_1);
    {
      __Pyx_BufFmt_StackElem __pyx_stack[1];
      __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
      __pyx_t_4 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack);
      if (unlikely(__pyx_t_4 < 0)) {
        PyErr_Fetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
        if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacp, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {
          Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10);
          __Pyx_RaiseBufferFallbackError();
        } else {
          PyErr_Restore(__pyx_t_8, __pyx_t_9, __pyx_t_10);
        }
        __pyx_t_8 = __pyx_t_9 = __pyx_t_10 = 0;
      }
      __pyx_pybuffernd_jacp.diminfo[0].strides = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacp.diminfo[0].shape = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.shape[0];
      if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(4, 2649, __pyx_L1_error)
    }
    __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_jacp, ((PyArrayObject *)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "mujoco_py/generated/wrappers.pxi":2648
 *     def get_body_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):
 *         id = self._model.body_name2id(name)
 *         if jacp is None:             # <<<<<<<<<<<<<<
 *             jacp = np.zeros(3 * self._model.nv)
 *         cdef double * jacp_view = &jacp[0]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":2650
 *         if jacp is None:
 *             jacp = np.zeros(3 * self._model.nv)
 *         cdef double * jacp_view = &jacp[0]             # <<<<<<<<<<<<<<
 *         mj_jacBody(self._model.ptr, self.ptr, jacp_view, NULL, id)
 *         return jacp
 */
  __pyx_t_11 = 0;
  __pyx_t_4 = -1;
  if (__pyx_t_11 < 0) {
    __pyx_t_11 += __pyx_pybuffernd_jacp.diminfo[0].shape;
    if (unlikely(__pyx_t_11 < 0)) __pyx_t_4 = 0;
  } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_jacp.diminfo[0].shape)) __pyx_t_4 = 0;
  if (unlikely(__pyx_t_4 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_4);
    __PYX_ERR(4, 2650, __pyx_L1_error)
  }
  __pyx_v_jacp_view = (&(*__Pyx_BufPtrCContig1d(double *, __pyx_pybuffernd_jacp.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_jacp.diminfo[0].strides)));

  /* "mujoco_py/generated/wrappers.pxi":2651
 *             jacp = np.zeros(3 * self._model.nv)
 *         cdef double * jacp_view = &jacp[0]
 *         mj_jacBody(self._model.ptr, self.ptr, jacp_view, NULL, id)             # <<<<<<<<<<<<<<
 *         return jacp
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_id); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2651, __pyx_L1_error)
  mj_jacBody(__pyx_v_self->_model->ptr, __pyx_v_self->ptr, __pyx_v_jacp_view, NULL, __pyx_t_4);

  /* "mujoco_py/generated/wrappers.pxi":2652
 *         cdef double * jacp_view = &jacp[0]
 *         mj_jacBody(self._model.ptr, self.ptr, jacp_view, NULL, id)
 *         return jacp             # <<<<<<<<<<<<<<
 * 
 *     def get_body_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_jacp);
  __pyx_r = ((PyObject *)__pyx_v_jacp);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2646
 *         raise RuntimeError("get_body_ximat should be used instead of get_ximat")
 * 
 *     def get_body_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         if jacp is None:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_jacp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XDECREF((PyObject *)__pyx_v_jacp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2654
 *         return jacp
 * 
 *     def get_body_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         if jacr is None:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_25get_body_jacr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_25get_body_jacr = {"get_body_jacr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_25get_body_jacr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_25get_body_jacr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyArrayObject *__pyx_v_jacr = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_body_jacr (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_jacr,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL((PyObject *)((PyArrayObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2654, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacr);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2654, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_body_jacr") < 0)) __PYX_ERR(4, 2654, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_name = values[0];
    __pyx_v_jacr = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_body_jacr", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2654, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_jacr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacr), __pyx_ptype_5numpy_ndarray, 1, "jacr", 0))) __PYX_ERR(4, 2654, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_24get_body_jacr(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name, __pyx_v_jacr);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_24get_body_jacr(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_jacr) {
  PyObject *__pyx_v_id = NULL;
  double *__pyx_v_jacr_view;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacr;
  __Pyx_Buffer __pyx_pybuffer_jacr;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyArrayObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  Py_ssize_t __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_body_jacr", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_jacr);
  __pyx_pybuffer_jacr.pybuffer.buf = NULL;
  __pyx_pybuffer_jacr.refcount = 0;
  __pyx_pybuffernd_jacr.data = NULL;
  __pyx_pybuffernd_jacr.rcbuffer = &__pyx_pybuffer_jacr;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 2654, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacr.diminfo[0].strides = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacr.diminfo[0].shape = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":2655
 * 
 *     def get_body_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):
 *         id = self._model.body_name2id(name)             # <<<<<<<<<<<<<<
 *         if jacr is None:
 *             jacr = np.zeros(3 * self._model.nv)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2655, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2656
 *     def get_body_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):
 *         id = self._model.body_name2id(name)
 *         if jacr is None:             # <<<<<<<<<<<<<<
 *             jacr = np.zeros(3 * self._model.nv)
 *         cdef double * jacr_view = &jacr[0]
 */
  __pyx_t_5 = (((PyObject *)__pyx_v_jacr) == Py_None);
  if (__pyx_t_5) {

    /* "mujoco_py/generated/wrappers.pxi":2657
 *         id = self._model.body_name2id(name)
 *         if jacr is None:
 *             jacr = np.zeros(3 * self._model.nv)             # <<<<<<<<<<<<<<
 *         cdef double * jacr_view = &jacr[0]
 *         mj_jacBody(self._model.ptr, self.ptr, NULL, jacr_view, id)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2657, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2657, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2657, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyInt_MultiplyCObj(__pyx_int_3, __pyx_t_2, 3, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2657, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2657, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 2657, __pyx_L1_error)
    __pyx_t_7 = ((PyArrayObject *)__pyx_t_1);
    {
      __Pyx_BufFmt_StackElem __pyx_stack[1];
      __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
      __pyx_t_4 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack);
      if (unlikely(__pyx_t_4 < 0)) {
        PyErr_Fetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
        if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {
          Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10);
          __Pyx_RaiseBufferFallbackError();
        } else {
          PyErr_Restore(__pyx_t_8, __pyx_t_9, __pyx_t_10);
        }
        __pyx_t_8 = __pyx_t_9 = __pyx_t_10 = 0;
      }
      __pyx_pybuffernd_jacr.diminfo[0].strides = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacr.diminfo[0].shape = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.shape[0];
      if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(4, 2657, __pyx_L1_error)
    }
    __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_jacr, ((PyArrayObject *)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "mujoco_py/generated/wrappers.pxi":2656
 *     def get_body_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):
 *         id = self._model.body_name2id(name)
 *         if jacr is None:             # <<<<<<<<<<<<<<
 *             jacr = np.zeros(3 * self._model.nv)
 *         cdef double * jacr_view = &jacr[0]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":2658
 *         if jacr is None:
 *             jacr = np.zeros(3 * self._model.nv)
 *         cdef double * jacr_view = &jacr[0]             # <<<<<<<<<<<<<<
 *         mj_jacBody(self._model.ptr, self.ptr, NULL, jacr_view, id)
 *         return jacr
 */
  __pyx_t_11 = 0;
  __pyx_t_4 = -1;
  if (__pyx_t_11 < 0) {
    __pyx_t_11 += __pyx_pybuffernd_jacr.diminfo[0].shape;
    if (unlikely(__pyx_t_11 < 0)) __pyx_t_4 = 0;
  } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_jacr.diminfo[0].shape)) __pyx_t_4 = 0;
  if (unlikely(__pyx_t_4 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_4);
    __PYX_ERR(4, 2658, __pyx_L1_error)
  }
  __pyx_v_jacr_view = (&(*__Pyx_BufPtrCContig1d(double *, __pyx_pybuffernd_jacr.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_jacr.diminfo[0].strides)));

  /* "mujoco_py/generated/wrappers.pxi":2659
 *             jacr = np.zeros(3 * self._model.nv)
 *         cdef double * jacr_view = &jacr[0]
 *         mj_jacBody(self._model.ptr, self.ptr, NULL, jacr_view, id)             # <<<<<<<<<<<<<<
 *         return jacr
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_id); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2659, __pyx_L1_error)
  mj_jacBody(__pyx_v_self->_model->ptr, __pyx_v_self->ptr, NULL, __pyx_v_jacr_view, __pyx_t_4);

  /* "mujoco_py/generated/wrappers.pxi":2660
 *         cdef double * jacr_view = &jacr[0]
 *         mj_jacBody(self._model.ptr, self.ptr, NULL, jacr_view, id)
 *         return jacr             # <<<<<<<<<<<<<<
 * 
 *     def get_body_xvelp(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_jacr);
  __pyx_r = ((PyObject *)__pyx_v_jacr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2654
 *         return jacp
 * 
 *     def get_body_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         if jacr is None:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_jacr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XDECREF((PyObject *)__pyx_v_jacr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2662
 *         return jacr
 * 
 *     def get_body_xvelp(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         jacp = self.get_body_jacp(name).reshape((3, self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_27get_body_xvelp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_27get_body_xvelp = {"get_body_xvelp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_27get_body_xvelp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_27get_body_xvelp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_body_xvelp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2662, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_body_xvelp") < 0)) __PYX_ERR(4, 2662, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_body_xvelp", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2662, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_xvelp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_26get_body_xvelp(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_26get_body_xvelp(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  CYTHON_UNUSED PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_v_jacp = NULL;
  PyObject *__pyx_v_xvelp = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_body_xvelp", 1);

  /* "mujoco_py/generated/wrappers.pxi":2663
 * 
 *     def get_body_xvelp(self, name):
 *         id = self._model.body_name2id(name)             # <<<<<<<<<<<<<<
 *         jacp = self.get_body_jacp(name).reshape((3, self._model.nv))
 *         xvelp = np.dot(jacp, self.qvel)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2664
 *     def get_body_xvelp(self, name):
 *         id = self._model.body_name2id(name)
 *         jacp = self.get_body_jacp(name).reshape((3, self._model.nv))             # <<<<<<<<<<<<<<
 *         xvelp = np.dot(jacp, self.qvel)
 *         return xvelp
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_body_jacp); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_name};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2664, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_3)) __PYX_ERR(4, 2664, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(4, 2664, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2664, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2665
 *         id = self._model.body_name2id(name)
 *         jacp = self.get_body_jacp(name).reshape((3, self._model.nv))
 *         xvelp = np.dot(jacp, self.qvel)             # <<<<<<<<<<<<<<
 *         return xvelp
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2665, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dot); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2665, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2665, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_jacp, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2665, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_v_xvelp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2666
 *         jacp = self.get_body_jacp(name).reshape((3, self._model.nv))
 *         xvelp = np.dot(jacp, self.qvel)
 *         return xvelp             # <<<<<<<<<<<<<<
 * 
 *     def get_body_xvelr(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_xvelp);
  __pyx_r = __pyx_v_xvelp;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2662
 *         return jacr
 * 
 *     def get_body_xvelp(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         jacp = self.get_body_jacp(name).reshape((3, self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_xvelp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XDECREF(__pyx_v_jacp);
  __Pyx_XDECREF(__pyx_v_xvelp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2668
 *         return xvelp
 * 
 *     def get_body_xvelr(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         jacr = self.get_body_jacr(name).reshape((3, self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_29get_body_xvelr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_29get_body_xvelr = {"get_body_xvelr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_29get_body_xvelr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_29get_body_xvelr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_body_xvelr (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2668, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_body_xvelr") < 0)) __PYX_ERR(4, 2668, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_body_xvelr", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2668, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_xvelr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_28get_body_xvelr(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_28get_body_xvelr(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  CYTHON_UNUSED PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_v_jacr = NULL;
  PyObject *__pyx_v_xvelr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_body_xvelr", 1);

  /* "mujoco_py/generated/wrappers.pxi":2669
 * 
 *     def get_body_xvelr(self, name):
 *         id = self._model.body_name2id(name)             # <<<<<<<<<<<<<<
 *         jacr = self.get_body_jacr(name).reshape((3, self._model.nv))
 *         xvelr = np.dot(jacr, self.qvel)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2669, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2670
 *     def get_body_xvelr(self, name):
 *         id = self._model.body_name2id(name)
 *         jacr = self.get_body_jacr(name).reshape((3, self._model.nv))             # <<<<<<<<<<<<<<
 *         xvelr = np.dot(jacr, self.qvel)
 *         return xvelr
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_body_jacr); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2670, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_name};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2670, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2670, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2670, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_3)) __PYX_ERR(4, 2670, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(4, 2670, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2671
 *         id = self._model.body_name2id(name)
 *         jacr = self.get_body_jacr(name).reshape((3, self._model.nv))
 *         xvelr = np.dot(jacr, self.qvel)             # <<<<<<<<<<<<<<
 *         return xvelr
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dot); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_jacr, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2671, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_v_xvelr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2672
 *         jacr = self.get_body_jacr(name).reshape((3, self._model.nv))
 *         xvelr = np.dot(jacr, self.qvel)
 *         return xvelr             # <<<<<<<<<<<<<<
 * 
 *     def get_joint_xanchor(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_xvelr);
  __pyx_r = __pyx_v_xvelr;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2668
 *         return xvelp
 * 
 *     def get_body_xvelr(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         jacr = self.get_body_jacr(name).reshape((3, self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_body_xvelr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XDECREF(__pyx_v_jacr);
  __Pyx_XDECREF(__pyx_v_xvelr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2674
 *         return xvelr
 * 
 *     def get_joint_xanchor(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.joint_name2id(name)
 *         return self._xanchor[id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_31get_joint_xanchor(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_31get_joint_xanchor = {"get_joint_xanchor", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_31get_joint_xanchor, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_31get_joint_xanchor(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_joint_xanchor (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2674, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_joint_xanchor") < 0)) __PYX_ERR(4, 2674, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_joint_xanchor", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2674, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_joint_xanchor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_30get_joint_xanchor(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_30get_joint_xanchor(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_joint_xanchor", 1);

  /* "mujoco_py/generated/wrappers.pxi":2675
 * 
 *     def get_joint_xanchor(self, name):
 *         id = self._model.joint_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._xanchor[id]
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_joint_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2675, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2676
 *     def get_joint_xanchor(self, name):
 *         id = self._model.joint_name2id(name)
 *         return self._xanchor[id]             # <<<<<<<<<<<<<<
 * 
 *     def get_xanchor(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_xanchor), __pyx_v_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2674
 *         return xvelr
 * 
 *     def get_joint_xanchor(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.joint_name2id(name)
 *         return self._xanchor[id]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_joint_xanchor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2678
 *         return self._xanchor[id]
 * 
 *     def get_xanchor(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_joint_xanchor should be used instead of get_xanchor")
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_33get_xanchor(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_33get_xanchor = {"get_xanchor", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_33get_xanchor, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_33get_xanchor(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_xanchor (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2678, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_xanchor") < 0)) __PYX_ERR(4, 2678, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_xanchor", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2678, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_xanchor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_32get_xanchor(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_32get_xanchor(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_xanchor", 1);

  /* "mujoco_py/generated/wrappers.pxi":2679
 * 
 *     def get_xanchor(self, name):
 *         raise RuntimeError("get_joint_xanchor should be used instead of get_xanchor")             # <<<<<<<<<<<<<<
 * 
 *     def get_joint_xaxis(self, name):
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(4, 2679, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2678
 *         return self._xanchor[id]
 * 
 *     def get_xanchor(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_joint_xanchor should be used instead of get_xanchor")
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_xanchor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2681
 *         raise RuntimeError("get_joint_xanchor should be used instead of get_xanchor")
 * 
 *     def get_joint_xaxis(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.joint_name2id(name)
 *         return self._xaxis[id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_35get_joint_xaxis(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_35get_joint_xaxis = {"get_joint_xaxis", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_35get_joint_xaxis, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_35get_joint_xaxis(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_joint_xaxis (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2681, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_joint_xaxis") < 0)) __PYX_ERR(4, 2681, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_joint_xaxis", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2681, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_joint_xaxis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_34get_joint_xaxis(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_34get_joint_xaxis(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_joint_xaxis", 1);

  /* "mujoco_py/generated/wrappers.pxi":2682
 * 
 *     def get_joint_xaxis(self, name):
 *         id = self._model.joint_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._xaxis[id]
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_joint_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2682, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2683
 *     def get_joint_xaxis(self, name):
 *         id = self._model.joint_name2id(name)
 *         return self._xaxis[id]             # <<<<<<<<<<<<<<
 * 
 *     def get_xaxis(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_xaxis), __pyx_v_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2681
 *         raise RuntimeError("get_joint_xanchor should be used instead of get_xanchor")
 * 
 *     def get_joint_xaxis(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.joint_name2id(name)
 *         return self._xaxis[id]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_joint_xaxis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2685
 *         return self._xaxis[id]
 * 
 *     def get_xaxis(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_joint_xaxis should be used instead of get_xaxis")
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_37get_xaxis(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_37get_xaxis = {"get_xaxis", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_37get_xaxis, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_37get_xaxis(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_xaxis (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2685, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_xaxis") < 0)) __PYX_ERR(4, 2685, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_xaxis", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2685, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_xaxis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_36get_xaxis(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_36get_xaxis(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_xaxis", 1);

  /* "mujoco_py/generated/wrappers.pxi":2686
 * 
 *     def get_xaxis(self, name):
 *         raise RuntimeError("get_joint_xaxis should be used instead of get_xaxis")             # <<<<<<<<<<<<<<
 * 
 *     def get_geom_xpos(self, name):
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(4, 2686, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2685
 *         return self._xaxis[id]
 * 
 *     def get_xaxis(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_joint_xaxis should be used instead of get_xaxis")
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_xaxis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2688
 *         raise RuntimeError("get_joint_xaxis should be used instead of get_xaxis")
 * 
 *     def get_geom_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         return self._geom_xpos[id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_39get_geom_xpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_39get_geom_xpos = {"get_geom_xpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_39get_geom_xpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_39get_geom_xpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_geom_xpos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2688, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_geom_xpos") < 0)) __PYX_ERR(4, 2688, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_geom_xpos", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2688, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_geom_xpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_38get_geom_xpos(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_38get_geom_xpos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_geom_xpos", 1);

  /* "mujoco_py/generated/wrappers.pxi":2689
 * 
 *     def get_geom_xpos(self, name):
 *         id = self._model.geom_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._geom_xpos[id]
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_geom_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2689, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2689, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2690
 *     def get_geom_xpos(self, name):
 *         id = self._model.geom_name2id(name)
 *         return self._geom_xpos[id]             # <<<<<<<<<<<<<<
 * 
 *     def get_geom_xmat(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_geom_xpos), __pyx_v_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2690, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2688
 *         raise RuntimeError("get_joint_xaxis should be used instead of get_xaxis")
 * 
 *     def get_geom_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         return self._geom_xpos[id]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_geom_xpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2692
 *         return self._geom_xpos[id]
 * 
 *     def get_geom_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         return self._geom_xmat[id].reshape((3, 3))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_41get_geom_xmat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_41get_geom_xmat = {"get_geom_xmat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_41get_geom_xmat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_41get_geom_xmat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_geom_xmat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2692, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_geom_xmat") < 0)) __PYX_ERR(4, 2692, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_geom_xmat", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2692, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_geom_xmat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_40get_geom_xmat(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_40get_geom_xmat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_geom_xmat", 1);

  /* "mujoco_py/generated/wrappers.pxi":2693
 * 
 *     def get_geom_xmat(self, name):
 *         id = self._model.geom_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._geom_xmat[id].reshape((3, 3))
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_geom_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2694
 *     def get_geom_xmat(self, name):
 *         id = self._model.geom_name2id(name)
 *         return self._geom_xmat[id].reshape((3, 3))             # <<<<<<<<<<<<<<
 * 
 *     def get_geom_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_geom_xmat), __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_tuple__20};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2694, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2692
 *         return self._geom_xpos[id]
 * 
 *     def get_geom_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         return self._geom_xmat[id].reshape((3, 3))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_geom_xmat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2696
 *         return self._geom_xmat[id].reshape((3, 3))
 * 
 *     def get_geom_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         if jacp is None:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_43get_geom_jacp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_43get_geom_jacp = {"get_geom_jacp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_43get_geom_jacp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_43get_geom_jacp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyArrayObject *__pyx_v_jacp = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_geom_jacp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_jacp,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL((PyObject *)((PyArrayObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2696, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacp);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2696, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_geom_jacp") < 0)) __PYX_ERR(4, 2696, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_name = values[0];
    __pyx_v_jacp = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_geom_jacp", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2696, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_geom_jacp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacp), __pyx_ptype_5numpy_ndarray, 1, "jacp", 0))) __PYX_ERR(4, 2696, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_42get_geom_jacp(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name, __pyx_v_jacp);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_42get_geom_jacp(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_jacp) {
  PyObject *__pyx_v_id = NULL;
  double *__pyx_v_jacp_view;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacp;
  __Pyx_Buffer __pyx_pybuffer_jacp;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyArrayObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  Py_ssize_t __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_geom_jacp", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_jacp);
  __pyx_pybuffer_jacp.pybuffer.buf = NULL;
  __pyx_pybuffer_jacp.refcount = 0;
  __pyx_pybuffernd_jacp.data = NULL;
  __pyx_pybuffernd_jacp.rcbuffer = &__pyx_pybuffer_jacp;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacp, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 2696, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacp.diminfo[0].strides = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacp.diminfo[0].shape = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":2697
 * 
 *     def get_geom_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):
 *         id = self._model.geom_name2id(name)             # <<<<<<<<<<<<<<
 *         if jacp is None:
 *             jacp = np.zeros(3 * self._model.nv)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_geom_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2697, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2697, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2698
 *     def get_geom_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):
 *         id = self._model.geom_name2id(name)
 *         if jacp is None:             # <<<<<<<<<<<<<<
 *             jacp = np.zeros(3 * self._model.nv)
 *         cdef double * jacp_view = &jacp[0]
 */
  __pyx_t_5 = (((PyObject *)__pyx_v_jacp) == Py_None);
  if (__pyx_t_5) {

    /* "mujoco_py/generated/wrappers.pxi":2699
 *         id = self._model.geom_name2id(name)
 *         if jacp is None:
 *             jacp = np.zeros(3 * self._model.nv)             # <<<<<<<<<<<<<<
 *         cdef double * jacp_view = &jacp[0]
 *         mj_jacGeom(self._model.ptr, self.ptr, jacp_view, NULL, id)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2699, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2699, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2699, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyInt_MultiplyCObj(__pyx_int_3, __pyx_t_2, 3, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2699, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2699, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 2699, __pyx_L1_error)
    __pyx_t_7 = ((PyArrayObject *)__pyx_t_1);
    {
      __Pyx_BufFmt_StackElem __pyx_stack[1];
      __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
      __pyx_t_4 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack);
      if (unlikely(__pyx_t_4 < 0)) {
        PyErr_Fetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
        if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacp, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {
          Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10);
          __Pyx_RaiseBufferFallbackError();
        } else {
          PyErr_Restore(__pyx_t_8, __pyx_t_9, __pyx_t_10);
        }
        __pyx_t_8 = __pyx_t_9 = __pyx_t_10 = 0;
      }
      __pyx_pybuffernd_jacp.diminfo[0].strides = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacp.diminfo[0].shape = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.shape[0];
      if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(4, 2699, __pyx_L1_error)
    }
    __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_jacp, ((PyArrayObject *)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "mujoco_py/generated/wrappers.pxi":2698
 *     def get_geom_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):
 *         id = self._model.geom_name2id(name)
 *         if jacp is None:             # <<<<<<<<<<<<<<
 *             jacp = np.zeros(3 * self._model.nv)
 *         cdef double * jacp_view = &jacp[0]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":2700
 *         if jacp is None:
 *             jacp = np.zeros(3 * self._model.nv)
 *         cdef double * jacp_view = &jacp[0]             # <<<<<<<<<<<<<<
 *         mj_jacGeom(self._model.ptr, self.ptr, jacp_view, NULL, id)
 *         return jacp
 */
  __pyx_t_11 = 0;
  __pyx_t_4 = -1;
  if (__pyx_t_11 < 0) {
    __pyx_t_11 += __pyx_pybuffernd_jacp.diminfo[0].shape;
    if (unlikely(__pyx_t_11 < 0)) __pyx_t_4 = 0;
  } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_jacp.diminfo[0].shape)) __pyx_t_4 = 0;
  if (unlikely(__pyx_t_4 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_4);
    __PYX_ERR(4, 2700, __pyx_L1_error)
  }
  __pyx_v_jacp_view = (&(*__Pyx_BufPtrCContig1d(double *, __pyx_pybuffernd_jacp.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_jacp.diminfo[0].strides)));

  /* "mujoco_py/generated/wrappers.pxi":2701
 *             jacp = np.zeros(3 * self._model.nv)
 *         cdef double * jacp_view = &jacp[0]
 *         mj_jacGeom(self._model.ptr, self.ptr, jacp_view, NULL, id)             # <<<<<<<<<<<<<<
 *         return jacp
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_id); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2701, __pyx_L1_error)
  mj_jacGeom(__pyx_v_self->_model->ptr, __pyx_v_self->ptr, __pyx_v_jacp_view, NULL, __pyx_t_4);

  /* "mujoco_py/generated/wrappers.pxi":2702
 *         cdef double * jacp_view = &jacp[0]
 *         mj_jacGeom(self._model.ptr, self.ptr, jacp_view, NULL, id)
 *         return jacp             # <<<<<<<<<<<<<<
 * 
 *     def get_geom_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_jacp);
  __pyx_r = ((PyObject *)__pyx_v_jacp);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2696
 *         return self._geom_xmat[id].reshape((3, 3))
 * 
 *     def get_geom_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         if jacp is None:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_geom_jacp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XDECREF((PyObject *)__pyx_v_jacp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2704
 *         return jacp
 * 
 *     def get_geom_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         if jacr is None:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_45get_geom_jacr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_45get_geom_jacr = {"get_geom_jacr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_45get_geom_jacr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_45get_geom_jacr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyArrayObject *__pyx_v_jacr = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_geom_jacr (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_jacr,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL((PyObject *)((PyArrayObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2704, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacr);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2704, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_geom_jacr") < 0)) __PYX_ERR(4, 2704, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_name = values[0];
    __pyx_v_jacr = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_geom_jacr", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2704, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_geom_jacr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacr), __pyx_ptype_5numpy_ndarray, 1, "jacr", 0))) __PYX_ERR(4, 2704, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_44get_geom_jacr(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name, __pyx_v_jacr);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_44get_geom_jacr(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_jacr) {
  PyObject *__pyx_v_id = NULL;
  double *__pyx_v_jacr_view;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacr;
  __Pyx_Buffer __pyx_pybuffer_jacr;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyArrayObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  Py_ssize_t __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_geom_jacr", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_jacr);
  __pyx_pybuffer_jacr.pybuffer.buf = NULL;
  __pyx_pybuffer_jacr.refcount = 0;
  __pyx_pybuffernd_jacr.data = NULL;
  __pyx_pybuffernd_jacr.rcbuffer = &__pyx_pybuffer_jacr;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 2704, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacr.diminfo[0].strides = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacr.diminfo[0].shape = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":2705
 * 
 *     def get_geom_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):
 *         id = self._model.geom_name2id(name)             # <<<<<<<<<<<<<<
 *         if jacr is None:
 *             jacr = np.zeros(3 * self._model.nv)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_geom_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2705, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2706
 *     def get_geom_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):
 *         id = self._model.geom_name2id(name)
 *         if jacr is None:             # <<<<<<<<<<<<<<
 *             jacr = np.zeros(3 * self._model.nv)
 *         cdef double * jacr_view = &jacr[0]
 */
  __pyx_t_5 = (((PyObject *)__pyx_v_jacr) == Py_None);
  if (__pyx_t_5) {

    /* "mujoco_py/generated/wrappers.pxi":2707
 *         id = self._model.geom_name2id(name)
 *         if jacr is None:
 *             jacr = np.zeros(3 * self._model.nv)             # <<<<<<<<<<<<<<
 *         cdef double * jacr_view = &jacr[0]
 *         mj_jacGeom(self._model.ptr, self.ptr, NULL, jacr_view, id)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2707, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2707, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2707, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyInt_MultiplyCObj(__pyx_int_3, __pyx_t_2, 3, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2707, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2707, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 2707, __pyx_L1_error)
    __pyx_t_7 = ((PyArrayObject *)__pyx_t_1);
    {
      __Pyx_BufFmt_StackElem __pyx_stack[1];
      __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
      __pyx_t_4 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack);
      if (unlikely(__pyx_t_4 < 0)) {
        PyErr_Fetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
        if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {
          Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10);
          __Pyx_RaiseBufferFallbackError();
        } else {
          PyErr_Restore(__pyx_t_8, __pyx_t_9, __pyx_t_10);
        }
        __pyx_t_8 = __pyx_t_9 = __pyx_t_10 = 0;
      }
      __pyx_pybuffernd_jacr.diminfo[0].strides = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacr.diminfo[0].shape = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.shape[0];
      if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(4, 2707, __pyx_L1_error)
    }
    __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_jacr, ((PyArrayObject *)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "mujoco_py/generated/wrappers.pxi":2706
 *     def get_geom_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):
 *         id = self._model.geom_name2id(name)
 *         if jacr is None:             # <<<<<<<<<<<<<<
 *             jacr = np.zeros(3 * self._model.nv)
 *         cdef double * jacr_view = &jacr[0]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":2708
 *         if jacr is None:
 *             jacr = np.zeros(3 * self._model.nv)
 *         cdef double * jacr_view = &jacr[0]             # <<<<<<<<<<<<<<
 *         mj_jacGeom(self._model.ptr, self.ptr, NULL, jacr_view, id)
 *         return jacr
 */
  __pyx_t_11 = 0;
  __pyx_t_4 = -1;
  if (__pyx_t_11 < 0) {
    __pyx_t_11 += __pyx_pybuffernd_jacr.diminfo[0].shape;
    if (unlikely(__pyx_t_11 < 0)) __pyx_t_4 = 0;
  } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_jacr.diminfo[0].shape)) __pyx_t_4 = 0;
  if (unlikely(__pyx_t_4 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_4);
    __PYX_ERR(4, 2708, __pyx_L1_error)
  }
  __pyx_v_jacr_view = (&(*__Pyx_BufPtrCContig1d(double *, __pyx_pybuffernd_jacr.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_jacr.diminfo[0].strides)));

  /* "mujoco_py/generated/wrappers.pxi":2709
 *             jacr = np.zeros(3 * self._model.nv)
 *         cdef double * jacr_view = &jacr[0]
 *         mj_jacGeom(self._model.ptr, self.ptr, NULL, jacr_view, id)             # <<<<<<<<<<<<<<
 *         return jacr
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_id); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2709, __pyx_L1_error)
  mj_jacGeom(__pyx_v_self->_model->ptr, __pyx_v_self->ptr, NULL, __pyx_v_jacr_view, __pyx_t_4);

  /* "mujoco_py/generated/wrappers.pxi":2710
 *         cdef double * jacr_view = &jacr[0]
 *         mj_jacGeom(self._model.ptr, self.ptr, NULL, jacr_view, id)
 *         return jacr             # <<<<<<<<<<<<<<
 * 
 *     def get_geom_xvelp(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_jacr);
  __pyx_r = ((PyObject *)__pyx_v_jacr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2704
 *         return jacp
 * 
 *     def get_geom_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         if jacr is None:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_geom_jacr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XDECREF((PyObject *)__pyx_v_jacr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2712
 *         return jacr
 * 
 *     def get_geom_xvelp(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         jacp = self.get_geom_jacp(name).reshape((3, self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_47get_geom_xvelp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_47get_geom_xvelp = {"get_geom_xvelp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_47get_geom_xvelp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_47get_geom_xvelp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_geom_xvelp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2712, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_geom_xvelp") < 0)) __PYX_ERR(4, 2712, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_geom_xvelp", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2712, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_geom_xvelp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_46get_geom_xvelp(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_46get_geom_xvelp(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  CYTHON_UNUSED PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_v_jacp = NULL;
  PyObject *__pyx_v_xvelp = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_geom_xvelp", 1);

  /* "mujoco_py/generated/wrappers.pxi":2713
 * 
 *     def get_geom_xvelp(self, name):
 *         id = self._model.geom_name2id(name)             # <<<<<<<<<<<<<<
 *         jacp = self.get_geom_jacp(name).reshape((3, self._model.nv))
 *         xvelp = np.dot(jacp, self.qvel)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_geom_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2713, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2713, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2714
 *     def get_geom_xvelp(self, name):
 *         id = self._model.geom_name2id(name)
 *         jacp = self.get_geom_jacp(name).reshape((3, self._model.nv))             # <<<<<<<<<<<<<<
 *         xvelp = np.dot(jacp, self.qvel)
 *         return xvelp
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_geom_jacp); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2714, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_name};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2714, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2714, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2714, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2714, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_3)) __PYX_ERR(4, 2714, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(4, 2714, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2714, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2715
 *         id = self._model.geom_name2id(name)
 *         jacp = self.get_geom_jacp(name).reshape((3, self._model.nv))
 *         xvelp = np.dot(jacp, self.qvel)             # <<<<<<<<<<<<<<
 *         return xvelp
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dot); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_jacp, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2715, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_v_xvelp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2716
 *         jacp = self.get_geom_jacp(name).reshape((3, self._model.nv))
 *         xvelp = np.dot(jacp, self.qvel)
 *         return xvelp             # <<<<<<<<<<<<<<
 * 
 *     def get_geom_xvelr(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_xvelp);
  __pyx_r = __pyx_v_xvelp;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2712
 *         return jacr
 * 
 *     def get_geom_xvelp(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         jacp = self.get_geom_jacp(name).reshape((3, self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_geom_xvelp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XDECREF(__pyx_v_jacp);
  __Pyx_XDECREF(__pyx_v_xvelp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2718
 *         return xvelp
 * 
 *     def get_geom_xvelr(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         jacr = self.get_geom_jacr(name).reshape((3, self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_49get_geom_xvelr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_49get_geom_xvelr = {"get_geom_xvelr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_49get_geom_xvelr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_49get_geom_xvelr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_geom_xvelr (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2718, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_geom_xvelr") < 0)) __PYX_ERR(4, 2718, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_geom_xvelr", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2718, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_geom_xvelr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_48get_geom_xvelr(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_48get_geom_xvelr(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  CYTHON_UNUSED PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_v_jacr = NULL;
  PyObject *__pyx_v_xvelr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_geom_xvelr", 1);

  /* "mujoco_py/generated/wrappers.pxi":2719
 * 
 *     def get_geom_xvelr(self, name):
 *         id = self._model.geom_name2id(name)             # <<<<<<<<<<<<<<
 *         jacr = self.get_geom_jacr(name).reshape((3, self._model.nv))
 *         xvelr = np.dot(jacr, self.qvel)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_geom_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2719, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2720
 *     def get_geom_xvelr(self, name):
 *         id = self._model.geom_name2id(name)
 *         jacr = self.get_geom_jacr(name).reshape((3, self._model.nv))             # <<<<<<<<<<<<<<
 *         xvelr = np.dot(jacr, self.qvel)
 *         return xvelr
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_geom_jacr); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_name};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2720, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_3)) __PYX_ERR(4, 2720, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(4, 2720, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2720, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2721
 *         id = self._model.geom_name2id(name)
 *         jacr = self.get_geom_jacr(name).reshape((3, self._model.nv))
 *         xvelr = np.dot(jacr, self.qvel)             # <<<<<<<<<<<<<<
 *         return xvelr
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2721, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dot); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2721, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2721, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_jacr, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2721, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_v_xvelr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2722
 *         jacr = self.get_geom_jacr(name).reshape((3, self._model.nv))
 *         xvelr = np.dot(jacr, self.qvel)
 *         return xvelr             # <<<<<<<<<<<<<<
 * 
 *     def get_site_xpos(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_xvelr);
  __pyx_r = __pyx_v_xvelr;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2718
 *         return xvelp
 * 
 *     def get_geom_xvelr(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         jacr = self.get_geom_jacr(name).reshape((3, self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_geom_xvelr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XDECREF(__pyx_v_jacr);
  __Pyx_XDECREF(__pyx_v_xvelr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2724
 *         return xvelr
 * 
 *     def get_site_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         return self._site_xpos[id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_51get_site_xpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_51get_site_xpos = {"get_site_xpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_51get_site_xpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_51get_site_xpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_site_xpos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2724, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_site_xpos") < 0)) __PYX_ERR(4, 2724, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_site_xpos", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2724, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_site_xpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_50get_site_xpos(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_50get_site_xpos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_site_xpos", 1);

  /* "mujoco_py/generated/wrappers.pxi":2725
 * 
 *     def get_site_xpos(self, name):
 *         id = self._model.site_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._site_xpos[id]
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_site_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2725, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2726
 *     def get_site_xpos(self, name):
 *         id = self._model.site_name2id(name)
 *         return self._site_xpos[id]             # <<<<<<<<<<<<<<
 * 
 *     def get_site_xmat(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_site_xpos), __pyx_v_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2724
 *         return xvelr
 * 
 *     def get_site_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         return self._site_xpos[id]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_site_xpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2728
 *         return self._site_xpos[id]
 * 
 *     def get_site_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         return self._site_xmat[id].reshape((3, 3))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_53get_site_xmat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_53get_site_xmat = {"get_site_xmat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_53get_site_xmat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_53get_site_xmat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_site_xmat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2728, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_site_xmat") < 0)) __PYX_ERR(4, 2728, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_site_xmat", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2728, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_site_xmat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_52get_site_xmat(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_52get_site_xmat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_site_xmat", 1);

  /* "mujoco_py/generated/wrappers.pxi":2729
 * 
 *     def get_site_xmat(self, name):
 *         id = self._model.site_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._site_xmat[id].reshape((3, 3))
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_site_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2729, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2730
 *     def get_site_xmat(self, name):
 *         id = self._model.site_name2id(name)
 *         return self._site_xmat[id].reshape((3, 3))             # <<<<<<<<<<<<<<
 * 
 *     def get_site_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_site_xmat), __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_tuple__20};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2730, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2728
 *         return self._site_xpos[id]
 * 
 *     def get_site_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         return self._site_xmat[id].reshape((3, 3))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_site_xmat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2732
 *         return self._site_xmat[id].reshape((3, 3))
 * 
 *     def get_site_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         if jacp is None:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_55get_site_jacp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_55get_site_jacp = {"get_site_jacp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_55get_site_jacp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_55get_site_jacp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyArrayObject *__pyx_v_jacp = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_site_jacp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_jacp,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL((PyObject *)((PyArrayObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2732, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacp);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_site_jacp") < 0)) __PYX_ERR(4, 2732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_name = values[0];
    __pyx_v_jacp = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_site_jacp", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2732, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_site_jacp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacp), __pyx_ptype_5numpy_ndarray, 1, "jacp", 0))) __PYX_ERR(4, 2732, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_54get_site_jacp(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name, __pyx_v_jacp);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_54get_site_jacp(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_jacp) {
  PyObject *__pyx_v_id = NULL;
  double *__pyx_v_jacp_view;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacp;
  __Pyx_Buffer __pyx_pybuffer_jacp;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyArrayObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  Py_ssize_t __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_site_jacp", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_jacp);
  __pyx_pybuffer_jacp.pybuffer.buf = NULL;
  __pyx_pybuffer_jacp.refcount = 0;
  __pyx_pybuffernd_jacp.data = NULL;
  __pyx_pybuffernd_jacp.rcbuffer = &__pyx_pybuffer_jacp;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacp, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 2732, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacp.diminfo[0].strides = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacp.diminfo[0].shape = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":2733
 * 
 *     def get_site_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):
 *         id = self._model.site_name2id(name)             # <<<<<<<<<<<<<<
 *         if jacp is None:
 *             jacp = np.zeros(3 * self._model.nv)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_site_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2734
 *     def get_site_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):
 *         id = self._model.site_name2id(name)
 *         if jacp is None:             # <<<<<<<<<<<<<<
 *             jacp = np.zeros(3 * self._model.nv)
 *         cdef double * jacp_view = &jacp[0]
 */
  __pyx_t_5 = (((PyObject *)__pyx_v_jacp) == Py_None);
  if (__pyx_t_5) {

    /* "mujoco_py/generated/wrappers.pxi":2735
 *         id = self._model.site_name2id(name)
 *         if jacp is None:
 *             jacp = np.zeros(3 * self._model.nv)             # <<<<<<<<<<<<<<
 *         cdef double * jacp_view = &jacp[0]
 *         mj_jacSite(self._model.ptr, self.ptr, jacp_view, NULL, id)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2735, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2735, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2735, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyInt_MultiplyCObj(__pyx_int_3, __pyx_t_2, 3, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2735, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2735, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 2735, __pyx_L1_error)
    __pyx_t_7 = ((PyArrayObject *)__pyx_t_1);
    {
      __Pyx_BufFmt_StackElem __pyx_stack[1];
      __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
      __pyx_t_4 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack);
      if (unlikely(__pyx_t_4 < 0)) {
        PyErr_Fetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
        if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacp, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {
          Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10);
          __Pyx_RaiseBufferFallbackError();
        } else {
          PyErr_Restore(__pyx_t_8, __pyx_t_9, __pyx_t_10);
        }
        __pyx_t_8 = __pyx_t_9 = __pyx_t_10 = 0;
      }
      __pyx_pybuffernd_jacp.diminfo[0].strides = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacp.diminfo[0].shape = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.shape[0];
      if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(4, 2735, __pyx_L1_error)
    }
    __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_jacp, ((PyArrayObject *)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "mujoco_py/generated/wrappers.pxi":2734
 *     def get_site_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):
 *         id = self._model.site_name2id(name)
 *         if jacp is None:             # <<<<<<<<<<<<<<
 *             jacp = np.zeros(3 * self._model.nv)
 *         cdef double * jacp_view = &jacp[0]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":2736
 *         if jacp is None:
 *             jacp = np.zeros(3 * self._model.nv)
 *         cdef double * jacp_view = &jacp[0]             # <<<<<<<<<<<<<<
 *         mj_jacSite(self._model.ptr, self.ptr, jacp_view, NULL, id)
 *         return jacp
 */
  __pyx_t_11 = 0;
  __pyx_t_4 = -1;
  if (__pyx_t_11 < 0) {
    __pyx_t_11 += __pyx_pybuffernd_jacp.diminfo[0].shape;
    if (unlikely(__pyx_t_11 < 0)) __pyx_t_4 = 0;
  } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_jacp.diminfo[0].shape)) __pyx_t_4 = 0;
  if (unlikely(__pyx_t_4 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_4);
    __PYX_ERR(4, 2736, __pyx_L1_error)
  }
  __pyx_v_jacp_view = (&(*__Pyx_BufPtrCContig1d(double *, __pyx_pybuffernd_jacp.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_jacp.diminfo[0].strides)));

  /* "mujoco_py/generated/wrappers.pxi":2737
 *             jacp = np.zeros(3 * self._model.nv)
 *         cdef double * jacp_view = &jacp[0]
 *         mj_jacSite(self._model.ptr, self.ptr, jacp_view, NULL, id)             # <<<<<<<<<<<<<<
 *         return jacp
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_id); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2737, __pyx_L1_error)
  mj_jacSite(__pyx_v_self->_model->ptr, __pyx_v_self->ptr, __pyx_v_jacp_view, NULL, __pyx_t_4);

  /* "mujoco_py/generated/wrappers.pxi":2738
 *         cdef double * jacp_view = &jacp[0]
 *         mj_jacSite(self._model.ptr, self.ptr, jacp_view, NULL, id)
 *         return jacp             # <<<<<<<<<<<<<<
 * 
 *     def get_site_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_jacp);
  __pyx_r = ((PyObject *)__pyx_v_jacp);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2732
 *         return self._site_xmat[id].reshape((3, 3))
 * 
 *     def get_site_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         if jacp is None:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_site_jacp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XDECREF((PyObject *)__pyx_v_jacp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2740
 *         return jacp
 * 
 *     def get_site_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         if jacr is None:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_57get_site_jacr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_57get_site_jacr = {"get_site_jacr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_57get_site_jacr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_57get_site_jacr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyArrayObject *__pyx_v_jacr = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_site_jacr (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_jacr,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL((PyObject *)((PyArrayObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2740, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacr);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2740, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_site_jacr") < 0)) __PYX_ERR(4, 2740, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_name = values[0];
    __pyx_v_jacr = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_site_jacr", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2740, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_site_jacr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacr), __pyx_ptype_5numpy_ndarray, 1, "jacr", 0))) __PYX_ERR(4, 2740, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_56get_site_jacr(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name, __pyx_v_jacr);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_56get_site_jacr(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyArrayObject *__pyx_v_jacr) {
  PyObject *__pyx_v_id = NULL;
  double *__pyx_v_jacr_view;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacr;
  __Pyx_Buffer __pyx_pybuffer_jacr;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyArrayObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  Py_ssize_t __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_site_jacr", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_jacr);
  __pyx_pybuffer_jacr.pybuffer.buf = NULL;
  __pyx_pybuffer_jacr.refcount = 0;
  __pyx_pybuffernd_jacr.data = NULL;
  __pyx_pybuffernd_jacr.rcbuffer = &__pyx_pybuffer_jacr;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 2740, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacr.diminfo[0].strides = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacr.diminfo[0].shape = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":2741
 * 
 *     def get_site_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):
 *         id = self._model.site_name2id(name)             # <<<<<<<<<<<<<<
 *         if jacr is None:
 *             jacr = np.zeros(3 * self._model.nv)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_site_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2742
 *     def get_site_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):
 *         id = self._model.site_name2id(name)
 *         if jacr is None:             # <<<<<<<<<<<<<<
 *             jacr = np.zeros(3 * self._model.nv)
 *         cdef double * jacr_view = &jacr[0]
 */
  __pyx_t_5 = (((PyObject *)__pyx_v_jacr) == Py_None);
  if (__pyx_t_5) {

    /* "mujoco_py/generated/wrappers.pxi":2743
 *         id = self._model.site_name2id(name)
 *         if jacr is None:
 *             jacr = np.zeros(3 * self._model.nv)             # <<<<<<<<<<<<<<
 *         cdef double * jacr_view = &jacr[0]
 *         mj_jacSite(self._model.ptr, self.ptr, NULL, jacr_view, id)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2743, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2743, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2743, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyInt_MultiplyCObj(__pyx_int_3, __pyx_t_2, 3, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2743, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2743, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 2743, __pyx_L1_error)
    __pyx_t_7 = ((PyArrayObject *)__pyx_t_1);
    {
      __Pyx_BufFmt_StackElem __pyx_stack[1];
      __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
      __pyx_t_4 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack);
      if (unlikely(__pyx_t_4 < 0)) {
        PyErr_Fetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
        if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) {
          Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10);
          __Pyx_RaiseBufferFallbackError();
        } else {
          PyErr_Restore(__pyx_t_8, __pyx_t_9, __pyx_t_10);
        }
        __pyx_t_8 = __pyx_t_9 = __pyx_t_10 = 0;
      }
      __pyx_pybuffernd_jacr.diminfo[0].strides = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacr.diminfo[0].shape = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.shape[0];
      if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(4, 2743, __pyx_L1_error)
    }
    __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_jacr, ((PyArrayObject *)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "mujoco_py/generated/wrappers.pxi":2742
 *     def get_site_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):
 *         id = self._model.site_name2id(name)
 *         if jacr is None:             # <<<<<<<<<<<<<<
 *             jacr = np.zeros(3 * self._model.nv)
 *         cdef double * jacr_view = &jacr[0]
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":2744
 *         if jacr is None:
 *             jacr = np.zeros(3 * self._model.nv)
 *         cdef double * jacr_view = &jacr[0]             # <<<<<<<<<<<<<<
 *         mj_jacSite(self._model.ptr, self.ptr, NULL, jacr_view, id)
 *         return jacr
 */
  __pyx_t_11 = 0;
  __pyx_t_4 = -1;
  if (__pyx_t_11 < 0) {
    __pyx_t_11 += __pyx_pybuffernd_jacr.diminfo[0].shape;
    if (unlikely(__pyx_t_11 < 0)) __pyx_t_4 = 0;
  } else if (unlikely(__pyx_t_11 >= __pyx_pybuffernd_jacr.diminfo[0].shape)) __pyx_t_4 = 0;
  if (unlikely(__pyx_t_4 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_4);
    __PYX_ERR(4, 2744, __pyx_L1_error)
  }
  __pyx_v_jacr_view = (&(*__Pyx_BufPtrCContig1d(double *, __pyx_pybuffernd_jacr.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_jacr.diminfo[0].strides)));

  /* "mujoco_py/generated/wrappers.pxi":2745
 *             jacr = np.zeros(3 * self._model.nv)
 *         cdef double * jacr_view = &jacr[0]
 *         mj_jacSite(self._model.ptr, self.ptr, NULL, jacr_view, id)             # <<<<<<<<<<<<<<
 *         return jacr
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_id); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2745, __pyx_L1_error)
  mj_jacSite(__pyx_v_self->_model->ptr, __pyx_v_self->ptr, NULL, __pyx_v_jacr_view, __pyx_t_4);

  /* "mujoco_py/generated/wrappers.pxi":2746
 *         cdef double * jacr_view = &jacr[0]
 *         mj_jacSite(self._model.ptr, self.ptr, NULL, jacr_view, id)
 *         return jacr             # <<<<<<<<<<<<<<
 * 
 *     def get_site_xvelp(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_jacr);
  __pyx_r = ((PyObject *)__pyx_v_jacr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2740
 *         return jacp
 * 
 *     def get_site_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         if jacr is None:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_site_jacr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XDECREF((PyObject *)__pyx_v_jacr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2748
 *         return jacr
 * 
 *     def get_site_xvelp(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         jacp = self.get_site_jacp(name).reshape((3, self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_59get_site_xvelp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_59get_site_xvelp = {"get_site_xvelp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_59get_site_xvelp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_59get_site_xvelp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_site_xvelp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2748, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_site_xvelp") < 0)) __PYX_ERR(4, 2748, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_site_xvelp", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2748, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_site_xvelp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_58get_site_xvelp(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_58get_site_xvelp(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  CYTHON_UNUSED PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_v_jacp = NULL;
  PyObject *__pyx_v_xvelp = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_site_xvelp", 1);

  /* "mujoco_py/generated/wrappers.pxi":2749
 * 
 *     def get_site_xvelp(self, name):
 *         id = self._model.site_name2id(name)             # <<<<<<<<<<<<<<
 *         jacp = self.get_site_jacp(name).reshape((3, self._model.nv))
 *         xvelp = np.dot(jacp, self.qvel)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_site_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2749, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2750
 *     def get_site_xvelp(self, name):
 *         id = self._model.site_name2id(name)
 *         jacp = self.get_site_jacp(name).reshape((3, self._model.nv))             # <<<<<<<<<<<<<<
 *         xvelp = np.dot(jacp, self.qvel)
 *         return xvelp
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_site_jacp); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_name};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2750, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_3)) __PYX_ERR(4, 2750, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(4, 2750, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2750, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2751
 *         id = self._model.site_name2id(name)
 *         jacp = self.get_site_jacp(name).reshape((3, self._model.nv))
 *         xvelp = np.dot(jacp, self.qvel)             # <<<<<<<<<<<<<<
 *         return xvelp
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dot); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_jacp, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2751, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_v_xvelp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2752
 *         jacp = self.get_site_jacp(name).reshape((3, self._model.nv))
 *         xvelp = np.dot(jacp, self.qvel)
 *         return xvelp             # <<<<<<<<<<<<<<
 * 
 *     def get_site_xvelr(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_xvelp);
  __pyx_r = __pyx_v_xvelp;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2748
 *         return jacr
 * 
 *     def get_site_xvelp(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         jacp = self.get_site_jacp(name).reshape((3, self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_site_xvelp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XDECREF(__pyx_v_jacp);
  __Pyx_XDECREF(__pyx_v_xvelp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2754
 *         return xvelp
 * 
 *     def get_site_xvelr(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         jacr = self.get_site_jacr(name).reshape((3, self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_61get_site_xvelr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_61get_site_xvelr = {"get_site_xvelr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_61get_site_xvelr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_61get_site_xvelr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_site_xvelr (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2754, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_site_xvelr") < 0)) __PYX_ERR(4, 2754, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_site_xvelr", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2754, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_site_xvelr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_60get_site_xvelr(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_60get_site_xvelr(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  CYTHON_UNUSED PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_v_jacr = NULL;
  PyObject *__pyx_v_xvelr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_site_xvelr", 1);

  /* "mujoco_py/generated/wrappers.pxi":2755
 * 
 *     def get_site_xvelr(self, name):
 *         id = self._model.site_name2id(name)             # <<<<<<<<<<<<<<
 *         jacr = self.get_site_jacr(name).reshape((3, self._model.nv))
 *         xvelr = np.dot(jacr, self.qvel)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_site_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2755, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2756
 *     def get_site_xvelr(self, name):
 *         id = self._model.site_name2id(name)
 *         jacr = self.get_site_jacr(name).reshape((3, self._model.nv))             # <<<<<<<<<<<<<<
 *         xvelr = np.dot(jacr, self.qvel)
 *         return xvelr
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_site_jacr); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_name};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2756, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_3)) __PYX_ERR(4, 2756, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(4, 2756, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2756, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2757
 *         id = self._model.site_name2id(name)
 *         jacr = self.get_site_jacr(name).reshape((3, self._model.nv))
 *         xvelr = np.dot(jacr, self.qvel)             # <<<<<<<<<<<<<<
 *         return xvelr
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dot); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_jacr, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2757, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_v_xvelr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2758
 *         jacr = self.get_site_jacr(name).reshape((3, self._model.nv))
 *         xvelr = np.dot(jacr, self.qvel)
 *         return xvelr             # <<<<<<<<<<<<<<
 * 
 *     def get_camera_xpos(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_xvelr);
  __pyx_r = __pyx_v_xvelr;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2754
 *         return xvelp
 * 
 *     def get_site_xvelr(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         jacr = self.get_site_jacr(name).reshape((3, self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_site_xvelr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XDECREF(__pyx_v_jacr);
  __Pyx_XDECREF(__pyx_v_xvelr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2760
 *         return xvelr
 * 
 *     def get_camera_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.camera_name2id(name)
 *         return self._cam_xpos[id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_63get_camera_xpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_63get_camera_xpos = {"get_camera_xpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_63get_camera_xpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_63get_camera_xpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_camera_xpos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2760, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_camera_xpos") < 0)) __PYX_ERR(4, 2760, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_camera_xpos", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2760, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_camera_xpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_62get_camera_xpos(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_62get_camera_xpos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_camera_xpos", 1);

  /* "mujoco_py/generated/wrappers.pxi":2761
 * 
 *     def get_camera_xpos(self, name):
 *         id = self._model.camera_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._cam_xpos[id]
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_camera_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2761, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2761, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2762
 *     def get_camera_xpos(self, name):
 *         id = self._model.camera_name2id(name)
 *         return self._cam_xpos[id]             # <<<<<<<<<<<<<<
 * 
 *     def get_cam_xpos(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_cam_xpos), __pyx_v_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2760
 *         return xvelr
 * 
 *     def get_camera_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.camera_name2id(name)
 *         return self._cam_xpos[id]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_camera_xpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2764
 *         return self._cam_xpos[id]
 * 
 *     def get_cam_xpos(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_camera_xpos should be used instead of get_cam_xpos")
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_65get_cam_xpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_65get_cam_xpos = {"get_cam_xpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_65get_cam_xpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_65get_cam_xpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_cam_xpos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2764, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_cam_xpos") < 0)) __PYX_ERR(4, 2764, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_cam_xpos", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2764, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_cam_xpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_64get_cam_xpos(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_64get_cam_xpos(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_cam_xpos", 1);

  /* "mujoco_py/generated/wrappers.pxi":2765
 * 
 *     def get_cam_xpos(self, name):
 *         raise RuntimeError("get_camera_xpos should be used instead of get_cam_xpos")             # <<<<<<<<<<<<<<
 * 
 *     def get_camera_xmat(self, name):
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(4, 2765, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2764
 *         return self._cam_xpos[id]
 * 
 *     def get_cam_xpos(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_camera_xpos should be used instead of get_cam_xpos")
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_cam_xpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2767
 *         raise RuntimeError("get_camera_xpos should be used instead of get_cam_xpos")
 * 
 *     def get_camera_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.camera_name2id(name)
 *         return self._cam_xmat[id].reshape((3, 3))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_67get_camera_xmat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_67get_camera_xmat = {"get_camera_xmat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_67get_camera_xmat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_67get_camera_xmat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_camera_xmat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2767, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_camera_xmat") < 0)) __PYX_ERR(4, 2767, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_camera_xmat", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2767, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_camera_xmat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_66get_camera_xmat(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_66get_camera_xmat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_camera_xmat", 1);

  /* "mujoco_py/generated/wrappers.pxi":2768
 * 
 *     def get_camera_xmat(self, name):
 *         id = self._model.camera_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._cam_xmat[id].reshape((3, 3))
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_camera_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2768, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2768, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2769
 *     def get_camera_xmat(self, name):
 *         id = self._model.camera_name2id(name)
 *         return self._cam_xmat[id].reshape((3, 3))             # <<<<<<<<<<<<<<
 * 
 *     def get_cam_xmat(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_cam_xmat), __pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_tuple__20};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2769, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2767
 *         raise RuntimeError("get_camera_xpos should be used instead of get_cam_xpos")
 * 
 *     def get_camera_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.camera_name2id(name)
 *         return self._cam_xmat[id].reshape((3, 3))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_camera_xmat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2771
 *         return self._cam_xmat[id].reshape((3, 3))
 * 
 *     def get_cam_xmat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_camera_xmat should be used instead of get_cam_xmat")
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_69get_cam_xmat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_69get_cam_xmat = {"get_cam_xmat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_69get_cam_xmat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_69get_cam_xmat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_cam_xmat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2771, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_cam_xmat") < 0)) __PYX_ERR(4, 2771, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_cam_xmat", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2771, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_cam_xmat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_68get_cam_xmat(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_68get_cam_xmat(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_cam_xmat", 1);

  /* "mujoco_py/generated/wrappers.pxi":2772
 * 
 *     def get_cam_xmat(self, name):
 *         raise RuntimeError("get_camera_xmat should be used instead of get_cam_xmat")             # <<<<<<<<<<<<<<
 * 
 *     def get_light_xpos(self, name):
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(4, 2772, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2771
 *         return self._cam_xmat[id].reshape((3, 3))
 * 
 *     def get_cam_xmat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_camera_xmat should be used instead of get_cam_xmat")
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_cam_xmat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2774
 *         raise RuntimeError("get_camera_xmat should be used instead of get_cam_xmat")
 * 
 *     def get_light_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.light_name2id(name)
 *         return self._light_xpos[id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_71get_light_xpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_71get_light_xpos = {"get_light_xpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_71get_light_xpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_71get_light_xpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_light_xpos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2774, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_light_xpos") < 0)) __PYX_ERR(4, 2774, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_light_xpos", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2774, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_light_xpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_70get_light_xpos(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_70get_light_xpos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_light_xpos", 1);

  /* "mujoco_py/generated/wrappers.pxi":2775
 * 
 *     def get_light_xpos(self, name):
 *         id = self._model.light_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._light_xpos[id]
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_light_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2776
 *     def get_light_xpos(self, name):
 *         id = self._model.light_name2id(name)
 *         return self._light_xpos[id]             # <<<<<<<<<<<<<<
 * 
 *     def get_light_xdir(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_light_xpos), __pyx_v_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2774
 *         raise RuntimeError("get_camera_xmat should be used instead of get_cam_xmat")
 * 
 *     def get_light_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.light_name2id(name)
 *         return self._light_xpos[id]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_light_xpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2778
 *         return self._light_xpos[id]
 * 
 *     def get_light_xdir(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.light_name2id(name)
 *         return self._light_xdir[id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_73get_light_xdir(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_73get_light_xdir = {"get_light_xdir", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_73get_light_xdir, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_73get_light_xdir(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_light_xdir (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2778, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_light_xdir") < 0)) __PYX_ERR(4, 2778, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_light_xdir", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2778, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_light_xdir", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_72get_light_xdir(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_72get_light_xdir(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_light_xdir", 1);

  /* "mujoco_py/generated/wrappers.pxi":2779
 * 
 *     def get_light_xdir(self, name):
 *         id = self._model.light_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._light_xdir[id]
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_light_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2779, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2779, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2780
 *     def get_light_xdir(self, name):
 *         id = self._model.light_name2id(name)
 *         return self._light_xdir[id]             # <<<<<<<<<<<<<<
 * 
 *     def get_sensor(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_light_xdir), __pyx_v_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2778
 *         return self._light_xpos[id]
 * 
 *     def get_light_xdir(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.light_name2id(name)
 *         return self._light_xdir[id]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_light_xdir", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2782
 *         return self._light_xdir[id]
 * 
 *     def get_sensor(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.sensor_name2id(name)
 *         return self._sensordata[id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_75get_sensor(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_75get_sensor = {"get_sensor", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_75get_sensor, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_75get_sensor(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_sensor (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2782, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_sensor") < 0)) __PYX_ERR(4, 2782, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_sensor", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2782, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_sensor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_74get_sensor(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_74get_sensor(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_sensor", 1);

  /* "mujoco_py/generated/wrappers.pxi":2783
 * 
 *     def get_sensor(self, name):
 *         id = self._model.sensor_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._sensordata[id]
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_sensor_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2783, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2783, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2784
 *     def get_sensor(self, name):
 *         id = self._model.sensor_name2id(name)
 *         return self._sensordata[id]             # <<<<<<<<<<<<<<
 * 
 *     def get_sensordata(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_sensordata), __pyx_v_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2782
 *         return self._light_xdir[id]
 * 
 *     def get_sensor(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.sensor_name2id(name)
 *         return self._sensordata[id]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_sensor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2786
 *         return self._sensordata[id]
 * 
 *     def get_sensordata(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_sensor should be used instead of get_sensordata")
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_77get_sensordata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_77get_sensordata = {"get_sensordata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_77get_sensordata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_77get_sensordata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_sensordata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2786, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_sensordata") < 0)) __PYX_ERR(4, 2786, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_sensordata", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2786, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_sensordata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_76get_sensordata(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_76get_sensordata(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_sensordata", 1);

  /* "mujoco_py/generated/wrappers.pxi":2787
 * 
 *     def get_sensordata(self, name):
 *         raise RuntimeError("get_sensor should be used instead of get_sensordata")             # <<<<<<<<<<<<<<
 * 
 *     def get_userdata(self, name):
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(4, 2787, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2786
 *         return self._sensordata[id]
 * 
 *     def get_sensordata(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_sensor should be used instead of get_sensordata")
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_sensordata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2789
 *         raise RuntimeError("get_sensor should be used instead of get_sensordata")
 * 
 *     def get_userdata(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.userdata_name2id(name)
 *         return self._userdata[id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_79get_userdata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_79get_userdata = {"get_userdata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_79get_userdata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_79get_userdata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_userdata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2789, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_userdata") < 0)) __PYX_ERR(4, 2789, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_userdata", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2789, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_userdata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_78get_userdata(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_78get_userdata(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_userdata", 1);

  /* "mujoco_py/generated/wrappers.pxi":2790
 * 
 *     def get_userdata(self, name):
 *         id = self._model.userdata_name2id(name)             # <<<<<<<<<<<<<<
 *         return self._userdata[id]
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_userdata_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2790, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2791
 *     def get_userdata(self, name):
 *         id = self._model.userdata_name2id(name)
 *         return self._userdata[id]             # <<<<<<<<<<<<<<
 * 
 *     def get_mocap_pos(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->_userdata), __pyx_v_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2791, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2789
 *         raise RuntimeError("get_sensor should be used instead of get_sensordata")
 * 
 *     def get_userdata(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.userdata_name2id(name)
 *         return self._userdata[id]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_userdata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2793
 *         return self._userdata[id]
 * 
 *     def get_mocap_pos(self, name):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_81get_mocap_pos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_81get_mocap_pos = {"get_mocap_pos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_81get_mocap_pos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_81get_mocap_pos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_mocap_pos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2793, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_mocap_pos") < 0)) __PYX_ERR(4, 2793, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_mocap_pos", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2793, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_mocap_pos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_80get_mocap_pos(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_80get_mocap_pos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_body_id = NULL;
  PyObject *__pyx_v_mocap_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_mocap_pos", 1);

  /* "mujoco_py/generated/wrappers.pxi":2794
 * 
 *     def get_mocap_pos(self, name):
 *         body_id = self._model.body_name2id(name)             # <<<<<<<<<<<<<<
 *         mocap_id = self._model.body_mocapid[body_id]
 *         return self.mocap_pos[mocap_id]
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2794, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_body_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2795
 *     def get_mocap_pos(self, name):
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]             # <<<<<<<<<<<<<<
 *         return self.mocap_pos[mocap_id]
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_mocapid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_body_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_mocap_id = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2796
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 *         return self.mocap_pos[mocap_id]             # <<<<<<<<<<<<<<
 * 
 *     def set_mocap_pos(self, name, value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mocap_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2796, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_mocap_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2796, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2793
 *         return self._userdata[id]
 * 
 *     def get_mocap_pos(self, name):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_mocap_pos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_body_id);
  __Pyx_XDECREF(__pyx_v_mocap_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2798
 *         return self.mocap_pos[mocap_id]
 * 
 *     def set_mocap_pos(self, name, value):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_83set_mocap_pos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_83set_mocap_pos = {"set_mocap_pos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_83set_mocap_pos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_83set_mocap_pos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_value = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_mocap_pos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_value,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2798, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_value)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2798, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("set_mocap_pos", 1, 2, 2, 1); __PYX_ERR(4, 2798, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_mocap_pos") < 0)) __PYX_ERR(4, 2798, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_name = values[0];
    __pyx_v_value = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_mocap_pos", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 2798, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.set_mocap_pos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_82set_mocap_pos(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name, __pyx_v_value);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_82set_mocap_pos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value) {
  PyObject *__pyx_v_body_id = NULL;
  PyObject *__pyx_v_mocap_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_mocap_pos", 1);

  /* "mujoco_py/generated/wrappers.pxi":2799
 * 
 *     def set_mocap_pos(self, name, value):
 *         body_id = self._model.body_name2id(name)             # <<<<<<<<<<<<<<
 *         mocap_id = self._model.body_mocapid[body_id]
 *         self.mocap_pos[mocap_id] = value
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2799, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_body_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2800
 *     def set_mocap_pos(self, name, value):
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]             # <<<<<<<<<<<<<<
 *         self.mocap_pos[mocap_id] = value
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_mocapid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_body_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_mocap_id = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2801
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 *         self.mocap_pos[mocap_id] = value             # <<<<<<<<<<<<<<
 * 
 *     def get_mocap_quat(self, name):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mocap_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_v_mocap_id, __pyx_v_value) < 0))) __PYX_ERR(4, 2801, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2798
 *         return self.mocap_pos[mocap_id]
 * 
 *     def set_mocap_pos(self, name, value):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.set_mocap_pos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_body_id);
  __Pyx_XDECREF(__pyx_v_mocap_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2803
 *         self.mocap_pos[mocap_id] = value
 * 
 *     def get_mocap_quat(self, name):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_85get_mocap_quat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_85get_mocap_quat = {"get_mocap_quat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_85get_mocap_quat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_85get_mocap_quat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_mocap_quat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2803, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_mocap_quat") < 0)) __PYX_ERR(4, 2803, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_mocap_quat", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2803, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_mocap_quat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_84get_mocap_quat(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_84get_mocap_quat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_body_id = NULL;
  PyObject *__pyx_v_mocap_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_mocap_quat", 1);

  /* "mujoco_py/generated/wrappers.pxi":2804
 * 
 *     def get_mocap_quat(self, name):
 *         body_id = self._model.body_name2id(name)             # <<<<<<<<<<<<<<
 *         mocap_id = self._model.body_mocapid[body_id]
 *         return self.mocap_quat[mocap_id]
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2804, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_body_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2805
 *     def get_mocap_quat(self, name):
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]             # <<<<<<<<<<<<<<
 *         return self.mocap_quat[mocap_id]
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_mocapid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2805, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_body_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2805, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_mocap_id = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2806
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 *         return self.mocap_quat[mocap_id]             # <<<<<<<<<<<<<<
 * 
 *     def set_mocap_quat(self, name, value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mocap_quat); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_mocap_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2803
 *         self.mocap_pos[mocap_id] = value
 * 
 *     def get_mocap_quat(self, name):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_mocap_quat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_body_id);
  __Pyx_XDECREF(__pyx_v_mocap_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2808
 *         return self.mocap_quat[mocap_id]
 * 
 *     def set_mocap_quat(self, name, value):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_87set_mocap_quat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_87set_mocap_quat = {"set_mocap_quat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_87set_mocap_quat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_87set_mocap_quat(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_value = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_mocap_quat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_value,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2808, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_value)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2808, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("set_mocap_quat", 1, 2, 2, 1); __PYX_ERR(4, 2808, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_mocap_quat") < 0)) __PYX_ERR(4, 2808, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_name = values[0];
    __pyx_v_value = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_mocap_quat", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 2808, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.set_mocap_quat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_86set_mocap_quat(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name, __pyx_v_value);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_86set_mocap_quat(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value) {
  PyObject *__pyx_v_body_id = NULL;
  PyObject *__pyx_v_mocap_id = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_mocap_quat", 1);

  /* "mujoco_py/generated/wrappers.pxi":2809
 * 
 *     def set_mocap_quat(self, name, value):
 *         body_id = self._model.body_name2id(name)             # <<<<<<<<<<<<<<
 *         mocap_id = self._model.body_mocapid[body_id]
 *         self.mocap_quat[mocap_id] = value
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_name2id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2809, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2809, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_body_id = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2810
 *     def set_mocap_quat(self, name, value):
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]             # <<<<<<<<<<<<<<
 *         self.mocap_quat[mocap_id] = value
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_body_mocapid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_body_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_mocap_id = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2811
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 *         self.mocap_quat[mocap_id] = value             # <<<<<<<<<<<<<<
 * 
 *     def get_joint_qpos(self, name):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mocap_quat); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2811, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_v_mocap_id, __pyx_v_value) < 0))) __PYX_ERR(4, 2811, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2808
 *         return self.mocap_quat[mocap_id]
 * 
 *     def set_mocap_quat(self, name, value):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.set_mocap_quat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_body_id);
  __Pyx_XDECREF(__pyx_v_mocap_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2813
 *         self.mocap_quat[mocap_id] = value
 * 
 *     def get_joint_qpos(self, name):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qpos_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_89get_joint_qpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_89get_joint_qpos = {"get_joint_qpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_89get_joint_qpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_89get_joint_qpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_joint_qpos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2813, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_joint_qpos") < 0)) __PYX_ERR(4, 2813, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_joint_qpos", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2813, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_joint_qpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_88get_joint_qpos(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_88get_joint_qpos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_addr = NULL;
  PyObject *__pyx_v_start_i = NULL;
  PyObject *__pyx_v_end_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_joint_qpos", 1);

  /* "mujoco_py/generated/wrappers.pxi":2814
 * 
 *     def get_joint_qpos(self, name):
 *         addr = self._model.get_joint_qpos_addr(name)             # <<<<<<<<<<<<<<
 *         if isinstance(addr, (int, np.int32, np.int64)):
 *             return self.qpos[addr]
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_get_joint_qpos_addr); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2814, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2814, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_addr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2815
 *     def get_joint_qpos(self, name):
 *         addr = self._model.get_joint_qpos_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):             # <<<<<<<<<<<<<<
 *             return self.qpos[addr]
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int32); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int64); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = PyInt_Check(__pyx_v_addr); 
  if (!__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = PyObject_IsInstance(__pyx_v_addr, __pyx_t_2); 
  if (!__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = PyObject_IsInstance(__pyx_v_addr, __pyx_t_3); 
  __pyx_t_5 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_5) {

    /* "mujoco_py/generated/wrappers.pxi":2816
 *         addr = self._model.get_joint_qpos_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 *             return self.qpos[addr]             # <<<<<<<<<<<<<<
 *         else:
 *             start_i, end_i = addr
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qpos); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2816, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_addr); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2816, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "mujoco_py/generated/wrappers.pxi":2815
 *     def get_joint_qpos(self, name):
 *         addr = self._model.get_joint_qpos_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):             # <<<<<<<<<<<<<<
 *             return self.qpos[addr]
 *         else:
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":2818
 *             return self.qpos[addr]
 *         else:
 *             start_i, end_i = addr             # <<<<<<<<<<<<<<
 *             return self.qpos[start_i:end_i]
 * 
 */
  /*else*/ {
    if ((likely(PyTuple_CheckExact(__pyx_v_addr))) || (PyList_CheckExact(__pyx_v_addr))) {
      PyObject* sequence = __pyx_v_addr;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(4, 2818, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_2 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      #else
      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2818, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2818, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      #endif
    } else {
      Py_ssize_t index = -1;
      __pyx_t_1 = PyObject_GetIter(__pyx_v_addr); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2818, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1);
      index = 0; __pyx_t_3 = __pyx_t_7(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      index = 1; __pyx_t_2 = __pyx_t_7(__pyx_t_1); if (unlikely(!__pyx_t_2)) goto __pyx_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_1), 2) < 0) __PYX_ERR(4, 2818, __pyx_L1_error)
      __pyx_t_7 = NULL;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L8_unpacking_done;
      __pyx_L7_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_7 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(4, 2818, __pyx_L1_error)
      __pyx_L8_unpacking_done:;
    }
    __pyx_v_start_i = __pyx_t_3;
    __pyx_t_3 = 0;
    __pyx_v_end_i = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "mujoco_py/generated/wrappers.pxi":2819
 *         else:
 *             start_i, end_i = addr
 *             return self.qpos[start_i:end_i]             # <<<<<<<<<<<<<<
 * 
 *     def set_joint_qpos(self, name, value):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qpos); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2819, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_t_2, 0, 0, &__pyx_v_start_i, &__pyx_v_end_i, NULL, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2819, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":2813
 *         self.mocap_quat[mocap_id] = value
 * 
 *     def get_joint_qpos(self, name):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qpos_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_joint_qpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_addr);
  __Pyx_XDECREF(__pyx_v_start_i);
  __Pyx_XDECREF(__pyx_v_end_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2821
 *             return self.qpos[start_i:end_i]
 * 
 *     def set_joint_qpos(self, name, value):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qpos_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_91set_joint_qpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_91set_joint_qpos = {"set_joint_qpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_91set_joint_qpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_91set_joint_qpos(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_value = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_joint_qpos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_value,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2821, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_value)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2821, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("set_joint_qpos", 1, 2, 2, 1); __PYX_ERR(4, 2821, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_joint_qpos") < 0)) __PYX_ERR(4, 2821, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_name = values[0];
    __pyx_v_value = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_joint_qpos", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 2821, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.set_joint_qpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_90set_joint_qpos(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name, __pyx_v_value);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_90set_joint_qpos(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value) {
  PyObject *__pyx_v_addr = NULL;
  PyObject *__pyx_v_start_i = NULL;
  PyObject *__pyx_v_end_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  Py_ssize_t __pyx_t_8;
  Py_UCS4 __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_joint_qpos", 0);
  __Pyx_INCREF(__pyx_v_value);

  /* "mujoco_py/generated/wrappers.pxi":2822
 * 
 *     def set_joint_qpos(self, name, value):
 *         addr = self._model.get_joint_qpos_addr(name)             # <<<<<<<<<<<<<<
 *         if isinstance(addr, (int, np.int32, np.int64)):
 *             self.qpos[addr] = value
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_get_joint_qpos_addr); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2822, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_addr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2823
 *     def set_joint_qpos(self, name, value):
 *         addr = self._model.get_joint_qpos_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):             # <<<<<<<<<<<<<<
 *             self.qpos[addr] = value
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int32); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int64); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = PyInt_Check(__pyx_v_addr); 
  if (!__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = PyObject_IsInstance(__pyx_v_addr, __pyx_t_2); 
  if (!__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = PyObject_IsInstance(__pyx_v_addr, __pyx_t_3); 
  __pyx_t_5 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_5) {

    /* "mujoco_py/generated/wrappers.pxi":2824
 *         addr = self._model.get_joint_qpos_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 *             self.qpos[addr] = value             # <<<<<<<<<<<<<<
 *         else:
 *             start_i, end_i = addr
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qpos); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2824, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_v_addr, __pyx_v_value) < 0))) __PYX_ERR(4, 2824, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "mujoco_py/generated/wrappers.pxi":2823
 *     def set_joint_qpos(self, name, value):
 *         addr = self._model.get_joint_qpos_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):             # <<<<<<<<<<<<<<
 *             self.qpos[addr] = value
 *         else:
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/generated/wrappers.pxi":2826
 *             self.qpos[addr] = value
 *         else:
 *             start_i, end_i = addr             # <<<<<<<<<<<<<<
 *             value = np.array(value)
 *             assert value.shape == (end_i - start_i,), (
 */
  /*else*/ {
    if ((likely(PyTuple_CheckExact(__pyx_v_addr))) || (PyList_CheckExact(__pyx_v_addr))) {
      PyObject* sequence = __pyx_v_addr;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(4, 2826, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      #else
      __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2826, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2826, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      #endif
    } else {
      Py_ssize_t index = -1;
      __pyx_t_1 = PyObject_GetIter(__pyx_v_addr); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2826, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1);
      index = 0; __pyx_t_2 = __pyx_t_7(__pyx_t_1); if (unlikely(!__pyx_t_2)) goto __pyx_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      index = 1; __pyx_t_3 = __pyx_t_7(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_1), 2) < 0) __PYX_ERR(4, 2826, __pyx_L1_error)
      __pyx_t_7 = NULL;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L8_unpacking_done;
      __pyx_L7_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_7 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(4, 2826, __pyx_L1_error)
      __pyx_L8_unpacking_done:;
    }
    __pyx_v_start_i = __pyx_t_2;
    __pyx_t_2 = 0;
    __pyx_v_end_i = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "mujoco_py/generated/wrappers.pxi":2827
 *         else:
 *             start_i, end_i = addr
 *             value = np.array(value)             # <<<<<<<<<<<<<<
 *             assert value.shape == (end_i - start_i,), (
 *                 "Value has incorrect shape %s: %s" % (name, value))
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2827, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2827, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_value};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2827, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "mujoco_py/generated/wrappers.pxi":2828
 *             start_i, end_i = addr
 *             value = np.array(value)
 *             assert value.shape == (end_i - start_i,), (             # <<<<<<<<<<<<<<
 *                 "Value has incorrect shape %s: %s" % (name, value))
 *             self.qpos[start_i:end_i] = value
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    if (unlikely(__pyx_assertions_enabled())) {
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2828, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = PyNumber_Subtract(__pyx_v_end_i, __pyx_v_start_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2828, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2828, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_1);
      if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(4, 2828, __pyx_L1_error);
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2828, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(4, 2828, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_5)) {

        /* "mujoco_py/generated/wrappers.pxi":2829
 *             value = np.array(value)
 *             assert value.shape == (end_i - start_i,), (
 *                 "Value has incorrect shape %s: %s" % (name, value))             # <<<<<<<<<<<<<<
 *             self.qpos[start_i:end_i] = value
 * 
 */
        __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2829, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = 0;
        __pyx_t_9 = 127;
        __Pyx_INCREF(__pyx_kp_u_Value_has_incorrect_shape);
        __pyx_t_8 += 26;
        __Pyx_GIVEREF(__pyx_kp_u_Value_has_incorrect_shape);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Value_has_incorrect_shape);
        __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2829, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_9 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_9) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_9;
        __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
        __pyx_t_2 = 0;
        __Pyx_INCREF(__pyx_kp_u_);
        __pyx_t_8 += 2;
        __Pyx_GIVEREF(__pyx_kp_u_);
        PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_);
        __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_value), __pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2829, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_9 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_9) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_9;
        __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_2);
        __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2829, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_t_2, 0, 0);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __PYX_ERR(4, 2828, __pyx_L1_error)
      }
    }
    #else
    if ((1)); else __PYX_ERR(4, 2828, __pyx_L1_error)
    #endif

    /* "mujoco_py/generated/wrappers.pxi":2830
 *             assert value.shape == (end_i - start_i,), (
 *                 "Value has incorrect shape %s: %s" % (name, value))
 *             self.qpos[start_i:end_i] = value             # <<<<<<<<<<<<<<
 * 
 *     def get_joint_qvel(self, name):
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qpos); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2830, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetSlice(__pyx_t_2, __pyx_v_value, 0, 0, &__pyx_v_start_i, &__pyx_v_end_i, NULL, 0, 0, 1) < 0) __PYX_ERR(4, 2830, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L3:;

  /* "mujoco_py/generated/wrappers.pxi":2821
 *             return self.qpos[start_i:end_i]
 * 
 *     def set_joint_qpos(self, name, value):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qpos_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.set_joint_qpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_addr);
  __Pyx_XDECREF(__pyx_v_start_i);
  __Pyx_XDECREF(__pyx_v_end_i);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2832
 *             self.qpos[start_i:end_i] = value
 * 
 *     def get_joint_qvel(self, name):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qvel_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_93get_joint_qvel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_93get_joint_qvel = {"get_joint_qvel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_93get_joint_qvel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_93get_joint_qvel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_joint_qvel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2832, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_joint_qvel") < 0)) __PYX_ERR(4, 2832, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_joint_qvel", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2832, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_joint_qvel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_92get_joint_qvel(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_92get_joint_qvel(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_addr = NULL;
  PyObject *__pyx_v_start_i = NULL;
  PyObject *__pyx_v_end_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_joint_qvel", 1);

  /* "mujoco_py/generated/wrappers.pxi":2833
 * 
 *     def get_joint_qvel(self, name):
 *         addr = self._model.get_joint_qvel_addr(name)             # <<<<<<<<<<<<<<
 *         if isinstance(addr, (int, np.int32, np.int64)):
 *             return self.qvel[addr]
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_get_joint_qvel_addr); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2833, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_addr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2834
 *     def get_joint_qvel(self, name):
 *         addr = self._model.get_joint_qvel_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):             # <<<<<<<<<<<<<<
 *             return self.qvel[addr]
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int32); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int64); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = PyInt_Check(__pyx_v_addr); 
  if (!__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = PyObject_IsInstance(__pyx_v_addr, __pyx_t_2); 
  if (!__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = PyObject_IsInstance(__pyx_v_addr, __pyx_t_3); 
  __pyx_t_5 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_5) {

    /* "mujoco_py/generated/wrappers.pxi":2835
 *         addr = self._model.get_joint_qvel_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 *             return self.qvel[addr]             # <<<<<<<<<<<<<<
 *         else:
 *             start_i, end_i = addr
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2835, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_addr); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2835, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "mujoco_py/generated/wrappers.pxi":2834
 *     def get_joint_qvel(self, name):
 *         addr = self._model.get_joint_qvel_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):             # <<<<<<<<<<<<<<
 *             return self.qvel[addr]
 *         else:
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":2837
 *             return self.qvel[addr]
 *         else:
 *             start_i, end_i = addr             # <<<<<<<<<<<<<<
 *             return self.qvel[start_i:end_i]
 * 
 */
  /*else*/ {
    if ((likely(PyTuple_CheckExact(__pyx_v_addr))) || (PyList_CheckExact(__pyx_v_addr))) {
      PyObject* sequence = __pyx_v_addr;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(4, 2837, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_2 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      #else
      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2837, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2837, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      #endif
    } else {
      Py_ssize_t index = -1;
      __pyx_t_1 = PyObject_GetIter(__pyx_v_addr); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2837, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1);
      index = 0; __pyx_t_3 = __pyx_t_7(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      index = 1; __pyx_t_2 = __pyx_t_7(__pyx_t_1); if (unlikely(!__pyx_t_2)) goto __pyx_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_1), 2) < 0) __PYX_ERR(4, 2837, __pyx_L1_error)
      __pyx_t_7 = NULL;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L8_unpacking_done;
      __pyx_L7_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_7 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(4, 2837, __pyx_L1_error)
      __pyx_L8_unpacking_done:;
    }
    __pyx_v_start_i = __pyx_t_3;
    __pyx_t_3 = 0;
    __pyx_v_end_i = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "mujoco_py/generated/wrappers.pxi":2838
 *         else:
 *             start_i, end_i = addr
 *             return self.qvel[start_i:end_i]             # <<<<<<<<<<<<<<
 * 
 *     def set_joint_qvel(self, name, value):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2838, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_t_2, 0, 0, &__pyx_v_start_i, &__pyx_v_end_i, NULL, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2838, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":2832
 *             self.qpos[start_i:end_i] = value
 * 
 *     def get_joint_qvel(self, name):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qvel_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.get_joint_qvel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_addr);
  __Pyx_XDECREF(__pyx_v_start_i);
  __Pyx_XDECREF(__pyx_v_end_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2840
 *             return self.qvel[start_i:end_i]
 * 
 *     def set_joint_qvel(self, name, value):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qvel_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_95set_joint_qvel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_95set_joint_qvel = {"set_joint_qvel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_95set_joint_qvel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_95set_joint_qvel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_value = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_joint_qvel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_value,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2840, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_value)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2840, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("set_joint_qvel", 1, 2, 2, 1); __PYX_ERR(4, 2840, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_joint_qvel") < 0)) __PYX_ERR(4, 2840, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_name = values[0];
    __pyx_v_value = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_joint_qvel", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 2840, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.set_joint_qvel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_94set_joint_qvel(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v_name, __pyx_v_value);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_94set_joint_qvel(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value) {
  PyObject *__pyx_v_addr = NULL;
  PyObject *__pyx_v_start_i = NULL;
  PyObject *__pyx_v_end_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  Py_ssize_t __pyx_t_8;
  Py_UCS4 __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_joint_qvel", 0);
  __Pyx_INCREF(__pyx_v_value);

  /* "mujoco_py/generated/wrappers.pxi":2841
 * 
 *     def set_joint_qvel(self, name, value):
 *         addr = self._model.get_joint_qvel_addr(name)             # <<<<<<<<<<<<<<
 *         if isinstance(addr, (int, np.int32, np.int64)):
 *             self.qvel[addr] = value
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_get_joint_qvel_addr); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2841, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_addr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2842
 *     def set_joint_qvel(self, name, value):
 *         addr = self._model.get_joint_qvel_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):             # <<<<<<<<<<<<<<
 *             self.qvel[addr] = value
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int32); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int64); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = PyInt_Check(__pyx_v_addr); 
  if (!__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = PyObject_IsInstance(__pyx_v_addr, __pyx_t_2); 
  if (!__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = PyObject_IsInstance(__pyx_v_addr, __pyx_t_3); 
  __pyx_t_5 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_5) {

    /* "mujoco_py/generated/wrappers.pxi":2843
 *         addr = self._model.get_joint_qvel_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 *             self.qvel[addr] = value             # <<<<<<<<<<<<<<
 *         else:
 *             start_i, end_i = addr
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2843, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_v_addr, __pyx_v_value) < 0))) __PYX_ERR(4, 2843, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "mujoco_py/generated/wrappers.pxi":2842
 *     def set_joint_qvel(self, name, value):
 *         addr = self._model.get_joint_qvel_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):             # <<<<<<<<<<<<<<
 *             self.qvel[addr] = value
 *         else:
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/generated/wrappers.pxi":2845
 *             self.qvel[addr] = value
 *         else:
 *             start_i, end_i = addr             # <<<<<<<<<<<<<<
 *             value = np.array(value)
 *             assert value.shape == (end_i - start_i,), (
 */
  /*else*/ {
    if ((likely(PyTuple_CheckExact(__pyx_v_addr))) || (PyList_CheckExact(__pyx_v_addr))) {
      PyObject* sequence = __pyx_v_addr;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(4, 2845, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      #else
      __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2845, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2845, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      #endif
    } else {
      Py_ssize_t index = -1;
      __pyx_t_1 = PyObject_GetIter(__pyx_v_addr); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2845, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1);
      index = 0; __pyx_t_2 = __pyx_t_7(__pyx_t_1); if (unlikely(!__pyx_t_2)) goto __pyx_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      index = 1; __pyx_t_3 = __pyx_t_7(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_1), 2) < 0) __PYX_ERR(4, 2845, __pyx_L1_error)
      __pyx_t_7 = NULL;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L8_unpacking_done;
      __pyx_L7_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_7 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(4, 2845, __pyx_L1_error)
      __pyx_L8_unpacking_done:;
    }
    __pyx_v_start_i = __pyx_t_2;
    __pyx_t_2 = 0;
    __pyx_v_end_i = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "mujoco_py/generated/wrappers.pxi":2846
 *         else:
 *             start_i, end_i = addr
 *             value = np.array(value)             # <<<<<<<<<<<<<<
 *             assert value.shape == (end_i - start_i,), (
 *                 "Value has incorrect shape %s: %s" % (name, value))
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_value};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2846, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "mujoco_py/generated/wrappers.pxi":2847
 *             start_i, end_i = addr
 *             value = np.array(value)
 *             assert value.shape == (end_i - start_i,), (             # <<<<<<<<<<<<<<
 *                 "Value has incorrect shape %s: %s" % (name, value))
 *             self.qvel[start_i:end_i] = value
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    if (unlikely(__pyx_assertions_enabled())) {
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2847, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = PyNumber_Subtract(__pyx_v_end_i, __pyx_v_start_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2847, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2847, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_1);
      if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(4, 2847, __pyx_L1_error);
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2847, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(4, 2847, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_5)) {

        /* "mujoco_py/generated/wrappers.pxi":2848
 *             value = np.array(value)
 *             assert value.shape == (end_i - start_i,), (
 *                 "Value has incorrect shape %s: %s" % (name, value))             # <<<<<<<<<<<<<<
 *             self.qvel[start_i:end_i] = value
 * 
 */
        __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2848, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = 0;
        __pyx_t_9 = 127;
        __Pyx_INCREF(__pyx_kp_u_Value_has_incorrect_shape);
        __pyx_t_8 += 26;
        __Pyx_GIVEREF(__pyx_kp_u_Value_has_incorrect_shape);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Value_has_incorrect_shape);
        __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2848, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_9 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_9) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_9;
        __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
        __pyx_t_2 = 0;
        __Pyx_INCREF(__pyx_kp_u_);
        __pyx_t_8 += 2;
        __Pyx_GIVEREF(__pyx_kp_u_);
        PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_);
        __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_value), __pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2848, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_9 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_9) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_9;
        __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_2);
        __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2848, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_t_2, 0, 0);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __PYX_ERR(4, 2847, __pyx_L1_error)
      }
    }
    #else
    if ((1)); else __PYX_ERR(4, 2847, __pyx_L1_error)
    #endif

    /* "mujoco_py/generated/wrappers.pxi":2849
 *             assert value.shape == (end_i - start_i,), (
 *                 "Value has incorrect shape %s: %s" % (name, value))
 *             self.qvel[start_i:end_i] = value             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2849, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetSlice(__pyx_t_2, __pyx_v_value, 0, 0, &__pyx_v_start_i, &__pyx_v_end_i, NULL, 0, 0, 1) < 0) __PYX_ERR(4, 2849, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L3:;

  /* "mujoco_py/generated/wrappers.pxi":2840
 *             return self.qvel[start_i:end_i]
 * 
 *     def set_joint_qvel(self, name, value):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qvel_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.set_joint_qvel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_addr);
  __Pyx_XDECREF(__pyx_v_start_i);
  __Pyx_XDECREF(__pyx_v_end_i);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2852
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2853
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjData* p, PyMjModel model):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2853, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2852
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2855
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjData* p, PyMjModel model):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_8PyMjData__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, mjData *__pyx_v_p, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_model) {
  PyObject *__pyx_8genexpr2__pyx_v_i = NULL;
  int __pyx_8genexpr3__pyx_v_i;
  int __pyx_8genexpr4__pyx_v_i;
  long __pyx_8genexpr5__pyx_v_i;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  Py_ssize_t __pyx_t_8;
  int __pyx_t_9;
  int __pyx_t_10;
  long __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":2857
 *     cdef void _set(self, mjData* p, PyMjModel model):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 *         self._model = model
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":2858
 * 
 *         self.ptr = p
 *         self._model = model             # <<<<<<<<<<<<<<
 * 
 *         self._qpos = _wrap_mjtNum_1d(p.qpos, model.nq)
 */
  __Pyx_INCREF((PyObject *)__pyx_v_model);
  __Pyx_GIVEREF((PyObject *)__pyx_v_model);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_model);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_model);
  __pyx_v_self->_model = __pyx_v_model;

  /* "mujoco_py/generated/wrappers.pxi":2860
 *         self._model = model
 * 
 *         self._qpos = _wrap_mjtNum_1d(p.qpos, model.nq)             # <<<<<<<<<<<<<<
 *         self._qvel = _wrap_mjtNum_1d(p.qvel, model.nv)
 *         self._act = _wrap_mjtNum_1d(p.act, model.na)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nq); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2860, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qpos, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qpos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qpos);
  __pyx_v_self->_qpos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2861
 * 
 *         self._qpos = _wrap_mjtNum_1d(p.qpos, model.nq)
 *         self._qvel = _wrap_mjtNum_1d(p.qvel, model.nv)             # <<<<<<<<<<<<<<
 *         self._act = _wrap_mjtNum_1d(p.act, model.na)
 *         self._qacc_warmstart = _wrap_mjtNum_1d(p.qacc_warmstart, model.nv)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2861, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qvel, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qvel);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qvel);
  __pyx_v_self->_qvel = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2862
 *         self._qpos = _wrap_mjtNum_1d(p.qpos, model.nq)
 *         self._qvel = _wrap_mjtNum_1d(p.qvel, model.nv)
 *         self._act = _wrap_mjtNum_1d(p.act, model.na)             # <<<<<<<<<<<<<<
 *         self._qacc_warmstart = _wrap_mjtNum_1d(p.qacc_warmstart, model.nv)
 *         self._ctrl = _wrap_mjtNum_1d(p.ctrl, model.nu)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_na); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2862, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->act, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_act);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_act);
  __pyx_v_self->_act = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2863
 *         self._qvel = _wrap_mjtNum_1d(p.qvel, model.nv)
 *         self._act = _wrap_mjtNum_1d(p.act, model.na)
 *         self._qacc_warmstart = _wrap_mjtNum_1d(p.qacc_warmstart, model.nv)             # <<<<<<<<<<<<<<
 *         self._ctrl = _wrap_mjtNum_1d(p.ctrl, model.nu)
 *         self._qfrc_applied = _wrap_mjtNum_1d(p.qfrc_applied, model.nv)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2863, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qacc_warmstart, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qacc_warmstart);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qacc_warmstart);
  __pyx_v_self->_qacc_warmstart = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2864
 *         self._act = _wrap_mjtNum_1d(p.act, model.na)
 *         self._qacc_warmstart = _wrap_mjtNum_1d(p.qacc_warmstart, model.nv)
 *         self._ctrl = _wrap_mjtNum_1d(p.ctrl, model.nu)             # <<<<<<<<<<<<<<
 *         self._qfrc_applied = _wrap_mjtNum_1d(p.qfrc_applied, model.nv)
 *         self._xfrc_applied = _wrap_mjtNum_2d(p.xfrc_applied, model.nbody, 6)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nu); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2864, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2864, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->ctrl, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2864, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_ctrl);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_ctrl);
  __pyx_v_self->_ctrl = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2865
 *         self._qacc_warmstart = _wrap_mjtNum_1d(p.qacc_warmstart, model.nv)
 *         self._ctrl = _wrap_mjtNum_1d(p.ctrl, model.nu)
 *         self._qfrc_applied = _wrap_mjtNum_1d(p.qfrc_applied, model.nv)             # <<<<<<<<<<<<<<
 *         self._xfrc_applied = _wrap_mjtNum_2d(p.xfrc_applied, model.nbody, 6)
 *         self._qacc = _wrap_mjtNum_1d(p.qacc, model.nv)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2865, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2865, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qfrc_applied, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2865, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qfrc_applied);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qfrc_applied);
  __pyx_v_self->_qfrc_applied = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2866
 *         self._ctrl = _wrap_mjtNum_1d(p.ctrl, model.nu)
 *         self._qfrc_applied = _wrap_mjtNum_1d(p.qfrc_applied, model.nv)
 *         self._xfrc_applied = _wrap_mjtNum_2d(p.xfrc_applied, model.nbody, 6)             # <<<<<<<<<<<<<<
 *         self._qacc = _wrap_mjtNum_1d(p.qacc, model.nv)
 *         self._act_dot = _wrap_mjtNum_1d(p.act_dot, model.na)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2866, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->xfrc_applied, __pyx_t_2, 6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_xfrc_applied);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_xfrc_applied);
  __pyx_v_self->_xfrc_applied = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2867
 *         self._qfrc_applied = _wrap_mjtNum_1d(p.qfrc_applied, model.nv)
 *         self._xfrc_applied = _wrap_mjtNum_2d(p.xfrc_applied, model.nbody, 6)
 *         self._qacc = _wrap_mjtNum_1d(p.qacc, model.nv)             # <<<<<<<<<<<<<<
 *         self._act_dot = _wrap_mjtNum_1d(p.act_dot, model.na)
 *         self._mocap_pos = _wrap_mjtNum_2d(p.mocap_pos, model.nmocap, 3)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2867, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qacc, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qacc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qacc);
  __pyx_v_self->_qacc = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2868
 *         self._xfrc_applied = _wrap_mjtNum_2d(p.xfrc_applied, model.nbody, 6)
 *         self._qacc = _wrap_mjtNum_1d(p.qacc, model.nv)
 *         self._act_dot = _wrap_mjtNum_1d(p.act_dot, model.na)             # <<<<<<<<<<<<<<
 *         self._mocap_pos = _wrap_mjtNum_2d(p.mocap_pos, model.nmocap, 3)
 *         self._mocap_quat = _wrap_mjtNum_2d(p.mocap_quat, model.nmocap, 4)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_na); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->act_dot, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_act_dot);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_act_dot);
  __pyx_v_self->_act_dot = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2869
 *         self._qacc = _wrap_mjtNum_1d(p.qacc, model.nv)
 *         self._act_dot = _wrap_mjtNum_1d(p.act_dot, model.na)
 *         self._mocap_pos = _wrap_mjtNum_2d(p.mocap_pos, model.nmocap, 3)             # <<<<<<<<<<<<<<
 *         self._mocap_quat = _wrap_mjtNum_2d(p.mocap_quat, model.nmocap, 4)
 *         self._userdata = _wrap_mjtNum_1d(p.userdata, model.nuserdata)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nmocap); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2869, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->mocap_pos, __pyx_t_2, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mocap_pos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mocap_pos);
  __pyx_v_self->_mocap_pos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2870
 *         self._act_dot = _wrap_mjtNum_1d(p.act_dot, model.na)
 *         self._mocap_pos = _wrap_mjtNum_2d(p.mocap_pos, model.nmocap, 3)
 *         self._mocap_quat = _wrap_mjtNum_2d(p.mocap_quat, model.nmocap, 4)             # <<<<<<<<<<<<<<
 *         self._userdata = _wrap_mjtNum_1d(p.userdata, model.nuserdata)
 *         self._sensordata = _wrap_mjtNum_1d(p.sensordata, model.nsensordata)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nmocap); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2870, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2870, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->mocap_quat, __pyx_t_2, 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2870, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mocap_quat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mocap_quat);
  __pyx_v_self->_mocap_quat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2871
 *         self._mocap_pos = _wrap_mjtNum_2d(p.mocap_pos, model.nmocap, 3)
 *         self._mocap_quat = _wrap_mjtNum_2d(p.mocap_quat, model.nmocap, 4)
 *         self._userdata = _wrap_mjtNum_1d(p.userdata, model.nuserdata)             # <<<<<<<<<<<<<<
 *         self._sensordata = _wrap_mjtNum_1d(p.sensordata, model.nsensordata)
 *         self._xpos = _wrap_mjtNum_2d(p.xpos, model.nbody, 3)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nuserdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2871, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2871, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->userdata, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2871, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_userdata);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_userdata);
  __pyx_v_self->_userdata = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2872
 *         self._mocap_quat = _wrap_mjtNum_2d(p.mocap_quat, model.nmocap, 4)
 *         self._userdata = _wrap_mjtNum_1d(p.userdata, model.nuserdata)
 *         self._sensordata = _wrap_mjtNum_1d(p.sensordata, model.nsensordata)             # <<<<<<<<<<<<<<
 *         self._xpos = _wrap_mjtNum_2d(p.xpos, model.nbody, 3)
 *         self._xquat = _wrap_mjtNum_2d(p.xquat, model.nbody, 4)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nsensordata); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2872, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->sensordata, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_sensordata);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_sensordata);
  __pyx_v_self->_sensordata = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2873
 *         self._userdata = _wrap_mjtNum_1d(p.userdata, model.nuserdata)
 *         self._sensordata = _wrap_mjtNum_1d(p.sensordata, model.nsensordata)
 *         self._xpos = _wrap_mjtNum_2d(p.xpos, model.nbody, 3)             # <<<<<<<<<<<<<<
 *         self._xquat = _wrap_mjtNum_2d(p.xquat, model.nbody, 4)
 *         self._xmat = _wrap_mjtNum_2d(p.xmat, model.nbody, 9)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2873, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->xpos, __pyx_t_2, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_xpos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_xpos);
  __pyx_v_self->_xpos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2874
 *         self._sensordata = _wrap_mjtNum_1d(p.sensordata, model.nsensordata)
 *         self._xpos = _wrap_mjtNum_2d(p.xpos, model.nbody, 3)
 *         self._xquat = _wrap_mjtNum_2d(p.xquat, model.nbody, 4)             # <<<<<<<<<<<<<<
 *         self._xmat = _wrap_mjtNum_2d(p.xmat, model.nbody, 9)
 *         self._xipos = _wrap_mjtNum_2d(p.xipos, model.nbody, 3)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2874, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->xquat, __pyx_t_2, 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_xquat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_xquat);
  __pyx_v_self->_xquat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2875
 *         self._xpos = _wrap_mjtNum_2d(p.xpos, model.nbody, 3)
 *         self._xquat = _wrap_mjtNum_2d(p.xquat, model.nbody, 4)
 *         self._xmat = _wrap_mjtNum_2d(p.xmat, model.nbody, 9)             # <<<<<<<<<<<<<<
 *         self._xipos = _wrap_mjtNum_2d(p.xipos, model.nbody, 3)
 *         self._ximat = _wrap_mjtNum_2d(p.ximat, model.nbody, 9)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2875, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->xmat, __pyx_t_2, 9)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_xmat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_xmat);
  __pyx_v_self->_xmat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2876
 *         self._xquat = _wrap_mjtNum_2d(p.xquat, model.nbody, 4)
 *         self._xmat = _wrap_mjtNum_2d(p.xmat, model.nbody, 9)
 *         self._xipos = _wrap_mjtNum_2d(p.xipos, model.nbody, 3)             # <<<<<<<<<<<<<<
 *         self._ximat = _wrap_mjtNum_2d(p.ximat, model.nbody, 9)
 *         self._xanchor = _wrap_mjtNum_2d(p.xanchor, model.njnt, 3)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2876, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->xipos, __pyx_t_2, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_xipos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_xipos);
  __pyx_v_self->_xipos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2877
 *         self._xmat = _wrap_mjtNum_2d(p.xmat, model.nbody, 9)
 *         self._xipos = _wrap_mjtNum_2d(p.xipos, model.nbody, 3)
 *         self._ximat = _wrap_mjtNum_2d(p.ximat, model.nbody, 9)             # <<<<<<<<<<<<<<
 *         self._xanchor = _wrap_mjtNum_2d(p.xanchor, model.njnt, 3)
 *         self._xaxis = _wrap_mjtNum_2d(p.xaxis, model.njnt, 3)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2877, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2877, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->ximat, __pyx_t_2, 9)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2877, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_ximat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_ximat);
  __pyx_v_self->_ximat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2878
 *         self._xipos = _wrap_mjtNum_2d(p.xipos, model.nbody, 3)
 *         self._ximat = _wrap_mjtNum_2d(p.ximat, model.nbody, 9)
 *         self._xanchor = _wrap_mjtNum_2d(p.xanchor, model.njnt, 3)             # <<<<<<<<<<<<<<
 *         self._xaxis = _wrap_mjtNum_2d(p.xaxis, model.njnt, 3)
 *         self._geom_xpos = _wrap_mjtNum_2d(p.geom_xpos, model.ngeom, 3)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2878, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->xanchor, __pyx_t_2, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_xanchor);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_xanchor);
  __pyx_v_self->_xanchor = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2879
 *         self._ximat = _wrap_mjtNum_2d(p.ximat, model.nbody, 9)
 *         self._xanchor = _wrap_mjtNum_2d(p.xanchor, model.njnt, 3)
 *         self._xaxis = _wrap_mjtNum_2d(p.xaxis, model.njnt, 3)             # <<<<<<<<<<<<<<
 *         self._geom_xpos = _wrap_mjtNum_2d(p.geom_xpos, model.ngeom, 3)
 *         self._geom_xmat = _wrap_mjtNum_2d(p.geom_xmat, model.ngeom, 9)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2879, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->xaxis, __pyx_t_2, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_xaxis);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_xaxis);
  __pyx_v_self->_xaxis = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2880
 *         self._xanchor = _wrap_mjtNum_2d(p.xanchor, model.njnt, 3)
 *         self._xaxis = _wrap_mjtNum_2d(p.xaxis, model.njnt, 3)
 *         self._geom_xpos = _wrap_mjtNum_2d(p.geom_xpos, model.ngeom, 3)             # <<<<<<<<<<<<<<
 *         self._geom_xmat = _wrap_mjtNum_2d(p.geom_xmat, model.ngeom, 9)
 *         self._site_xpos = _wrap_mjtNum_2d(p.site_xpos, model.nsite, 3)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_ngeom); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2880, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2880, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->geom_xpos, __pyx_t_2, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2880, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_xpos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_xpos);
  __pyx_v_self->_geom_xpos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2881
 *         self._xaxis = _wrap_mjtNum_2d(p.xaxis, model.njnt, 3)
 *         self._geom_xpos = _wrap_mjtNum_2d(p.geom_xpos, model.ngeom, 3)
 *         self._geom_xmat = _wrap_mjtNum_2d(p.geom_xmat, model.ngeom, 9)             # <<<<<<<<<<<<<<
 *         self._site_xpos = _wrap_mjtNum_2d(p.site_xpos, model.nsite, 3)
 *         self._site_xmat = _wrap_mjtNum_2d(p.site_xmat, model.nsite, 9)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_ngeom); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2881, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->geom_xmat, __pyx_t_2, 9)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geom_xmat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geom_xmat);
  __pyx_v_self->_geom_xmat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2882
 *         self._geom_xpos = _wrap_mjtNum_2d(p.geom_xpos, model.ngeom, 3)
 *         self._geom_xmat = _wrap_mjtNum_2d(p.geom_xmat, model.ngeom, 9)
 *         self._site_xpos = _wrap_mjtNum_2d(p.site_xpos, model.nsite, 3)             # <<<<<<<<<<<<<<
 *         self._site_xmat = _wrap_mjtNum_2d(p.site_xmat, model.nsite, 9)
 *         self._cam_xpos = _wrap_mjtNum_2d(p.cam_xpos, model.ncam, 3)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nsite); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2882, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2882, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->site_xpos, __pyx_t_2, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2882, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_site_xpos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_site_xpos);
  __pyx_v_self->_site_xpos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2883
 *         self._geom_xmat = _wrap_mjtNum_2d(p.geom_xmat, model.ngeom, 9)
 *         self._site_xpos = _wrap_mjtNum_2d(p.site_xpos, model.nsite, 3)
 *         self._site_xmat = _wrap_mjtNum_2d(p.site_xmat, model.nsite, 9)             # <<<<<<<<<<<<<<
 *         self._cam_xpos = _wrap_mjtNum_2d(p.cam_xpos, model.ncam, 3)
 *         self._cam_xmat = _wrap_mjtNum_2d(p.cam_xmat, model.ncam, 9)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nsite); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2883, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->site_xmat, __pyx_t_2, 9)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_site_xmat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_site_xmat);
  __pyx_v_self->_site_xmat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2884
 *         self._site_xpos = _wrap_mjtNum_2d(p.site_xpos, model.nsite, 3)
 *         self._site_xmat = _wrap_mjtNum_2d(p.site_xmat, model.nsite, 9)
 *         self._cam_xpos = _wrap_mjtNum_2d(p.cam_xpos, model.ncam, 3)             # <<<<<<<<<<<<<<
 *         self._cam_xmat = _wrap_mjtNum_2d(p.cam_xmat, model.ncam, 9)
 *         self._light_xpos = _wrap_mjtNum_2d(p.light_xpos, model.nlight, 3)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_ncam); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2884, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2884, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->cam_xpos, __pyx_t_2, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2884, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cam_xpos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cam_xpos);
  __pyx_v_self->_cam_xpos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2885
 *         self._site_xmat = _wrap_mjtNum_2d(p.site_xmat, model.nsite, 9)
 *         self._cam_xpos = _wrap_mjtNum_2d(p.cam_xpos, model.ncam, 3)
 *         self._cam_xmat = _wrap_mjtNum_2d(p.cam_xmat, model.ncam, 9)             # <<<<<<<<<<<<<<
 *         self._light_xpos = _wrap_mjtNum_2d(p.light_xpos, model.nlight, 3)
 *         self._light_xdir = _wrap_mjtNum_2d(p.light_xdir, model.nlight, 3)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_ncam); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2885, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->cam_xmat, __pyx_t_2, 9)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cam_xmat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cam_xmat);
  __pyx_v_self->_cam_xmat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2886
 *         self._cam_xpos = _wrap_mjtNum_2d(p.cam_xpos, model.ncam, 3)
 *         self._cam_xmat = _wrap_mjtNum_2d(p.cam_xmat, model.ncam, 9)
 *         self._light_xpos = _wrap_mjtNum_2d(p.light_xpos, model.nlight, 3)             # <<<<<<<<<<<<<<
 *         self._light_xdir = _wrap_mjtNum_2d(p.light_xdir, model.nlight, 3)
 *         self._subtree_com = _wrap_mjtNum_2d(p.subtree_com, model.nbody, 3)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nlight); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2886, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->light_xpos, __pyx_t_2, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_xpos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_xpos);
  __pyx_v_self->_light_xpos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2887
 *         self._cam_xmat = _wrap_mjtNum_2d(p.cam_xmat, model.ncam, 9)
 *         self._light_xpos = _wrap_mjtNum_2d(p.light_xpos, model.nlight, 3)
 *         self._light_xdir = _wrap_mjtNum_2d(p.light_xdir, model.nlight, 3)             # <<<<<<<<<<<<<<
 *         self._subtree_com = _wrap_mjtNum_2d(p.subtree_com, model.nbody, 3)
 *         self._cdof = _wrap_mjtNum_2d(p.cdof, model.nv, 6)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nlight); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2887, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->light_xdir, __pyx_t_2, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_light_xdir);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_light_xdir);
  __pyx_v_self->_light_xdir = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2888
 *         self._light_xpos = _wrap_mjtNum_2d(p.light_xpos, model.nlight, 3)
 *         self._light_xdir = _wrap_mjtNum_2d(p.light_xdir, model.nlight, 3)
 *         self._subtree_com = _wrap_mjtNum_2d(p.subtree_com, model.nbody, 3)             # <<<<<<<<<<<<<<
 *         self._cdof = _wrap_mjtNum_2d(p.cdof, model.nv, 6)
 *         self._cinert = _wrap_mjtNum_2d(p.cinert, model.nbody, 10)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2888, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->subtree_com, __pyx_t_2, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_subtree_com);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_subtree_com);
  __pyx_v_self->_subtree_com = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2889
 *         self._light_xdir = _wrap_mjtNum_2d(p.light_xdir, model.nlight, 3)
 *         self._subtree_com = _wrap_mjtNum_2d(p.subtree_com, model.nbody, 3)
 *         self._cdof = _wrap_mjtNum_2d(p.cdof, model.nv, 6)             # <<<<<<<<<<<<<<
 *         self._cinert = _wrap_mjtNum_2d(p.cinert, model.nbody, 10)
 *         self._ten_wrapadr = _wrap_int_1d(p.ten_wrapadr, model.ntendon)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2889, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->cdof, __pyx_t_2, 6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cdof);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cdof);
  __pyx_v_self->_cdof = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2890
 *         self._subtree_com = _wrap_mjtNum_2d(p.subtree_com, model.nbody, 3)
 *         self._cdof = _wrap_mjtNum_2d(p.cdof, model.nv, 6)
 *         self._cinert = _wrap_mjtNum_2d(p.cinert, model.nbody, 10)             # <<<<<<<<<<<<<<
 *         self._ten_wrapadr = _wrap_int_1d(p.ten_wrapadr, model.ntendon)
 *         self._ten_wrapnum = _wrap_int_1d(p.ten_wrapnum, model.ntendon)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2890, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->cinert, __pyx_t_2, 10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cinert);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cinert);
  __pyx_v_self->_cinert = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2891
 *         self._cdof = _wrap_mjtNum_2d(p.cdof, model.nv, 6)
 *         self._cinert = _wrap_mjtNum_2d(p.cinert, model.nbody, 10)
 *         self._ten_wrapadr = _wrap_int_1d(p.ten_wrapadr, model.ntendon)             # <<<<<<<<<<<<<<
 *         self._ten_wrapnum = _wrap_int_1d(p.ten_wrapnum, model.ntendon)
 *         self._ten_J_rownnz = _wrap_int_1d(p.ten_J_rownnz, model.ntendon)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_ntendon); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2891, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2891, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->ten_wrapadr, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2891, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_ten_wrapadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_ten_wrapadr);
  __pyx_v_self->_ten_wrapadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2892
 *         self._cinert = _wrap_mjtNum_2d(p.cinert, model.nbody, 10)
 *         self._ten_wrapadr = _wrap_int_1d(p.ten_wrapadr, model.ntendon)
 *         self._ten_wrapnum = _wrap_int_1d(p.ten_wrapnum, model.ntendon)             # <<<<<<<<<<<<<<
 *         self._ten_J_rownnz = _wrap_int_1d(p.ten_J_rownnz, model.ntendon)
 *         self._ten_J_rowadr = _wrap_int_1d(p.ten_J_rowadr, model.ntendon)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_ntendon); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2892, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->ten_wrapnum, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_ten_wrapnum);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_ten_wrapnum);
  __pyx_v_self->_ten_wrapnum = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2893
 *         self._ten_wrapadr = _wrap_int_1d(p.ten_wrapadr, model.ntendon)
 *         self._ten_wrapnum = _wrap_int_1d(p.ten_wrapnum, model.ntendon)
 *         self._ten_J_rownnz = _wrap_int_1d(p.ten_J_rownnz, model.ntendon)             # <<<<<<<<<<<<<<
 *         self._ten_J_rowadr = _wrap_int_1d(p.ten_J_rowadr, model.ntendon)
 *         self._ten_J_colind = _wrap_int_2d(p.ten_J_colind, model.ntendon, model.nv)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_ntendon); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2893, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->ten_J_rownnz, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_ten_J_rownnz);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_ten_J_rownnz);
  __pyx_v_self->_ten_J_rownnz = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2894
 *         self._ten_wrapnum = _wrap_int_1d(p.ten_wrapnum, model.ntendon)
 *         self._ten_J_rownnz = _wrap_int_1d(p.ten_J_rownnz, model.ntendon)
 *         self._ten_J_rowadr = _wrap_int_1d(p.ten_J_rowadr, model.ntendon)             # <<<<<<<<<<<<<<
 *         self._ten_J_colind = _wrap_int_2d(p.ten_J_colind, model.ntendon, model.nv)
 *         self._ten_length = _wrap_mjtNum_1d(p.ten_length, model.ntendon)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_ntendon); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2894, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->ten_J_rowadr, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_ten_J_rowadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_ten_J_rowadr);
  __pyx_v_self->_ten_J_rowadr = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2895
 *         self._ten_J_rownnz = _wrap_int_1d(p.ten_J_rownnz, model.ntendon)
 *         self._ten_J_rowadr = _wrap_int_1d(p.ten_J_rowadr, model.ntendon)
 *         self._ten_J_colind = _wrap_int_2d(p.ten_J_colind, model.ntendon, model.nv)             # <<<<<<<<<<<<<<
 *         self._ten_length = _wrap_mjtNum_1d(p.ten_length, model.ntendon)
 *         self._ten_J = _wrap_mjtNum_2d(p.ten_J, model.ntendon, model.nv)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_ntendon); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2895, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2895, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_2d(__pyx_v_p->ten_J_colind, __pyx_t_2, __pyx_t_3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_ten_J_colind);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_ten_J_colind);
  __pyx_v_self->_ten_J_colind = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2896
 *         self._ten_J_rowadr = _wrap_int_1d(p.ten_J_rowadr, model.ntendon)
 *         self._ten_J_colind = _wrap_int_2d(p.ten_J_colind, model.ntendon, model.nv)
 *         self._ten_length = _wrap_mjtNum_1d(p.ten_length, model.ntendon)             # <<<<<<<<<<<<<<
 *         self._ten_J = _wrap_mjtNum_2d(p.ten_J, model.ntendon, model.nv)
 *         self._wrap_obj = _wrap_int_1d(p.wrap_obj, model.nwrap*2)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_ntendon); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2896, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2896, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->ten_length, __pyx_t_3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2896, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_ten_length);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_ten_length);
  __pyx_v_self->_ten_length = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2897
 *         self._ten_J_colind = _wrap_int_2d(p.ten_J_colind, model.ntendon, model.nv)
 *         self._ten_length = _wrap_mjtNum_1d(p.ten_length, model.ntendon)
 *         self._ten_J = _wrap_mjtNum_2d(p.ten_J, model.ntendon, model.nv)             # <<<<<<<<<<<<<<
 *         self._wrap_obj = _wrap_int_1d(p.wrap_obj, model.nwrap*2)
 *         self._wrap_xpos = _wrap_mjtNum_2d(p.wrap_xpos, model.nwrap*2, 3)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_ntendon); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2897, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2897, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->ten_J, __pyx_t_3, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_ten_J);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_ten_J);
  __pyx_v_self->_ten_J = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2898
 *         self._ten_length = _wrap_mjtNum_1d(p.ten_length, model.ntendon)
 *         self._ten_J = _wrap_mjtNum_2d(p.ten_J, model.ntendon, model.nv)
 *         self._wrap_obj = _wrap_int_1d(p.wrap_obj, model.nwrap*2)             # <<<<<<<<<<<<<<
 *         self._wrap_xpos = _wrap_mjtNum_2d(p.wrap_xpos, model.nwrap*2, 3)
 *         self._actuator_length = _wrap_mjtNum_1d(p.actuator_length, model.nu)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nwrap); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_MultiplyObjC(__pyx_t_1, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2898, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->wrap_obj, __pyx_t_2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_wrap_obj);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_wrap_obj);
  __pyx_v_self->_wrap_obj = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2899
 *         self._ten_J = _wrap_mjtNum_2d(p.ten_J, model.ntendon, model.nv)
 *         self._wrap_obj = _wrap_int_1d(p.wrap_obj, model.nwrap*2)
 *         self._wrap_xpos = _wrap_mjtNum_2d(p.wrap_xpos, model.nwrap*2, 3)             # <<<<<<<<<<<<<<
 *         self._actuator_length = _wrap_mjtNum_1d(p.actuator_length, model.nu)
 *         self._actuator_moment = _wrap_mjtNum_2d(p.actuator_moment, model.nu, model.nv)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nwrap); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2899, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyInt_MultiplyObjC(__pyx_t_4, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2899, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2899, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->wrap_xpos, __pyx_t_2, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2899, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_wrap_xpos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_wrap_xpos);
  __pyx_v_self->_wrap_xpos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2900
 *         self._wrap_obj = _wrap_int_1d(p.wrap_obj, model.nwrap*2)
 *         self._wrap_xpos = _wrap_mjtNum_2d(p.wrap_xpos, model.nwrap*2, 3)
 *         self._actuator_length = _wrap_mjtNum_1d(p.actuator_length, model.nu)             # <<<<<<<<<<<<<<
 *         self._actuator_moment = _wrap_mjtNum_2d(p.actuator_moment, model.nu, model.nv)
 *         self._crb = _wrap_mjtNum_2d(p.crb, model.nbody, 10)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nu); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2900, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2900, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->actuator_length, __pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2900, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_length);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_length);
  __pyx_v_self->_actuator_length = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2901
 *         self._wrap_xpos = _wrap_mjtNum_2d(p.wrap_xpos, model.nwrap*2, 3)
 *         self._actuator_length = _wrap_mjtNum_1d(p.actuator_length, model.nu)
 *         self._actuator_moment = _wrap_mjtNum_2d(p.actuator_moment, model.nu, model.nv)             # <<<<<<<<<<<<<<
 *         self._crb = _wrap_mjtNum_2d(p.crb, model.nbody, 10)
 *         self._qM = _wrap_mjtNum_1d(p.qM, model.nM)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nu); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2901, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2901, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2901, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2901, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->actuator_moment, __pyx_t_2, __pyx_t_3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2901, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_moment);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_moment);
  __pyx_v_self->_actuator_moment = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2902
 *         self._actuator_length = _wrap_mjtNum_1d(p.actuator_length, model.nu)
 *         self._actuator_moment = _wrap_mjtNum_2d(p.actuator_moment, model.nu, model.nv)
 *         self._crb = _wrap_mjtNum_2d(p.crb, model.nbody, 10)             # <<<<<<<<<<<<<<
 *         self._qM = _wrap_mjtNum_1d(p.qM, model.nM)
 *         self._qLD = _wrap_mjtNum_1d(p.qLD, model.nM)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2902, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2902, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->crb, __pyx_t_3, 10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2902, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_crb);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_crb);
  __pyx_v_self->_crb = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2903
 *         self._actuator_moment = _wrap_mjtNum_2d(p.actuator_moment, model.nu, model.nv)
 *         self._crb = _wrap_mjtNum_2d(p.crb, model.nbody, 10)
 *         self._qM = _wrap_mjtNum_1d(p.qM, model.nM)             # <<<<<<<<<<<<<<
 *         self._qLD = _wrap_mjtNum_1d(p.qLD, model.nM)
 *         self._qLDiagInv = _wrap_mjtNum_1d(p.qLDiagInv, model.nv)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nM); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2903, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2903, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qM, __pyx_t_3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2903, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qM);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qM);
  __pyx_v_self->_qM = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2904
 *         self._crb = _wrap_mjtNum_2d(p.crb, model.nbody, 10)
 *         self._qM = _wrap_mjtNum_1d(p.qM, model.nM)
 *         self._qLD = _wrap_mjtNum_1d(p.qLD, model.nM)             # <<<<<<<<<<<<<<
 *         self._qLDiagInv = _wrap_mjtNum_1d(p.qLDiagInv, model.nv)
 *         self._qLDiagSqrtInv = _wrap_mjtNum_1d(p.qLDiagSqrtInv, model.nv)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nM); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2904, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qLD, __pyx_t_3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qLD);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qLD);
  __pyx_v_self->_qLD = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2905
 *         self._qM = _wrap_mjtNum_1d(p.qM, model.nM)
 *         self._qLD = _wrap_mjtNum_1d(p.qLD, model.nM)
 *         self._qLDiagInv = _wrap_mjtNum_1d(p.qLDiagInv, model.nv)             # <<<<<<<<<<<<<<
 *         self._qLDiagSqrtInv = _wrap_mjtNum_1d(p.qLDiagSqrtInv, model.nv)
 *         self._contact = tuple([WrapMjContact(&p.contact[i]) for i in range(model.nconmax)])
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2905, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qLDiagInv, __pyx_t_3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qLDiagInv);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qLDiagInv);
  __pyx_v_self->_qLDiagInv = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2906
 *         self._qLD = _wrap_mjtNum_1d(p.qLD, model.nM)
 *         self._qLDiagInv = _wrap_mjtNum_1d(p.qLDiagInv, model.nv)
 *         self._qLDiagSqrtInv = _wrap_mjtNum_1d(p.qLDiagSqrtInv, model.nv)             # <<<<<<<<<<<<<<
 *         self._contact = tuple([WrapMjContact(&p.contact[i]) for i in range(model.nconmax)])
 *         self._efc_type = _wrap_int_1d(p.efc_type, model.njmax)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2906, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2906, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qLDiagSqrtInv, __pyx_t_3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2906, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qLDiagSqrtInv);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qLDiagSqrtInv);
  __pyx_v_self->_qLDiagSqrtInv = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2907
 *         self._qLDiagInv = _wrap_mjtNum_1d(p.qLDiagInv, model.nv)
 *         self._qLDiagSqrtInv = _wrap_mjtNum_1d(p.qLDiagSqrtInv, model.nv)
 *         self._contact = tuple([WrapMjContact(&p.contact[i]) for i in range(model.nconmax)])             # <<<<<<<<<<<<<<
 *         self._efc_type = _wrap_int_1d(p.efc_type, model.njmax)
 *         self._efc_id = _wrap_int_1d(p.efc_id, model.njmax)
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2907, __pyx_L5_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nconmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2907, __pyx_L5_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2907, __pyx_L5_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_4 = __pyx_t_5; __Pyx_INCREF(__pyx_t_4);
      __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2907, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 2907, __pyx_L5_error)
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
            #if !CYTHON_ASSUME_SAFE_MACROS
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 2907, __pyx_L5_error)
            #endif
            if (__pyx_t_6 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(4, 2907, __pyx_L5_error)
          #else
          __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2907, __pyx_L5_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
            #if !CYTHON_ASSUME_SAFE_MACROS
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 2907, __pyx_L5_error)
            #endif
            if (__pyx_t_6 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(4, 2907, __pyx_L5_error)
          #else
          __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2907, __pyx_L5_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_7(__pyx_t_4);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(4, 2907, __pyx_L5_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_XDECREF_SET(__pyx_8genexpr2__pyx_v_i, __pyx_t_5);
      __pyx_t_5 = 0;
      __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_8genexpr2__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(4, 2907, __pyx_L5_error)
      __pyx_t_5 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjContact((&(__pyx_v_p->contact[__pyx_t_8])))); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 2907, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(4, 2907, __pyx_L5_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_i); __pyx_8genexpr2__pyx_v_i = 0;
    goto __pyx_L9_exit_scope;
    __pyx_L5_error:;
    __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_i); __pyx_8genexpr2__pyx_v_i = 0;
    goto __pyx_L1_error;
    __pyx_L9_exit_scope:;
  } /* exit inner scope */
  __pyx_t_4 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->_contact);
  __Pyx_DECREF(__pyx_v_self->_contact);
  __pyx_v_self->_contact = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2908
 *         self._qLDiagSqrtInv = _wrap_mjtNum_1d(p.qLDiagSqrtInv, model.nv)
 *         self._contact = tuple([WrapMjContact(&p.contact[i]) for i in range(model.nconmax)])
 *         self._efc_type = _wrap_int_1d(p.efc_type, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_id = _wrap_int_1d(p.efc_id, model.njmax)
 *         self._efc_J_rownnz = _wrap_int_1d(p.efc_J_rownnz, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2908, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->efc_type, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_type);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_type);
  __pyx_v_self->_efc_type = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2909
 *         self._contact = tuple([WrapMjContact(&p.contact[i]) for i in range(model.nconmax)])
 *         self._efc_type = _wrap_int_1d(p.efc_type, model.njmax)
 *         self._efc_id = _wrap_int_1d(p.efc_id, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_J_rownnz = _wrap_int_1d(p.efc_J_rownnz, model.njmax)
 *         self._efc_J_rowadr = _wrap_int_1d(p.efc_J_rowadr, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2909, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->efc_id, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_id);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_id);
  __pyx_v_self->_efc_id = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2910
 *         self._efc_type = _wrap_int_1d(p.efc_type, model.njmax)
 *         self._efc_id = _wrap_int_1d(p.efc_id, model.njmax)
 *         self._efc_J_rownnz = _wrap_int_1d(p.efc_J_rownnz, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_J_rowadr = _wrap_int_1d(p.efc_J_rowadr, model.njmax)
 *         self._efc_J_rowsuper = _wrap_int_1d(p.efc_J_rowsuper, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2910, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->efc_J_rownnz, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_J_rownnz);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_J_rownnz);
  __pyx_v_self->_efc_J_rownnz = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2911
 *         self._efc_id = _wrap_int_1d(p.efc_id, model.njmax)
 *         self._efc_J_rownnz = _wrap_int_1d(p.efc_J_rownnz, model.njmax)
 *         self._efc_J_rowadr = _wrap_int_1d(p.efc_J_rowadr, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_J_rowsuper = _wrap_int_1d(p.efc_J_rowsuper, model.njmax)
 *         self._efc_J_colind = _wrap_int_2d(p.efc_J_colind, model.njmax, model.nv)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2911, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->efc_J_rowadr, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_J_rowadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_J_rowadr);
  __pyx_v_self->_efc_J_rowadr = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2912
 *         self._efc_J_rownnz = _wrap_int_1d(p.efc_J_rownnz, model.njmax)
 *         self._efc_J_rowadr = _wrap_int_1d(p.efc_J_rowadr, model.njmax)
 *         self._efc_J_rowsuper = _wrap_int_1d(p.efc_J_rowsuper, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_J_colind = _wrap_int_2d(p.efc_J_colind, model.njmax, model.nv)
 *         self._efc_JT_rownnz = _wrap_int_1d(p.efc_JT_rownnz, model.nv)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2912, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->efc_J_rowsuper, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_J_rowsuper);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_J_rowsuper);
  __pyx_v_self->_efc_J_rowsuper = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2913
 *         self._efc_J_rowadr = _wrap_int_1d(p.efc_J_rowadr, model.njmax)
 *         self._efc_J_rowsuper = _wrap_int_1d(p.efc_J_rowsuper, model.njmax)
 *         self._efc_J_colind = _wrap_int_2d(p.efc_J_colind, model.njmax, model.nv)             # <<<<<<<<<<<<<<
 *         self._efc_JT_rownnz = _wrap_int_1d(p.efc_JT_rownnz, model.nv)
 *         self._efc_JT_rowadr = _wrap_int_1d(p.efc_JT_rowadr, model.nv)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2913, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2913, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_2d(__pyx_v_p->efc_J_colind, __pyx_t_3, __pyx_t_2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_J_colind);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_J_colind);
  __pyx_v_self->_efc_J_colind = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2914
 *         self._efc_J_rowsuper = _wrap_int_1d(p.efc_J_rowsuper, model.njmax)
 *         self._efc_J_colind = _wrap_int_2d(p.efc_J_colind, model.njmax, model.nv)
 *         self._efc_JT_rownnz = _wrap_int_1d(p.efc_JT_rownnz, model.nv)             # <<<<<<<<<<<<<<
 *         self._efc_JT_rowadr = _wrap_int_1d(p.efc_JT_rowadr, model.nv)
 *         self._efc_JT_rowsuper = _wrap_int_1d(p.efc_JT_rowsuper, model.nv)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2914, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->efc_JT_rownnz, __pyx_t_2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_JT_rownnz);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_JT_rownnz);
  __pyx_v_self->_efc_JT_rownnz = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2915
 *         self._efc_J_colind = _wrap_int_2d(p.efc_J_colind, model.njmax, model.nv)
 *         self._efc_JT_rownnz = _wrap_int_1d(p.efc_JT_rownnz, model.nv)
 *         self._efc_JT_rowadr = _wrap_int_1d(p.efc_JT_rowadr, model.nv)             # <<<<<<<<<<<<<<
 *         self._efc_JT_rowsuper = _wrap_int_1d(p.efc_JT_rowsuper, model.nv)
 *         self._efc_JT_colind = _wrap_int_2d(p.efc_JT_colind, model.nv, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2915, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->efc_JT_rowadr, __pyx_t_2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_JT_rowadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_JT_rowadr);
  __pyx_v_self->_efc_JT_rowadr = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2916
 *         self._efc_JT_rownnz = _wrap_int_1d(p.efc_JT_rownnz, model.nv)
 *         self._efc_JT_rowadr = _wrap_int_1d(p.efc_JT_rowadr, model.nv)
 *         self._efc_JT_rowsuper = _wrap_int_1d(p.efc_JT_rowsuper, model.nv)             # <<<<<<<<<<<<<<
 *         self._efc_JT_colind = _wrap_int_2d(p.efc_JT_colind, model.nv, model.njmax)
 *         self._efc_J = _wrap_mjtNum_2d(p.efc_J, model.njmax, model.nv)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2916, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->efc_JT_rowsuper, __pyx_t_2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_JT_rowsuper);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_JT_rowsuper);
  __pyx_v_self->_efc_JT_rowsuper = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2917
 *         self._efc_JT_rowadr = _wrap_int_1d(p.efc_JT_rowadr, model.nv)
 *         self._efc_JT_rowsuper = _wrap_int_1d(p.efc_JT_rowsuper, model.nv)
 *         self._efc_JT_colind = _wrap_int_2d(p.efc_JT_colind, model.nv, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_J = _wrap_mjtNum_2d(p.efc_J, model.njmax, model.nv)
 *         self._efc_JT = _wrap_mjtNum_2d(p.efc_JT, model.nv, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2917, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2917, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_2d(__pyx_v_p->efc_JT_colind, __pyx_t_2, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_JT_colind);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_JT_colind);
  __pyx_v_self->_efc_JT_colind = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2918
 *         self._efc_JT_rowsuper = _wrap_int_1d(p.efc_JT_rowsuper, model.nv)
 *         self._efc_JT_colind = _wrap_int_2d(p.efc_JT_colind, model.nv, model.njmax)
 *         self._efc_J = _wrap_mjtNum_2d(p.efc_J, model.njmax, model.nv)             # <<<<<<<<<<<<<<
 *         self._efc_JT = _wrap_mjtNum_2d(p.efc_JT, model.nv, model.njmax)
 *         self._efc_pos = _wrap_mjtNum_1d(p.efc_pos, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2918, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2918, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->efc_J, __pyx_t_3, __pyx_t_2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_J);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_J);
  __pyx_v_self->_efc_J = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2919
 *         self._efc_JT_colind = _wrap_int_2d(p.efc_JT_colind, model.nv, model.njmax)
 *         self._efc_J = _wrap_mjtNum_2d(p.efc_J, model.njmax, model.nv)
 *         self._efc_JT = _wrap_mjtNum_2d(p.efc_JT, model.nv, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_pos = _wrap_mjtNum_1d(p.efc_pos, model.njmax)
 *         self._efc_margin = _wrap_mjtNum_1d(p.efc_margin, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2919, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2919, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->efc_JT, __pyx_t_2, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_JT);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_JT);
  __pyx_v_self->_efc_JT = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2920
 *         self._efc_J = _wrap_mjtNum_2d(p.efc_J, model.njmax, model.nv)
 *         self._efc_JT = _wrap_mjtNum_2d(p.efc_JT, model.nv, model.njmax)
 *         self._efc_pos = _wrap_mjtNum_1d(p.efc_pos, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_margin = _wrap_mjtNum_1d(p.efc_margin, model.njmax)
 *         self._efc_frictionloss = _wrap_mjtNum_1d(p.efc_frictionloss, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2920, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->efc_pos, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_pos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_pos);
  __pyx_v_self->_efc_pos = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2921
 *         self._efc_JT = _wrap_mjtNum_2d(p.efc_JT, model.nv, model.njmax)
 *         self._efc_pos = _wrap_mjtNum_1d(p.efc_pos, model.njmax)
 *         self._efc_margin = _wrap_mjtNum_1d(p.efc_margin, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_frictionloss = _wrap_mjtNum_1d(p.efc_frictionloss, model.njmax)
 *         self._efc_diagApprox = _wrap_mjtNum_1d(p.efc_diagApprox, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->efc_margin, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_margin);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_margin);
  __pyx_v_self->_efc_margin = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2922
 *         self._efc_pos = _wrap_mjtNum_1d(p.efc_pos, model.njmax)
 *         self._efc_margin = _wrap_mjtNum_1d(p.efc_margin, model.njmax)
 *         self._efc_frictionloss = _wrap_mjtNum_1d(p.efc_frictionloss, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_diagApprox = _wrap_mjtNum_1d(p.efc_diagApprox, model.njmax)
 *         self._efc_KBIP = _wrap_mjtNum_2d(p.efc_KBIP, model.njmax, 4)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2922, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->efc_frictionloss, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_frictionloss);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_frictionloss);
  __pyx_v_self->_efc_frictionloss = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2923
 *         self._efc_margin = _wrap_mjtNum_1d(p.efc_margin, model.njmax)
 *         self._efc_frictionloss = _wrap_mjtNum_1d(p.efc_frictionloss, model.njmax)
 *         self._efc_diagApprox = _wrap_mjtNum_1d(p.efc_diagApprox, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_KBIP = _wrap_mjtNum_2d(p.efc_KBIP, model.njmax, 4)
 *         self._efc_D = _wrap_mjtNum_1d(p.efc_D, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2923, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->efc_diagApprox, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_diagApprox);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_diagApprox);
  __pyx_v_self->_efc_diagApprox = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2924
 *         self._efc_frictionloss = _wrap_mjtNum_1d(p.efc_frictionloss, model.njmax)
 *         self._efc_diagApprox = _wrap_mjtNum_1d(p.efc_diagApprox, model.njmax)
 *         self._efc_KBIP = _wrap_mjtNum_2d(p.efc_KBIP, model.njmax, 4)             # <<<<<<<<<<<<<<
 *         self._efc_D = _wrap_mjtNum_1d(p.efc_D, model.njmax)
 *         self._efc_R = _wrap_mjtNum_1d(p.efc_R, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2924, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->efc_KBIP, __pyx_t_3, 4)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_KBIP);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_KBIP);
  __pyx_v_self->_efc_KBIP = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2925
 *         self._efc_diagApprox = _wrap_mjtNum_1d(p.efc_diagApprox, model.njmax)
 *         self._efc_KBIP = _wrap_mjtNum_2d(p.efc_KBIP, model.njmax, 4)
 *         self._efc_D = _wrap_mjtNum_1d(p.efc_D, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_R = _wrap_mjtNum_1d(p.efc_R, model.njmax)
 *         self._efc_AR_rownnz = _wrap_int_1d(p.efc_AR_rownnz, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2925, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2925, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->efc_D, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2925, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_D);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_D);
  __pyx_v_self->_efc_D = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2926
 *         self._efc_KBIP = _wrap_mjtNum_2d(p.efc_KBIP, model.njmax, 4)
 *         self._efc_D = _wrap_mjtNum_1d(p.efc_D, model.njmax)
 *         self._efc_R = _wrap_mjtNum_1d(p.efc_R, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_AR_rownnz = _wrap_int_1d(p.efc_AR_rownnz, model.njmax)
 *         self._efc_AR_rowadr = _wrap_int_1d(p.efc_AR_rowadr, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2926, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->efc_R, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_R);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_R);
  __pyx_v_self->_efc_R = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2927
 *         self._efc_D = _wrap_mjtNum_1d(p.efc_D, model.njmax)
 *         self._efc_R = _wrap_mjtNum_1d(p.efc_R, model.njmax)
 *         self._efc_AR_rownnz = _wrap_int_1d(p.efc_AR_rownnz, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_AR_rowadr = _wrap_int_1d(p.efc_AR_rowadr, model.njmax)
 *         self._efc_AR_colind = _wrap_int_2d(p.efc_AR_colind, model.njmax, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2927, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->efc_AR_rownnz, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_AR_rownnz);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_AR_rownnz);
  __pyx_v_self->_efc_AR_rownnz = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2928
 *         self._efc_R = _wrap_mjtNum_1d(p.efc_R, model.njmax)
 *         self._efc_AR_rownnz = _wrap_int_1d(p.efc_AR_rownnz, model.njmax)
 *         self._efc_AR_rowadr = _wrap_int_1d(p.efc_AR_rowadr, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_AR_colind = _wrap_int_2d(p.efc_AR_colind, model.njmax, model.njmax)
 *         self._efc_AR = _wrap_mjtNum_2d(p.efc_AR, model.njmax, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2928, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->efc_AR_rowadr, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_AR_rowadr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_AR_rowadr);
  __pyx_v_self->_efc_AR_rowadr = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2929
 *         self._efc_AR_rownnz = _wrap_int_1d(p.efc_AR_rownnz, model.njmax)
 *         self._efc_AR_rowadr = _wrap_int_1d(p.efc_AR_rowadr, model.njmax)
 *         self._efc_AR_colind = _wrap_int_2d(p.efc_AR_colind, model.njmax, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_AR = _wrap_mjtNum_2d(p.efc_AR, model.njmax, model.njmax)
 *         self._ten_velocity = _wrap_mjtNum_1d(p.ten_velocity, model.ntendon)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2929, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2929, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_2d(__pyx_v_p->efc_AR_colind, __pyx_t_3, __pyx_t_2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_AR_colind);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_AR_colind);
  __pyx_v_self->_efc_AR_colind = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2930
 *         self._efc_AR_rowadr = _wrap_int_1d(p.efc_AR_rowadr, model.njmax)
 *         self._efc_AR_colind = _wrap_int_2d(p.efc_AR_colind, model.njmax, model.njmax)
 *         self._efc_AR = _wrap_mjtNum_2d(p.efc_AR, model.njmax, model.njmax)             # <<<<<<<<<<<<<<
 *         self._ten_velocity = _wrap_mjtNum_1d(p.ten_velocity, model.ntendon)
 *         self._actuator_velocity = _wrap_mjtNum_1d(p.actuator_velocity, model.nu)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2930, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2930, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->efc_AR, __pyx_t_2, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_AR);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_AR);
  __pyx_v_self->_efc_AR = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2931
 *         self._efc_AR_colind = _wrap_int_2d(p.efc_AR_colind, model.njmax, model.njmax)
 *         self._efc_AR = _wrap_mjtNum_2d(p.efc_AR, model.njmax, model.njmax)
 *         self._ten_velocity = _wrap_mjtNum_1d(p.ten_velocity, model.ntendon)             # <<<<<<<<<<<<<<
 *         self._actuator_velocity = _wrap_mjtNum_1d(p.actuator_velocity, model.nu)
 *         self._cvel = _wrap_mjtNum_2d(p.cvel, model.nbody, 6)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_ntendon); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2931, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2931, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->ten_velocity, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2931, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_ten_velocity);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_ten_velocity);
  __pyx_v_self->_ten_velocity = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2932
 *         self._efc_AR = _wrap_mjtNum_2d(p.efc_AR, model.njmax, model.njmax)
 *         self._ten_velocity = _wrap_mjtNum_1d(p.ten_velocity, model.ntendon)
 *         self._actuator_velocity = _wrap_mjtNum_1d(p.actuator_velocity, model.nu)             # <<<<<<<<<<<<<<
 *         self._cvel = _wrap_mjtNum_2d(p.cvel, model.nbody, 6)
 *         self._cdof_dot = _wrap_mjtNum_2d(p.cdof_dot, model.nv, 6)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nu); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2932, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->actuator_velocity, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_velocity);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_velocity);
  __pyx_v_self->_actuator_velocity = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2933
 *         self._ten_velocity = _wrap_mjtNum_1d(p.ten_velocity, model.ntendon)
 *         self._actuator_velocity = _wrap_mjtNum_1d(p.actuator_velocity, model.nu)
 *         self._cvel = _wrap_mjtNum_2d(p.cvel, model.nbody, 6)             # <<<<<<<<<<<<<<
 *         self._cdof_dot = _wrap_mjtNum_2d(p.cdof_dot, model.nv, 6)
 *         self._qfrc_bias = _wrap_mjtNum_1d(p.qfrc_bias, model.nv)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2933, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->cvel, __pyx_t_3, 6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cvel);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cvel);
  __pyx_v_self->_cvel = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2934
 *         self._actuator_velocity = _wrap_mjtNum_1d(p.actuator_velocity, model.nu)
 *         self._cvel = _wrap_mjtNum_2d(p.cvel, model.nbody, 6)
 *         self._cdof_dot = _wrap_mjtNum_2d(p.cdof_dot, model.nv, 6)             # <<<<<<<<<<<<<<
 *         self._qfrc_bias = _wrap_mjtNum_1d(p.qfrc_bias, model.nv)
 *         self._qfrc_passive = _wrap_mjtNum_1d(p.qfrc_passive, model.nv)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2934, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2934, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->cdof_dot, __pyx_t_3, 6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2934, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cdof_dot);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cdof_dot);
  __pyx_v_self->_cdof_dot = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2935
 *         self._cvel = _wrap_mjtNum_2d(p.cvel, model.nbody, 6)
 *         self._cdof_dot = _wrap_mjtNum_2d(p.cdof_dot, model.nv, 6)
 *         self._qfrc_bias = _wrap_mjtNum_1d(p.qfrc_bias, model.nv)             # <<<<<<<<<<<<<<
 *         self._qfrc_passive = _wrap_mjtNum_1d(p.qfrc_passive, model.nv)
 *         self._efc_vel = _wrap_mjtNum_1d(p.efc_vel, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2935, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2935, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qfrc_bias, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2935, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qfrc_bias);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qfrc_bias);
  __pyx_v_self->_qfrc_bias = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2936
 *         self._cdof_dot = _wrap_mjtNum_2d(p.cdof_dot, model.nv, 6)
 *         self._qfrc_bias = _wrap_mjtNum_1d(p.qfrc_bias, model.nv)
 *         self._qfrc_passive = _wrap_mjtNum_1d(p.qfrc_passive, model.nv)             # <<<<<<<<<<<<<<
 *         self._efc_vel = _wrap_mjtNum_1d(p.efc_vel, model.njmax)
 *         self._efc_aref = _wrap_mjtNum_1d(p.efc_aref, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2936, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qfrc_passive, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qfrc_passive);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qfrc_passive);
  __pyx_v_self->_qfrc_passive = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2937
 *         self._qfrc_bias = _wrap_mjtNum_1d(p.qfrc_bias, model.nv)
 *         self._qfrc_passive = _wrap_mjtNum_1d(p.qfrc_passive, model.nv)
 *         self._efc_vel = _wrap_mjtNum_1d(p.efc_vel, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_aref = _wrap_mjtNum_1d(p.efc_aref, model.njmax)
 *         self._subtree_linvel = _wrap_mjtNum_2d(p.subtree_linvel, model.nbody, 3)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2937, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2937, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->efc_vel, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2937, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_vel);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_vel);
  __pyx_v_self->_efc_vel = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2938
 *         self._qfrc_passive = _wrap_mjtNum_1d(p.qfrc_passive, model.nv)
 *         self._efc_vel = _wrap_mjtNum_1d(p.efc_vel, model.njmax)
 *         self._efc_aref = _wrap_mjtNum_1d(p.efc_aref, model.njmax)             # <<<<<<<<<<<<<<
 *         self._subtree_linvel = _wrap_mjtNum_2d(p.subtree_linvel, model.nbody, 3)
 *         self._subtree_angmom = _wrap_mjtNum_2d(p.subtree_angmom, model.nbody, 3)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2938, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->efc_aref, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_aref);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_aref);
  __pyx_v_self->_efc_aref = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2939
 *         self._efc_vel = _wrap_mjtNum_1d(p.efc_vel, model.njmax)
 *         self._efc_aref = _wrap_mjtNum_1d(p.efc_aref, model.njmax)
 *         self._subtree_linvel = _wrap_mjtNum_2d(p.subtree_linvel, model.nbody, 3)             # <<<<<<<<<<<<<<
 *         self._subtree_angmom = _wrap_mjtNum_2d(p.subtree_angmom, model.nbody, 3)
 *         self._actuator_force = _wrap_mjtNum_1d(p.actuator_force, model.nu)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2939, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->subtree_linvel, __pyx_t_3, 3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_subtree_linvel);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_subtree_linvel);
  __pyx_v_self->_subtree_linvel = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2940
 *         self._efc_aref = _wrap_mjtNum_1d(p.efc_aref, model.njmax)
 *         self._subtree_linvel = _wrap_mjtNum_2d(p.subtree_linvel, model.nbody, 3)
 *         self._subtree_angmom = _wrap_mjtNum_2d(p.subtree_angmom, model.nbody, 3)             # <<<<<<<<<<<<<<
 *         self._actuator_force = _wrap_mjtNum_1d(p.actuator_force, model.nu)
 *         self._qfrc_actuator = _wrap_mjtNum_1d(p.qfrc_actuator, model.nv)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2940, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->subtree_angmom, __pyx_t_3, 3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_subtree_angmom);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_subtree_angmom);
  __pyx_v_self->_subtree_angmom = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2941
 *         self._subtree_linvel = _wrap_mjtNum_2d(p.subtree_linvel, model.nbody, 3)
 *         self._subtree_angmom = _wrap_mjtNum_2d(p.subtree_angmom, model.nbody, 3)
 *         self._actuator_force = _wrap_mjtNum_1d(p.actuator_force, model.nu)             # <<<<<<<<<<<<<<
 *         self._qfrc_actuator = _wrap_mjtNum_1d(p.qfrc_actuator, model.nv)
 *         self._qfrc_unc = _wrap_mjtNum_1d(p.qfrc_unc, model.nv)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nu); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->actuator_force, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuator_force);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuator_force);
  __pyx_v_self->_actuator_force = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2942
 *         self._subtree_angmom = _wrap_mjtNum_2d(p.subtree_angmom, model.nbody, 3)
 *         self._actuator_force = _wrap_mjtNum_1d(p.actuator_force, model.nu)
 *         self._qfrc_actuator = _wrap_mjtNum_1d(p.qfrc_actuator, model.nv)             # <<<<<<<<<<<<<<
 *         self._qfrc_unc = _wrap_mjtNum_1d(p.qfrc_unc, model.nv)
 *         self._qacc_unc = _wrap_mjtNum_1d(p.qacc_unc, model.nv)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qfrc_actuator, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qfrc_actuator);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qfrc_actuator);
  __pyx_v_self->_qfrc_actuator = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2943
 *         self._actuator_force = _wrap_mjtNum_1d(p.actuator_force, model.nu)
 *         self._qfrc_actuator = _wrap_mjtNum_1d(p.qfrc_actuator, model.nv)
 *         self._qfrc_unc = _wrap_mjtNum_1d(p.qfrc_unc, model.nv)             # <<<<<<<<<<<<<<
 *         self._qacc_unc = _wrap_mjtNum_1d(p.qacc_unc, model.nv)
 *         self._efc_b = _wrap_mjtNum_1d(p.efc_b, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2943, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qfrc_unc, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qfrc_unc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qfrc_unc);
  __pyx_v_self->_qfrc_unc = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2944
 *         self._qfrc_actuator = _wrap_mjtNum_1d(p.qfrc_actuator, model.nv)
 *         self._qfrc_unc = _wrap_mjtNum_1d(p.qfrc_unc, model.nv)
 *         self._qacc_unc = _wrap_mjtNum_1d(p.qacc_unc, model.nv)             # <<<<<<<<<<<<<<
 *         self._efc_b = _wrap_mjtNum_1d(p.efc_b, model.njmax)
 *         self._efc_force = _wrap_mjtNum_1d(p.efc_force, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2944, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qacc_unc, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qacc_unc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qacc_unc);
  __pyx_v_self->_qacc_unc = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2945
 *         self._qfrc_unc = _wrap_mjtNum_1d(p.qfrc_unc, model.nv)
 *         self._qacc_unc = _wrap_mjtNum_1d(p.qacc_unc, model.nv)
 *         self._efc_b = _wrap_mjtNum_1d(p.efc_b, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_force = _wrap_mjtNum_1d(p.efc_force, model.njmax)
 *         self._efc_state = _wrap_int_1d(p.efc_state, model.njmax)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2945, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->efc_b, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_b);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_b);
  __pyx_v_self->_efc_b = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2946
 *         self._qacc_unc = _wrap_mjtNum_1d(p.qacc_unc, model.nv)
 *         self._efc_b = _wrap_mjtNum_1d(p.efc_b, model.njmax)
 *         self._efc_force = _wrap_mjtNum_1d(p.efc_force, model.njmax)             # <<<<<<<<<<<<<<
 *         self._efc_state = _wrap_int_1d(p.efc_state, model.njmax)
 *         self._qfrc_constraint = _wrap_mjtNum_1d(p.qfrc_constraint, model.nv)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2946, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->efc_force, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_force);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_force);
  __pyx_v_self->_efc_force = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2947
 *         self._efc_b = _wrap_mjtNum_1d(p.efc_b, model.njmax)
 *         self._efc_force = _wrap_mjtNum_1d(p.efc_force, model.njmax)
 *         self._efc_state = _wrap_int_1d(p.efc_state, model.njmax)             # <<<<<<<<<<<<<<
 *         self._qfrc_constraint = _wrap_mjtNum_1d(p.qfrc_constraint, model.nv)
 *         self._qfrc_inverse = _wrap_mjtNum_1d(p.qfrc_inverse, model.nv)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_njmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2947, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d(__pyx_v_p->efc_state, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_efc_state);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_efc_state);
  __pyx_v_self->_efc_state = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2948
 *         self._efc_force = _wrap_mjtNum_1d(p.efc_force, model.njmax)
 *         self._efc_state = _wrap_int_1d(p.efc_state, model.njmax)
 *         self._qfrc_constraint = _wrap_mjtNum_1d(p.qfrc_constraint, model.nv)             # <<<<<<<<<<<<<<
 *         self._qfrc_inverse = _wrap_mjtNum_1d(p.qfrc_inverse, model.nv)
 *         self._cacc = _wrap_mjtNum_2d(p.cacc, model.nbody, 6)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2948, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qfrc_constraint, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qfrc_constraint);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qfrc_constraint);
  __pyx_v_self->_qfrc_constraint = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2949
 *         self._efc_state = _wrap_int_1d(p.efc_state, model.njmax)
 *         self._qfrc_constraint = _wrap_mjtNum_1d(p.qfrc_constraint, model.nv)
 *         self._qfrc_inverse = _wrap_mjtNum_1d(p.qfrc_inverse, model.nv)             # <<<<<<<<<<<<<<
 *         self._cacc = _wrap_mjtNum_2d(p.cacc, model.nbody, 6)
 *         self._cfrc_int = _wrap_mjtNum_2d(p.cfrc_int, model.nbody, 6)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2949, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(__pyx_v_p->qfrc_inverse, __pyx_t_3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_qfrc_inverse);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_qfrc_inverse);
  __pyx_v_self->_qfrc_inverse = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2950
 *         self._qfrc_constraint = _wrap_mjtNum_1d(p.qfrc_constraint, model.nv)
 *         self._qfrc_inverse = _wrap_mjtNum_1d(p.qfrc_inverse, model.nv)
 *         self._cacc = _wrap_mjtNum_2d(p.cacc, model.nbody, 6)             # <<<<<<<<<<<<<<
 *         self._cfrc_int = _wrap_mjtNum_2d(p.cfrc_int, model.nbody, 6)
 *         self._cfrc_ext = _wrap_mjtNum_2d(p.cfrc_ext, model.nbody, 6)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2950, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->cacc, __pyx_t_3, 6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cacc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cacc);
  __pyx_v_self->_cacc = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2951
 *         self._qfrc_inverse = _wrap_mjtNum_1d(p.qfrc_inverse, model.nv)
 *         self._cacc = _wrap_mjtNum_2d(p.cacc, model.nbody, 6)
 *         self._cfrc_int = _wrap_mjtNum_2d(p.cfrc_int, model.nbody, 6)             # <<<<<<<<<<<<<<
 *         self._cfrc_ext = _wrap_mjtNum_2d(p.cfrc_ext, model.nbody, 6)
 *         self._warning = [WrapMjWarningStat(&p.warning[i]) for i in range(mjNWARNING)]
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2951, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->cfrc_int, __pyx_t_3, 6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cfrc_int);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cfrc_int);
  __pyx_v_self->_cfrc_int = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2952
 *         self._cacc = _wrap_mjtNum_2d(p.cacc, model.nbody, 6)
 *         self._cfrc_int = _wrap_mjtNum_2d(p.cfrc_int, model.nbody, 6)
 *         self._cfrc_ext = _wrap_mjtNum_2d(p.cfrc_ext, model.nbody, 6)             # <<<<<<<<<<<<<<
 *         self._warning = [WrapMjWarningStat(&p.warning[i]) for i in range(mjNWARNING)]
 *         self._timer = [WrapMjTimerStat(&p.timer[i]) for i in range(mjNTIMER)]
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2952, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(__pyx_v_p->cfrc_ext, __pyx_t_3, 6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cfrc_ext);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cfrc_ext);
  __pyx_v_self->_cfrc_ext = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2953
 *         self._cfrc_int = _wrap_mjtNum_2d(p.cfrc_int, model.nbody, 6)
 *         self._cfrc_ext = _wrap_mjtNum_2d(p.cfrc_ext, model.nbody, 6)
 *         self._warning = [WrapMjWarningStat(&p.warning[i]) for i in range(mjNWARNING)]             # <<<<<<<<<<<<<<
 *         self._timer = [WrapMjTimerStat(&p.timer[i]) for i in range(mjNTIMER)]
 *         self._solver = [WrapMjSolverStat(&p.solver[i]) for i in range(1000)]
 */
  { /* enter inner scope */
    __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2953, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = mjNWARNING;
    __pyx_t_10 = __pyx_t_9;
    for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
      __pyx_8genexpr3__pyx_v_i = __pyx_t_11;
      __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjWarningStat((&(__pyx_v_p->warning[__pyx_8genexpr3__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2953, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_1))) __PYX_ERR(4, 2953, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
  } /* exit inner scope */
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->_warning);
  __Pyx_DECREF(__pyx_v_self->_warning);
  __pyx_v_self->_warning = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2954
 *         self._cfrc_ext = _wrap_mjtNum_2d(p.cfrc_ext, model.nbody, 6)
 *         self._warning = [WrapMjWarningStat(&p.warning[i]) for i in range(mjNWARNING)]
 *         self._timer = [WrapMjTimerStat(&p.timer[i]) for i in range(mjNTIMER)]             # <<<<<<<<<<<<<<
 *         self._solver = [WrapMjSolverStat(&p.solver[i]) for i in range(1000)]
 *         self._solver_fwdinv = _wrap_mjtNum_1d(&p.solver_fwdinv[0], 2)
 */
  { /* enter inner scope */
    __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2954, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = mjNTIMER;
    __pyx_t_10 = __pyx_t_9;
    for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
      __pyx_8genexpr4__pyx_v_i = __pyx_t_11;
      __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjTimerStat((&(__pyx_v_p->timer[__pyx_8genexpr4__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2954, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_1))) __PYX_ERR(4, 2954, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
  } /* exit inner scope */
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->_timer);
  __Pyx_DECREF(__pyx_v_self->_timer);
  __pyx_v_self->_timer = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2955
 *         self._warning = [WrapMjWarningStat(&p.warning[i]) for i in range(mjNWARNING)]
 *         self._timer = [WrapMjTimerStat(&p.timer[i]) for i in range(mjNTIMER)]
 *         self._solver = [WrapMjSolverStat(&p.solver[i]) for i in range(1000)]             # <<<<<<<<<<<<<<
 *         self._solver_fwdinv = _wrap_mjtNum_1d(&p.solver_fwdinv[0], 2)
 *         self._energy = _wrap_mjtNum_1d(&p.energy[0], 2)
 */
  { /* enter inner scope */
    __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2955, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    for (__pyx_t_11 = 0; __pyx_t_11 < 0x3E8; __pyx_t_11+=1) {
      __pyx_8genexpr5__pyx_v_i = __pyx_t_11;
      __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjSolverStat((&(__pyx_v_p->solver[__pyx_8genexpr5__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2955, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_1))) __PYX_ERR(4, 2955, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
  } /* exit inner scope */
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->_solver);
  __Pyx_DECREF(__pyx_v_self->_solver);
  __pyx_v_self->_solver = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2956
 *         self._timer = [WrapMjTimerStat(&p.timer[i]) for i in range(mjNTIMER)]
 *         self._solver = [WrapMjSolverStat(&p.solver[i]) for i in range(1000)]
 *         self._solver_fwdinv = _wrap_mjtNum_1d(&p.solver_fwdinv[0], 2)             # <<<<<<<<<<<<<<
 *         self._energy = _wrap_mjtNum_1d(&p.energy[0], 2)
 * 
 */
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->solver_fwdinv[0])), 2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_solver_fwdinv);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_solver_fwdinv);
  __pyx_v_self->_solver_fwdinv = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2957
 *         self._solver = [WrapMjSolverStat(&p.solver[i]) for i in range(1000)]
 *         self._solver_fwdinv = _wrap_mjtNum_1d(&p.solver_fwdinv[0], 2)
 *         self._energy = _wrap_mjtNum_1d(&p.energy[0], 2)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_4 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->energy[0])), 2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2957, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_energy);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_energy);
  __pyx_v_self->_energy = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2855
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjData* p, PyMjModel model):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjData._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_i);
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":2959
 *         self._energy = _wrap_mjtNum_1d(&p.energy[0], 2)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def nstack(self): return self.ptr.nstack
 *     @nstack.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6nstack_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6nstack_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_6nstack___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6nstack___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2960
 * 
 *     @property
 *     def nstack(self): return self.ptr.nstack             # <<<<<<<<<<<<<<
 *     @nstack.setter
 *     def nstack(self, int x): self.ptr.nstack = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nstack); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2960, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2959
 *         self._energy = _wrap_mjtNum_1d(&p.energy[0], 2)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def nstack(self): return self.ptr.nstack
 *     @nstack.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.nstack.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2961
 *     @property
 *     def nstack(self): return self.ptr.nstack
 *     @nstack.setter             # <<<<<<<<<<<<<<
 *     def nstack(self, int x): self.ptr.nstack = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_6nstack_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_6nstack_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2962, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.nstack.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_6nstack_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_6nstack_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2962
 *     def nstack(self): return self.ptr.nstack
 *     @nstack.setter
 *     def nstack(self, int x): self.ptr.nstack = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nbuffer(self): return self.ptr.nbuffer
 */
  __pyx_v_self->ptr->nstack = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2961
 *     @property
 *     def nstack(self): return self.ptr.nstack
 *     @nstack.setter             # <<<<<<<<<<<<<<
 *     def nstack(self, int x): self.ptr.nstack = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2963
 *     @nstack.setter
 *     def nstack(self, int x): self.ptr.nstack = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nbuffer(self): return self.ptr.nbuffer
 *     @nbuffer.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7nbuffer_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7nbuffer_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_7nbuffer___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7nbuffer___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2964
 *     def nstack(self, int x): self.ptr.nstack = x
 *     @property
 *     def nbuffer(self): return self.ptr.nbuffer             # <<<<<<<<<<<<<<
 *     @nbuffer.setter
 *     def nbuffer(self, int x): self.ptr.nbuffer = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nbuffer); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2963
 *     @nstack.setter
 *     def nstack(self, int x): self.ptr.nstack = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nbuffer(self): return self.ptr.nbuffer
 *     @nbuffer.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.nbuffer.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2965
 *     @property
 *     def nbuffer(self): return self.ptr.nbuffer
 *     @nbuffer.setter             # <<<<<<<<<<<<<<
 *     def nbuffer(self, int x): self.ptr.nbuffer = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_7nbuffer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_7nbuffer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2966, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.nbuffer.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_7nbuffer_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_7nbuffer_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2966
 *     def nbuffer(self): return self.ptr.nbuffer
 *     @nbuffer.setter
 *     def nbuffer(self, int x): self.ptr.nbuffer = x             # <<<<<<<<<<<<<<
 *     @property
 *     def pstack(self): return self.ptr.pstack
 */
  __pyx_v_self->ptr->nbuffer = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2965
 *     @property
 *     def nbuffer(self): return self.ptr.nbuffer
 *     @nbuffer.setter             # <<<<<<<<<<<<<<
 *     def nbuffer(self, int x): self.ptr.nbuffer = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2967
 *     @nbuffer.setter
 *     def nbuffer(self, int x): self.ptr.nbuffer = x
 *     @property             # <<<<<<<<<<<<<<
 *     def pstack(self): return self.ptr.pstack
 *     @pstack.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6pstack_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6pstack_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_6pstack___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6pstack___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2968
 *     def nbuffer(self, int x): self.ptr.nbuffer = x
 *     @property
 *     def pstack(self): return self.ptr.pstack             # <<<<<<<<<<<<<<
 *     @pstack.setter
 *     def pstack(self, int x): self.ptr.pstack = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->pstack); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2968, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2967
 *     @nbuffer.setter
 *     def nbuffer(self, int x): self.ptr.nbuffer = x
 *     @property             # <<<<<<<<<<<<<<
 *     def pstack(self): return self.ptr.pstack
 *     @pstack.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.pstack.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2969
 *     @property
 *     def pstack(self): return self.ptr.pstack
 *     @pstack.setter             # <<<<<<<<<<<<<<
 *     def pstack(self, int x): self.ptr.pstack = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_6pstack_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_6pstack_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2970, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.pstack.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_6pstack_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_6pstack_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2970
 *     def pstack(self): return self.ptr.pstack
 *     @pstack.setter
 *     def pstack(self, int x): self.ptr.pstack = x             # <<<<<<<<<<<<<<
 *     @property
 *     def maxuse_stack(self): return self.ptr.maxuse_stack
 */
  __pyx_v_self->ptr->pstack = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2969
 *     @property
 *     def pstack(self): return self.ptr.pstack
 *     @pstack.setter             # <<<<<<<<<<<<<<
 *     def pstack(self, int x): self.ptr.pstack = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2971
 *     @pstack.setter
 *     def pstack(self, int x): self.ptr.pstack = x
 *     @property             # <<<<<<<<<<<<<<
 *     def maxuse_stack(self): return self.ptr.maxuse_stack
 *     @maxuse_stack.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12maxuse_stack_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12maxuse_stack_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_12maxuse_stack___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12maxuse_stack___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2972
 *     def pstack(self, int x): self.ptr.pstack = x
 *     @property
 *     def maxuse_stack(self): return self.ptr.maxuse_stack             # <<<<<<<<<<<<<<
 *     @maxuse_stack.setter
 *     def maxuse_stack(self, int x): self.ptr.maxuse_stack = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->maxuse_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2971
 *     @pstack.setter
 *     def pstack(self, int x): self.ptr.pstack = x
 *     @property             # <<<<<<<<<<<<<<
 *     def maxuse_stack(self): return self.ptr.maxuse_stack
 *     @maxuse_stack.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.maxuse_stack.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2973
 *     @property
 *     def maxuse_stack(self): return self.ptr.maxuse_stack
 *     @maxuse_stack.setter             # <<<<<<<<<<<<<<
 *     def maxuse_stack(self, int x): self.ptr.maxuse_stack = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_12maxuse_stack_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_12maxuse_stack_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2974, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.maxuse_stack.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_12maxuse_stack_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_12maxuse_stack_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2974
 *     def maxuse_stack(self): return self.ptr.maxuse_stack
 *     @maxuse_stack.setter
 *     def maxuse_stack(self, int x): self.ptr.maxuse_stack = x             # <<<<<<<<<<<<<<
 *     @property
 *     def maxuse_con(self): return self.ptr.maxuse_con
 */
  __pyx_v_self->ptr->maxuse_stack = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2973
 *     @property
 *     def maxuse_stack(self): return self.ptr.maxuse_stack
 *     @maxuse_stack.setter             # <<<<<<<<<<<<<<
 *     def maxuse_stack(self, int x): self.ptr.maxuse_stack = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2975
 *     @maxuse_stack.setter
 *     def maxuse_stack(self, int x): self.ptr.maxuse_stack = x
 *     @property             # <<<<<<<<<<<<<<
 *     def maxuse_con(self): return self.ptr.maxuse_con
 *     @maxuse_con.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10maxuse_con_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10maxuse_con_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10maxuse_con___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10maxuse_con___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2976
 *     def maxuse_stack(self, int x): self.ptr.maxuse_stack = x
 *     @property
 *     def maxuse_con(self): return self.ptr.maxuse_con             # <<<<<<<<<<<<<<
 *     @maxuse_con.setter
 *     def maxuse_con(self, int x): self.ptr.maxuse_con = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->maxuse_con); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2976, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2975
 *     @maxuse_stack.setter
 *     def maxuse_stack(self, int x): self.ptr.maxuse_stack = x
 *     @property             # <<<<<<<<<<<<<<
 *     def maxuse_con(self): return self.ptr.maxuse_con
 *     @maxuse_con.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.maxuse_con.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2977
 *     @property
 *     def maxuse_con(self): return self.ptr.maxuse_con
 *     @maxuse_con.setter             # <<<<<<<<<<<<<<
 *     def maxuse_con(self, int x): self.ptr.maxuse_con = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_10maxuse_con_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_10maxuse_con_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2978, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.maxuse_con.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10maxuse_con_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_10maxuse_con_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2978
 *     def maxuse_con(self): return self.ptr.maxuse_con
 *     @maxuse_con.setter
 *     def maxuse_con(self, int x): self.ptr.maxuse_con = x             # <<<<<<<<<<<<<<
 *     @property
 *     def maxuse_efc(self): return self.ptr.maxuse_efc
 */
  __pyx_v_self->ptr->maxuse_con = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2977
 *     @property
 *     def maxuse_con(self): return self.ptr.maxuse_con
 *     @maxuse_con.setter             # <<<<<<<<<<<<<<
 *     def maxuse_con(self, int x): self.ptr.maxuse_con = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2979
 *     @maxuse_con.setter
 *     def maxuse_con(self, int x): self.ptr.maxuse_con = x
 *     @property             # <<<<<<<<<<<<<<
 *     def maxuse_efc(self): return self.ptr.maxuse_efc
 *     @maxuse_efc.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10maxuse_efc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10maxuse_efc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10maxuse_efc___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10maxuse_efc___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2980
 *     def maxuse_con(self, int x): self.ptr.maxuse_con = x
 *     @property
 *     def maxuse_efc(self): return self.ptr.maxuse_efc             # <<<<<<<<<<<<<<
 *     @maxuse_efc.setter
 *     def maxuse_efc(self, int x): self.ptr.maxuse_efc = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->maxuse_efc); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2979
 *     @maxuse_con.setter
 *     def maxuse_con(self, int x): self.ptr.maxuse_con = x
 *     @property             # <<<<<<<<<<<<<<
 *     def maxuse_efc(self): return self.ptr.maxuse_efc
 *     @maxuse_efc.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.maxuse_efc.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2981
 *     @property
 *     def maxuse_efc(self): return self.ptr.maxuse_efc
 *     @maxuse_efc.setter             # <<<<<<<<<<<<<<
 *     def maxuse_efc(self, int x): self.ptr.maxuse_efc = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_10maxuse_efc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_10maxuse_efc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2982, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.maxuse_efc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10maxuse_efc_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_10maxuse_efc_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2982
 *     def maxuse_efc(self): return self.ptr.maxuse_efc
 *     @maxuse_efc.setter
 *     def maxuse_efc(self, int x): self.ptr.maxuse_efc = x             # <<<<<<<<<<<<<<
 *     @property
 *     def solver_iter(self): return self.ptr.solver_iter
 */
  __pyx_v_self->ptr->maxuse_efc = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2981
 *     @property
 *     def maxuse_efc(self): return self.ptr.maxuse_efc
 *     @maxuse_efc.setter             # <<<<<<<<<<<<<<
 *     def maxuse_efc(self, int x): self.ptr.maxuse_efc = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2983
 *     @maxuse_efc.setter
 *     def maxuse_efc(self, int x): self.ptr.maxuse_efc = x
 *     @property             # <<<<<<<<<<<<<<
 *     def solver_iter(self): return self.ptr.solver_iter
 *     @solver_iter.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_11solver_iter_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_11solver_iter_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_11solver_iter___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_11solver_iter___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2984
 *     def maxuse_efc(self, int x): self.ptr.maxuse_efc = x
 *     @property
 *     def solver_iter(self): return self.ptr.solver_iter             # <<<<<<<<<<<<<<
 *     @solver_iter.setter
 *     def solver_iter(self, int x): self.ptr.solver_iter = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->solver_iter); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2984, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2983
 *     @maxuse_efc.setter
 *     def maxuse_efc(self, int x): self.ptr.maxuse_efc = x
 *     @property             # <<<<<<<<<<<<<<
 *     def solver_iter(self): return self.ptr.solver_iter
 *     @solver_iter.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.solver_iter.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2985
 *     @property
 *     def solver_iter(self): return self.ptr.solver_iter
 *     @solver_iter.setter             # <<<<<<<<<<<<<<
 *     def solver_iter(self, int x): self.ptr.solver_iter = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_11solver_iter_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_11solver_iter_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2986, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.solver_iter.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_11solver_iter_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_11solver_iter_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2986
 *     def solver_iter(self): return self.ptr.solver_iter
 *     @solver_iter.setter
 *     def solver_iter(self, int x): self.ptr.solver_iter = x             # <<<<<<<<<<<<<<
 *     @property
 *     def solver_nnz(self): return self.ptr.solver_nnz
 */
  __pyx_v_self->ptr->solver_iter = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2985
 *     @property
 *     def solver_iter(self): return self.ptr.solver_iter
 *     @solver_iter.setter             # <<<<<<<<<<<<<<
 *     def solver_iter(self, int x): self.ptr.solver_iter = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2987
 *     @solver_iter.setter
 *     def solver_iter(self, int x): self.ptr.solver_iter = x
 *     @property             # <<<<<<<<<<<<<<
 *     def solver_nnz(self): return self.ptr.solver_nnz
 *     @solver_nnz.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10solver_nnz_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10solver_nnz_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10solver_nnz___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10solver_nnz___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2988
 *     def solver_iter(self, int x): self.ptr.solver_iter = x
 *     @property
 *     def solver_nnz(self): return self.ptr.solver_nnz             # <<<<<<<<<<<<<<
 *     @solver_nnz.setter
 *     def solver_nnz(self, int x): self.ptr.solver_nnz = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->solver_nnz); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2987
 *     @solver_iter.setter
 *     def solver_iter(self, int x): self.ptr.solver_iter = x
 *     @property             # <<<<<<<<<<<<<<
 *     def solver_nnz(self): return self.ptr.solver_nnz
 *     @solver_nnz.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.solver_nnz.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2989
 *     @property
 *     def solver_nnz(self): return self.ptr.solver_nnz
 *     @solver_nnz.setter             # <<<<<<<<<<<<<<
 *     def solver_nnz(self, int x): self.ptr.solver_nnz = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_10solver_nnz_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_10solver_nnz_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2990, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.solver_nnz.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10solver_nnz_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_10solver_nnz_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2990
 *     def solver_nnz(self): return self.ptr.solver_nnz
 *     @solver_nnz.setter
 *     def solver_nnz(self, int x): self.ptr.solver_nnz = x             # <<<<<<<<<<<<<<
 *     @property
 *     def ne(self): return self.ptr.ne
 */
  __pyx_v_self->ptr->solver_nnz = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2989
 *     @property
 *     def solver_nnz(self): return self.ptr.solver_nnz
 *     @solver_nnz.setter             # <<<<<<<<<<<<<<
 *     def solver_nnz(self, int x): self.ptr.solver_nnz = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2991
 *     @solver_nnz.setter
 *     def solver_nnz(self, int x): self.ptr.solver_nnz = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ne(self): return self.ptr.ne
 *     @ne.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_2ne_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_2ne_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_2ne___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_2ne___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2992
 *     def solver_nnz(self, int x): self.ptr.solver_nnz = x
 *     @property
 *     def ne(self): return self.ptr.ne             # <<<<<<<<<<<<<<
 *     @ne.setter
 *     def ne(self, int x): self.ptr.ne = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->ne); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2991
 *     @solver_nnz.setter
 *     def solver_nnz(self, int x): self.ptr.solver_nnz = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ne(self): return self.ptr.ne
 *     @ne.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.ne.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2993
 *     @property
 *     def ne(self): return self.ptr.ne
 *     @ne.setter             # <<<<<<<<<<<<<<
 *     def ne(self, int x): self.ptr.ne = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_2ne_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_2ne_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2994, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.ne.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_2ne_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_2ne_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2994
 *     def ne(self): return self.ptr.ne
 *     @ne.setter
 *     def ne(self, int x): self.ptr.ne = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nf(self): return self.ptr.nf
 */
  __pyx_v_self->ptr->ne = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2993
 *     @property
 *     def ne(self): return self.ptr.ne
 *     @ne.setter             # <<<<<<<<<<<<<<
 *     def ne(self, int x): self.ptr.ne = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2995
 *     @ne.setter
 *     def ne(self, int x): self.ptr.ne = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nf(self): return self.ptr.nf
 *     @nf.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_2nf_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_2nf_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_2nf___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_2nf___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":2996
 *     def ne(self, int x): self.ptr.ne = x
 *     @property
 *     def nf(self): return self.ptr.nf             # <<<<<<<<<<<<<<
 *     @nf.setter
 *     def nf(self, int x): self.ptr.nf = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nf); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2995
 *     @ne.setter
 *     def ne(self, int x): self.ptr.ne = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nf(self): return self.ptr.nf
 *     @nf.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.nf.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2997
 *     @property
 *     def nf(self): return self.ptr.nf
 *     @nf.setter             # <<<<<<<<<<<<<<
 *     def nf(self, int x): self.ptr.nf = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_2nf_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_2nf_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2998, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.nf.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_2nf_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_2nf_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":2998
 *     def nf(self): return self.ptr.nf
 *     @nf.setter
 *     def nf(self, int x): self.ptr.nf = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nefc(self): return self.ptr.nefc
 */
  __pyx_v_self->ptr->nf = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":2997
 *     @property
 *     def nf(self): return self.ptr.nf
 *     @nf.setter             # <<<<<<<<<<<<<<
 *     def nf(self, int x): self.ptr.nf = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":2999
 *     @nf.setter
 *     def nf(self, int x): self.ptr.nf = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nefc(self): return self.ptr.nefc
 *     @nefc.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4nefc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4nefc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4nefc___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4nefc___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3000
 *     def nf(self, int x): self.ptr.nf = x
 *     @property
 *     def nefc(self): return self.ptr.nefc             # <<<<<<<<<<<<<<
 *     @nefc.setter
 *     def nefc(self, int x): self.ptr.nefc = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nefc); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3000, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":2999
 *     @nf.setter
 *     def nf(self, int x): self.ptr.nf = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nefc(self): return self.ptr.nefc
 *     @nefc.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.nefc.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3001
 *     @property
 *     def nefc(self): return self.ptr.nefc
 *     @nefc.setter             # <<<<<<<<<<<<<<
 *     def nefc(self, int x): self.ptr.nefc = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_4nefc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_4nefc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3002, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.nefc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4nefc_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_4nefc_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3002
 *     def nefc(self): return self.ptr.nefc
 *     @nefc.setter
 *     def nefc(self, int x): self.ptr.nefc = x             # <<<<<<<<<<<<<<
 *     @property
 *     def ncon(self): return self.ptr.ncon
 */
  __pyx_v_self->ptr->nefc = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3001
 *     @property
 *     def nefc(self): return self.ptr.nefc
 *     @nefc.setter             # <<<<<<<<<<<<<<
 *     def nefc(self, int x): self.ptr.nefc = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3003
 *     @nefc.setter
 *     def nefc(self, int x): self.ptr.nefc = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ncon(self): return self.ptr.ncon
 *     @ncon.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4ncon_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4ncon_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4ncon___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4ncon___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3004
 *     def nefc(self, int x): self.ptr.nefc = x
 *     @property
 *     def ncon(self): return self.ptr.ncon             # <<<<<<<<<<<<<<
 *     @ncon.setter
 *     def ncon(self, int x): self.ptr.ncon = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->ncon); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3003
 *     @nefc.setter
 *     def nefc(self, int x): self.ptr.nefc = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ncon(self): return self.ptr.ncon
 *     @ncon.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.ncon.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3005
 *     @property
 *     def ncon(self): return self.ptr.ncon
 *     @ncon.setter             # <<<<<<<<<<<<<<
 *     def ncon(self, int x): self.ptr.ncon = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_4ncon_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_4ncon_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3006, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.ncon.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4ncon_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_4ncon_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3006
 *     def ncon(self): return self.ptr.ncon
 *     @ncon.setter
 *     def ncon(self, int x): self.ptr.ncon = x             # <<<<<<<<<<<<<<
 *     @property
 *     def time(self): return self.ptr.time
 */
  __pyx_v_self->ptr->ncon = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3005
 *     @property
 *     def ncon(self): return self.ptr.ncon
 *     @ncon.setter             # <<<<<<<<<<<<<<
 *     def ncon(self, int x): self.ptr.ncon = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3007
 *     @ncon.setter
 *     def ncon(self, int x): self.ptr.ncon = x
 *     @property             # <<<<<<<<<<<<<<
 *     def time(self): return self.ptr.time
 *     @time.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4time_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4time_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4time___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4time___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3008
 *     def ncon(self, int x): self.ptr.ncon = x
 *     @property
 *     def time(self): return self.ptr.time             # <<<<<<<<<<<<<<
 *     @time.setter
 *     def time(self, mjtNum x): self.ptr.time = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->time); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3008, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3007
 *     @ncon.setter
 *     def ncon(self, int x): self.ptr.ncon = x
 *     @property             # <<<<<<<<<<<<<<
 *     def time(self): return self.ptr.time
 *     @time.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.time.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3009
 *     @property
 *     def time(self): return self.ptr.time
 *     @time.setter             # <<<<<<<<<<<<<<
 *     def time(self, mjtNum x): self.ptr.time = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_4time_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_8PyMjData_4time_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 3010, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.time.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4time_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_8PyMjData_4time_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3010
 *     def time(self): return self.ptr.time
 *     @time.setter
 *     def time(self, mjtNum x): self.ptr.time = x             # <<<<<<<<<<<<<<
 *     @property
 *     def qpos(self): return self._qpos
 */
  __pyx_v_self->ptr->time = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3009
 *     @property
 *     def time(self): return self.ptr.time
 *     @time.setter             # <<<<<<<<<<<<<<
 *     def time(self, mjtNum x): self.ptr.time = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3011
 *     @time.setter
 *     def time(self, mjtNum x): self.ptr.time = x
 *     @property             # <<<<<<<<<<<<<<
 *     def qpos(self): return self._qpos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4qpos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4qpos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4qpos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4qpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3012
 *     def time(self, mjtNum x): self.ptr.time = x
 *     @property
 *     def qpos(self): return self._qpos             # <<<<<<<<<<<<<<
 *     @property
 *     def qvel(self): return self._qvel
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qpos);
  __pyx_r = ((PyObject *)__pyx_v_self->_qpos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3011
 *     @time.setter
 *     def time(self, mjtNum x): self.ptr.time = x
 *     @property             # <<<<<<<<<<<<<<
 *     def qpos(self): return self._qpos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3013
 *     @property
 *     def qpos(self): return self._qpos
 *     @property             # <<<<<<<<<<<<<<
 *     def qvel(self): return self._qvel
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4qvel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4qvel_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4qvel___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4qvel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3014
 *     def qpos(self): return self._qpos
 *     @property
 *     def qvel(self): return self._qvel             # <<<<<<<<<<<<<<
 *     @property
 *     def act(self): return self._act
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qvel);
  __pyx_r = ((PyObject *)__pyx_v_self->_qvel);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3013
 *     @property
 *     def qpos(self): return self._qpos
 *     @property             # <<<<<<<<<<<<<<
 *     def qvel(self): return self._qvel
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3015
 *     @property
 *     def qvel(self): return self._qvel
 *     @property             # <<<<<<<<<<<<<<
 *     def act(self): return self._act
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_3act_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_3act_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_3act___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_3act___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3016
 *     def qvel(self): return self._qvel
 *     @property
 *     def act(self): return self._act             # <<<<<<<<<<<<<<
 *     @property
 *     def qacc_warmstart(self): return self._qacc_warmstart
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_act);
  __pyx_r = ((PyObject *)__pyx_v_self->_act);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3015
 *     @property
 *     def qvel(self): return self._qvel
 *     @property             # <<<<<<<<<<<<<<
 *     def act(self): return self._act
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3017
 *     @property
 *     def act(self): return self._act
 *     @property             # <<<<<<<<<<<<<<
 *     def qacc_warmstart(self): return self._qacc_warmstart
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_14qacc_warmstart_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_14qacc_warmstart_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_14qacc_warmstart___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_14qacc_warmstart___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3018
 *     def act(self): return self._act
 *     @property
 *     def qacc_warmstart(self): return self._qacc_warmstart             # <<<<<<<<<<<<<<
 *     @property
 *     def ctrl(self): return self._ctrl
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qacc_warmstart);
  __pyx_r = ((PyObject *)__pyx_v_self->_qacc_warmstart);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3017
 *     @property
 *     def act(self): return self._act
 *     @property             # <<<<<<<<<<<<<<
 *     def qacc_warmstart(self): return self._qacc_warmstart
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3019
 *     @property
 *     def qacc_warmstart(self): return self._qacc_warmstart
 *     @property             # <<<<<<<<<<<<<<
 *     def ctrl(self): return self._ctrl
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4ctrl_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4ctrl_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4ctrl___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4ctrl___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3020
 *     def qacc_warmstart(self): return self._qacc_warmstart
 *     @property
 *     def ctrl(self): return self._ctrl             # <<<<<<<<<<<<<<
 *     @property
 *     def qfrc_applied(self): return self._qfrc_applied
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_ctrl);
  __pyx_r = ((PyObject *)__pyx_v_self->_ctrl);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3019
 *     @property
 *     def qacc_warmstart(self): return self._qacc_warmstart
 *     @property             # <<<<<<<<<<<<<<
 *     def ctrl(self): return self._ctrl
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3021
 *     @property
 *     def ctrl(self): return self._ctrl
 *     @property             # <<<<<<<<<<<<<<
 *     def qfrc_applied(self): return self._qfrc_applied
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12qfrc_applied_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12qfrc_applied_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_12qfrc_applied___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12qfrc_applied___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3022
 *     def ctrl(self): return self._ctrl
 *     @property
 *     def qfrc_applied(self): return self._qfrc_applied             # <<<<<<<<<<<<<<
 *     @property
 *     def xfrc_applied(self): return self._xfrc_applied
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qfrc_applied);
  __pyx_r = ((PyObject *)__pyx_v_self->_qfrc_applied);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3021
 *     @property
 *     def ctrl(self): return self._ctrl
 *     @property             # <<<<<<<<<<<<<<
 *     def qfrc_applied(self): return self._qfrc_applied
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3023
 *     @property
 *     def qfrc_applied(self): return self._qfrc_applied
 *     @property             # <<<<<<<<<<<<<<
 *     def xfrc_applied(self): return self._xfrc_applied
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12xfrc_applied_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12xfrc_applied_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_12xfrc_applied___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12xfrc_applied___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3024
 *     def qfrc_applied(self): return self._qfrc_applied
 *     @property
 *     def xfrc_applied(self): return self._xfrc_applied             # <<<<<<<<<<<<<<
 *     @property
 *     def qacc(self): return self._qacc
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_xfrc_applied);
  __pyx_r = ((PyObject *)__pyx_v_self->_xfrc_applied);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3023
 *     @property
 *     def qfrc_applied(self): return self._qfrc_applied
 *     @property             # <<<<<<<<<<<<<<
 *     def xfrc_applied(self): return self._xfrc_applied
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3025
 *     @property
 *     def xfrc_applied(self): return self._xfrc_applied
 *     @property             # <<<<<<<<<<<<<<
 *     def qacc(self): return self._qacc
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4qacc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4qacc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4qacc___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4qacc___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3026
 *     def xfrc_applied(self): return self._xfrc_applied
 *     @property
 *     def qacc(self): return self._qacc             # <<<<<<<<<<<<<<
 *     @property
 *     def act_dot(self): return self._act_dot
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qacc);
  __pyx_r = ((PyObject *)__pyx_v_self->_qacc);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3025
 *     @property
 *     def xfrc_applied(self): return self._xfrc_applied
 *     @property             # <<<<<<<<<<<<<<
 *     def qacc(self): return self._qacc
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3027
 *     @property
 *     def qacc(self): return self._qacc
 *     @property             # <<<<<<<<<<<<<<
 *     def act_dot(self): return self._act_dot
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7act_dot_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7act_dot_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_7act_dot___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7act_dot___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3028
 *     def qacc(self): return self._qacc
 *     @property
 *     def act_dot(self): return self._act_dot             # <<<<<<<<<<<<<<
 *     @property
 *     def mocap_pos(self): return self._mocap_pos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_act_dot);
  __pyx_r = ((PyObject *)__pyx_v_self->_act_dot);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3027
 *     @property
 *     def qacc(self): return self._qacc
 *     @property             # <<<<<<<<<<<<<<
 *     def act_dot(self): return self._act_dot
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3029
 *     @property
 *     def act_dot(self): return self._act_dot
 *     @property             # <<<<<<<<<<<<<<
 *     def mocap_pos(self): return self._mocap_pos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9mocap_pos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9mocap_pos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9mocap_pos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9mocap_pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3030
 *     def act_dot(self): return self._act_dot
 *     @property
 *     def mocap_pos(self): return self._mocap_pos             # <<<<<<<<<<<<<<
 *     @property
 *     def mocap_quat(self): return self._mocap_quat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mocap_pos);
  __pyx_r = ((PyObject *)__pyx_v_self->_mocap_pos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3029
 *     @property
 *     def act_dot(self): return self._act_dot
 *     @property             # <<<<<<<<<<<<<<
 *     def mocap_pos(self): return self._mocap_pos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3031
 *     @property
 *     def mocap_pos(self): return self._mocap_pos
 *     @property             # <<<<<<<<<<<<<<
 *     def mocap_quat(self): return self._mocap_quat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10mocap_quat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10mocap_quat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10mocap_quat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10mocap_quat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3032
 *     def mocap_pos(self): return self._mocap_pos
 *     @property
 *     def mocap_quat(self): return self._mocap_quat             # <<<<<<<<<<<<<<
 *     @property
 *     def userdata(self): return self._userdata
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mocap_quat);
  __pyx_r = ((PyObject *)__pyx_v_self->_mocap_quat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3031
 *     @property
 *     def mocap_pos(self): return self._mocap_pos
 *     @property             # <<<<<<<<<<<<<<
 *     def mocap_quat(self): return self._mocap_quat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3033
 *     @property
 *     def mocap_quat(self): return self._mocap_quat
 *     @property             # <<<<<<<<<<<<<<
 *     def userdata(self): return self._userdata
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8userdata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8userdata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_8userdata___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8userdata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3034
 *     def mocap_quat(self): return self._mocap_quat
 *     @property
 *     def userdata(self): return self._userdata             # <<<<<<<<<<<<<<
 *     @property
 *     def sensordata(self): return self._sensordata
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_userdata);
  __pyx_r = ((PyObject *)__pyx_v_self->_userdata);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3033
 *     @property
 *     def mocap_quat(self): return self._mocap_quat
 *     @property             # <<<<<<<<<<<<<<
 *     def userdata(self): return self._userdata
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3035
 *     @property
 *     def userdata(self): return self._userdata
 *     @property             # <<<<<<<<<<<<<<
 *     def sensordata(self): return self._sensordata
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10sensordata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10sensordata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10sensordata___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10sensordata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3036
 *     def userdata(self): return self._userdata
 *     @property
 *     def sensordata(self): return self._sensordata             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_sensordata);
  __pyx_r = ((PyObject *)__pyx_v_self->_sensordata);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3035
 *     @property
 *     def userdata(self): return self._userdata
 *     @property             # <<<<<<<<<<<<<<
 *     def sensordata(self): return self._sensordata
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3038
 *     def sensordata(self): return self._sensordata
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def xpos(self):
 *         raise RuntimeError("body_xpos should be used instead of xpos")
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4xpos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4xpos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4xpos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4xpos___get__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3040
 *     @property
 *     def xpos(self):
 *         raise RuntimeError("body_xpos should be used instead of xpos")             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(4, 3040, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":3038
 *     def sensordata(self): return self._sensordata
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def xpos(self):
 *         raise RuntimeError("body_xpos should be used instead of xpos")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.xpos.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3043
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def xquat(self):
 *         raise RuntimeError("body_xquat should be used instead of xquat")
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5xquat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5xquat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_5xquat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5xquat___get__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3045
 *     @property
 *     def xquat(self):
 *         raise RuntimeError("body_xquat should be used instead of xquat")             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3045, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(4, 3045, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":3043
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def xquat(self):
 *         raise RuntimeError("body_xquat should be used instead of xquat")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.xquat.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3048
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def xmat(self):
 *         raise RuntimeError("body_xmat should be used instead of xmat")
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4xmat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4xmat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4xmat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4xmat___get__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3050
 *     @property
 *     def xmat(self):
 *         raise RuntimeError("body_xmat should be used instead of xmat")             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3050, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(4, 3050, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":3048
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def xmat(self):
 *         raise RuntimeError("body_xmat should be used instead of xmat")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.xmat.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3052
 *         raise RuntimeError("body_xmat should be used instead of xmat")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def xipos(self): return self._xipos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5xipos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5xipos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_5xipos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5xipos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3053
 * 
 *     @property
 *     def xipos(self): return self._xipos             # <<<<<<<<<<<<<<
 *     @property
 *     def ximat(self): return self._ximat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_xipos);
  __pyx_r = ((PyObject *)__pyx_v_self->_xipos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3052
 *         raise RuntimeError("body_xmat should be used instead of xmat")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def xipos(self): return self._xipos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3054
 *     @property
 *     def xipos(self): return self._xipos
 *     @property             # <<<<<<<<<<<<<<
 *     def ximat(self): return self._ximat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5ximat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5ximat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_5ximat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5ximat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3055
 *     def xipos(self): return self._xipos
 *     @property
 *     def ximat(self): return self._ximat             # <<<<<<<<<<<<<<
 *     @property
 *     def xanchor(self): return self._xanchor
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_ximat);
  __pyx_r = ((PyObject *)__pyx_v_self->_ximat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3054
 *     @property
 *     def xipos(self): return self._xipos
 *     @property             # <<<<<<<<<<<<<<
 *     def ximat(self): return self._ximat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3056
 *     @property
 *     def ximat(self): return self._ximat
 *     @property             # <<<<<<<<<<<<<<
 *     def xanchor(self): return self._xanchor
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7xanchor_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7xanchor_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_7xanchor___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7xanchor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3057
 *     def ximat(self): return self._ximat
 *     @property
 *     def xanchor(self): return self._xanchor             # <<<<<<<<<<<<<<
 *     @property
 *     def xaxis(self): return self._xaxis
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_xanchor);
  __pyx_r = ((PyObject *)__pyx_v_self->_xanchor);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3056
 *     @property
 *     def ximat(self): return self._ximat
 *     @property             # <<<<<<<<<<<<<<
 *     def xanchor(self): return self._xanchor
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3058
 *     @property
 *     def xanchor(self): return self._xanchor
 *     @property             # <<<<<<<<<<<<<<
 *     def xaxis(self): return self._xaxis
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5xaxis_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5xaxis_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_5xaxis___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5xaxis___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3059
 *     def xanchor(self): return self._xanchor
 *     @property
 *     def xaxis(self): return self._xaxis             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_xpos(self): return self._geom_xpos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_xaxis);
  __pyx_r = ((PyObject *)__pyx_v_self->_xaxis);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3058
 *     @property
 *     def xanchor(self): return self._xanchor
 *     @property             # <<<<<<<<<<<<<<
 *     def xaxis(self): return self._xaxis
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3060
 *     @property
 *     def xaxis(self): return self._xaxis
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_xpos(self): return self._geom_xpos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9geom_xpos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9geom_xpos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9geom_xpos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9geom_xpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3061
 *     def xaxis(self): return self._xaxis
 *     @property
 *     def geom_xpos(self): return self._geom_xpos             # <<<<<<<<<<<<<<
 *     @property
 *     def geom_xmat(self): return self._geom_xmat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_xpos);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_xpos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3060
 *     @property
 *     def xaxis(self): return self._xaxis
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_xpos(self): return self._geom_xpos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3062
 *     @property
 *     def geom_xpos(self): return self._geom_xpos
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_xmat(self): return self._geom_xmat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9geom_xmat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9geom_xmat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9geom_xmat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9geom_xmat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3063
 *     def geom_xpos(self): return self._geom_xpos
 *     @property
 *     def geom_xmat(self): return self._geom_xmat             # <<<<<<<<<<<<<<
 *     @property
 *     def site_xpos(self): return self._site_xpos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geom_xmat);
  __pyx_r = ((PyObject *)__pyx_v_self->_geom_xmat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3062
 *     @property
 *     def geom_xpos(self): return self._geom_xpos
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_xmat(self): return self._geom_xmat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3064
 *     @property
 *     def geom_xmat(self): return self._geom_xmat
 *     @property             # <<<<<<<<<<<<<<
 *     def site_xpos(self): return self._site_xpos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9site_xpos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9site_xpos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9site_xpos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9site_xpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3065
 *     def geom_xmat(self): return self._geom_xmat
 *     @property
 *     def site_xpos(self): return self._site_xpos             # <<<<<<<<<<<<<<
 *     @property
 *     def site_xmat(self): return self._site_xmat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_site_xpos);
  __pyx_r = ((PyObject *)__pyx_v_self->_site_xpos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3064
 *     @property
 *     def geom_xmat(self): return self._geom_xmat
 *     @property             # <<<<<<<<<<<<<<
 *     def site_xpos(self): return self._site_xpos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3066
 *     @property
 *     def site_xpos(self): return self._site_xpos
 *     @property             # <<<<<<<<<<<<<<
 *     def site_xmat(self): return self._site_xmat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9site_xmat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9site_xmat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9site_xmat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9site_xmat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3067
 *     def site_xpos(self): return self._site_xpos
 *     @property
 *     def site_xmat(self): return self._site_xmat             # <<<<<<<<<<<<<<
 *     @property
 *     def cam_xpos(self): return self._cam_xpos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_site_xmat);
  __pyx_r = ((PyObject *)__pyx_v_self->_site_xmat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3066
 *     @property
 *     def site_xpos(self): return self._site_xpos
 *     @property             # <<<<<<<<<<<<<<
 *     def site_xmat(self): return self._site_xmat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3068
 *     @property
 *     def site_xmat(self): return self._site_xmat
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_xpos(self): return self._cam_xpos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8cam_xpos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8cam_xpos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_8cam_xpos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8cam_xpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3069
 *     def site_xmat(self): return self._site_xmat
 *     @property
 *     def cam_xpos(self): return self._cam_xpos             # <<<<<<<<<<<<<<
 *     @property
 *     def cam_xmat(self): return self._cam_xmat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cam_xpos);
  __pyx_r = ((PyObject *)__pyx_v_self->_cam_xpos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3068
 *     @property
 *     def site_xmat(self): return self._site_xmat
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_xpos(self): return self._cam_xpos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3070
 *     @property
 *     def cam_xpos(self): return self._cam_xpos
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_xmat(self): return self._cam_xmat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8cam_xmat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8cam_xmat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_8cam_xmat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8cam_xmat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3071
 *     def cam_xpos(self): return self._cam_xpos
 *     @property
 *     def cam_xmat(self): return self._cam_xmat             # <<<<<<<<<<<<<<
 *     @property
 *     def light_xpos(self): return self._light_xpos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cam_xmat);
  __pyx_r = ((PyObject *)__pyx_v_self->_cam_xmat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3070
 *     @property
 *     def cam_xpos(self): return self._cam_xpos
 *     @property             # <<<<<<<<<<<<<<
 *     def cam_xmat(self): return self._cam_xmat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3072
 *     @property
 *     def cam_xmat(self): return self._cam_xmat
 *     @property             # <<<<<<<<<<<<<<
 *     def light_xpos(self): return self._light_xpos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10light_xpos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10light_xpos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10light_xpos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10light_xpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3073
 *     def cam_xmat(self): return self._cam_xmat
 *     @property
 *     def light_xpos(self): return self._light_xpos             # <<<<<<<<<<<<<<
 *     @property
 *     def light_xdir(self): return self._light_xdir
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_xpos);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_xpos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3072
 *     @property
 *     def cam_xmat(self): return self._cam_xmat
 *     @property             # <<<<<<<<<<<<<<
 *     def light_xpos(self): return self._light_xpos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3074
 *     @property
 *     def light_xpos(self): return self._light_xpos
 *     @property             # <<<<<<<<<<<<<<
 *     def light_xdir(self): return self._light_xdir
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10light_xdir_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10light_xdir_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10light_xdir___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10light_xdir___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3075
 *     def light_xpos(self): return self._light_xpos
 *     @property
 *     def light_xdir(self): return self._light_xdir             # <<<<<<<<<<<<<<
 *     @property
 *     def subtree_com(self): return self._subtree_com
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_light_xdir);
  __pyx_r = ((PyObject *)__pyx_v_self->_light_xdir);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3074
 *     @property
 *     def light_xpos(self): return self._light_xpos
 *     @property             # <<<<<<<<<<<<<<
 *     def light_xdir(self): return self._light_xdir
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3076
 *     @property
 *     def light_xdir(self): return self._light_xdir
 *     @property             # <<<<<<<<<<<<<<
 *     def subtree_com(self): return self._subtree_com
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_11subtree_com_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_11subtree_com_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_11subtree_com___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_11subtree_com___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3077
 *     def light_xdir(self): return self._light_xdir
 *     @property
 *     def subtree_com(self): return self._subtree_com             # <<<<<<<<<<<<<<
 *     @property
 *     def cdof(self): return self._cdof
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_subtree_com);
  __pyx_r = ((PyObject *)__pyx_v_self->_subtree_com);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3076
 *     @property
 *     def light_xdir(self): return self._light_xdir
 *     @property             # <<<<<<<<<<<<<<
 *     def subtree_com(self): return self._subtree_com
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3078
 *     @property
 *     def subtree_com(self): return self._subtree_com
 *     @property             # <<<<<<<<<<<<<<
 *     def cdof(self): return self._cdof
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4cdof_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4cdof_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4cdof___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4cdof___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3079
 *     def subtree_com(self): return self._subtree_com
 *     @property
 *     def cdof(self): return self._cdof             # <<<<<<<<<<<<<<
 *     @property
 *     def cinert(self): return self._cinert
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cdof);
  __pyx_r = ((PyObject *)__pyx_v_self->_cdof);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3078
 *     @property
 *     def subtree_com(self): return self._subtree_com
 *     @property             # <<<<<<<<<<<<<<
 *     def cdof(self): return self._cdof
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3080
 *     @property
 *     def cdof(self): return self._cdof
 *     @property             # <<<<<<<<<<<<<<
 *     def cinert(self): return self._cinert
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6cinert_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6cinert_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_6cinert___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6cinert___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3081
 *     def cdof(self): return self._cdof
 *     @property
 *     def cinert(self): return self._cinert             # <<<<<<<<<<<<<<
 *     @property
 *     def ten_wrapadr(self): return self._ten_wrapadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cinert);
  __pyx_r = ((PyObject *)__pyx_v_self->_cinert);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3080
 *     @property
 *     def cdof(self): return self._cdof
 *     @property             # <<<<<<<<<<<<<<
 *     def cinert(self): return self._cinert
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3082
 *     @property
 *     def cinert(self): return self._cinert
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_wrapadr(self): return self._ten_wrapadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_11ten_wrapadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_11ten_wrapadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_11ten_wrapadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_11ten_wrapadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3083
 *     def cinert(self): return self._cinert
 *     @property
 *     def ten_wrapadr(self): return self._ten_wrapadr             # <<<<<<<<<<<<<<
 *     @property
 *     def ten_wrapnum(self): return self._ten_wrapnum
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_ten_wrapadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_ten_wrapadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3082
 *     @property
 *     def cinert(self): return self._cinert
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_wrapadr(self): return self._ten_wrapadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3084
 *     @property
 *     def ten_wrapadr(self): return self._ten_wrapadr
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_wrapnum(self): return self._ten_wrapnum
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_11ten_wrapnum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_11ten_wrapnum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_11ten_wrapnum___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_11ten_wrapnum___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3085
 *     def ten_wrapadr(self): return self._ten_wrapadr
 *     @property
 *     def ten_wrapnum(self): return self._ten_wrapnum             # <<<<<<<<<<<<<<
 *     @property
 *     def ten_J_rownnz(self): return self._ten_J_rownnz
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_ten_wrapnum);
  __pyx_r = ((PyObject *)__pyx_v_self->_ten_wrapnum);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3084
 *     @property
 *     def ten_wrapadr(self): return self._ten_wrapadr
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_wrapnum(self): return self._ten_wrapnum
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3086
 *     @property
 *     def ten_wrapnum(self): return self._ten_wrapnum
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_J_rownnz(self): return self._ten_J_rownnz
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12ten_J_rownnz_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12ten_J_rownnz_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_12ten_J_rownnz___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12ten_J_rownnz___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3087
 *     def ten_wrapnum(self): return self._ten_wrapnum
 *     @property
 *     def ten_J_rownnz(self): return self._ten_J_rownnz             # <<<<<<<<<<<<<<
 *     @property
 *     def ten_J_rowadr(self): return self._ten_J_rowadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_ten_J_rownnz);
  __pyx_r = ((PyObject *)__pyx_v_self->_ten_J_rownnz);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3086
 *     @property
 *     def ten_wrapnum(self): return self._ten_wrapnum
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_J_rownnz(self): return self._ten_J_rownnz
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3088
 *     @property
 *     def ten_J_rownnz(self): return self._ten_J_rownnz
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_J_rowadr(self): return self._ten_J_rowadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12ten_J_rowadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12ten_J_rowadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_12ten_J_rowadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12ten_J_rowadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3089
 *     def ten_J_rownnz(self): return self._ten_J_rownnz
 *     @property
 *     def ten_J_rowadr(self): return self._ten_J_rowadr             # <<<<<<<<<<<<<<
 *     @property
 *     def ten_J_colind(self): return self._ten_J_colind
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_ten_J_rowadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_ten_J_rowadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3088
 *     @property
 *     def ten_J_rownnz(self): return self._ten_J_rownnz
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_J_rowadr(self): return self._ten_J_rowadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3090
 *     @property
 *     def ten_J_rowadr(self): return self._ten_J_rowadr
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_J_colind(self): return self._ten_J_colind
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12ten_J_colind_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12ten_J_colind_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_12ten_J_colind___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12ten_J_colind___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3091
 *     def ten_J_rowadr(self): return self._ten_J_rowadr
 *     @property
 *     def ten_J_colind(self): return self._ten_J_colind             # <<<<<<<<<<<<<<
 *     @property
 *     def ten_length(self): return self._ten_length
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_ten_J_colind);
  __pyx_r = ((PyObject *)__pyx_v_self->_ten_J_colind);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3090
 *     @property
 *     def ten_J_rowadr(self): return self._ten_J_rowadr
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_J_colind(self): return self._ten_J_colind
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3092
 *     @property
 *     def ten_J_colind(self): return self._ten_J_colind
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_length(self): return self._ten_length
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10ten_length_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10ten_length_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10ten_length___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10ten_length___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3093
 *     def ten_J_colind(self): return self._ten_J_colind
 *     @property
 *     def ten_length(self): return self._ten_length             # <<<<<<<<<<<<<<
 *     @property
 *     def ten_J(self): return self._ten_J
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_ten_length);
  __pyx_r = ((PyObject *)__pyx_v_self->_ten_length);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3092
 *     @property
 *     def ten_J_colind(self): return self._ten_J_colind
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_length(self): return self._ten_length
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3094
 *     @property
 *     def ten_length(self): return self._ten_length
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_J(self): return self._ten_J
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5ten_J_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5ten_J_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_5ten_J___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5ten_J___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3095
 *     def ten_length(self): return self._ten_length
 *     @property
 *     def ten_J(self): return self._ten_J             # <<<<<<<<<<<<<<
 *     @property
 *     def wrap_obj(self): return self._wrap_obj
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_ten_J);
  __pyx_r = ((PyObject *)__pyx_v_self->_ten_J);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3094
 *     @property
 *     def ten_length(self): return self._ten_length
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_J(self): return self._ten_J
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3096
 *     @property
 *     def ten_J(self): return self._ten_J
 *     @property             # <<<<<<<<<<<<<<
 *     def wrap_obj(self): return self._wrap_obj
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8wrap_obj_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8wrap_obj_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_8wrap_obj___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8wrap_obj___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3097
 *     def ten_J(self): return self._ten_J
 *     @property
 *     def wrap_obj(self): return self._wrap_obj             # <<<<<<<<<<<<<<
 *     @property
 *     def wrap_xpos(self): return self._wrap_xpos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_wrap_obj);
  __pyx_r = ((PyObject *)__pyx_v_self->_wrap_obj);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3096
 *     @property
 *     def ten_J(self): return self._ten_J
 *     @property             # <<<<<<<<<<<<<<
 *     def wrap_obj(self): return self._wrap_obj
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3098
 *     @property
 *     def wrap_obj(self): return self._wrap_obj
 *     @property             # <<<<<<<<<<<<<<
 *     def wrap_xpos(self): return self._wrap_xpos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9wrap_xpos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9wrap_xpos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9wrap_xpos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9wrap_xpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3099
 *     def wrap_obj(self): return self._wrap_obj
 *     @property
 *     def wrap_xpos(self): return self._wrap_xpos             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_length(self): return self._actuator_length
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_wrap_xpos);
  __pyx_r = ((PyObject *)__pyx_v_self->_wrap_xpos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3098
 *     @property
 *     def wrap_obj(self): return self._wrap_obj
 *     @property             # <<<<<<<<<<<<<<
 *     def wrap_xpos(self): return self._wrap_xpos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3100
 *     @property
 *     def wrap_xpos(self): return self._wrap_xpos
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_length(self): return self._actuator_length
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_15actuator_length_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_15actuator_length_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_15actuator_length___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_15actuator_length___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3101
 *     def wrap_xpos(self): return self._wrap_xpos
 *     @property
 *     def actuator_length(self): return self._actuator_length             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_moment(self): return self._actuator_moment
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_length);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_length);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3100
 *     @property
 *     def wrap_xpos(self): return self._wrap_xpos
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_length(self): return self._actuator_length
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3102
 *     @property
 *     def actuator_length(self): return self._actuator_length
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_moment(self): return self._actuator_moment
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_15actuator_moment_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_15actuator_moment_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_15actuator_moment___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_15actuator_moment___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3103
 *     def actuator_length(self): return self._actuator_length
 *     @property
 *     def actuator_moment(self): return self._actuator_moment             # <<<<<<<<<<<<<<
 *     @property
 *     def crb(self): return self._crb
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_moment);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_moment);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3102
 *     @property
 *     def actuator_length(self): return self._actuator_length
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_moment(self): return self._actuator_moment
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3104
 *     @property
 *     def actuator_moment(self): return self._actuator_moment
 *     @property             # <<<<<<<<<<<<<<
 *     def crb(self): return self._crb
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_3crb_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_3crb_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_3crb___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_3crb___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3105
 *     def actuator_moment(self): return self._actuator_moment
 *     @property
 *     def crb(self): return self._crb             # <<<<<<<<<<<<<<
 *     @property
 *     def qM(self): return self._qM
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_crb);
  __pyx_r = ((PyObject *)__pyx_v_self->_crb);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3104
 *     @property
 *     def actuator_moment(self): return self._actuator_moment
 *     @property             # <<<<<<<<<<<<<<
 *     def crb(self): return self._crb
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3106
 *     @property
 *     def crb(self): return self._crb
 *     @property             # <<<<<<<<<<<<<<
 *     def qM(self): return self._qM
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_2qM_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_2qM_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_2qM___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_2qM___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3107
 *     def crb(self): return self._crb
 *     @property
 *     def qM(self): return self._qM             # <<<<<<<<<<<<<<
 *     @property
 *     def qLD(self): return self._qLD
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qM);
  __pyx_r = ((PyObject *)__pyx_v_self->_qM);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3106
 *     @property
 *     def crb(self): return self._crb
 *     @property             # <<<<<<<<<<<<<<
 *     def qM(self): return self._qM
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3108
 *     @property
 *     def qM(self): return self._qM
 *     @property             # <<<<<<<<<<<<<<
 *     def qLD(self): return self._qLD
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_3qLD_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_3qLD_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_3qLD___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_3qLD___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3109
 *     def qM(self): return self._qM
 *     @property
 *     def qLD(self): return self._qLD             # <<<<<<<<<<<<<<
 *     @property
 *     def qLDiagInv(self): return self._qLDiagInv
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qLD);
  __pyx_r = ((PyObject *)__pyx_v_self->_qLD);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3108
 *     @property
 *     def qM(self): return self._qM
 *     @property             # <<<<<<<<<<<<<<
 *     def qLD(self): return self._qLD
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3110
 *     @property
 *     def qLD(self): return self._qLD
 *     @property             # <<<<<<<<<<<<<<
 *     def qLDiagInv(self): return self._qLDiagInv
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9qLDiagInv_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9qLDiagInv_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9qLDiagInv___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9qLDiagInv___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3111
 *     def qLD(self): return self._qLD
 *     @property
 *     def qLDiagInv(self): return self._qLDiagInv             # <<<<<<<<<<<<<<
 *     @property
 *     def qLDiagSqrtInv(self): return self._qLDiagSqrtInv
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qLDiagInv);
  __pyx_r = ((PyObject *)__pyx_v_self->_qLDiagInv);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3110
 *     @property
 *     def qLD(self): return self._qLD
 *     @property             # <<<<<<<<<<<<<<
 *     def qLDiagInv(self): return self._qLDiagInv
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3112
 *     @property
 *     def qLDiagInv(self): return self._qLDiagInv
 *     @property             # <<<<<<<<<<<<<<
 *     def qLDiagSqrtInv(self): return self._qLDiagSqrtInv
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13qLDiagSqrtInv_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13qLDiagSqrtInv_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_13qLDiagSqrtInv___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13qLDiagSqrtInv___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3113
 *     def qLDiagInv(self): return self._qLDiagInv
 *     @property
 *     def qLDiagSqrtInv(self): return self._qLDiagSqrtInv             # <<<<<<<<<<<<<<
 *     @property
 *     def contact(self): return self._contact
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qLDiagSqrtInv);
  __pyx_r = ((PyObject *)__pyx_v_self->_qLDiagSqrtInv);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3112
 *     @property
 *     def qLDiagInv(self): return self._qLDiagInv
 *     @property             # <<<<<<<<<<<<<<
 *     def qLDiagSqrtInv(self): return self._qLDiagSqrtInv
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3114
 *     @property
 *     def qLDiagSqrtInv(self): return self._qLDiagSqrtInv
 *     @property             # <<<<<<<<<<<<<<
 *     def contact(self): return self._contact
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7contact_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7contact_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_7contact___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7contact___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3115
 *     def qLDiagSqrtInv(self): return self._qLDiagSqrtInv
 *     @property
 *     def contact(self): return self._contact             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_type(self): return self._efc_type
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_contact);
  __pyx_r = __pyx_v_self->_contact;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3114
 *     @property
 *     def qLDiagSqrtInv(self): return self._qLDiagSqrtInv
 *     @property             # <<<<<<<<<<<<<<
 *     def contact(self): return self._contact
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3116
 *     @property
 *     def contact(self): return self._contact
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_type(self): return self._efc_type
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8efc_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8efc_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_8efc_type___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8efc_type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3117
 *     def contact(self): return self._contact
 *     @property
 *     def efc_type(self): return self._efc_type             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_id(self): return self._efc_id
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_type);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_type);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3116
 *     @property
 *     def contact(self): return self._contact
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_type(self): return self._efc_type
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3118
 *     @property
 *     def efc_type(self): return self._efc_type
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_id(self): return self._efc_id
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6efc_id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6efc_id_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_6efc_id___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6efc_id___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3119
 *     def efc_type(self): return self._efc_type
 *     @property
 *     def efc_id(self): return self._efc_id             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_J_rownnz(self): return self._efc_J_rownnz
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_id);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_id);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3118
 *     @property
 *     def efc_type(self): return self._efc_type
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_id(self): return self._efc_id
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3120
 *     @property
 *     def efc_id(self): return self._efc_id
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_J_rownnz(self): return self._efc_J_rownnz
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12efc_J_rownnz_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12efc_J_rownnz_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_12efc_J_rownnz___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12efc_J_rownnz___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3121
 *     def efc_id(self): return self._efc_id
 *     @property
 *     def efc_J_rownnz(self): return self._efc_J_rownnz             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_J_rowadr(self): return self._efc_J_rowadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_J_rownnz);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_J_rownnz);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3120
 *     @property
 *     def efc_id(self): return self._efc_id
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_J_rownnz(self): return self._efc_J_rownnz
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3122
 *     @property
 *     def efc_J_rownnz(self): return self._efc_J_rownnz
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_J_rowadr(self): return self._efc_J_rowadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12efc_J_rowadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12efc_J_rowadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_12efc_J_rowadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12efc_J_rowadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3123
 *     def efc_J_rownnz(self): return self._efc_J_rownnz
 *     @property
 *     def efc_J_rowadr(self): return self._efc_J_rowadr             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_J_rowsuper(self): return self._efc_J_rowsuper
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_J_rowadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_J_rowadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3122
 *     @property
 *     def efc_J_rownnz(self): return self._efc_J_rownnz
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_J_rowadr(self): return self._efc_J_rowadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3124
 *     @property
 *     def efc_J_rowadr(self): return self._efc_J_rowadr
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_J_rowsuper(self): return self._efc_J_rowsuper
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_14efc_J_rowsuper_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_14efc_J_rowsuper_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_14efc_J_rowsuper___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_14efc_J_rowsuper___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3125
 *     def efc_J_rowadr(self): return self._efc_J_rowadr
 *     @property
 *     def efc_J_rowsuper(self): return self._efc_J_rowsuper             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_J_colind(self): return self._efc_J_colind
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_J_rowsuper);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_J_rowsuper);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3124
 *     @property
 *     def efc_J_rowadr(self): return self._efc_J_rowadr
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_J_rowsuper(self): return self._efc_J_rowsuper
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3126
 *     @property
 *     def efc_J_rowsuper(self): return self._efc_J_rowsuper
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_J_colind(self): return self._efc_J_colind
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12efc_J_colind_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12efc_J_colind_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_12efc_J_colind___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12efc_J_colind___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3127
 *     def efc_J_rowsuper(self): return self._efc_J_rowsuper
 *     @property
 *     def efc_J_colind(self): return self._efc_J_colind             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_JT_rownnz(self): return self._efc_JT_rownnz
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_J_colind);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_J_colind);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3126
 *     @property
 *     def efc_J_rowsuper(self): return self._efc_J_rowsuper
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_J_colind(self): return self._efc_J_colind
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3128
 *     @property
 *     def efc_J_colind(self): return self._efc_J_colind
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_JT_rownnz(self): return self._efc_JT_rownnz
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_JT_rownnz_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_JT_rownnz_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_JT_rownnz___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_JT_rownnz___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3129
 *     def efc_J_colind(self): return self._efc_J_colind
 *     @property
 *     def efc_JT_rownnz(self): return self._efc_JT_rownnz             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_JT_rowadr(self): return self._efc_JT_rowadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_JT_rownnz);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_JT_rownnz);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3128
 *     @property
 *     def efc_J_colind(self): return self._efc_J_colind
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_JT_rownnz(self): return self._efc_JT_rownnz
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3130
 *     @property
 *     def efc_JT_rownnz(self): return self._efc_JT_rownnz
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_JT_rowadr(self): return self._efc_JT_rowadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_JT_rowadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_JT_rowadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_JT_rowadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_JT_rowadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3131
 *     def efc_JT_rownnz(self): return self._efc_JT_rownnz
 *     @property
 *     def efc_JT_rowadr(self): return self._efc_JT_rowadr             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_JT_rowsuper(self): return self._efc_JT_rowsuper
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_JT_rowadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_JT_rowadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3130
 *     @property
 *     def efc_JT_rownnz(self): return self._efc_JT_rownnz
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_JT_rowadr(self): return self._efc_JT_rowadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3132
 *     @property
 *     def efc_JT_rowadr(self): return self._efc_JT_rowadr
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_JT_rowsuper(self): return self._efc_JT_rowsuper
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_15efc_JT_rowsuper_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_15efc_JT_rowsuper_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_15efc_JT_rowsuper___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_15efc_JT_rowsuper___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3133
 *     def efc_JT_rowadr(self): return self._efc_JT_rowadr
 *     @property
 *     def efc_JT_rowsuper(self): return self._efc_JT_rowsuper             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_JT_colind(self): return self._efc_JT_colind
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_JT_rowsuper);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_JT_rowsuper);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3132
 *     @property
 *     def efc_JT_rowadr(self): return self._efc_JT_rowadr
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_JT_rowsuper(self): return self._efc_JT_rowsuper
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3134
 *     @property
 *     def efc_JT_rowsuper(self): return self._efc_JT_rowsuper
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_JT_colind(self): return self._efc_JT_colind
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_JT_colind_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_JT_colind_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_JT_colind___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_JT_colind___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3135
 *     def efc_JT_rowsuper(self): return self._efc_JT_rowsuper
 *     @property
 *     def efc_JT_colind(self): return self._efc_JT_colind             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_J(self): return self._efc_J
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_JT_colind);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_JT_colind);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3134
 *     @property
 *     def efc_JT_rowsuper(self): return self._efc_JT_rowsuper
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_JT_colind(self): return self._efc_JT_colind
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3136
 *     @property
 *     def efc_JT_colind(self): return self._efc_JT_colind
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_J(self): return self._efc_J
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5efc_J_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5efc_J_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_5efc_J___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5efc_J___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3137
 *     def efc_JT_colind(self): return self._efc_JT_colind
 *     @property
 *     def efc_J(self): return self._efc_J             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_JT(self): return self._efc_JT
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_J);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_J);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3136
 *     @property
 *     def efc_JT_colind(self): return self._efc_JT_colind
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_J(self): return self._efc_J
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3138
 *     @property
 *     def efc_J(self): return self._efc_J
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_JT(self): return self._efc_JT
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6efc_JT_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6efc_JT_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_6efc_JT___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6efc_JT___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3139
 *     def efc_J(self): return self._efc_J
 *     @property
 *     def efc_JT(self): return self._efc_JT             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_JT);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_JT);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3138
 *     @property
 *     def efc_J(self): return self._efc_J
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_JT(self): return self._efc_JT
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3141
 *     def efc_JT(self): return self._efc_JT
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_pos(self):
 *         raise RuntimeError("active_contacts_efc_pos should be used instead of efc_pos")
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7efc_pos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7efc_pos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_7efc_pos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7efc_pos___get__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3143
 *     @property
 *     def efc_pos(self):
 *         raise RuntimeError("active_contacts_efc_pos should be used instead of efc_pos")             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(4, 3143, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":3141
 *     def efc_JT(self): return self._efc_JT
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_pos(self):
 *         raise RuntimeError("active_contacts_efc_pos should be used instead of efc_pos")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.efc_pos.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3145
 *         raise RuntimeError("active_contacts_efc_pos should be used instead of efc_pos")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_margin(self): return self._efc_margin
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10efc_margin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10efc_margin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10efc_margin___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10efc_margin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3146
 * 
 *     @property
 *     def efc_margin(self): return self._efc_margin             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_frictionloss(self): return self._efc_frictionloss
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_margin);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_margin);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3145
 *         raise RuntimeError("active_contacts_efc_pos should be used instead of efc_pos")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_margin(self): return self._efc_margin
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3147
 *     @property
 *     def efc_margin(self): return self._efc_margin
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_frictionloss(self): return self._efc_frictionloss
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_16efc_frictionloss_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_16efc_frictionloss_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_16efc_frictionloss___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_16efc_frictionloss___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3148
 *     def efc_margin(self): return self._efc_margin
 *     @property
 *     def efc_frictionloss(self): return self._efc_frictionloss             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_diagApprox(self): return self._efc_diagApprox
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_frictionloss);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_frictionloss);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3147
 *     @property
 *     def efc_margin(self): return self._efc_margin
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_frictionloss(self): return self._efc_frictionloss
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3149
 *     @property
 *     def efc_frictionloss(self): return self._efc_frictionloss
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_diagApprox(self): return self._efc_diagApprox
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_14efc_diagApprox_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_14efc_diagApprox_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_14efc_diagApprox___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_14efc_diagApprox___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3150
 *     def efc_frictionloss(self): return self._efc_frictionloss
 *     @property
 *     def efc_diagApprox(self): return self._efc_diagApprox             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_KBIP(self): return self._efc_KBIP
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_diagApprox);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_diagApprox);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3149
 *     @property
 *     def efc_frictionloss(self): return self._efc_frictionloss
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_diagApprox(self): return self._efc_diagApprox
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3151
 *     @property
 *     def efc_diagApprox(self): return self._efc_diagApprox
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_KBIP(self): return self._efc_KBIP
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8efc_KBIP_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8efc_KBIP_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_8efc_KBIP___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8efc_KBIP___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3152
 *     def efc_diagApprox(self): return self._efc_diagApprox
 *     @property
 *     def efc_KBIP(self): return self._efc_KBIP             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_D(self): return self._efc_D
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_KBIP);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_KBIP);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3151
 *     @property
 *     def efc_diagApprox(self): return self._efc_diagApprox
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_KBIP(self): return self._efc_KBIP
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3153
 *     @property
 *     def efc_KBIP(self): return self._efc_KBIP
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_D(self): return self._efc_D
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5efc_D_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5efc_D_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_5efc_D___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5efc_D___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3154
 *     def efc_KBIP(self): return self._efc_KBIP
 *     @property
 *     def efc_D(self): return self._efc_D             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_R(self): return self._efc_R
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_D);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_D);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3153
 *     @property
 *     def efc_KBIP(self): return self._efc_KBIP
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_D(self): return self._efc_D
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3155
 *     @property
 *     def efc_D(self): return self._efc_D
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_R(self): return self._efc_R
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5efc_R_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5efc_R_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_5efc_R___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5efc_R___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3156
 *     def efc_D(self): return self._efc_D
 *     @property
 *     def efc_R(self): return self._efc_R             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_AR_rownnz(self): return self._efc_AR_rownnz
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_R);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_R);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3155
 *     @property
 *     def efc_D(self): return self._efc_D
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_R(self): return self._efc_R
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3157
 *     @property
 *     def efc_R(self): return self._efc_R
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_AR_rownnz(self): return self._efc_AR_rownnz
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_AR_rownnz_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_AR_rownnz_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_AR_rownnz___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_AR_rownnz___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3158
 *     def efc_R(self): return self._efc_R
 *     @property
 *     def efc_AR_rownnz(self): return self._efc_AR_rownnz             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_AR_rowadr(self): return self._efc_AR_rowadr
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_AR_rownnz);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_AR_rownnz);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3157
 *     @property
 *     def efc_R(self): return self._efc_R
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_AR_rownnz(self): return self._efc_AR_rownnz
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3159
 *     @property
 *     def efc_AR_rownnz(self): return self._efc_AR_rownnz
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_AR_rowadr(self): return self._efc_AR_rowadr
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_AR_rowadr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_AR_rowadr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_AR_rowadr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_AR_rowadr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3160
 *     def efc_AR_rownnz(self): return self._efc_AR_rownnz
 *     @property
 *     def efc_AR_rowadr(self): return self._efc_AR_rowadr             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_AR_colind(self): return self._efc_AR_colind
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_AR_rowadr);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_AR_rowadr);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3159
 *     @property
 *     def efc_AR_rownnz(self): return self._efc_AR_rownnz
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_AR_rowadr(self): return self._efc_AR_rowadr
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3161
 *     @property
 *     def efc_AR_rowadr(self): return self._efc_AR_rowadr
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_AR_colind(self): return self._efc_AR_colind
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_AR_colind_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_AR_colind_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_AR_colind___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13efc_AR_colind___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3162
 *     def efc_AR_rowadr(self): return self._efc_AR_rowadr
 *     @property
 *     def efc_AR_colind(self): return self._efc_AR_colind             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_AR(self): return self._efc_AR
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_AR_colind);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_AR_colind);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3161
 *     @property
 *     def efc_AR_rowadr(self): return self._efc_AR_rowadr
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_AR_colind(self): return self._efc_AR_colind
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3163
 *     @property
 *     def efc_AR_colind(self): return self._efc_AR_colind
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_AR(self): return self._efc_AR
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6efc_AR_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6efc_AR_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_6efc_AR___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6efc_AR___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3164
 *     def efc_AR_colind(self): return self._efc_AR_colind
 *     @property
 *     def efc_AR(self): return self._efc_AR             # <<<<<<<<<<<<<<
 *     @property
 *     def ten_velocity(self): return self._ten_velocity
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_AR);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_AR);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3163
 *     @property
 *     def efc_AR_colind(self): return self._efc_AR_colind
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_AR(self): return self._efc_AR
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3165
 *     @property
 *     def efc_AR(self): return self._efc_AR
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_velocity(self): return self._ten_velocity
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12ten_velocity_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12ten_velocity_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_12ten_velocity___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12ten_velocity___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3166
 *     def efc_AR(self): return self._efc_AR
 *     @property
 *     def ten_velocity(self): return self._ten_velocity             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_velocity(self): return self._actuator_velocity
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_ten_velocity);
  __pyx_r = ((PyObject *)__pyx_v_self->_ten_velocity);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3165
 *     @property
 *     def efc_AR(self): return self._efc_AR
 *     @property             # <<<<<<<<<<<<<<
 *     def ten_velocity(self): return self._ten_velocity
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3167
 *     @property
 *     def ten_velocity(self): return self._ten_velocity
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_velocity(self): return self._actuator_velocity
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_17actuator_velocity_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_17actuator_velocity_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_17actuator_velocity___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_17actuator_velocity___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3168
 *     def ten_velocity(self): return self._ten_velocity
 *     @property
 *     def actuator_velocity(self): return self._actuator_velocity             # <<<<<<<<<<<<<<
 *     @property
 *     def cvel(self): return self._cvel
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_velocity);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_velocity);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3167
 *     @property
 *     def ten_velocity(self): return self._ten_velocity
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_velocity(self): return self._actuator_velocity
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3169
 *     @property
 *     def actuator_velocity(self): return self._actuator_velocity
 *     @property             # <<<<<<<<<<<<<<
 *     def cvel(self): return self._cvel
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4cvel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4cvel_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4cvel___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4cvel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3170
 *     def actuator_velocity(self): return self._actuator_velocity
 *     @property
 *     def cvel(self): return self._cvel             # <<<<<<<<<<<<<<
 *     @property
 *     def cdof_dot(self): return self._cdof_dot
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cvel);
  __pyx_r = ((PyObject *)__pyx_v_self->_cvel);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3169
 *     @property
 *     def actuator_velocity(self): return self._actuator_velocity
 *     @property             # <<<<<<<<<<<<<<
 *     def cvel(self): return self._cvel
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3171
 *     @property
 *     def cvel(self): return self._cvel
 *     @property             # <<<<<<<<<<<<<<
 *     def cdof_dot(self): return self._cdof_dot
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8cdof_dot_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8cdof_dot_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_8cdof_dot___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8cdof_dot___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3172
 *     def cvel(self): return self._cvel
 *     @property
 *     def cdof_dot(self): return self._cdof_dot             # <<<<<<<<<<<<<<
 *     @property
 *     def qfrc_bias(self): return self._qfrc_bias
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cdof_dot);
  __pyx_r = ((PyObject *)__pyx_v_self->_cdof_dot);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3171
 *     @property
 *     def cvel(self): return self._cvel
 *     @property             # <<<<<<<<<<<<<<
 *     def cdof_dot(self): return self._cdof_dot
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3173
 *     @property
 *     def cdof_dot(self): return self._cdof_dot
 *     @property             # <<<<<<<<<<<<<<
 *     def qfrc_bias(self): return self._qfrc_bias
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9qfrc_bias_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9qfrc_bias_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9qfrc_bias___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9qfrc_bias___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3174
 *     def cdof_dot(self): return self._cdof_dot
 *     @property
 *     def qfrc_bias(self): return self._qfrc_bias             # <<<<<<<<<<<<<<
 *     @property
 *     def qfrc_passive(self): return self._qfrc_passive
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qfrc_bias);
  __pyx_r = ((PyObject *)__pyx_v_self->_qfrc_bias);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3173
 *     @property
 *     def cdof_dot(self): return self._cdof_dot
 *     @property             # <<<<<<<<<<<<<<
 *     def qfrc_bias(self): return self._qfrc_bias
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3175
 *     @property
 *     def qfrc_bias(self): return self._qfrc_bias
 *     @property             # <<<<<<<<<<<<<<
 *     def qfrc_passive(self): return self._qfrc_passive
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12qfrc_passive_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12qfrc_passive_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_12qfrc_passive___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12qfrc_passive___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3176
 *     def qfrc_bias(self): return self._qfrc_bias
 *     @property
 *     def qfrc_passive(self): return self._qfrc_passive             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_vel(self): return self._efc_vel
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qfrc_passive);
  __pyx_r = ((PyObject *)__pyx_v_self->_qfrc_passive);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3175
 *     @property
 *     def qfrc_bias(self): return self._qfrc_bias
 *     @property             # <<<<<<<<<<<<<<
 *     def qfrc_passive(self): return self._qfrc_passive
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3177
 *     @property
 *     def qfrc_passive(self): return self._qfrc_passive
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_vel(self): return self._efc_vel
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7efc_vel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7efc_vel_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_7efc_vel___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7efc_vel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3178
 *     def qfrc_passive(self): return self._qfrc_passive
 *     @property
 *     def efc_vel(self): return self._efc_vel             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_aref(self): return self._efc_aref
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_vel);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_vel);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3177
 *     @property
 *     def qfrc_passive(self): return self._qfrc_passive
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_vel(self): return self._efc_vel
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3179
 *     @property
 *     def efc_vel(self): return self._efc_vel
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_aref(self): return self._efc_aref
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8efc_aref_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8efc_aref_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_8efc_aref___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8efc_aref___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3180
 *     def efc_vel(self): return self._efc_vel
 *     @property
 *     def efc_aref(self): return self._efc_aref             # <<<<<<<<<<<<<<
 *     @property
 *     def subtree_linvel(self): return self._subtree_linvel
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_aref);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_aref);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3179
 *     @property
 *     def efc_vel(self): return self._efc_vel
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_aref(self): return self._efc_aref
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3181
 *     @property
 *     def efc_aref(self): return self._efc_aref
 *     @property             # <<<<<<<<<<<<<<
 *     def subtree_linvel(self): return self._subtree_linvel
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_14subtree_linvel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_14subtree_linvel_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_14subtree_linvel___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_14subtree_linvel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3182
 *     def efc_aref(self): return self._efc_aref
 *     @property
 *     def subtree_linvel(self): return self._subtree_linvel             # <<<<<<<<<<<<<<
 *     @property
 *     def subtree_angmom(self): return self._subtree_angmom
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_subtree_linvel);
  __pyx_r = ((PyObject *)__pyx_v_self->_subtree_linvel);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3181
 *     @property
 *     def efc_aref(self): return self._efc_aref
 *     @property             # <<<<<<<<<<<<<<
 *     def subtree_linvel(self): return self._subtree_linvel
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3183
 *     @property
 *     def subtree_linvel(self): return self._subtree_linvel
 *     @property             # <<<<<<<<<<<<<<
 *     def subtree_angmom(self): return self._subtree_angmom
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_14subtree_angmom_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_14subtree_angmom_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_14subtree_angmom___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_14subtree_angmom___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3184
 *     def subtree_linvel(self): return self._subtree_linvel
 *     @property
 *     def subtree_angmom(self): return self._subtree_angmom             # <<<<<<<<<<<<<<
 *     @property
 *     def actuator_force(self): return self._actuator_force
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_subtree_angmom);
  __pyx_r = ((PyObject *)__pyx_v_self->_subtree_angmom);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3183
 *     @property
 *     def subtree_linvel(self): return self._subtree_linvel
 *     @property             # <<<<<<<<<<<<<<
 *     def subtree_angmom(self): return self._subtree_angmom
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3185
 *     @property
 *     def subtree_angmom(self): return self._subtree_angmom
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_force(self): return self._actuator_force
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_14actuator_force_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_14actuator_force_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_14actuator_force___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_14actuator_force___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3186
 *     def subtree_angmom(self): return self._subtree_angmom
 *     @property
 *     def actuator_force(self): return self._actuator_force             # <<<<<<<<<<<<<<
 *     @property
 *     def qfrc_actuator(self): return self._qfrc_actuator
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuator_force);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuator_force);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3185
 *     @property
 *     def subtree_angmom(self): return self._subtree_angmom
 *     @property             # <<<<<<<<<<<<<<
 *     def actuator_force(self): return self._actuator_force
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3187
 *     @property
 *     def actuator_force(self): return self._actuator_force
 *     @property             # <<<<<<<<<<<<<<
 *     def qfrc_actuator(self): return self._qfrc_actuator
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13qfrc_actuator_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13qfrc_actuator_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_13qfrc_actuator___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13qfrc_actuator___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3188
 *     def actuator_force(self): return self._actuator_force
 *     @property
 *     def qfrc_actuator(self): return self._qfrc_actuator             # <<<<<<<<<<<<<<
 *     @property
 *     def qfrc_unc(self): return self._qfrc_unc
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qfrc_actuator);
  __pyx_r = ((PyObject *)__pyx_v_self->_qfrc_actuator);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3187
 *     @property
 *     def actuator_force(self): return self._actuator_force
 *     @property             # <<<<<<<<<<<<<<
 *     def qfrc_actuator(self): return self._qfrc_actuator
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3189
 *     @property
 *     def qfrc_actuator(self): return self._qfrc_actuator
 *     @property             # <<<<<<<<<<<<<<
 *     def qfrc_unc(self): return self._qfrc_unc
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8qfrc_unc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8qfrc_unc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_8qfrc_unc___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8qfrc_unc___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3190
 *     def qfrc_actuator(self): return self._qfrc_actuator
 *     @property
 *     def qfrc_unc(self): return self._qfrc_unc             # <<<<<<<<<<<<<<
 *     @property
 *     def qacc_unc(self): return self._qacc_unc
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qfrc_unc);
  __pyx_r = ((PyObject *)__pyx_v_self->_qfrc_unc);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3189
 *     @property
 *     def qfrc_actuator(self): return self._qfrc_actuator
 *     @property             # <<<<<<<<<<<<<<
 *     def qfrc_unc(self): return self._qfrc_unc
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3191
 *     @property
 *     def qfrc_unc(self): return self._qfrc_unc
 *     @property             # <<<<<<<<<<<<<<
 *     def qacc_unc(self): return self._qacc_unc
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8qacc_unc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8qacc_unc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_8qacc_unc___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8qacc_unc___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3192
 *     def qfrc_unc(self): return self._qfrc_unc
 *     @property
 *     def qacc_unc(self): return self._qacc_unc             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_b(self): return self._efc_b
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qacc_unc);
  __pyx_r = ((PyObject *)__pyx_v_self->_qacc_unc);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3191
 *     @property
 *     def qfrc_unc(self): return self._qfrc_unc
 *     @property             # <<<<<<<<<<<<<<
 *     def qacc_unc(self): return self._qacc_unc
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3193
 *     @property
 *     def qacc_unc(self): return self._qacc_unc
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_b(self): return self._efc_b
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5efc_b_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5efc_b_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_5efc_b___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5efc_b___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3194
 *     def qacc_unc(self): return self._qacc_unc
 *     @property
 *     def efc_b(self): return self._efc_b             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_force(self): return self._efc_force
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_b);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_b);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3193
 *     @property
 *     def qacc_unc(self): return self._qacc_unc
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_b(self): return self._efc_b
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3195
 *     @property
 *     def efc_b(self): return self._efc_b
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_force(self): return self._efc_force
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9efc_force_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9efc_force_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9efc_force___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9efc_force___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3196
 *     def efc_b(self): return self._efc_b
 *     @property
 *     def efc_force(self): return self._efc_force             # <<<<<<<<<<<<<<
 *     @property
 *     def efc_state(self): return self._efc_state
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_force);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_force);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3195
 *     @property
 *     def efc_b(self): return self._efc_b
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_force(self): return self._efc_force
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3197
 *     @property
 *     def efc_force(self): return self._efc_force
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_state(self): return self._efc_state
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9efc_state_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9efc_state_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9efc_state___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9efc_state___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3198
 *     def efc_force(self): return self._efc_force
 *     @property
 *     def efc_state(self): return self._efc_state             # <<<<<<<<<<<<<<
 *     @property
 *     def qfrc_constraint(self): return self._qfrc_constraint
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_efc_state);
  __pyx_r = ((PyObject *)__pyx_v_self->_efc_state);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3197
 *     @property
 *     def efc_force(self): return self._efc_force
 *     @property             # <<<<<<<<<<<<<<
 *     def efc_state(self): return self._efc_state
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3199
 *     @property
 *     def efc_state(self): return self._efc_state
 *     @property             # <<<<<<<<<<<<<<
 *     def qfrc_constraint(self): return self._qfrc_constraint
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_15qfrc_constraint_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_15qfrc_constraint_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_15qfrc_constraint___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_15qfrc_constraint___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3200
 *     def efc_state(self): return self._efc_state
 *     @property
 *     def qfrc_constraint(self): return self._qfrc_constraint             # <<<<<<<<<<<<<<
 *     @property
 *     def qfrc_inverse(self): return self._qfrc_inverse
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qfrc_constraint);
  __pyx_r = ((PyObject *)__pyx_v_self->_qfrc_constraint);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3199
 *     @property
 *     def efc_state(self): return self._efc_state
 *     @property             # <<<<<<<<<<<<<<
 *     def qfrc_constraint(self): return self._qfrc_constraint
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3201
 *     @property
 *     def qfrc_constraint(self): return self._qfrc_constraint
 *     @property             # <<<<<<<<<<<<<<
 *     def qfrc_inverse(self): return self._qfrc_inverse
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12qfrc_inverse_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_12qfrc_inverse_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_12qfrc_inverse___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_12qfrc_inverse___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3202
 *     def qfrc_constraint(self): return self._qfrc_constraint
 *     @property
 *     def qfrc_inverse(self): return self._qfrc_inverse             # <<<<<<<<<<<<<<
 *     @property
 *     def cacc(self): return self._cacc
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_qfrc_inverse);
  __pyx_r = ((PyObject *)__pyx_v_self->_qfrc_inverse);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3201
 *     @property
 *     def qfrc_constraint(self): return self._qfrc_constraint
 *     @property             # <<<<<<<<<<<<<<
 *     def qfrc_inverse(self): return self._qfrc_inverse
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3203
 *     @property
 *     def qfrc_inverse(self): return self._qfrc_inverse
 *     @property             # <<<<<<<<<<<<<<
 *     def cacc(self): return self._cacc
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4cacc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_4cacc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_4cacc___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_4cacc___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3204
 *     def qfrc_inverse(self): return self._qfrc_inverse
 *     @property
 *     def cacc(self): return self._cacc             # <<<<<<<<<<<<<<
 *     @property
 *     def cfrc_int(self): return self._cfrc_int
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cacc);
  __pyx_r = ((PyObject *)__pyx_v_self->_cacc);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3203
 *     @property
 *     def qfrc_inverse(self): return self._qfrc_inverse
 *     @property             # <<<<<<<<<<<<<<
 *     def cacc(self): return self._cacc
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3205
 *     @property
 *     def cacc(self): return self._cacc
 *     @property             # <<<<<<<<<<<<<<
 *     def cfrc_int(self): return self._cfrc_int
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8cfrc_int_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8cfrc_int_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_8cfrc_int___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8cfrc_int___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3206
 *     def cacc(self): return self._cacc
 *     @property
 *     def cfrc_int(self): return self._cfrc_int             # <<<<<<<<<<<<<<
 *     @property
 *     def cfrc_ext(self): return self._cfrc_ext
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cfrc_int);
  __pyx_r = ((PyObject *)__pyx_v_self->_cfrc_int);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3205
 *     @property
 *     def cacc(self): return self._cacc
 *     @property             # <<<<<<<<<<<<<<
 *     def cfrc_int(self): return self._cfrc_int
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3207
 *     @property
 *     def cfrc_int(self): return self._cfrc_int
 *     @property             # <<<<<<<<<<<<<<
 *     def cfrc_ext(self): return self._cfrc_ext
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8cfrc_ext_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_8cfrc_ext_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_8cfrc_ext___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_8cfrc_ext___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3208
 *     def cfrc_int(self): return self._cfrc_int
 *     @property
 *     def cfrc_ext(self): return self._cfrc_ext             # <<<<<<<<<<<<<<
 *     @property
 *     def warning(self): return self._warning
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cfrc_ext);
  __pyx_r = ((PyObject *)__pyx_v_self->_cfrc_ext);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3207
 *     @property
 *     def cfrc_int(self): return self._cfrc_int
 *     @property             # <<<<<<<<<<<<<<
 *     def cfrc_ext(self): return self._cfrc_ext
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3209
 *     @property
 *     def cfrc_ext(self): return self._cfrc_ext
 *     @property             # <<<<<<<<<<<<<<
 *     def warning(self): return self._warning
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7warning_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_7warning_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_7warning___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_7warning___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3210
 *     def cfrc_ext(self): return self._cfrc_ext
 *     @property
 *     def warning(self): return self._warning             # <<<<<<<<<<<<<<
 *     @property
 *     def timer(self): return self._timer
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_warning);
  __pyx_r = __pyx_v_self->_warning;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3209
 *     @property
 *     def cfrc_ext(self): return self._cfrc_ext
 *     @property             # <<<<<<<<<<<<<<
 *     def warning(self): return self._warning
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3211
 *     @property
 *     def warning(self): return self._warning
 *     @property             # <<<<<<<<<<<<<<
 *     def timer(self): return self._timer
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5timer_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_5timer_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_5timer___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_5timer___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3212
 *     def warning(self): return self._warning
 *     @property
 *     def timer(self): return self._timer             # <<<<<<<<<<<<<<
 *     @property
 *     def solver(self): return self._solver
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_timer);
  __pyx_r = __pyx_v_self->_timer;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3211
 *     @property
 *     def warning(self): return self._warning
 *     @property             # <<<<<<<<<<<<<<
 *     def timer(self): return self._timer
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3213
 *     @property
 *     def timer(self): return self._timer
 *     @property             # <<<<<<<<<<<<<<
 *     def solver(self): return self._solver
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6solver_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6solver_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_6solver___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6solver___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3214
 *     def timer(self): return self._timer
 *     @property
 *     def solver(self): return self._solver             # <<<<<<<<<<<<<<
 *     @property
 *     def solver_fwdinv(self): return self._solver_fwdinv
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_solver);
  __pyx_r = __pyx_v_self->_solver;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3213
 *     @property
 *     def timer(self): return self._timer
 *     @property             # <<<<<<<<<<<<<<
 *     def solver(self): return self._solver
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3215
 *     @property
 *     def solver(self): return self._solver
 *     @property             # <<<<<<<<<<<<<<
 *     def solver_fwdinv(self): return self._solver_fwdinv
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13solver_fwdinv_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_13solver_fwdinv_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_13solver_fwdinv___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_13solver_fwdinv___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3216
 *     def solver(self): return self._solver
 *     @property
 *     def solver_fwdinv(self): return self._solver_fwdinv             # <<<<<<<<<<<<<<
 *     @property
 *     def energy(self): return self._energy
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_solver_fwdinv);
  __pyx_r = ((PyObject *)__pyx_v_self->_solver_fwdinv);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3215
 *     @property
 *     def solver(self): return self._solver
 *     @property             # <<<<<<<<<<<<<<
 *     def solver_fwdinv(self): return self._solver_fwdinv
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3217
 *     @property
 *     def solver_fwdinv(self): return self._solver_fwdinv
 *     @property             # <<<<<<<<<<<<<<
 *     def energy(self): return self._energy
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6energy_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_6energy_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_6energy___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_6energy___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3218
 *     def solver_fwdinv(self): return self._solver_fwdinv
 *     @property
 *     def energy(self): return self._energy             # <<<<<<<<<<<<<<
 *     @property
 *     def body_jacp(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_energy);
  __pyx_r = ((PyObject *)__pyx_v_self->_energy);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3217
 *     @property
 *     def solver_fwdinv(self): return self._solver_fwdinv
 *     @property             # <<<<<<<<<<<<<<
 *     def energy(self): return self._energy
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3219
 *     @property
 *     def energy(self): return self._energy
 *     @property             # <<<<<<<<<<<<<<
 *     def body_jacp(self):
 *         jacps = np.zeros((self._model.nbody, 3 * self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9body_jacp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9body_jacp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9body_jacp___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9body_jacp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_v_jacps = NULL;
  __Pyx_memviewslice __pyx_v_jacp_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_jacp = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  __Pyx_memviewslice __pyx_t_9 = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3221
 *     @property
 *     def body_jacp(self):
 *         jacps = np.zeros((self._model.nbody, 3 * self._model.nv))             # <<<<<<<<<<<<<<
 *         cdef double [:] jacp_view
 *         for i, jacp in enumerate(jacps):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_MultiplyCObj(__pyx_int_3, __pyx_t_4, 3, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2)) __PYX_ERR(4, 3221, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(4, 3221, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3221, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacps = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3223
 *         jacps = np.zeros((self._model.nbody, 3 * self._model.nv))
 *         cdef double [:] jacp_view
 *         for i, jacp in enumerate(jacps):             # <<<<<<<<<<<<<<
 *             jacp_view = jacp
 *             mj_jacBody(self._model.ptr, self.ptr, &jacp_view[0], NULL, i)
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_1 = __pyx_int_0;
  if (likely(PyList_CheckExact(__pyx_v_jacps)) || PyTuple_CheckExact(__pyx_v_jacps)) {
    __pyx_t_3 = __pyx_v_jacps; __Pyx_INCREF(__pyx_t_3);
    __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_jacps); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 3223, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 3223, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(4, 3223, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3223, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 3223, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(4, 3223, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3223, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_8(__pyx_t_3);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(4, 3223, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_jacp, __pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "mujoco_py/generated/wrappers.pxi":3224
 *         cdef double [:] jacp_view
 *         for i, jacp in enumerate(jacps):
 *             jacp_view = jacp             # <<<<<<<<<<<<<<
 *             mj_jacBody(self._model.ptr, self.ptr, &jacp_view[0], NULL, i)
 *         return jacps
 */
    __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_jacp, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(4, 3224, __pyx_L1_error)
    __PYX_XCLEAR_MEMVIEW(&__pyx_v_jacp_view, 1);
    __pyx_v_jacp_view = __pyx_t_9;
    __pyx_t_9.memview = NULL;
    __pyx_t_9.data = NULL;

    /* "mujoco_py/generated/wrappers.pxi":3225
 *         for i, jacp in enumerate(jacps):
 *             jacp_view = jacp
 *             mj_jacBody(self._model.ptr, self.ptr, &jacp_view[0], NULL, i)             # <<<<<<<<<<<<<<
 *         return jacps
 * 
 */
    __pyx_t_10 = 0;
    __pyx_t_6 = -1;
    if (__pyx_t_10 < 0) {
      __pyx_t_10 += __pyx_v_jacp_view.shape[0];
      if (unlikely(__pyx_t_10 < 0)) __pyx_t_6 = 0;
    } else if (unlikely(__pyx_t_10 >= __pyx_v_jacp_view.shape[0])) __pyx_t_6 = 0;
    if (unlikely(__pyx_t_6 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_6);
      __PYX_ERR(4, 3225, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3225, __pyx_L1_error)
    mj_jacBody(__pyx_v_self->_model->ptr, __pyx_v_self->ptr, (&(*((double *) ( /* dim=0 */ (__pyx_v_jacp_view.data + __pyx_t_10 * __pyx_v_jacp_view.strides[0]) )))), NULL, __pyx_t_6);

    /* "mujoco_py/generated/wrappers.pxi":3223
 *         jacps = np.zeros((self._model.nbody, 3 * self._model.nv))
 *         cdef double [:] jacp_view
 *         for i, jacp in enumerate(jacps):             # <<<<<<<<<<<<<<
 *             jacp_view = jacp
 *             mj_jacBody(self._model.ptr, self.ptr, &jacp_view[0], NULL, i)
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3226
 *             jacp_view = jacp
 *             mj_jacBody(self._model.ptr, self.ptr, &jacp_view[0], NULL, i)
 *         return jacps             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_jacps);
  __pyx_r = __pyx_v_jacps;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3219
 *     @property
 *     def energy(self): return self._energy
 *     @property             # <<<<<<<<<<<<<<
 *     def body_jacp(self):
 *         jacps = np.zeros((self._model.nbody, 3 * self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_9, 1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.body_jacp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_jacps);
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_jacp_view, 1);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_jacp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3228
 *         return jacps
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def body_jacr(self):
 *         jacrs = np.zeros((self._model.nbody, 3 * self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9body_jacr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9body_jacr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9body_jacr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9body_jacr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_v_jacrs = NULL;
  __Pyx_memviewslice __pyx_v_jacr_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_jacr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  __Pyx_memviewslice __pyx_t_9 = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3230
 *     @property
 *     def body_jacr(self):
 *         jacrs = np.zeros((self._model.nbody, 3 * self._model.nv))             # <<<<<<<<<<<<<<
 *         cdef double [:] jacr_view
 *         for i, jacr in enumerate(jacrs):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_MultiplyCObj(__pyx_int_3, __pyx_t_4, 3, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2)) __PYX_ERR(4, 3230, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(4, 3230, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3230, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacrs = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3232
 *         jacrs = np.zeros((self._model.nbody, 3 * self._model.nv))
 *         cdef double [:] jacr_view
 *         for i, jacr in enumerate(jacrs):             # <<<<<<<<<<<<<<
 *             jacr_view = jacr
 *             mj_jacBody(self._model.ptr, self.ptr, NULL, &jacr_view[0], i)
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_1 = __pyx_int_0;
  if (likely(PyList_CheckExact(__pyx_v_jacrs)) || PyTuple_CheckExact(__pyx_v_jacrs)) {
    __pyx_t_3 = __pyx_v_jacrs; __Pyx_INCREF(__pyx_t_3);
    __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_jacrs); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3232, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 3232, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 3232, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(4, 3232, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3232, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 3232, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(4, 3232, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3232, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_8(__pyx_t_3);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(4, 3232, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_jacr, __pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3232, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "mujoco_py/generated/wrappers.pxi":3233
 *         cdef double [:] jacr_view
 *         for i, jacr in enumerate(jacrs):
 *             jacr_view = jacr             # <<<<<<<<<<<<<<
 *             mj_jacBody(self._model.ptr, self.ptr, NULL, &jacr_view[0], i)
 *         return jacrs
 */
    __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_jacr, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(4, 3233, __pyx_L1_error)
    __PYX_XCLEAR_MEMVIEW(&__pyx_v_jacr_view, 1);
    __pyx_v_jacr_view = __pyx_t_9;
    __pyx_t_9.memview = NULL;
    __pyx_t_9.data = NULL;

    /* "mujoco_py/generated/wrappers.pxi":3234
 *         for i, jacr in enumerate(jacrs):
 *             jacr_view = jacr
 *             mj_jacBody(self._model.ptr, self.ptr, NULL, &jacr_view[0], i)             # <<<<<<<<<<<<<<
 *         return jacrs
 * 
 */
    __pyx_t_10 = 0;
    __pyx_t_6 = -1;
    if (__pyx_t_10 < 0) {
      __pyx_t_10 += __pyx_v_jacr_view.shape[0];
      if (unlikely(__pyx_t_10 < 0)) __pyx_t_6 = 0;
    } else if (unlikely(__pyx_t_10 >= __pyx_v_jacr_view.shape[0])) __pyx_t_6 = 0;
    if (unlikely(__pyx_t_6 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_6);
      __PYX_ERR(4, 3234, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3234, __pyx_L1_error)
    mj_jacBody(__pyx_v_self->_model->ptr, __pyx_v_self->ptr, NULL, (&(*((double *) ( /* dim=0 */ (__pyx_v_jacr_view.data + __pyx_t_10 * __pyx_v_jacr_view.strides[0]) )))), __pyx_t_6);

    /* "mujoco_py/generated/wrappers.pxi":3232
 *         jacrs = np.zeros((self._model.nbody, 3 * self._model.nv))
 *         cdef double [:] jacr_view
 *         for i, jacr in enumerate(jacrs):             # <<<<<<<<<<<<<<
 *             jacr_view = jacr
 *             mj_jacBody(self._model.ptr, self.ptr, NULL, &jacr_view[0], i)
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3235
 *             jacr_view = jacr
 *             mj_jacBody(self._model.ptr, self.ptr, NULL, &jacr_view[0], i)
 *         return jacrs             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_jacrs);
  __pyx_r = __pyx_v_jacrs;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3228
 *         return jacps
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def body_jacr(self):
 *         jacrs = np.zeros((self._model.nbody, 3 * self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_9, 1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.body_jacr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_jacrs);
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_jacr_view, 1);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_jacr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3237
 *         return jacrs
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def body_xvelp(self):
 *         jacp = self.body_jacp.reshape((self._model.nbody, 3, self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10body_xvelp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10body_xvelp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10body_xvelp___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10body_xvelp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_v_jacp = NULL;
  PyObject *__pyx_v_xvelp = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3239
 *     @property
 *     def body_xvelp(self):
 *         jacp = self.body_jacp.reshape((self._model.nbody, 3, self._model.nv))             # <<<<<<<<<<<<<<
 *         xvelp = np.dot(jacp, self.qvel)
 *         return xvelp
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_body_jacp); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2)) __PYX_ERR(4, 3239, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_3)) __PYX_ERR(4, 3239, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4)) __PYX_ERR(4, 3239, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3239, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3240
 *     def body_xvelp(self):
 *         jacp = self.body_jacp.reshape((self._model.nbody, 3, self._model.nv))
 *         xvelp = np.dot(jacp, self.qvel)             # <<<<<<<<<<<<<<
 *         return xvelp
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dot); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_jacp, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_v_xvelp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3241
 *         jacp = self.body_jacp.reshape((self._model.nbody, 3, self._model.nv))
 *         xvelp = np.dot(jacp, self.qvel)
 *         return xvelp             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_xvelp);
  __pyx_r = __pyx_v_xvelp;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3237
 *         return jacrs
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def body_xvelp(self):
 *         jacp = self.body_jacp.reshape((self._model.nbody, 3, self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.body_xvelp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_jacp);
  __Pyx_XDECREF(__pyx_v_xvelp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3243
 *         return xvelp
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def body_xvelr(self):
 *         jacr = self.body_jacr.reshape((self._model.nbody, 3, self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10body_xvelr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10body_xvelr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10body_xvelr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10body_xvelr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_v_jacr = NULL;
  PyObject *__pyx_v_xvelr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3245
 *     @property
 *     def body_xvelr(self):
 *         jacr = self.body_jacr.reshape((self._model.nbody, 3, self._model.nv))             # <<<<<<<<<<<<<<
 *         xvelr = np.dot(jacr, self.qvel)
 *         return xvelr
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_body_jacr); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nbody); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2)) __PYX_ERR(4, 3245, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_3)) __PYX_ERR(4, 3245, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4)) __PYX_ERR(4, 3245, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3246
 *     def body_xvelr(self):
 *         jacr = self.body_jacr.reshape((self._model.nbody, 3, self._model.nv))
 *         xvelr = np.dot(jacr, self.qvel)             # <<<<<<<<<<<<<<
 *         return xvelr
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dot); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_jacr, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3246, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_v_xvelr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3247
 *         jacr = self.body_jacr.reshape((self._model.nbody, 3, self._model.nv))
 *         xvelr = np.dot(jacr, self.qvel)
 *         return xvelr             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_xvelr);
  __pyx_r = __pyx_v_xvelr;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3243
 *         return xvelp
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def body_xvelr(self):
 *         jacr = self.body_jacr.reshape((self._model.nbody, 3, self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.body_xvelr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_jacr);
  __Pyx_XDECREF(__pyx_v_xvelr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3249
 *         return xvelr
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_jacp(self):
 *         jacps = np.zeros((self._model.ngeom, 3 * self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9geom_jacp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9geom_jacp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9geom_jacp___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9geom_jacp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_v_jacps = NULL;
  __Pyx_memviewslice __pyx_v_jacp_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_jacp = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  __Pyx_memviewslice __pyx_t_9 = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3251
 *     @property
 *     def geom_jacp(self):
 *         jacps = np.zeros((self._model.ngeom, 3 * self._model.nv))             # <<<<<<<<<<<<<<
 *         cdef double [:] jacp_view
 *         for i, jacp in enumerate(jacps):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_ngeom); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_MultiplyCObj(__pyx_int_3, __pyx_t_4, 3, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2)) __PYX_ERR(4, 3251, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(4, 3251, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3251, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacps = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3253
 *         jacps = np.zeros((self._model.ngeom, 3 * self._model.nv))
 *         cdef double [:] jacp_view
 *         for i, jacp in enumerate(jacps):             # <<<<<<<<<<<<<<
 *             jacp_view = jacp
 *             mj_jacGeom(self._model.ptr, self.ptr, &jacp_view[0], NULL, i)
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_1 = __pyx_int_0;
  if (likely(PyList_CheckExact(__pyx_v_jacps)) || PyTuple_CheckExact(__pyx_v_jacps)) {
    __pyx_t_3 = __pyx_v_jacps; __Pyx_INCREF(__pyx_t_3);
    __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_jacps); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3253, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 3253, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 3253, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(4, 3253, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3253, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 3253, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(4, 3253, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3253, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_8(__pyx_t_3);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(4, 3253, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_jacp, __pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3253, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "mujoco_py/generated/wrappers.pxi":3254
 *         cdef double [:] jacp_view
 *         for i, jacp in enumerate(jacps):
 *             jacp_view = jacp             # <<<<<<<<<<<<<<
 *             mj_jacGeom(self._model.ptr, self.ptr, &jacp_view[0], NULL, i)
 *         return jacps
 */
    __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_jacp, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(4, 3254, __pyx_L1_error)
    __PYX_XCLEAR_MEMVIEW(&__pyx_v_jacp_view, 1);
    __pyx_v_jacp_view = __pyx_t_9;
    __pyx_t_9.memview = NULL;
    __pyx_t_9.data = NULL;

    /* "mujoco_py/generated/wrappers.pxi":3255
 *         for i, jacp in enumerate(jacps):
 *             jacp_view = jacp
 *             mj_jacGeom(self._model.ptr, self.ptr, &jacp_view[0], NULL, i)             # <<<<<<<<<<<<<<
 *         return jacps
 * 
 */
    __pyx_t_10 = 0;
    __pyx_t_6 = -1;
    if (__pyx_t_10 < 0) {
      __pyx_t_10 += __pyx_v_jacp_view.shape[0];
      if (unlikely(__pyx_t_10 < 0)) __pyx_t_6 = 0;
    } else if (unlikely(__pyx_t_10 >= __pyx_v_jacp_view.shape[0])) __pyx_t_6 = 0;
    if (unlikely(__pyx_t_6 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_6);
      __PYX_ERR(4, 3255, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3255, __pyx_L1_error)
    mj_jacGeom(__pyx_v_self->_model->ptr, __pyx_v_self->ptr, (&(*((double *) ( /* dim=0 */ (__pyx_v_jacp_view.data + __pyx_t_10 * __pyx_v_jacp_view.strides[0]) )))), NULL, __pyx_t_6);

    /* "mujoco_py/generated/wrappers.pxi":3253
 *         jacps = np.zeros((self._model.ngeom, 3 * self._model.nv))
 *         cdef double [:] jacp_view
 *         for i, jacp in enumerate(jacps):             # <<<<<<<<<<<<<<
 *             jacp_view = jacp
 *             mj_jacGeom(self._model.ptr, self.ptr, &jacp_view[0], NULL, i)
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3256
 *             jacp_view = jacp
 *             mj_jacGeom(self._model.ptr, self.ptr, &jacp_view[0], NULL, i)
 *         return jacps             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_jacps);
  __pyx_r = __pyx_v_jacps;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3249
 *         return xvelr
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_jacp(self):
 *         jacps = np.zeros((self._model.ngeom, 3 * self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_9, 1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.geom_jacp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_jacps);
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_jacp_view, 1);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_jacp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3258
 *         return jacps
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_jacr(self):
 *         jacrs = np.zeros((self._model.ngeom, 3 * self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9geom_jacr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9geom_jacr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9geom_jacr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9geom_jacr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_v_jacrs = NULL;
  __Pyx_memviewslice __pyx_v_jacr_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_jacr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  __Pyx_memviewslice __pyx_t_9 = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3260
 *     @property
 *     def geom_jacr(self):
 *         jacrs = np.zeros((self._model.ngeom, 3 * self._model.nv))             # <<<<<<<<<<<<<<
 *         cdef double [:] jacr_view
 *         for i, jacr in enumerate(jacrs):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_ngeom); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_MultiplyCObj(__pyx_int_3, __pyx_t_4, 3, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2)) __PYX_ERR(4, 3260, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(4, 3260, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3260, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacrs = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3262
 *         jacrs = np.zeros((self._model.ngeom, 3 * self._model.nv))
 *         cdef double [:] jacr_view
 *         for i, jacr in enumerate(jacrs):             # <<<<<<<<<<<<<<
 *             jacr_view = jacr
 *             mj_jacGeom(self._model.ptr, self.ptr, NULL, &jacr_view[0], i)
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_1 = __pyx_int_0;
  if (likely(PyList_CheckExact(__pyx_v_jacrs)) || PyTuple_CheckExact(__pyx_v_jacrs)) {
    __pyx_t_3 = __pyx_v_jacrs; __Pyx_INCREF(__pyx_t_3);
    __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_jacrs); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3262, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 3262, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 3262, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(4, 3262, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3262, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 3262, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(4, 3262, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3262, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_8(__pyx_t_3);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(4, 3262, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_jacr, __pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3262, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "mujoco_py/generated/wrappers.pxi":3263
 *         cdef double [:] jacr_view
 *         for i, jacr in enumerate(jacrs):
 *             jacr_view = jacr             # <<<<<<<<<<<<<<
 *             mj_jacGeom(self._model.ptr, self.ptr, NULL, &jacr_view[0], i)
 *         return jacrs
 */
    __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_jacr, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(4, 3263, __pyx_L1_error)
    __PYX_XCLEAR_MEMVIEW(&__pyx_v_jacr_view, 1);
    __pyx_v_jacr_view = __pyx_t_9;
    __pyx_t_9.memview = NULL;
    __pyx_t_9.data = NULL;

    /* "mujoco_py/generated/wrappers.pxi":3264
 *         for i, jacr in enumerate(jacrs):
 *             jacr_view = jacr
 *             mj_jacGeom(self._model.ptr, self.ptr, NULL, &jacr_view[0], i)             # <<<<<<<<<<<<<<
 *         return jacrs
 * 
 */
    __pyx_t_10 = 0;
    __pyx_t_6 = -1;
    if (__pyx_t_10 < 0) {
      __pyx_t_10 += __pyx_v_jacr_view.shape[0];
      if (unlikely(__pyx_t_10 < 0)) __pyx_t_6 = 0;
    } else if (unlikely(__pyx_t_10 >= __pyx_v_jacr_view.shape[0])) __pyx_t_6 = 0;
    if (unlikely(__pyx_t_6 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_6);
      __PYX_ERR(4, 3264, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3264, __pyx_L1_error)
    mj_jacGeom(__pyx_v_self->_model->ptr, __pyx_v_self->ptr, NULL, (&(*((double *) ( /* dim=0 */ (__pyx_v_jacr_view.data + __pyx_t_10 * __pyx_v_jacr_view.strides[0]) )))), __pyx_t_6);

    /* "mujoco_py/generated/wrappers.pxi":3262
 *         jacrs = np.zeros((self._model.ngeom, 3 * self._model.nv))
 *         cdef double [:] jacr_view
 *         for i, jacr in enumerate(jacrs):             # <<<<<<<<<<<<<<
 *             jacr_view = jacr
 *             mj_jacGeom(self._model.ptr, self.ptr, NULL, &jacr_view[0], i)
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3265
 *             jacr_view = jacr
 *             mj_jacGeom(self._model.ptr, self.ptr, NULL, &jacr_view[0], i)
 *         return jacrs             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_jacrs);
  __pyx_r = __pyx_v_jacrs;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3258
 *         return jacps
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_jacr(self):
 *         jacrs = np.zeros((self._model.ngeom, 3 * self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_9, 1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.geom_jacr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_jacrs);
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_jacr_view, 1);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_jacr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3267
 *         return jacrs
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_xvelp(self):
 *         jacp = self.geom_jacp.reshape((self._model.ngeom, 3, self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10geom_xvelp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10geom_xvelp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10geom_xvelp___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10geom_xvelp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_v_jacp = NULL;
  PyObject *__pyx_v_xvelp = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3269
 *     @property
 *     def geom_xvelp(self):
 *         jacp = self.geom_jacp.reshape((self._model.ngeom, 3, self._model.nv))             # <<<<<<<<<<<<<<
 *         xvelp = np.dot(jacp, self.qvel)
 *         return xvelp
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_geom_jacp); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_ngeom); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2)) __PYX_ERR(4, 3269, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_3)) __PYX_ERR(4, 3269, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4)) __PYX_ERR(4, 3269, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3269, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3270
 *     def geom_xvelp(self):
 *         jacp = self.geom_jacp.reshape((self._model.ngeom, 3, self._model.nv))
 *         xvelp = np.dot(jacp, self.qvel)             # <<<<<<<<<<<<<<
 *         return xvelp
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dot); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_jacp, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3270, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_v_xvelp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3271
 *         jacp = self.geom_jacp.reshape((self._model.ngeom, 3, self._model.nv))
 *         xvelp = np.dot(jacp, self.qvel)
 *         return xvelp             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_xvelp);
  __pyx_r = __pyx_v_xvelp;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3267
 *         return jacrs
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_xvelp(self):
 *         jacp = self.geom_jacp.reshape((self._model.ngeom, 3, self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.geom_xvelp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_jacp);
  __Pyx_XDECREF(__pyx_v_xvelp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3273
 *         return xvelp
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_xvelr(self):
 *         jacr = self.geom_jacr.reshape((self._model.ngeom, 3, self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10geom_xvelr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10geom_xvelr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10geom_xvelr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10geom_xvelr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_v_jacr = NULL;
  PyObject *__pyx_v_xvelr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3275
 *     @property
 *     def geom_xvelr(self):
 *         jacr = self.geom_jacr.reshape((self._model.ngeom, 3, self._model.nv))             # <<<<<<<<<<<<<<
 *         xvelr = np.dot(jacr, self.qvel)
 *         return xvelr
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_geom_jacr); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_ngeom); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2)) __PYX_ERR(4, 3275, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_3)) __PYX_ERR(4, 3275, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4)) __PYX_ERR(4, 3275, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3276
 *     def geom_xvelr(self):
 *         jacr = self.geom_jacr.reshape((self._model.ngeom, 3, self._model.nv))
 *         xvelr = np.dot(jacr, self.qvel)             # <<<<<<<<<<<<<<
 *         return xvelr
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dot); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_jacr, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_v_xvelr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3277
 *         jacr = self.geom_jacr.reshape((self._model.ngeom, 3, self._model.nv))
 *         xvelr = np.dot(jacr, self.qvel)
 *         return xvelr             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_xvelr);
  __pyx_r = __pyx_v_xvelr;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3273
 *         return xvelp
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def geom_xvelr(self):
 *         jacr = self.geom_jacr.reshape((self._model.ngeom, 3, self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.geom_xvelr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_jacr);
  __Pyx_XDECREF(__pyx_v_xvelr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3279
 *         return xvelr
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def site_jacp(self):
 *         jacps = np.zeros((self._model.nsite, 3 * self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9site_jacp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9site_jacp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9site_jacp___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9site_jacp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_v_jacps = NULL;
  __Pyx_memviewslice __pyx_v_jacp_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_jacp = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  __Pyx_memviewslice __pyx_t_9 = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3281
 *     @property
 *     def site_jacp(self):
 *         jacps = np.zeros((self._model.nsite, 3 * self._model.nv))             # <<<<<<<<<<<<<<
 *         cdef double [:] jacp_view
 *         for i, jacp in enumerate(jacps):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nsite); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_MultiplyCObj(__pyx_int_3, __pyx_t_4, 3, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2)) __PYX_ERR(4, 3281, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(4, 3281, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3281, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacps = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3283
 *         jacps = np.zeros((self._model.nsite, 3 * self._model.nv))
 *         cdef double [:] jacp_view
 *         for i, jacp in enumerate(jacps):             # <<<<<<<<<<<<<<
 *             jacp_view = jacp
 *             mj_jacSite(self._model.ptr, self.ptr, &jacp_view[0], NULL, i)
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_1 = __pyx_int_0;
  if (likely(PyList_CheckExact(__pyx_v_jacps)) || PyTuple_CheckExact(__pyx_v_jacps)) {
    __pyx_t_3 = __pyx_v_jacps; __Pyx_INCREF(__pyx_t_3);
    __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_jacps); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3283, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 3283, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 3283, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(4, 3283, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3283, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 3283, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(4, 3283, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3283, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_8(__pyx_t_3);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(4, 3283, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_jacp, __pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3283, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "mujoco_py/generated/wrappers.pxi":3284
 *         cdef double [:] jacp_view
 *         for i, jacp in enumerate(jacps):
 *             jacp_view = jacp             # <<<<<<<<<<<<<<
 *             mj_jacSite(self._model.ptr, self.ptr, &jacp_view[0], NULL, i)
 *         return jacps
 */
    __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_jacp, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(4, 3284, __pyx_L1_error)
    __PYX_XCLEAR_MEMVIEW(&__pyx_v_jacp_view, 1);
    __pyx_v_jacp_view = __pyx_t_9;
    __pyx_t_9.memview = NULL;
    __pyx_t_9.data = NULL;

    /* "mujoco_py/generated/wrappers.pxi":3285
 *         for i, jacp in enumerate(jacps):
 *             jacp_view = jacp
 *             mj_jacSite(self._model.ptr, self.ptr, &jacp_view[0], NULL, i)             # <<<<<<<<<<<<<<
 *         return jacps
 * 
 */
    __pyx_t_10 = 0;
    __pyx_t_6 = -1;
    if (__pyx_t_10 < 0) {
      __pyx_t_10 += __pyx_v_jacp_view.shape[0];
      if (unlikely(__pyx_t_10 < 0)) __pyx_t_6 = 0;
    } else if (unlikely(__pyx_t_10 >= __pyx_v_jacp_view.shape[0])) __pyx_t_6 = 0;
    if (unlikely(__pyx_t_6 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_6);
      __PYX_ERR(4, 3285, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3285, __pyx_L1_error)
    mj_jacSite(__pyx_v_self->_model->ptr, __pyx_v_self->ptr, (&(*((double *) ( /* dim=0 */ (__pyx_v_jacp_view.data + __pyx_t_10 * __pyx_v_jacp_view.strides[0]) )))), NULL, __pyx_t_6);

    /* "mujoco_py/generated/wrappers.pxi":3283
 *         jacps = np.zeros((self._model.nsite, 3 * self._model.nv))
 *         cdef double [:] jacp_view
 *         for i, jacp in enumerate(jacps):             # <<<<<<<<<<<<<<
 *             jacp_view = jacp
 *             mj_jacSite(self._model.ptr, self.ptr, &jacp_view[0], NULL, i)
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3286
 *             jacp_view = jacp
 *             mj_jacSite(self._model.ptr, self.ptr, &jacp_view[0], NULL, i)
 *         return jacps             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_jacps);
  __pyx_r = __pyx_v_jacps;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3279
 *         return xvelr
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def site_jacp(self):
 *         jacps = np.zeros((self._model.nsite, 3 * self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_9, 1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.site_jacp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_jacps);
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_jacp_view, 1);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_jacp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3288
 *         return jacps
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def site_jacr(self):
 *         jacrs = np.zeros((self._model.nsite, 3 * self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9site_jacr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_9site_jacr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_9site_jacr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_9site_jacr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_v_jacrs = NULL;
  __Pyx_memviewslice __pyx_v_jacr_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_jacr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  __Pyx_memviewslice __pyx_t_9 = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3290
 *     @property
 *     def site_jacr(self):
 *         jacrs = np.zeros((self._model.nsite, 3 * self._model.nv))             # <<<<<<<<<<<<<<
 *         cdef double [:] jacr_view
 *         for i, jacr in enumerate(jacrs):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nsite); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_MultiplyCObj(__pyx_int_3, __pyx_t_4, 3, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2)) __PYX_ERR(4, 3290, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(4, 3290, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3290, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacrs = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3292
 *         jacrs = np.zeros((self._model.nsite, 3 * self._model.nv))
 *         cdef double [:] jacr_view
 *         for i, jacr in enumerate(jacrs):             # <<<<<<<<<<<<<<
 *             jacr_view = jacr
 *             mj_jacSite(self._model.ptr, self.ptr, NULL, &jacr_view[0], i)
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_1 = __pyx_int_0;
  if (likely(PyList_CheckExact(__pyx_v_jacrs)) || PyTuple_CheckExact(__pyx_v_jacrs)) {
    __pyx_t_3 = __pyx_v_jacrs; __Pyx_INCREF(__pyx_t_3);
    __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_jacrs); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3292, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 3292, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 3292, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(4, 3292, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3292, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 3292, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(4, 3292, __pyx_L1_error)
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3292, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_8(__pyx_t_3);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(4, 3292, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_jacr, __pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3292, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "mujoco_py/generated/wrappers.pxi":3293
 *         cdef double [:] jacr_view
 *         for i, jacr in enumerate(jacrs):
 *             jacr_view = jacr             # <<<<<<<<<<<<<<
 *             mj_jacSite(self._model.ptr, self.ptr, NULL, &jacr_view[0], i)
 *         return jacrs
 */
    __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_jacr, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(4, 3293, __pyx_L1_error)
    __PYX_XCLEAR_MEMVIEW(&__pyx_v_jacr_view, 1);
    __pyx_v_jacr_view = __pyx_t_9;
    __pyx_t_9.memview = NULL;
    __pyx_t_9.data = NULL;

    /* "mujoco_py/generated/wrappers.pxi":3294
 *         for i, jacr in enumerate(jacrs):
 *             jacr_view = jacr
 *             mj_jacSite(self._model.ptr, self.ptr, NULL, &jacr_view[0], i)             # <<<<<<<<<<<<<<
 *         return jacrs
 * 
 */
    __pyx_t_10 = 0;
    __pyx_t_6 = -1;
    if (__pyx_t_10 < 0) {
      __pyx_t_10 += __pyx_v_jacr_view.shape[0];
      if (unlikely(__pyx_t_10 < 0)) __pyx_t_6 = 0;
    } else if (unlikely(__pyx_t_10 >= __pyx_v_jacr_view.shape[0])) __pyx_t_6 = 0;
    if (unlikely(__pyx_t_6 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_6);
      __PYX_ERR(4, 3294, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3294, __pyx_L1_error)
    mj_jacSite(__pyx_v_self->_model->ptr, __pyx_v_self->ptr, NULL, (&(*((double *) ( /* dim=0 */ (__pyx_v_jacr_view.data + __pyx_t_10 * __pyx_v_jacr_view.strides[0]) )))), __pyx_t_6);

    /* "mujoco_py/generated/wrappers.pxi":3292
 *         jacrs = np.zeros((self._model.nsite, 3 * self._model.nv))
 *         cdef double [:] jacr_view
 *         for i, jacr in enumerate(jacrs):             # <<<<<<<<<<<<<<
 *             jacr_view = jacr
 *             mj_jacSite(self._model.ptr, self.ptr, NULL, &jacr_view[0], i)
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3295
 *             jacr_view = jacr
 *             mj_jacSite(self._model.ptr, self.ptr, NULL, &jacr_view[0], i)
 *         return jacrs             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_jacrs);
  __pyx_r = __pyx_v_jacrs;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3288
 *         return jacps
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def site_jacr(self):
 *         jacrs = np.zeros((self._model.nsite, 3 * self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_9, 1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.site_jacr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_jacrs);
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_jacr_view, 1);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_jacr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3297
 *         return jacrs
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def site_xvelp(self):
 *         jacp = self.site_jacp.reshape((self._model.nsite, 3, self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10site_xvelp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10site_xvelp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10site_xvelp___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10site_xvelp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_v_jacp = NULL;
  PyObject *__pyx_v_xvelp = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3299
 *     @property
 *     def site_xvelp(self):
 *         jacp = self.site_jacp.reshape((self._model.nsite, 3, self._model.nv))             # <<<<<<<<<<<<<<
 *         xvelp = np.dot(jacp, self.qvel)
 *         return xvelp
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_site_jacp); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nsite); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2)) __PYX_ERR(4, 3299, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_3)) __PYX_ERR(4, 3299, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4)) __PYX_ERR(4, 3299, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3300
 *     def site_xvelp(self):
 *         jacp = self.site_jacp.reshape((self._model.nsite, 3, self._model.nv))
 *         xvelp = np.dot(jacp, self.qvel)             # <<<<<<<<<<<<<<
 *         return xvelp
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dot); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_jacp, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_v_xvelp = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3301
 *         jacp = self.site_jacp.reshape((self._model.nsite, 3, self._model.nv))
 *         xvelp = np.dot(jacp, self.qvel)
 *         return xvelp             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_xvelp);
  __pyx_r = __pyx_v_xvelp;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3297
 *         return jacrs
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def site_xvelp(self):
 *         jacp = self.site_jacp.reshape((self._model.nsite, 3, self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.site_xvelp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_jacp);
  __Pyx_XDECREF(__pyx_v_xvelp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3303
 *         return xvelp
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def site_xvelr(self):
 *         jacr = self.site_jacr.reshape((self._model.nsite, 3, self._model.nv))
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10site_xvelr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_10site_xvelr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_10site_xvelr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_10site_xvelr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_v_jacr = NULL;
  PyObject *__pyx_v_xvelr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3305
 *     @property
 *     def site_xvelr(self):
 *         jacr = self.site_jacr.reshape((self._model.nsite, 3, self._model.nv))             # <<<<<<<<<<<<<<
 *         xvelr = np.dot(jacr, self.qvel)
 *         return xvelr
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_site_jacr); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nsite); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_model), __pyx_n_s_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2)) __PYX_ERR(4, 3305, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_3)) __PYX_ERR(4, 3305, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4)) __PYX_ERR(4, 3305, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_jacr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3306
 *     def site_xvelr(self):
 *         jacr = self.site_jacr.reshape((self._model.nsite, 3, self._model.nv))
 *         xvelr = np.dot(jacr, self.qvel)             # <<<<<<<<<<<<<<
 *         return xvelr
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dot); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_jacr, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3306, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_v_xvelr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3307
 *         jacr = self.site_jacr.reshape((self._model.nsite, 3, self._model.nv))
 *         xvelr = np.dot(jacr, self.qvel)
 *         return xvelr             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_xvelr);
  __pyx_r = __pyx_v_xvelr;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3303
 *         return xvelp
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def site_xvelr(self):
 *         jacr = self.site_jacr.reshape((self._model.nsite, 3, self._model.nv))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.site_xvelr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_jacr);
  __Pyx_XDECREF(__pyx_v_xvelr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_97__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_97__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_97__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_97__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_96__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_96__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_ptr_cannot_be_converted_to, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_99__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_8PyMjData_99__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_99__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_8PyMjData_99__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8PyMjData_98__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8PyMjData_98__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_self_ptr_cannot_be_converted_to, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjData.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3310
 * 
 * 
 * cdef PyMjData WrapMjData(mjData* p, PyMjModel model):             # <<<<<<<<<<<<<<
 *     cdef PyMjData o = PyMjData()
 *     o._set(p, model)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_f_9mujoco_py_4cymj_WrapMjData(mjData *__pyx_v_p, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_model) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjData", 1);

  /* "mujoco_py/generated/wrappers.pxi":3311
 * 
 * cdef PyMjData WrapMjData(mjData* p, PyMjModel model):
 *     cdef PyMjData o = PyMjData()             # <<<<<<<<<<<<<<
 *     o._set(p, model)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3312
 * cdef PyMjData WrapMjData(mjData* p, PyMjModel model):
 *     cdef PyMjData o = PyMjData()
 *     o._set(p, model)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjData *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p, __pyx_v_model);

  /* "mujoco_py/generated/wrappers.pxi":3313
 *     cdef PyMjData o = PyMjData()
 *     o._set(p, model)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjvPerturb(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3310
 * 
 * 
 * cdef PyMjData WrapMjData(mjData* p, PyMjModel model):             # <<<<<<<<<<<<<<
 *     cdef PyMjData o = PyMjData()
 *     o._set(p, model)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjData", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3323
 *     cdef np.ndarray _localpos
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3324
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":3323
 *     cdef np.ndarray _localpos
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3327
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3328
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjvPerturb* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3327
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvPerturb.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3330
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvPerturb* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_12PyMjvPerturb__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self, mjvPerturb *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":3332
 *     cdef void _set(self, mjvPerturb* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":3335
 * 
 * 
 *         self._refpos = _wrap_mjtNum_1d(&p.refpos[0], 3)             # <<<<<<<<<<<<<<
 *         self._refquat = _wrap_mjtNum_1d(&p.refquat[0], 4)
 *         self._localpos = _wrap_mjtNum_1d(&p.localpos[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->refpos[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_refpos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_refpos);
  __pyx_v_self->_refpos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3336
 * 
 *         self._refpos = _wrap_mjtNum_1d(&p.refpos[0], 3)
 *         self._refquat = _wrap_mjtNum_1d(&p.refquat[0], 4)             # <<<<<<<<<<<<<<
 *         self._localpos = _wrap_mjtNum_1d(&p.localpos[0], 3)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->refquat[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_refquat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_refquat);
  __pyx_v_self->_refquat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3337
 *         self._refpos = _wrap_mjtNum_1d(&p.refpos[0], 3)
 *         self._refquat = _wrap_mjtNum_1d(&p.refquat[0], 4)
 *         self._localpos = _wrap_mjtNum_1d(&p.localpos[0], 3)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->localpos[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_localpos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_localpos);
  __pyx_v_self->_localpos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3330
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvPerturb* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjvPerturb._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":3339
 *         self._localpos = _wrap_mjtNum_1d(&p.localpos[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def select(self): return self.ptr.select
 *     @select.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_6select_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_6select_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_6select___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_6select___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3340
 * 
 *     @property
 *     def select(self): return self.ptr.select             # <<<<<<<<<<<<<<
 *     @select.setter
 *     def select(self, int x): self.ptr.select = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->select); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3339
 *         self._localpos = _wrap_mjtNum_1d(&p.localpos[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def select(self): return self.ptr.select
 *     @select.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvPerturb.select.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3341
 *     @property
 *     def select(self): return self.ptr.select
 *     @select.setter             # <<<<<<<<<<<<<<
 *     def select(self, int x): self.ptr.select = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_6select_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_6select_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3342, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvPerturb.select.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_6select_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_6select_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3342
 *     def select(self): return self.ptr.select
 *     @select.setter
 *     def select(self, int x): self.ptr.select = x             # <<<<<<<<<<<<<<
 *     @property
 *     def skinselect(self): return self.ptr.skinselect
 */
  __pyx_v_self->ptr->select = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3341
 *     @property
 *     def select(self): return self.ptr.select
 *     @select.setter             # <<<<<<<<<<<<<<
 *     def select(self, int x): self.ptr.select = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3343
 *     @select.setter
 *     def select(self, int x): self.ptr.select = x
 *     @property             # <<<<<<<<<<<<<<
 *     def skinselect(self): return self.ptr.skinselect
 *     @skinselect.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_10skinselect_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_10skinselect_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_10skinselect___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_10skinselect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3344
 *     def select(self, int x): self.ptr.select = x
 *     @property
 *     def skinselect(self): return self.ptr.skinselect             # <<<<<<<<<<<<<<
 *     @skinselect.setter
 *     def skinselect(self, int x): self.ptr.skinselect = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->skinselect); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3343
 *     @select.setter
 *     def select(self, int x): self.ptr.select = x
 *     @property             # <<<<<<<<<<<<<<
 *     def skinselect(self): return self.ptr.skinselect
 *     @skinselect.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvPerturb.skinselect.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3345
 *     @property
 *     def skinselect(self): return self.ptr.skinselect
 *     @skinselect.setter             # <<<<<<<<<<<<<<
 *     def skinselect(self, int x): self.ptr.skinselect = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_10skinselect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_10skinselect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3346, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvPerturb.skinselect.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_10skinselect_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_10skinselect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3346
 *     def skinselect(self): return self.ptr.skinselect
 *     @skinselect.setter
 *     def skinselect(self, int x): self.ptr.skinselect = x             # <<<<<<<<<<<<<<
 *     @property
 *     def active(self): return self.ptr.active
 */
  __pyx_v_self->ptr->skinselect = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3345
 *     @property
 *     def skinselect(self): return self.ptr.skinselect
 *     @skinselect.setter             # <<<<<<<<<<<<<<
 *     def skinselect(self, int x): self.ptr.skinselect = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3347
 *     @skinselect.setter
 *     def skinselect(self, int x): self.ptr.skinselect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def active(self): return self.ptr.active
 *     @active.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_6active_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_6active_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_6active___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_6active___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3348
 *     def skinselect(self, int x): self.ptr.skinselect = x
 *     @property
 *     def active(self): return self.ptr.active             # <<<<<<<<<<<<<<
 *     @active.setter
 *     def active(self, int x): self.ptr.active = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->active); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3347
 *     @skinselect.setter
 *     def skinselect(self, int x): self.ptr.skinselect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def active(self): return self.ptr.active
 *     @active.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvPerturb.active.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3349
 *     @property
 *     def active(self): return self.ptr.active
 *     @active.setter             # <<<<<<<<<<<<<<
 *     def active(self, int x): self.ptr.active = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_6active_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_6active_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3350, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvPerturb.active.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_6active_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_6active_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3350
 *     def active(self): return self.ptr.active
 *     @active.setter
 *     def active(self, int x): self.ptr.active = x             # <<<<<<<<<<<<<<
 *     @property
 *     def active2(self): return self.ptr.active2
 */
  __pyx_v_self->ptr->active = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3349
 *     @property
 *     def active(self): return self.ptr.active
 *     @active.setter             # <<<<<<<<<<<<<<
 *     def active(self, int x): self.ptr.active = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3351
 *     @active.setter
 *     def active(self, int x): self.ptr.active = x
 *     @property             # <<<<<<<<<<<<<<
 *     def active2(self): return self.ptr.active2
 *     @active2.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_7active2_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_7active2_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_7active2___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_7active2___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3352
 *     def active(self, int x): self.ptr.active = x
 *     @property
 *     def active2(self): return self.ptr.active2             # <<<<<<<<<<<<<<
 *     @active2.setter
 *     def active2(self, int x): self.ptr.active2 = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->active2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3352, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3351
 *     @active.setter
 *     def active(self, int x): self.ptr.active = x
 *     @property             # <<<<<<<<<<<<<<
 *     def active2(self): return self.ptr.active2
 *     @active2.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvPerturb.active2.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3353
 *     @property
 *     def active2(self): return self.ptr.active2
 *     @active2.setter             # <<<<<<<<<<<<<<
 *     def active2(self, int x): self.ptr.active2 = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_7active2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_7active2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3354, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvPerturb.active2.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_7active2_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_7active2_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3354
 *     def active2(self): return self.ptr.active2
 *     @active2.setter
 *     def active2(self, int x): self.ptr.active2 = x             # <<<<<<<<<<<<<<
 *     @property
 *     def scale(self): return self.ptr.scale
 */
  __pyx_v_self->ptr->active2 = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3353
 *     @property
 *     def active2(self): return self.ptr.active2
 *     @active2.setter             # <<<<<<<<<<<<<<
 *     def active2(self, int x): self.ptr.active2 = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3355
 *     @active2.setter
 *     def active2(self, int x): self.ptr.active2 = x
 *     @property             # <<<<<<<<<<<<<<
 *     def scale(self): return self.ptr.scale
 *     @scale.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_5scale_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_5scale_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_5scale___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_5scale___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3356
 *     def active2(self, int x): self.ptr.active2 = x
 *     @property
 *     def scale(self): return self.ptr.scale             # <<<<<<<<<<<<<<
 *     @scale.setter
 *     def scale(self, mjtNum x): self.ptr.scale = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->scale); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3355
 *     @active2.setter
 *     def active2(self, int x): self.ptr.active2 = x
 *     @property             # <<<<<<<<<<<<<<
 *     def scale(self): return self.ptr.scale
 *     @scale.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvPerturb.scale.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3357
 *     @property
 *     def scale(self): return self.ptr.scale
 *     @scale.setter             # <<<<<<<<<<<<<<
 *     def scale(self, mjtNum x): self.ptr.scale = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_5scale_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_5scale_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 3358, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvPerturb.scale.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_5scale_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_5scale_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3358
 *     def scale(self): return self.ptr.scale
 *     @scale.setter
 *     def scale(self, mjtNum x): self.ptr.scale = x             # <<<<<<<<<<<<<<
 *     @property
 *     def refpos(self): return self._refpos
 */
  __pyx_v_self->ptr->scale = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3357
 *     @property
 *     def scale(self): return self.ptr.scale
 *     @scale.setter             # <<<<<<<<<<<<<<
 *     def scale(self, mjtNum x): self.ptr.scale = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3359
 *     @scale.setter
 *     def scale(self, mjtNum x): self.ptr.scale = x
 *     @property             # <<<<<<<<<<<<<<
 *     def refpos(self): return self._refpos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_6refpos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_6refpos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_6refpos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_6refpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3360
 *     def scale(self, mjtNum x): self.ptr.scale = x
 *     @property
 *     def refpos(self): return self._refpos             # <<<<<<<<<<<<<<
 *     @property
 *     def refquat(self): return self._refquat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_refpos);
  __pyx_r = ((PyObject *)__pyx_v_self->_refpos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3359
 *     @scale.setter
 *     def scale(self, mjtNum x): self.ptr.scale = x
 *     @property             # <<<<<<<<<<<<<<
 *     def refpos(self): return self._refpos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3361
 *     @property
 *     def refpos(self): return self._refpos
 *     @property             # <<<<<<<<<<<<<<
 *     def refquat(self): return self._refquat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_7refquat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_7refquat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_7refquat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_7refquat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3362
 *     def refpos(self): return self._refpos
 *     @property
 *     def refquat(self): return self._refquat             # <<<<<<<<<<<<<<
 *     @property
 *     def localpos(self): return self._localpos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_refquat);
  __pyx_r = ((PyObject *)__pyx_v_self->_refquat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3361
 *     @property
 *     def refpos(self): return self._refpos
 *     @property             # <<<<<<<<<<<<<<
 *     def refquat(self): return self._refquat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3363
 *     @property
 *     def refquat(self): return self._refquat
 *     @property             # <<<<<<<<<<<<<<
 *     def localpos(self): return self._localpos
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_8localpos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_8localpos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_8localpos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_8localpos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3364
 *     def refquat(self): return self._refquat
 *     @property
 *     def localpos(self): return self._localpos             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjvPerturb WrapMjvPerturb(mjvPerturb* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_localpos);
  __pyx_r = ((PyObject *)__pyx_v_self->_localpos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3363
 *     @property
 *     def refquat(self): return self._refquat
 *     @property             # <<<<<<<<<<<<<<
 *     def localpos(self): return self._localpos
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_12PyMjvPerturb_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvPerturb.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_12PyMjvPerturb_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvPerturb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjvPerturb_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvPerturb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3366
 *     def localpos(self): return self._localpos
 * 
 * cdef PyMjvPerturb WrapMjvPerturb(mjvPerturb* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvPerturb o = PyMjvPerturb()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_f_9mujoco_py_4cymj_WrapMjvPerturb(mjvPerturb *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjvPerturb", 1);

  /* "mujoco_py/generated/wrappers.pxi":3367
 * 
 * cdef PyMjvPerturb WrapMjvPerturb(mjvPerturb* p):
 *     cdef PyMjvPerturb o = PyMjvPerturb()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3368
 * cdef PyMjvPerturb WrapMjvPerturb(mjvPerturb* p):
 *     cdef PyMjvPerturb o = PyMjvPerturb()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":3369
 *     cdef PyMjvPerturb o = PyMjvPerturb()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjvCamera(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3366
 *     def localpos(self): return self._localpos
 * 
 * cdef PyMjvPerturb WrapMjvPerturb(mjvPerturb* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvPerturb o = PyMjvPerturb()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjvPerturb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3377
 *     cdef np.ndarray _lookat
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3378
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":3377
 *     cdef np.ndarray _lookat
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3381
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3382
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjvCamera* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3381
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3384
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvCamera* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_11PyMjvCamera__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, mjvCamera *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":3386
 *     cdef void _set(self, mjvCamera* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":3389
 * 
 * 
 *         self._lookat = _wrap_mjtNum_1d(&p.lookat[0], 3)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d((&(__pyx_v_p->lookat[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_lookat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_lookat);
  __pyx_v_self->_lookat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3384
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvCamera* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjvCamera._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":3391
 *         self._lookat = _wrap_mjtNum_1d(&p.lookat[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type(self): return self.ptr.type
 *     @type.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_4type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_4type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_4type___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_4type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3392
 * 
 *     @property
 *     def type(self): return self.ptr.type             # <<<<<<<<<<<<<<
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->type); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3391
 *         self._lookat = _wrap_mjtNum_1d(&p.lookat[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type(self): return self.ptr.type
 *     @type.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3393
 *     @property
 *     def type(self): return self.ptr.type
 *     @type.setter             # <<<<<<<<<<<<<<
 *     def type(self, int x): self.ptr.type = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3394, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_4type_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_4type_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3394
 *     def type(self): return self.ptr.type
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x             # <<<<<<<<<<<<<<
 *     @property
 *     def fixedcamid(self): return self.ptr.fixedcamid
 */
  __pyx_v_self->ptr->type = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3393
 *     @property
 *     def type(self): return self.ptr.type
 *     @type.setter             # <<<<<<<<<<<<<<
 *     def type(self, int x): self.ptr.type = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3395
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x
 *     @property             # <<<<<<<<<<<<<<
 *     def fixedcamid(self): return self.ptr.fixedcamid
 *     @fixedcamid.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_10fixedcamid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_10fixedcamid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_10fixedcamid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_10fixedcamid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3396
 *     def type(self, int x): self.ptr.type = x
 *     @property
 *     def fixedcamid(self): return self.ptr.fixedcamid             # <<<<<<<<<<<<<<
 *     @fixedcamid.setter
 *     def fixedcamid(self, int x): self.ptr.fixedcamid = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->fixedcamid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3395
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x
 *     @property             # <<<<<<<<<<<<<<
 *     def fixedcamid(self): return self.ptr.fixedcamid
 *     @fixedcamid.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.fixedcamid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3397
 *     @property
 *     def fixedcamid(self): return self.ptr.fixedcamid
 *     @fixedcamid.setter             # <<<<<<<<<<<<<<
 *     def fixedcamid(self, int x): self.ptr.fixedcamid = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_10fixedcamid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_10fixedcamid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3398, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.fixedcamid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_10fixedcamid_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_10fixedcamid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3398
 *     def fixedcamid(self): return self.ptr.fixedcamid
 *     @fixedcamid.setter
 *     def fixedcamid(self, int x): self.ptr.fixedcamid = x             # <<<<<<<<<<<<<<
 *     @property
 *     def trackbodyid(self): return self.ptr.trackbodyid
 */
  __pyx_v_self->ptr->fixedcamid = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3397
 *     @property
 *     def fixedcamid(self): return self.ptr.fixedcamid
 *     @fixedcamid.setter             # <<<<<<<<<<<<<<
 *     def fixedcamid(self, int x): self.ptr.fixedcamid = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3399
 *     @fixedcamid.setter
 *     def fixedcamid(self, int x): self.ptr.fixedcamid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def trackbodyid(self): return self.ptr.trackbodyid
 *     @trackbodyid.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_11trackbodyid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_11trackbodyid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_11trackbodyid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_11trackbodyid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3400
 *     def fixedcamid(self, int x): self.ptr.fixedcamid = x
 *     @property
 *     def trackbodyid(self): return self.ptr.trackbodyid             # <<<<<<<<<<<<<<
 *     @trackbodyid.setter
 *     def trackbodyid(self, int x): self.ptr.trackbodyid = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->trackbodyid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3400, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3399
 *     @fixedcamid.setter
 *     def fixedcamid(self, int x): self.ptr.fixedcamid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def trackbodyid(self): return self.ptr.trackbodyid
 *     @trackbodyid.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.trackbodyid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3401
 *     @property
 *     def trackbodyid(self): return self.ptr.trackbodyid
 *     @trackbodyid.setter             # <<<<<<<<<<<<<<
 *     def trackbodyid(self, int x): self.ptr.trackbodyid = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_11trackbodyid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_11trackbodyid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3402, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.trackbodyid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_11trackbodyid_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_11trackbodyid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3402
 *     def trackbodyid(self): return self.ptr.trackbodyid
 *     @trackbodyid.setter
 *     def trackbodyid(self, int x): self.ptr.trackbodyid = x             # <<<<<<<<<<<<<<
 *     @property
 *     def distance(self): return self.ptr.distance
 */
  __pyx_v_self->ptr->trackbodyid = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3401
 *     @property
 *     def trackbodyid(self): return self.ptr.trackbodyid
 *     @trackbodyid.setter             # <<<<<<<<<<<<<<
 *     def trackbodyid(self, int x): self.ptr.trackbodyid = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3403
 *     @trackbodyid.setter
 *     def trackbodyid(self, int x): self.ptr.trackbodyid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def distance(self): return self.ptr.distance
 *     @distance.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_8distance_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_8distance_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_8distance___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_8distance___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3404
 *     def trackbodyid(self, int x): self.ptr.trackbodyid = x
 *     @property
 *     def distance(self): return self.ptr.distance             # <<<<<<<<<<<<<<
 *     @distance.setter
 *     def distance(self, mjtNum x): self.ptr.distance = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->distance); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3403
 *     @trackbodyid.setter
 *     def trackbodyid(self, int x): self.ptr.trackbodyid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def distance(self): return self.ptr.distance
 *     @distance.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.distance.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3405
 *     @property
 *     def distance(self): return self.ptr.distance
 *     @distance.setter             # <<<<<<<<<<<<<<
 *     def distance(self, mjtNum x): self.ptr.distance = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_8distance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_8distance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 3406, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.distance.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_8distance_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_8distance_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3406
 *     def distance(self): return self.ptr.distance
 *     @distance.setter
 *     def distance(self, mjtNum x): self.ptr.distance = x             # <<<<<<<<<<<<<<
 *     @property
 *     def azimuth(self): return self.ptr.azimuth
 */
  __pyx_v_self->ptr->distance = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3405
 *     @property
 *     def distance(self): return self.ptr.distance
 *     @distance.setter             # <<<<<<<<<<<<<<
 *     def distance(self, mjtNum x): self.ptr.distance = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3407
 *     @distance.setter
 *     def distance(self, mjtNum x): self.ptr.distance = x
 *     @property             # <<<<<<<<<<<<<<
 *     def azimuth(self): return self.ptr.azimuth
 *     @azimuth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_7azimuth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_7azimuth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_7azimuth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_7azimuth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3408
 *     def distance(self, mjtNum x): self.ptr.distance = x
 *     @property
 *     def azimuth(self): return self.ptr.azimuth             # <<<<<<<<<<<<<<
 *     @azimuth.setter
 *     def azimuth(self, mjtNum x): self.ptr.azimuth = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->azimuth); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3407
 *     @distance.setter
 *     def distance(self, mjtNum x): self.ptr.distance = x
 *     @property             # <<<<<<<<<<<<<<
 *     def azimuth(self): return self.ptr.azimuth
 *     @azimuth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.azimuth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3409
 *     @property
 *     def azimuth(self): return self.ptr.azimuth
 *     @azimuth.setter             # <<<<<<<<<<<<<<
 *     def azimuth(self, mjtNum x): self.ptr.azimuth = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_7azimuth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_7azimuth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 3410, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.azimuth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_7azimuth_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_7azimuth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3410
 *     def azimuth(self): return self.ptr.azimuth
 *     @azimuth.setter
 *     def azimuth(self, mjtNum x): self.ptr.azimuth = x             # <<<<<<<<<<<<<<
 *     @property
 *     def elevation(self): return self.ptr.elevation
 */
  __pyx_v_self->ptr->azimuth = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3409
 *     @property
 *     def azimuth(self): return self.ptr.azimuth
 *     @azimuth.setter             # <<<<<<<<<<<<<<
 *     def azimuth(self, mjtNum x): self.ptr.azimuth = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3411
 *     @azimuth.setter
 *     def azimuth(self, mjtNum x): self.ptr.azimuth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def elevation(self): return self.ptr.elevation
 *     @elevation.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_9elevation_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_9elevation_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_9elevation___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_9elevation___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3412
 *     def azimuth(self, mjtNum x): self.ptr.azimuth = x
 *     @property
 *     def elevation(self): return self.ptr.elevation             # <<<<<<<<<<<<<<
 *     @elevation.setter
 *     def elevation(self, mjtNum x): self.ptr.elevation = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->elevation); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3411
 *     @azimuth.setter
 *     def azimuth(self, mjtNum x): self.ptr.azimuth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def elevation(self): return self.ptr.elevation
 *     @elevation.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.elevation.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3413
 *     @property
 *     def elevation(self): return self.ptr.elevation
 *     @elevation.setter             # <<<<<<<<<<<<<<
 *     def elevation(self, mjtNum x): self.ptr.elevation = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_9elevation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_9elevation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtNum __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsDouble(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(4, 3414, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.elevation.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_9elevation_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self), ((mjtNum)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_9elevation_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, mjtNum __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3414
 *     def elevation(self): return self.ptr.elevation
 *     @elevation.setter
 *     def elevation(self, mjtNum x): self.ptr.elevation = x             # <<<<<<<<<<<<<<
 *     @property
 *     def lookat(self): return self._lookat
 */
  __pyx_v_self->ptr->elevation = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3413
 *     @property
 *     def elevation(self): return self.ptr.elevation
 *     @elevation.setter             # <<<<<<<<<<<<<<
 *     def elevation(self, mjtNum x): self.ptr.elevation = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3415
 *     @elevation.setter
 *     def elevation(self, mjtNum x): self.ptr.elevation = x
 *     @property             # <<<<<<<<<<<<<<
 *     def lookat(self): return self._lookat
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_6lookat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_6lookat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_6lookat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_6lookat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3416
 *     def elevation(self, mjtNum x): self.ptr.elevation = x
 *     @property
 *     def lookat(self): return self._lookat             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjvCamera WrapMjvCamera(mjvCamera* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_lookat);
  __pyx_r = ((PyObject *)__pyx_v_self->_lookat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3415
 *     @elevation.setter
 *     def elevation(self, mjtNum x): self.ptr.elevation = x
 *     @property             # <<<<<<<<<<<<<<
 *     def lookat(self): return self._lookat
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11PyMjvCamera_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11PyMjvCamera_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvCamera_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvCamera.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3418
 *     def lookat(self): return self._lookat
 * 
 * cdef PyMjvCamera WrapMjvCamera(mjvCamera* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvCamera o = PyMjvCamera()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_f_9mujoco_py_4cymj_WrapMjvCamera(mjvCamera *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjvCamera", 1);

  /* "mujoco_py/generated/wrappers.pxi":3419
 * 
 * cdef PyMjvCamera WrapMjvCamera(mjvCamera* p):
 *     cdef PyMjvCamera o = PyMjvCamera()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjvCamera)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3420
 * cdef PyMjvCamera WrapMjvCamera(mjvCamera* p):
 *     cdef PyMjvCamera o = PyMjvCamera()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvCamera *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":3421
 *     cdef PyMjvCamera o = PyMjvCamera()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjvGLCamera(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3418
 *     def lookat(self): return self._lookat
 * 
 * cdef PyMjvCamera WrapMjvCamera(mjvCamera* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvCamera o = PyMjvCamera()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjvCamera", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3431
 *     cdef np.ndarray _up
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3432
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":3431
 *     cdef np.ndarray _up
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3435
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3436
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjvGLCamera* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3435
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGLCamera.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3438
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvGLCamera* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_13PyMjvGLCamera__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self, mjvGLCamera *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":3440
 *     cdef void _set(self, mjvGLCamera* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":3443
 * 
 * 
 *         self._pos = _wrap_float_1d(&p.pos[0], 3)             # <<<<<<<<<<<<<<
 *         self._forward = _wrap_float_1d(&p.forward[0], 3)
 *         self._up = _wrap_float_1d(&p.up[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->pos[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_pos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_pos);
  __pyx_v_self->_pos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3444
 * 
 *         self._pos = _wrap_float_1d(&p.pos[0], 3)
 *         self._forward = _wrap_float_1d(&p.forward[0], 3)             # <<<<<<<<<<<<<<
 *         self._up = _wrap_float_1d(&p.up[0], 3)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->forward[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_forward);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_forward);
  __pyx_v_self->_forward = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3445
 *         self._pos = _wrap_float_1d(&p.pos[0], 3)
 *         self._forward = _wrap_float_1d(&p.forward[0], 3)
 *         self._up = _wrap_float_1d(&p.up[0], 3)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->up[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3445, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_up);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_up);
  __pyx_v_self->_up = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3438
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvGLCamera* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjvGLCamera._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":3447
 *         self._up = _wrap_float_1d(&p.up[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def frustum_center(self): return self.ptr.frustum_center
 *     @frustum_center.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_center_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_center_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_center___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_center___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3448
 * 
 *     @property
 *     def frustum_center(self): return self.ptr.frustum_center             # <<<<<<<<<<<<<<
 *     @frustum_center.setter
 *     def frustum_center(self, float x): self.ptr.frustum_center = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->frustum_center); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3447
 *         self._up = _wrap_float_1d(&p.up[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def frustum_center(self): return self.ptr.frustum_center
 *     @frustum_center.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGLCamera.frustum_center.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3449
 *     @property
 *     def frustum_center(self): return self.ptr.frustum_center
 *     @frustum_center.setter             # <<<<<<<<<<<<<<
 *     def frustum_center(self, float x): self.ptr.frustum_center = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_center_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_center_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3450, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGLCamera.frustum_center.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_center_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_center_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3450
 *     def frustum_center(self): return self.ptr.frustum_center
 *     @frustum_center.setter
 *     def frustum_center(self, float x): self.ptr.frustum_center = x             # <<<<<<<<<<<<<<
 *     @property
 *     def frustum_bottom(self): return self.ptr.frustum_bottom
 */
  __pyx_v_self->ptr->frustum_center = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3449
 *     @property
 *     def frustum_center(self): return self.ptr.frustum_center
 *     @frustum_center.setter             # <<<<<<<<<<<<<<
 *     def frustum_center(self, float x): self.ptr.frustum_center = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3451
 *     @frustum_center.setter
 *     def frustum_center(self, float x): self.ptr.frustum_center = x
 *     @property             # <<<<<<<<<<<<<<
 *     def frustum_bottom(self): return self.ptr.frustum_bottom
 *     @frustum_bottom.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_bottom_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_bottom_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_bottom___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_bottom___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3452
 *     def frustum_center(self, float x): self.ptr.frustum_center = x
 *     @property
 *     def frustum_bottom(self): return self.ptr.frustum_bottom             # <<<<<<<<<<<<<<
 *     @frustum_bottom.setter
 *     def frustum_bottom(self, float x): self.ptr.frustum_bottom = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->frustum_bottom); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3452, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3451
 *     @frustum_center.setter
 *     def frustum_center(self, float x): self.ptr.frustum_center = x
 *     @property             # <<<<<<<<<<<<<<
 *     def frustum_bottom(self): return self.ptr.frustum_bottom
 *     @frustum_bottom.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGLCamera.frustum_bottom.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3453
 *     @property
 *     def frustum_bottom(self): return self.ptr.frustum_bottom
 *     @frustum_bottom.setter             # <<<<<<<<<<<<<<
 *     def frustum_bottom(self, float x): self.ptr.frustum_bottom = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_bottom_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_bottom_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3454, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGLCamera.frustum_bottom.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_bottom_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_bottom_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3454
 *     def frustum_bottom(self): return self.ptr.frustum_bottom
 *     @frustum_bottom.setter
 *     def frustum_bottom(self, float x): self.ptr.frustum_bottom = x             # <<<<<<<<<<<<<<
 *     @property
 *     def frustum_top(self): return self.ptr.frustum_top
 */
  __pyx_v_self->ptr->frustum_bottom = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3453
 *     @property
 *     def frustum_bottom(self): return self.ptr.frustum_bottom
 *     @frustum_bottom.setter             # <<<<<<<<<<<<<<
 *     def frustum_bottom(self, float x): self.ptr.frustum_bottom = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3455
 *     @frustum_bottom.setter
 *     def frustum_bottom(self, float x): self.ptr.frustum_bottom = x
 *     @property             # <<<<<<<<<<<<<<
 *     def frustum_top(self): return self.ptr.frustum_top
 *     @frustum_top.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_top_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_top_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_top___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_top___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3456
 *     def frustum_bottom(self, float x): self.ptr.frustum_bottom = x
 *     @property
 *     def frustum_top(self): return self.ptr.frustum_top             # <<<<<<<<<<<<<<
 *     @frustum_top.setter
 *     def frustum_top(self, float x): self.ptr.frustum_top = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->frustum_top); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3455
 *     @frustum_bottom.setter
 *     def frustum_bottom(self, float x): self.ptr.frustum_bottom = x
 *     @property             # <<<<<<<<<<<<<<
 *     def frustum_top(self): return self.ptr.frustum_top
 *     @frustum_top.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGLCamera.frustum_top.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3457
 *     @property
 *     def frustum_top(self): return self.ptr.frustum_top
 *     @frustum_top.setter             # <<<<<<<<<<<<<<
 *     def frustum_top(self, float x): self.ptr.frustum_top = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_top_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_top_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3458, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGLCamera.frustum_top.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_top_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_top_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3458
 *     def frustum_top(self): return self.ptr.frustum_top
 *     @frustum_top.setter
 *     def frustum_top(self, float x): self.ptr.frustum_top = x             # <<<<<<<<<<<<<<
 *     @property
 *     def frustum_near(self): return self.ptr.frustum_near
 */
  __pyx_v_self->ptr->frustum_top = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3457
 *     @property
 *     def frustum_top(self): return self.ptr.frustum_top
 *     @frustum_top.setter             # <<<<<<<<<<<<<<
 *     def frustum_top(self, float x): self.ptr.frustum_top = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3459
 *     @frustum_top.setter
 *     def frustum_top(self, float x): self.ptr.frustum_top = x
 *     @property             # <<<<<<<<<<<<<<
 *     def frustum_near(self): return self.ptr.frustum_near
 *     @frustum_near.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_12frustum_near_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_12frustum_near_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_12frustum_near___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_12frustum_near___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3460
 *     def frustum_top(self, float x): self.ptr.frustum_top = x
 *     @property
 *     def frustum_near(self): return self.ptr.frustum_near             # <<<<<<<<<<<<<<
 *     @frustum_near.setter
 *     def frustum_near(self, float x): self.ptr.frustum_near = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->frustum_near); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3459
 *     @frustum_top.setter
 *     def frustum_top(self, float x): self.ptr.frustum_top = x
 *     @property             # <<<<<<<<<<<<<<
 *     def frustum_near(self): return self.ptr.frustum_near
 *     @frustum_near.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGLCamera.frustum_near.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3461
 *     @property
 *     def frustum_near(self): return self.ptr.frustum_near
 *     @frustum_near.setter             # <<<<<<<<<<<<<<
 *     def frustum_near(self, float x): self.ptr.frustum_near = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_12frustum_near_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_12frustum_near_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3462, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGLCamera.frustum_near.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_12frustum_near_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_12frustum_near_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3462
 *     def frustum_near(self): return self.ptr.frustum_near
 *     @frustum_near.setter
 *     def frustum_near(self, float x): self.ptr.frustum_near = x             # <<<<<<<<<<<<<<
 *     @property
 *     def frustum_far(self): return self.ptr.frustum_far
 */
  __pyx_v_self->ptr->frustum_near = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3461
 *     @property
 *     def frustum_near(self): return self.ptr.frustum_near
 *     @frustum_near.setter             # <<<<<<<<<<<<<<
 *     def frustum_near(self, float x): self.ptr.frustum_near = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3463
 *     @frustum_near.setter
 *     def frustum_near(self, float x): self.ptr.frustum_near = x
 *     @property             # <<<<<<<<<<<<<<
 *     def frustum_far(self): return self.ptr.frustum_far
 *     @frustum_far.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_far_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_far_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_far___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_far___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3464
 *     def frustum_near(self, float x): self.ptr.frustum_near = x
 *     @property
 *     def frustum_far(self): return self.ptr.frustum_far             # <<<<<<<<<<<<<<
 *     @frustum_far.setter
 *     def frustum_far(self, float x): self.ptr.frustum_far = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->frustum_far); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3463
 *     @frustum_near.setter
 *     def frustum_near(self, float x): self.ptr.frustum_near = x
 *     @property             # <<<<<<<<<<<<<<
 *     def frustum_far(self): return self.ptr.frustum_far
 *     @frustum_far.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGLCamera.frustum_far.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3465
 *     @property
 *     def frustum_far(self): return self.ptr.frustum_far
 *     @frustum_far.setter             # <<<<<<<<<<<<<<
 *     def frustum_far(self, float x): self.ptr.frustum_far = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_far_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_far_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3466, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGLCamera.frustum_far.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_far_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_far_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3466
 *     def frustum_far(self): return self.ptr.frustum_far
 *     @frustum_far.setter
 *     def frustum_far(self, float x): self.ptr.frustum_far = x             # <<<<<<<<<<<<<<
 *     @property
 *     def pos(self): return self._pos
 */
  __pyx_v_self->ptr->frustum_far = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3465
 *     @property
 *     def frustum_far(self): return self.ptr.frustum_far
 *     @frustum_far.setter             # <<<<<<<<<<<<<<
 *     def frustum_far(self, float x): self.ptr.frustum_far = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3467
 *     @frustum_far.setter
 *     def frustum_far(self, float x): self.ptr.frustum_far = x
 *     @property             # <<<<<<<<<<<<<<
 *     def pos(self): return self._pos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_3pos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_3pos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_3pos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_3pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3468
 *     def frustum_far(self, float x): self.ptr.frustum_far = x
 *     @property
 *     def pos(self): return self._pos             # <<<<<<<<<<<<<<
 *     @property
 *     def forward(self): return self._forward
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_pos);
  __pyx_r = ((PyObject *)__pyx_v_self->_pos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3467
 *     @frustum_far.setter
 *     def frustum_far(self, float x): self.ptr.frustum_far = x
 *     @property             # <<<<<<<<<<<<<<
 *     def pos(self): return self._pos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3469
 *     @property
 *     def pos(self): return self._pos
 *     @property             # <<<<<<<<<<<<<<
 *     def forward(self): return self._forward
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_7forward_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_7forward_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_7forward___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_7forward___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3470
 *     def pos(self): return self._pos
 *     @property
 *     def forward(self): return self._forward             # <<<<<<<<<<<<<<
 *     @property
 *     def up(self): return self._up
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_forward);
  __pyx_r = ((PyObject *)__pyx_v_self->_forward);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3469
 *     @property
 *     def pos(self): return self._pos
 *     @property             # <<<<<<<<<<<<<<
 *     def forward(self): return self._forward
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3471
 *     @property
 *     def forward(self): return self._forward
 *     @property             # <<<<<<<<<<<<<<
 *     def up(self): return self._up
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_2up_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_2up_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_2up___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_2up___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3472
 *     def forward(self): return self._forward
 *     @property
 *     def up(self): return self._up             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjvGLCamera WrapMjvGLCamera(mjvGLCamera* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_up);
  __pyx_r = ((PyObject *)__pyx_v_self->_up);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3471
 *     @property
 *     def forward(self): return self._forward
 *     @property             # <<<<<<<<<<<<<<
 *     def up(self): return self._up
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_13PyMjvGLCamera_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGLCamera.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_13PyMjvGLCamera_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGLCamera.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjvGLCamera_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGLCamera.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3474
 *     def up(self): return self._up
 * 
 * cdef PyMjvGLCamera WrapMjvGLCamera(mjvGLCamera* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvGLCamera o = PyMjvGLCamera()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_f_9mujoco_py_4cymj_WrapMjvGLCamera(mjvGLCamera *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjvGLCamera", 1);

  /* "mujoco_py/generated/wrappers.pxi":3475
 * 
 * cdef PyMjvGLCamera WrapMjvGLCamera(mjvGLCamera* p):
 *     cdef PyMjvGLCamera o = PyMjvGLCamera()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3476
 * cdef PyMjvGLCamera WrapMjvGLCamera(mjvGLCamera* p):
 *     cdef PyMjvGLCamera o = PyMjvGLCamera()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvGLCamera *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":3477
 *     cdef PyMjvGLCamera o = PyMjvGLCamera()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjvGeom(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3474
 *     def up(self): return self._up
 * 
 * cdef PyMjvGLCamera WrapMjvGLCamera(mjvGLCamera* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvGLCamera o = PyMjvGLCamera()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjvGLCamera", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3490
 *     cdef np.ndarray _label
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3491
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":3490
 *     cdef np.ndarray _label
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3494
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3495
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjvGeom* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3494
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3497
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvGeom* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_9PyMjvGeom__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, mjvGeom *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":3499
 *     cdef void _set(self, mjvGeom* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":3502
 * 
 * 
 *         self._texrepeat = _wrap_float_1d(&p.texrepeat[0], 2)             # <<<<<<<<<<<<<<
 *         self._size = _wrap_float_1d(&p.size[0], 3)
 *         self._pos = _wrap_float_1d(&p.pos[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->texrepeat[0])), 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_texrepeat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_texrepeat);
  __pyx_v_self->_texrepeat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3503
 * 
 *         self._texrepeat = _wrap_float_1d(&p.texrepeat[0], 2)
 *         self._size = _wrap_float_1d(&p.size[0], 3)             # <<<<<<<<<<<<<<
 *         self._pos = _wrap_float_1d(&p.pos[0], 3)
 *         self._mat = _wrap_float_1d(&p.mat[0], 9)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->size[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_size);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_size);
  __pyx_v_self->_size = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3504
 *         self._texrepeat = _wrap_float_1d(&p.texrepeat[0], 2)
 *         self._size = _wrap_float_1d(&p.size[0], 3)
 *         self._pos = _wrap_float_1d(&p.pos[0], 3)             # <<<<<<<<<<<<<<
 *         self._mat = _wrap_float_1d(&p.mat[0], 9)
 *         self._rgba = _wrap_float_1d(&p.rgba[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->pos[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_pos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_pos);
  __pyx_v_self->_pos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3505
 *         self._size = _wrap_float_1d(&p.size[0], 3)
 *         self._pos = _wrap_float_1d(&p.pos[0], 3)
 *         self._mat = _wrap_float_1d(&p.mat[0], 9)             # <<<<<<<<<<<<<<
 *         self._rgba = _wrap_float_1d(&p.rgba[0], 4)
 *         self._label = _wrap_char_1d(&p.label[0], 100)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->mat[0])), 9)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_mat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_mat);
  __pyx_v_self->_mat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3506
 *         self._pos = _wrap_float_1d(&p.pos[0], 3)
 *         self._mat = _wrap_float_1d(&p.mat[0], 9)
 *         self._rgba = _wrap_float_1d(&p.rgba[0], 4)             # <<<<<<<<<<<<<<
 *         self._label = _wrap_char_1d(&p.label[0], 100)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->rgba[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_rgba);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_rgba);
  __pyx_v_self->_rgba = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3507
 *         self._mat = _wrap_float_1d(&p.mat[0], 9)
 *         self._rgba = _wrap_float_1d(&p.rgba[0], 4)
 *         self._label = _wrap_char_1d(&p.label[0], 100)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_char_1d((&(__pyx_v_p->label[0])), 0x64)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_label);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_label);
  __pyx_v_self->_label = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3497
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvGeom* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjvGeom._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":3509
 *         self._label = _wrap_char_1d(&p.label[0], 100)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type(self): return self.ptr.type
 *     @type.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_4type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_4type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_4type___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_4type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3510
 * 
 *     @property
 *     def type(self): return self.ptr.type             # <<<<<<<<<<<<<<
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->type); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3509
 *         self._label = _wrap_char_1d(&p.label[0], 100)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type(self): return self.ptr.type
 *     @type.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3511
 *     @property
 *     def type(self): return self.ptr.type
 *     @type.setter             # <<<<<<<<<<<<<<
 *     def type(self, int x): self.ptr.type = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3512, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_4type_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_4type_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3512
 *     def type(self): return self.ptr.type
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x             # <<<<<<<<<<<<<<
 *     @property
 *     def dataid(self): return self.ptr.dataid
 */
  __pyx_v_self->ptr->type = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3511
 *     @property
 *     def type(self): return self.ptr.type
 *     @type.setter             # <<<<<<<<<<<<<<
 *     def type(self, int x): self.ptr.type = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3513
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x
 *     @property             # <<<<<<<<<<<<<<
 *     def dataid(self): return self.ptr.dataid
 *     @dataid.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_6dataid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_6dataid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_6dataid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_6dataid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3514
 *     def type(self, int x): self.ptr.type = x
 *     @property
 *     def dataid(self): return self.ptr.dataid             # <<<<<<<<<<<<<<
 *     @dataid.setter
 *     def dataid(self, int x): self.ptr.dataid = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->dataid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3513
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x
 *     @property             # <<<<<<<<<<<<<<
 *     def dataid(self): return self.ptr.dataid
 *     @dataid.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.dataid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3515
 *     @property
 *     def dataid(self): return self.ptr.dataid
 *     @dataid.setter             # <<<<<<<<<<<<<<
 *     def dataid(self, int x): self.ptr.dataid = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_6dataid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_6dataid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3516, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.dataid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_6dataid_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_6dataid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3516
 *     def dataid(self): return self.ptr.dataid
 *     @dataid.setter
 *     def dataid(self, int x): self.ptr.dataid = x             # <<<<<<<<<<<<<<
 *     @property
 *     def objtype(self): return self.ptr.objtype
 */
  __pyx_v_self->ptr->dataid = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3515
 *     @property
 *     def dataid(self): return self.ptr.dataid
 *     @dataid.setter             # <<<<<<<<<<<<<<
 *     def dataid(self, int x): self.ptr.dataid = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3517
 *     @dataid.setter
 *     def dataid(self, int x): self.ptr.dataid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def objtype(self): return self.ptr.objtype
 *     @objtype.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_7objtype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_7objtype_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_7objtype___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_7objtype___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3518
 *     def dataid(self, int x): self.ptr.dataid = x
 *     @property
 *     def objtype(self): return self.ptr.objtype             # <<<<<<<<<<<<<<
 *     @objtype.setter
 *     def objtype(self, int x): self.ptr.objtype = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->objtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3517
 *     @dataid.setter
 *     def dataid(self, int x): self.ptr.dataid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def objtype(self): return self.ptr.objtype
 *     @objtype.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.objtype.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3519
 *     @property
 *     def objtype(self): return self.ptr.objtype
 *     @objtype.setter             # <<<<<<<<<<<<<<
 *     def objtype(self, int x): self.ptr.objtype = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_7objtype_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_7objtype_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3520, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.objtype.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_7objtype_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_7objtype_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3520
 *     def objtype(self): return self.ptr.objtype
 *     @objtype.setter
 *     def objtype(self, int x): self.ptr.objtype = x             # <<<<<<<<<<<<<<
 *     @property
 *     def objid(self): return self.ptr.objid
 */
  __pyx_v_self->ptr->objtype = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3519
 *     @property
 *     def objtype(self): return self.ptr.objtype
 *     @objtype.setter             # <<<<<<<<<<<<<<
 *     def objtype(self, int x): self.ptr.objtype = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3521
 *     @objtype.setter
 *     def objtype(self, int x): self.ptr.objtype = x
 *     @property             # <<<<<<<<<<<<<<
 *     def objid(self): return self.ptr.objid
 *     @objid.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5objid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5objid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5objid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5objid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3522
 *     def objtype(self, int x): self.ptr.objtype = x
 *     @property
 *     def objid(self): return self.ptr.objid             # <<<<<<<<<<<<<<
 *     @objid.setter
 *     def objid(self, int x): self.ptr.objid = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->objid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3521
 *     @objtype.setter
 *     def objtype(self, int x): self.ptr.objtype = x
 *     @property             # <<<<<<<<<<<<<<
 *     def objid(self): return self.ptr.objid
 *     @objid.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.objid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3523
 *     @property
 *     def objid(self): return self.ptr.objid
 *     @objid.setter             # <<<<<<<<<<<<<<
 *     def objid(self, int x): self.ptr.objid = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5objid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5objid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3524, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.objid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5objid_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5objid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3524
 *     def objid(self): return self.ptr.objid
 *     @objid.setter
 *     def objid(self, int x): self.ptr.objid = x             # <<<<<<<<<<<<<<
 *     @property
 *     def category(self): return self.ptr.category
 */
  __pyx_v_self->ptr->objid = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3523
 *     @property
 *     def objid(self): return self.ptr.objid
 *     @objid.setter             # <<<<<<<<<<<<<<
 *     def objid(self, int x): self.ptr.objid = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3525
 *     @objid.setter
 *     def objid(self, int x): self.ptr.objid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def category(self): return self.ptr.category
 *     @category.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8category_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8category_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8category___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8category___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3526
 *     def objid(self, int x): self.ptr.objid = x
 *     @property
 *     def category(self): return self.ptr.category             # <<<<<<<<<<<<<<
 *     @category.setter
 *     def category(self, int x): self.ptr.category = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->category); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3526, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3525
 *     @objid.setter
 *     def objid(self, int x): self.ptr.objid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def category(self): return self.ptr.category
 *     @category.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.category.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3527
 *     @property
 *     def category(self): return self.ptr.category
 *     @category.setter             # <<<<<<<<<<<<<<
 *     def category(self, int x): self.ptr.category = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8category_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8category_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3528, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.category.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8category_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8category_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3528
 *     def category(self): return self.ptr.category
 *     @category.setter
 *     def category(self, int x): self.ptr.category = x             # <<<<<<<<<<<<<<
 *     @property
 *     def texid(self): return self.ptr.texid
 */
  __pyx_v_self->ptr->category = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3527
 *     @property
 *     def category(self): return self.ptr.category
 *     @category.setter             # <<<<<<<<<<<<<<
 *     def category(self, int x): self.ptr.category = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3529
 *     @category.setter
 *     def category(self, int x): self.ptr.category = x
 *     @property             # <<<<<<<<<<<<<<
 *     def texid(self): return self.ptr.texid
 *     @texid.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5texid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5texid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5texid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5texid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3530
 *     def category(self, int x): self.ptr.category = x
 *     @property
 *     def texid(self): return self.ptr.texid             # <<<<<<<<<<<<<<
 *     @texid.setter
 *     def texid(self, int x): self.ptr.texid = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->texid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3529
 *     @category.setter
 *     def category(self, int x): self.ptr.category = x
 *     @property             # <<<<<<<<<<<<<<
 *     def texid(self): return self.ptr.texid
 *     @texid.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.texid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3531
 *     @property
 *     def texid(self): return self.ptr.texid
 *     @texid.setter             # <<<<<<<<<<<<<<
 *     def texid(self, int x): self.ptr.texid = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5texid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5texid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3532, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.texid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5texid_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5texid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3532
 *     def texid(self): return self.ptr.texid
 *     @texid.setter
 *     def texid(self, int x): self.ptr.texid = x             # <<<<<<<<<<<<<<
 *     @property
 *     def texuniform(self): return self.ptr.texuniform
 */
  __pyx_v_self->ptr->texid = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3531
 *     @property
 *     def texid(self): return self.ptr.texid
 *     @texid.setter             # <<<<<<<<<<<<<<
 *     def texid(self, int x): self.ptr.texid = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3533
 *     @texid.setter
 *     def texid(self, int x): self.ptr.texid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def texuniform(self): return self.ptr.texuniform
 *     @texuniform.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_10texuniform_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_10texuniform_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_10texuniform___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_10texuniform___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3534
 *     def texid(self, int x): self.ptr.texid = x
 *     @property
 *     def texuniform(self): return self.ptr.texuniform             # <<<<<<<<<<<<<<
 *     @texuniform.setter
 *     def texuniform(self, int x): self.ptr.texuniform = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->texuniform); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3533
 *     @texid.setter
 *     def texid(self, int x): self.ptr.texid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def texuniform(self): return self.ptr.texuniform
 *     @texuniform.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.texuniform.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3535
 *     @property
 *     def texuniform(self): return self.ptr.texuniform
 *     @texuniform.setter             # <<<<<<<<<<<<<<
 *     def texuniform(self, int x): self.ptr.texuniform = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_10texuniform_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_10texuniform_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3536, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.texuniform.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_10texuniform_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_10texuniform_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3536
 *     def texuniform(self): return self.ptr.texuniform
 *     @texuniform.setter
 *     def texuniform(self, int x): self.ptr.texuniform = x             # <<<<<<<<<<<<<<
 *     @property
 *     def texcoord(self): return self.ptr.texcoord
 */
  __pyx_v_self->ptr->texuniform = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3535
 *     @property
 *     def texuniform(self): return self.ptr.texuniform
 *     @texuniform.setter             # <<<<<<<<<<<<<<
 *     def texuniform(self, int x): self.ptr.texuniform = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3537
 *     @texuniform.setter
 *     def texuniform(self, int x): self.ptr.texuniform = x
 *     @property             # <<<<<<<<<<<<<<
 *     def texcoord(self): return self.ptr.texcoord
 *     @texcoord.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8texcoord_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8texcoord_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8texcoord___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8texcoord___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3538
 *     def texuniform(self, int x): self.ptr.texuniform = x
 *     @property
 *     def texcoord(self): return self.ptr.texcoord             # <<<<<<<<<<<<<<
 *     @texcoord.setter
 *     def texcoord(self, int x): self.ptr.texcoord = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->texcoord); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3538, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3537
 *     @texuniform.setter
 *     def texuniform(self, int x): self.ptr.texuniform = x
 *     @property             # <<<<<<<<<<<<<<
 *     def texcoord(self): return self.ptr.texcoord
 *     @texcoord.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.texcoord.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3539
 *     @property
 *     def texcoord(self): return self.ptr.texcoord
 *     @texcoord.setter             # <<<<<<<<<<<<<<
 *     def texcoord(self, int x): self.ptr.texcoord = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8texcoord_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8texcoord_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3540, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.texcoord.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8texcoord_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8texcoord_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3540
 *     def texcoord(self): return self.ptr.texcoord
 *     @texcoord.setter
 *     def texcoord(self, int x): self.ptr.texcoord = x             # <<<<<<<<<<<<<<
 *     @property
 *     def segid(self): return self.ptr.segid
 */
  __pyx_v_self->ptr->texcoord = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3539
 *     @property
 *     def texcoord(self): return self.ptr.texcoord
 *     @texcoord.setter             # <<<<<<<<<<<<<<
 *     def texcoord(self, int x): self.ptr.texcoord = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3541
 *     @texcoord.setter
 *     def texcoord(self, int x): self.ptr.texcoord = x
 *     @property             # <<<<<<<<<<<<<<
 *     def segid(self): return self.ptr.segid
 *     @segid.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5segid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5segid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5segid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5segid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3542
 *     def texcoord(self, int x): self.ptr.texcoord = x
 *     @property
 *     def segid(self): return self.ptr.segid             # <<<<<<<<<<<<<<
 *     @segid.setter
 *     def segid(self, int x): self.ptr.segid = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->segid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3541
 *     @texcoord.setter
 *     def texcoord(self, int x): self.ptr.texcoord = x
 *     @property             # <<<<<<<<<<<<<<
 *     def segid(self): return self.ptr.segid
 *     @segid.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.segid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3543
 *     @property
 *     def segid(self): return self.ptr.segid
 *     @segid.setter             # <<<<<<<<<<<<<<
 *     def segid(self, int x): self.ptr.segid = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5segid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5segid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3544, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.segid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5segid_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5segid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3544
 *     def segid(self): return self.ptr.segid
 *     @segid.setter
 *     def segid(self, int x): self.ptr.segid = x             # <<<<<<<<<<<<<<
 *     @property
 *     def emission(self): return self.ptr.emission
 */
  __pyx_v_self->ptr->segid = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3543
 *     @property
 *     def segid(self): return self.ptr.segid
 *     @segid.setter             # <<<<<<<<<<<<<<
 *     def segid(self, int x): self.ptr.segid = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3545
 *     @segid.setter
 *     def segid(self, int x): self.ptr.segid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def emission(self): return self.ptr.emission
 *     @emission.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8emission_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8emission_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8emission___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8emission___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3546
 *     def segid(self, int x): self.ptr.segid = x
 *     @property
 *     def emission(self): return self.ptr.emission             # <<<<<<<<<<<<<<
 *     @emission.setter
 *     def emission(self, float x): self.ptr.emission = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->emission); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3545
 *     @segid.setter
 *     def segid(self, int x): self.ptr.segid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def emission(self): return self.ptr.emission
 *     @emission.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.emission.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3547
 *     @property
 *     def emission(self): return self.ptr.emission
 *     @emission.setter             # <<<<<<<<<<<<<<
 *     def emission(self, float x): self.ptr.emission = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8emission_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8emission_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3548, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.emission.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8emission_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8emission_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3548
 *     def emission(self): return self.ptr.emission
 *     @emission.setter
 *     def emission(self, float x): self.ptr.emission = x             # <<<<<<<<<<<<<<
 *     @property
 *     def specular(self): return self.ptr.specular
 */
  __pyx_v_self->ptr->emission = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3547
 *     @property
 *     def emission(self): return self.ptr.emission
 *     @emission.setter             # <<<<<<<<<<<<<<
 *     def emission(self, float x): self.ptr.emission = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3549
 *     @emission.setter
 *     def emission(self, float x): self.ptr.emission = x
 *     @property             # <<<<<<<<<<<<<<
 *     def specular(self): return self.ptr.specular
 *     @specular.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8specular_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8specular_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8specular___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8specular___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3550
 *     def emission(self, float x): self.ptr.emission = x
 *     @property
 *     def specular(self): return self.ptr.specular             # <<<<<<<<<<<<<<
 *     @specular.setter
 *     def specular(self, float x): self.ptr.specular = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->specular); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3549
 *     @emission.setter
 *     def emission(self, float x): self.ptr.emission = x
 *     @property             # <<<<<<<<<<<<<<
 *     def specular(self): return self.ptr.specular
 *     @specular.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.specular.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3551
 *     @property
 *     def specular(self): return self.ptr.specular
 *     @specular.setter             # <<<<<<<<<<<<<<
 *     def specular(self, float x): self.ptr.specular = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8specular_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8specular_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3552, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.specular.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8specular_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_8specular_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3552
 *     def specular(self): return self.ptr.specular
 *     @specular.setter
 *     def specular(self, float x): self.ptr.specular = x             # <<<<<<<<<<<<<<
 *     @property
 *     def shininess(self): return self.ptr.shininess
 */
  __pyx_v_self->ptr->specular = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3551
 *     @property
 *     def specular(self): return self.ptr.specular
 *     @specular.setter             # <<<<<<<<<<<<<<
 *     def specular(self, float x): self.ptr.specular = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3553
 *     @specular.setter
 *     def specular(self, float x): self.ptr.specular = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shininess(self): return self.ptr.shininess
 *     @shininess.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_9shininess_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_9shininess_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_9shininess___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_9shininess___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3554
 *     def specular(self, float x): self.ptr.specular = x
 *     @property
 *     def shininess(self): return self.ptr.shininess             # <<<<<<<<<<<<<<
 *     @shininess.setter
 *     def shininess(self, float x): self.ptr.shininess = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->shininess); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3553
 *     @specular.setter
 *     def specular(self, float x): self.ptr.specular = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shininess(self): return self.ptr.shininess
 *     @shininess.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.shininess.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3555
 *     @property
 *     def shininess(self): return self.ptr.shininess
 *     @shininess.setter             # <<<<<<<<<<<<<<
 *     def shininess(self, float x): self.ptr.shininess = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_9shininess_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_9shininess_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3556, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.shininess.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_9shininess_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_9shininess_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3556
 *     def shininess(self): return self.ptr.shininess
 *     @shininess.setter
 *     def shininess(self, float x): self.ptr.shininess = x             # <<<<<<<<<<<<<<
 *     @property
 *     def reflectance(self): return self.ptr.reflectance
 */
  __pyx_v_self->ptr->shininess = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3555
 *     @property
 *     def shininess(self): return self.ptr.shininess
 *     @shininess.setter             # <<<<<<<<<<<<<<
 *     def shininess(self, float x): self.ptr.shininess = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3557
 *     @shininess.setter
 *     def shininess(self, float x): self.ptr.shininess = x
 *     @property             # <<<<<<<<<<<<<<
 *     def reflectance(self): return self.ptr.reflectance
 *     @reflectance.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11reflectance_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11reflectance_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11reflectance___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11reflectance___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3558
 *     def shininess(self, float x): self.ptr.shininess = x
 *     @property
 *     def reflectance(self): return self.ptr.reflectance             # <<<<<<<<<<<<<<
 *     @reflectance.setter
 *     def reflectance(self, float x): self.ptr.reflectance = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->reflectance); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3557
 *     @shininess.setter
 *     def shininess(self, float x): self.ptr.shininess = x
 *     @property             # <<<<<<<<<<<<<<
 *     def reflectance(self): return self.ptr.reflectance
 *     @reflectance.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.reflectance.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3559
 *     @property
 *     def reflectance(self): return self.ptr.reflectance
 *     @reflectance.setter             # <<<<<<<<<<<<<<
 *     def reflectance(self, float x): self.ptr.reflectance = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11reflectance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11reflectance_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3560, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.reflectance.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11reflectance_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11reflectance_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3560
 *     def reflectance(self): return self.ptr.reflectance
 *     @reflectance.setter
 *     def reflectance(self, float x): self.ptr.reflectance = x             # <<<<<<<<<<<<<<
 *     @property
 *     def camdist(self): return self.ptr.camdist
 */
  __pyx_v_self->ptr->reflectance = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3559
 *     @property
 *     def reflectance(self): return self.ptr.reflectance
 *     @reflectance.setter             # <<<<<<<<<<<<<<
 *     def reflectance(self, float x): self.ptr.reflectance = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3561
 *     @reflectance.setter
 *     def reflectance(self, float x): self.ptr.reflectance = x
 *     @property             # <<<<<<<<<<<<<<
 *     def camdist(self): return self.ptr.camdist
 *     @camdist.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_7camdist_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_7camdist_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_7camdist___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_7camdist___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3562
 *     def reflectance(self, float x): self.ptr.reflectance = x
 *     @property
 *     def camdist(self): return self.ptr.camdist             # <<<<<<<<<<<<<<
 *     @camdist.setter
 *     def camdist(self, float x): self.ptr.camdist = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->camdist); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3561
 *     @reflectance.setter
 *     def reflectance(self, float x): self.ptr.reflectance = x
 *     @property             # <<<<<<<<<<<<<<
 *     def camdist(self): return self.ptr.camdist
 *     @camdist.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.camdist.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3563
 *     @property
 *     def camdist(self): return self.ptr.camdist
 *     @camdist.setter             # <<<<<<<<<<<<<<
 *     def camdist(self, float x): self.ptr.camdist = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_7camdist_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_7camdist_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3564, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.camdist.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_7camdist_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_7camdist_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3564
 *     def camdist(self): return self.ptr.camdist
 *     @camdist.setter
 *     def camdist(self, float x): self.ptr.camdist = x             # <<<<<<<<<<<<<<
 *     @property
 *     def modelrbound(self): return self.ptr.modelrbound
 */
  __pyx_v_self->ptr->camdist = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3563
 *     @property
 *     def camdist(self): return self.ptr.camdist
 *     @camdist.setter             # <<<<<<<<<<<<<<
 *     def camdist(self, float x): self.ptr.camdist = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3565
 *     @camdist.setter
 *     def camdist(self, float x): self.ptr.camdist = x
 *     @property             # <<<<<<<<<<<<<<
 *     def modelrbound(self): return self.ptr.modelrbound
 *     @modelrbound.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11modelrbound_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11modelrbound_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11modelrbound___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11modelrbound___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3566
 *     def camdist(self, float x): self.ptr.camdist = x
 *     @property
 *     def modelrbound(self): return self.ptr.modelrbound             # <<<<<<<<<<<<<<
 *     @modelrbound.setter
 *     def modelrbound(self, float x): self.ptr.modelrbound = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->modelrbound); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3566, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3565
 *     @camdist.setter
 *     def camdist(self, float x): self.ptr.camdist = x
 *     @property             # <<<<<<<<<<<<<<
 *     def modelrbound(self): return self.ptr.modelrbound
 *     @modelrbound.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.modelrbound.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3567
 *     @property
 *     def modelrbound(self): return self.ptr.modelrbound
 *     @modelrbound.setter             # <<<<<<<<<<<<<<
 *     def modelrbound(self, float x): self.ptr.modelrbound = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11modelrbound_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11modelrbound_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3568, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.modelrbound.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11modelrbound_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11modelrbound_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3568
 *     def modelrbound(self): return self.ptr.modelrbound
 *     @modelrbound.setter
 *     def modelrbound(self, float x): self.ptr.modelrbound = x             # <<<<<<<<<<<<<<
 *     @property
 *     def transparent(self): return self.ptr.transparent
 */
  __pyx_v_self->ptr->modelrbound = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3567
 *     @property
 *     def modelrbound(self): return self.ptr.modelrbound
 *     @modelrbound.setter             # <<<<<<<<<<<<<<
 *     def modelrbound(self, float x): self.ptr.modelrbound = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3569
 *     @modelrbound.setter
 *     def modelrbound(self, float x): self.ptr.modelrbound = x
 *     @property             # <<<<<<<<<<<<<<
 *     def transparent(self): return self.ptr.transparent
 *     @transparent.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11transparent_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11transparent_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11transparent___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11transparent___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3570
 *     def modelrbound(self, float x): self.ptr.modelrbound = x
 *     @property
 *     def transparent(self): return self.ptr.transparent             # <<<<<<<<<<<<<<
 *     @transparent.setter
 *     def transparent(self, mjtByte x): self.ptr.transparent = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_mjtByte(__pyx_v_self->ptr->transparent); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3570, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3569
 *     @modelrbound.setter
 *     def modelrbound(self, float x): self.ptr.modelrbound = x
 *     @property             # <<<<<<<<<<<<<<
 *     def transparent(self): return self.ptr.transparent
 *     @transparent.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.transparent.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3571
 *     @property
 *     def transparent(self): return self.ptr.transparent
 *     @transparent.setter             # <<<<<<<<<<<<<<
 *     def transparent(self, mjtByte x): self.ptr.transparent = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11transparent_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11transparent_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtByte __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_mjtByte(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtByte)-1)) && PyErr_Occurred())) __PYX_ERR(4, 3572, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.transparent.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11transparent_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), ((mjtByte)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_11transparent_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, mjtByte __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3572
 *     def transparent(self): return self.ptr.transparent
 *     @transparent.setter
 *     def transparent(self, mjtByte x): self.ptr.transparent = x             # <<<<<<<<<<<<<<
 *     @property
 *     def texrepeat(self): return self._texrepeat
 */
  __pyx_v_self->ptr->transparent = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3571
 *     @property
 *     def transparent(self): return self.ptr.transparent
 *     @transparent.setter             # <<<<<<<<<<<<<<
 *     def transparent(self, mjtByte x): self.ptr.transparent = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3573
 *     @transparent.setter
 *     def transparent(self, mjtByte x): self.ptr.transparent = x
 *     @property             # <<<<<<<<<<<<<<
 *     def texrepeat(self): return self._texrepeat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_9texrepeat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_9texrepeat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_9texrepeat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_9texrepeat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3574
 *     def transparent(self, mjtByte x): self.ptr.transparent = x
 *     @property
 *     def texrepeat(self): return self._texrepeat             # <<<<<<<<<<<<<<
 *     @property
 *     def size(self): return self._size
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_texrepeat);
  __pyx_r = ((PyObject *)__pyx_v_self->_texrepeat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3573
 *     @transparent.setter
 *     def transparent(self, mjtByte x): self.ptr.transparent = x
 *     @property             # <<<<<<<<<<<<<<
 *     def texrepeat(self): return self._texrepeat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3575
 *     @property
 *     def texrepeat(self): return self._texrepeat
 *     @property             # <<<<<<<<<<<<<<
 *     def size(self): return self._size
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_4size_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_4size_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_4size___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_4size___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3576
 *     def texrepeat(self): return self._texrepeat
 *     @property
 *     def size(self): return self._size             # <<<<<<<<<<<<<<
 *     @property
 *     def pos(self): return self._pos
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_size);
  __pyx_r = ((PyObject *)__pyx_v_self->_size);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3575
 *     @property
 *     def texrepeat(self): return self._texrepeat
 *     @property             # <<<<<<<<<<<<<<
 *     def size(self): return self._size
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3577
 *     @property
 *     def size(self): return self._size
 *     @property             # <<<<<<<<<<<<<<
 *     def pos(self): return self._pos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_3pos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_3pos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_3pos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_3pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3578
 *     def size(self): return self._size
 *     @property
 *     def pos(self): return self._pos             # <<<<<<<<<<<<<<
 *     @property
 *     def mat(self): return self._mat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_pos);
  __pyx_r = ((PyObject *)__pyx_v_self->_pos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3577
 *     @property
 *     def size(self): return self._size
 *     @property             # <<<<<<<<<<<<<<
 *     def pos(self): return self._pos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3579
 *     @property
 *     def pos(self): return self._pos
 *     @property             # <<<<<<<<<<<<<<
 *     def mat(self): return self._mat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_3mat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_3mat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_3mat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_3mat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3580
 *     def pos(self): return self._pos
 *     @property
 *     def mat(self): return self._mat             # <<<<<<<<<<<<<<
 *     @property
 *     def rgba(self): return self._rgba
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_mat);
  __pyx_r = ((PyObject *)__pyx_v_self->_mat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3579
 *     @property
 *     def pos(self): return self._pos
 *     @property             # <<<<<<<<<<<<<<
 *     def mat(self): return self._mat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3581
 *     @property
 *     def mat(self): return self._mat
 *     @property             # <<<<<<<<<<<<<<
 *     def rgba(self): return self._rgba
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_4rgba_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_4rgba_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_4rgba___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_4rgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3582
 *     def mat(self): return self._mat
 *     @property
 *     def rgba(self): return self._rgba             # <<<<<<<<<<<<<<
 *     @property
 *     def label(self): return self._label
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_rgba);
  __pyx_r = ((PyObject *)__pyx_v_self->_rgba);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3581
 *     @property
 *     def mat(self): return self._mat
 *     @property             # <<<<<<<<<<<<<<
 *     def rgba(self): return self._rgba
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3583
 *     @property
 *     def rgba(self): return self._rgba
 *     @property             # <<<<<<<<<<<<<<
 *     def label(self): return self._label
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5label_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5label_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5label___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_5label___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3584
 *     def rgba(self): return self._rgba
 *     @property
 *     def label(self): return self._label             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjvGeom WrapMjvGeom(mjvGeom* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_label);
  __pyx_r = ((PyObject *)__pyx_v_self->_label);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3583
 *     @property
 *     def rgba(self): return self._rgba
 *     @property             # <<<<<<<<<<<<<<
 *     def label(self): return self._label
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjvGeom_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjvGeom_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjvGeom_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvGeom.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3586
 *     def label(self): return self._label
 * 
 * cdef PyMjvGeom WrapMjvGeom(mjvGeom* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvGeom o = PyMjvGeom()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_f_9mujoco_py_4cymj_WrapMjvGeom(mjvGeom *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjvGeom", 1);

  /* "mujoco_py/generated/wrappers.pxi":3587
 * 
 * cdef PyMjvGeom WrapMjvGeom(mjvGeom* p):
 *     cdef PyMjvGeom o = PyMjvGeom()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjvGeom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3587, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3588
 * cdef PyMjvGeom WrapMjvGeom(mjvGeom* p):
 *     cdef PyMjvGeom o = PyMjvGeom()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvGeom *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":3589
 *     cdef PyMjvGeom o = PyMjvGeom()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjvLight(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3586
 *     def label(self): return self._label
 * 
 * cdef PyMjvGeom WrapMjvGeom(mjvGeom* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvGeom o = PyMjvGeom()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjvGeom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3602
 *     cdef np.ndarray _specular
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjvLight___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3603
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":3602
 *     cdef np.ndarray _specular
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3606
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3607
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjvLight* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3606
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvLight.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3609
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvLight* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_10PyMjvLight__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self, mjvLight *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":3611
 *     cdef void _set(self, mjvLight* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":3614
 * 
 * 
 *         self._pos = _wrap_float_1d(&p.pos[0], 3)             # <<<<<<<<<<<<<<
 *         self._dir = _wrap_float_1d(&p.dir[0], 3)
 *         self._attenuation = _wrap_float_1d(&p.attenuation[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->pos[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3614, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_pos);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_pos);
  __pyx_v_self->_pos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3615
 * 
 *         self._pos = _wrap_float_1d(&p.pos[0], 3)
 *         self._dir = _wrap_float_1d(&p.dir[0], 3)             # <<<<<<<<<<<<<<
 *         self._attenuation = _wrap_float_1d(&p.attenuation[0], 3)
 *         self._ambient = _wrap_float_1d(&p.ambient[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->dir[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_dir);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_dir);
  __pyx_v_self->_dir = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3616
 *         self._pos = _wrap_float_1d(&p.pos[0], 3)
 *         self._dir = _wrap_float_1d(&p.dir[0], 3)
 *         self._attenuation = _wrap_float_1d(&p.attenuation[0], 3)             # <<<<<<<<<<<<<<
 *         self._ambient = _wrap_float_1d(&p.ambient[0], 3)
 *         self._diffuse = _wrap_float_1d(&p.diffuse[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->attenuation[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3616, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_attenuation);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_attenuation);
  __pyx_v_self->_attenuation = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3617
 *         self._dir = _wrap_float_1d(&p.dir[0], 3)
 *         self._attenuation = _wrap_float_1d(&p.attenuation[0], 3)
 *         self._ambient = _wrap_float_1d(&p.ambient[0], 3)             # <<<<<<<<<<<<<<
 *         self._diffuse = _wrap_float_1d(&p.diffuse[0], 3)
 *         self._specular = _wrap_float_1d(&p.specular[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->ambient[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_ambient);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_ambient);
  __pyx_v_self->_ambient = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3618
 *         self._attenuation = _wrap_float_1d(&p.attenuation[0], 3)
 *         self._ambient = _wrap_float_1d(&p.ambient[0], 3)
 *         self._diffuse = _wrap_float_1d(&p.diffuse[0], 3)             # <<<<<<<<<<<<<<
 *         self._specular = _wrap_float_1d(&p.specular[0], 3)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->diffuse[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_diffuse);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_diffuse);
  __pyx_v_self->_diffuse = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3619
 *         self._ambient = _wrap_float_1d(&p.ambient[0], 3)
 *         self._diffuse = _wrap_float_1d(&p.diffuse[0], 3)
 *         self._specular = _wrap_float_1d(&p.specular[0], 3)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->specular[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_specular);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_specular);
  __pyx_v_self->_specular = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3609
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvLight* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjvLight._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":3621
 *         self._specular = _wrap_float_1d(&p.specular[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def cutoff(self): return self.ptr.cutoff
 *     @cutoff.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_6cutoff_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_6cutoff_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_6cutoff___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_6cutoff___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3622
 * 
 *     @property
 *     def cutoff(self): return self.ptr.cutoff             # <<<<<<<<<<<<<<
 *     @cutoff.setter
 *     def cutoff(self, float x): self.ptr.cutoff = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->cutoff); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3621
 *         self._specular = _wrap_float_1d(&p.specular[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def cutoff(self): return self.ptr.cutoff
 *     @cutoff.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvLight.cutoff.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3623
 *     @property
 *     def cutoff(self): return self.ptr.cutoff
 *     @cutoff.setter             # <<<<<<<<<<<<<<
 *     def cutoff(self, float x): self.ptr.cutoff = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_6cutoff_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_6cutoff_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3624, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvLight.cutoff.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_6cutoff_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_6cutoff_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3624
 *     def cutoff(self): return self.ptr.cutoff
 *     @cutoff.setter
 *     def cutoff(self, float x): self.ptr.cutoff = x             # <<<<<<<<<<<<<<
 *     @property
 *     def exponent(self): return self.ptr.exponent
 */
  __pyx_v_self->ptr->cutoff = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3623
 *     @property
 *     def cutoff(self): return self.ptr.cutoff
 *     @cutoff.setter             # <<<<<<<<<<<<<<
 *     def cutoff(self, float x): self.ptr.cutoff = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3625
 *     @cutoff.setter
 *     def cutoff(self, float x): self.ptr.cutoff = x
 *     @property             # <<<<<<<<<<<<<<
 *     def exponent(self): return self.ptr.exponent
 *     @exponent.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_8exponent_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_8exponent_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_8exponent___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_8exponent___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3626
 *     def cutoff(self, float x): self.ptr.cutoff = x
 *     @property
 *     def exponent(self): return self.ptr.exponent             # <<<<<<<<<<<<<<
 *     @exponent.setter
 *     def exponent(self, float x): self.ptr.exponent = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->exponent); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3625
 *     @cutoff.setter
 *     def cutoff(self, float x): self.ptr.cutoff = x
 *     @property             # <<<<<<<<<<<<<<
 *     def exponent(self): return self.ptr.exponent
 *     @exponent.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvLight.exponent.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3627
 *     @property
 *     def exponent(self): return self.ptr.exponent
 *     @exponent.setter             # <<<<<<<<<<<<<<
 *     def exponent(self, float x): self.ptr.exponent = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_8exponent_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_8exponent_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3628, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvLight.exponent.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_8exponent_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_8exponent_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3628
 *     def exponent(self): return self.ptr.exponent
 *     @exponent.setter
 *     def exponent(self, float x): self.ptr.exponent = x             # <<<<<<<<<<<<<<
 *     @property
 *     def headlight(self): return self.ptr.headlight
 */
  __pyx_v_self->ptr->exponent = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3627
 *     @property
 *     def exponent(self): return self.ptr.exponent
 *     @exponent.setter             # <<<<<<<<<<<<<<
 *     def exponent(self, float x): self.ptr.exponent = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3629
 *     @exponent.setter
 *     def exponent(self, float x): self.ptr.exponent = x
 *     @property             # <<<<<<<<<<<<<<
 *     def headlight(self): return self.ptr.headlight
 *     @headlight.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_9headlight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_9headlight_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_9headlight___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_9headlight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3630
 *     def exponent(self, float x): self.ptr.exponent = x
 *     @property
 *     def headlight(self): return self.ptr.headlight             # <<<<<<<<<<<<<<
 *     @headlight.setter
 *     def headlight(self, mjtByte x): self.ptr.headlight = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_mjtByte(__pyx_v_self->ptr->headlight); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3629
 *     @exponent.setter
 *     def exponent(self, float x): self.ptr.exponent = x
 *     @property             # <<<<<<<<<<<<<<
 *     def headlight(self): return self.ptr.headlight
 *     @headlight.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvLight.headlight.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3631
 *     @property
 *     def headlight(self): return self.ptr.headlight
 *     @headlight.setter             # <<<<<<<<<<<<<<
 *     def headlight(self, mjtByte x): self.ptr.headlight = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_9headlight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_9headlight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtByte __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_mjtByte(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtByte)-1)) && PyErr_Occurred())) __PYX_ERR(4, 3632, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvLight.headlight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_9headlight_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self), ((mjtByte)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_9headlight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self, mjtByte __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3632
 *     def headlight(self): return self.ptr.headlight
 *     @headlight.setter
 *     def headlight(self, mjtByte x): self.ptr.headlight = x             # <<<<<<<<<<<<<<
 *     @property
 *     def directional(self): return self.ptr.directional
 */
  __pyx_v_self->ptr->headlight = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3631
 *     @property
 *     def headlight(self): return self.ptr.headlight
 *     @headlight.setter             # <<<<<<<<<<<<<<
 *     def headlight(self, mjtByte x): self.ptr.headlight = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3633
 *     @headlight.setter
 *     def headlight(self, mjtByte x): self.ptr.headlight = x
 *     @property             # <<<<<<<<<<<<<<
 *     def directional(self): return self.ptr.directional
 *     @directional.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_11directional_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_11directional_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_11directional___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_11directional___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3634
 *     def headlight(self, mjtByte x): self.ptr.headlight = x
 *     @property
 *     def directional(self): return self.ptr.directional             # <<<<<<<<<<<<<<
 *     @directional.setter
 *     def directional(self, mjtByte x): self.ptr.directional = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_mjtByte(__pyx_v_self->ptr->directional); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3634, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3633
 *     @headlight.setter
 *     def headlight(self, mjtByte x): self.ptr.headlight = x
 *     @property             # <<<<<<<<<<<<<<
 *     def directional(self): return self.ptr.directional
 *     @directional.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvLight.directional.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3635
 *     @property
 *     def directional(self): return self.ptr.directional
 *     @directional.setter             # <<<<<<<<<<<<<<
 *     def directional(self, mjtByte x): self.ptr.directional = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_11directional_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_11directional_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtByte __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_mjtByte(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtByte)-1)) && PyErr_Occurred())) __PYX_ERR(4, 3636, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvLight.directional.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_11directional_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self), ((mjtByte)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_11directional_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self, mjtByte __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3636
 *     def directional(self): return self.ptr.directional
 *     @directional.setter
 *     def directional(self, mjtByte x): self.ptr.directional = x             # <<<<<<<<<<<<<<
 *     @property
 *     def castshadow(self): return self.ptr.castshadow
 */
  __pyx_v_self->ptr->directional = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3635
 *     @property
 *     def directional(self): return self.ptr.directional
 *     @directional.setter             # <<<<<<<<<<<<<<
 *     def directional(self, mjtByte x): self.ptr.directional = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3637
 *     @directional.setter
 *     def directional(self, mjtByte x): self.ptr.directional = x
 *     @property             # <<<<<<<<<<<<<<
 *     def castshadow(self): return self.ptr.castshadow
 *     @castshadow.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_10castshadow_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_10castshadow_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_10castshadow___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_10castshadow___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3638
 *     def directional(self, mjtByte x): self.ptr.directional = x
 *     @property
 *     def castshadow(self): return self.ptr.castshadow             # <<<<<<<<<<<<<<
 *     @castshadow.setter
 *     def castshadow(self, mjtByte x): self.ptr.castshadow = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_mjtByte(__pyx_v_self->ptr->castshadow); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3637
 *     @directional.setter
 *     def directional(self, mjtByte x): self.ptr.directional = x
 *     @property             # <<<<<<<<<<<<<<
 *     def castshadow(self): return self.ptr.castshadow
 *     @castshadow.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvLight.castshadow.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3639
 *     @property
 *     def castshadow(self): return self.ptr.castshadow
 *     @castshadow.setter             # <<<<<<<<<<<<<<
 *     def castshadow(self, mjtByte x): self.ptr.castshadow = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_10castshadow_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_10castshadow_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtByte __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_mjtByte(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtByte)-1)) && PyErr_Occurred())) __PYX_ERR(4, 3640, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvLight.castshadow.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_10castshadow_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self), ((mjtByte)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_10castshadow_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self, mjtByte __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3640
 *     def castshadow(self): return self.ptr.castshadow
 *     @castshadow.setter
 *     def castshadow(self, mjtByte x): self.ptr.castshadow = x             # <<<<<<<<<<<<<<
 *     @property
 *     def pos(self): return self._pos
 */
  __pyx_v_self->ptr->castshadow = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3639
 *     @property
 *     def castshadow(self): return self.ptr.castshadow
 *     @castshadow.setter             # <<<<<<<<<<<<<<
 *     def castshadow(self, mjtByte x): self.ptr.castshadow = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3641
 *     @castshadow.setter
 *     def castshadow(self, mjtByte x): self.ptr.castshadow = x
 *     @property             # <<<<<<<<<<<<<<
 *     def pos(self): return self._pos
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_3pos_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_3pos_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_3pos___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_3pos___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3642
 *     def castshadow(self, mjtByte x): self.ptr.castshadow = x
 *     @property
 *     def pos(self): return self._pos             # <<<<<<<<<<<<<<
 *     @property
 *     def dir(self): return self._dir
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_pos);
  __pyx_r = ((PyObject *)__pyx_v_self->_pos);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3641
 *     @castshadow.setter
 *     def castshadow(self, mjtByte x): self.ptr.castshadow = x
 *     @property             # <<<<<<<<<<<<<<
 *     def pos(self): return self._pos
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3643
 *     @property
 *     def pos(self): return self._pos
 *     @property             # <<<<<<<<<<<<<<
 *     def dir(self): return self._dir
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_3dir_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_3dir_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_3dir___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_3dir___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3644
 *     def pos(self): return self._pos
 *     @property
 *     def dir(self): return self._dir             # <<<<<<<<<<<<<<
 *     @property
 *     def attenuation(self): return self._attenuation
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_dir);
  __pyx_r = ((PyObject *)__pyx_v_self->_dir);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3643
 *     @property
 *     def pos(self): return self._pos
 *     @property             # <<<<<<<<<<<<<<
 *     def dir(self): return self._dir
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3645
 *     @property
 *     def dir(self): return self._dir
 *     @property             # <<<<<<<<<<<<<<
 *     def attenuation(self): return self._attenuation
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_11attenuation_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_11attenuation_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_11attenuation___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_11attenuation___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3646
 *     def dir(self): return self._dir
 *     @property
 *     def attenuation(self): return self._attenuation             # <<<<<<<<<<<<<<
 *     @property
 *     def ambient(self): return self._ambient
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_attenuation);
  __pyx_r = ((PyObject *)__pyx_v_self->_attenuation);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3645
 *     @property
 *     def dir(self): return self._dir
 *     @property             # <<<<<<<<<<<<<<
 *     def attenuation(self): return self._attenuation
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3647
 *     @property
 *     def attenuation(self): return self._attenuation
 *     @property             # <<<<<<<<<<<<<<
 *     def ambient(self): return self._ambient
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_7ambient_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_7ambient_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_7ambient___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_7ambient___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3648
 *     def attenuation(self): return self._attenuation
 *     @property
 *     def ambient(self): return self._ambient             # <<<<<<<<<<<<<<
 *     @property
 *     def diffuse(self): return self._diffuse
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_ambient);
  __pyx_r = ((PyObject *)__pyx_v_self->_ambient);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3647
 *     @property
 *     def attenuation(self): return self._attenuation
 *     @property             # <<<<<<<<<<<<<<
 *     def ambient(self): return self._ambient
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3649
 *     @property
 *     def ambient(self): return self._ambient
 *     @property             # <<<<<<<<<<<<<<
 *     def diffuse(self): return self._diffuse
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_7diffuse_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_7diffuse_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_7diffuse___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_7diffuse___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3650
 *     def ambient(self): return self._ambient
 *     @property
 *     def diffuse(self): return self._diffuse             # <<<<<<<<<<<<<<
 *     @property
 *     def specular(self): return self._specular
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_diffuse);
  __pyx_r = ((PyObject *)__pyx_v_self->_diffuse);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3649
 *     @property
 *     def ambient(self): return self._ambient
 *     @property             # <<<<<<<<<<<<<<
 *     def diffuse(self): return self._diffuse
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3651
 *     @property
 *     def diffuse(self): return self._diffuse
 *     @property             # <<<<<<<<<<<<<<
 *     def specular(self): return self._specular
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_8specular_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_8specular_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_8specular___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_8specular___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3652
 *     def diffuse(self): return self._diffuse
 *     @property
 *     def specular(self): return self._specular             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjvLight WrapMjvLight(mjvLight* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_specular);
  __pyx_r = ((PyObject *)__pyx_v_self->_specular);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3651
 *     @property
 *     def diffuse(self): return self._diffuse
 *     @property             # <<<<<<<<<<<<<<
 *     def specular(self): return self._specular
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10PyMjvLight_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvLight.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10PyMjvLight_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvLight.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvLight_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvLight_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvLight.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3654
 *     def specular(self): return self._specular
 * 
 * cdef PyMjvLight WrapMjvLight(mjvLight* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvLight o = PyMjvLight()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_f_9mujoco_py_4cymj_WrapMjvLight(mjvLight *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjvLight", 1);

  /* "mujoco_py/generated/wrappers.pxi":3655
 * 
 * cdef PyMjvLight WrapMjvLight(mjvLight* p):
 *     cdef PyMjvLight o = PyMjvLight()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjvLight)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3656
 * cdef PyMjvLight WrapMjvLight(mjvLight* p):
 *     cdef PyMjvLight o = PyMjvLight()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvLight *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":3657
 *     cdef PyMjvLight o = PyMjvLight()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjvOption(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3654
 *     def specular(self): return self._specular
 * 
 * cdef PyMjvLight WrapMjvLight(mjvLight* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvLight o = PyMjvLight()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjvLight", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3670
 *     cdef np.ndarray _flags
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvOption___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvOption___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3671
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":3670
 *     cdef np.ndarray _flags
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3674
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3675
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjvOption* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3674
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvOption.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3677
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvOption* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_11PyMjvOption__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self, mjvOption *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":3679
 *     cdef void _set(self, mjvOption* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":3682
 * 
 * 
 *         self._geomgroup = _wrap_mjtByte_1d(&p.geomgroup[0], 6)             # <<<<<<<<<<<<<<
 *         self._sitegroup = _wrap_mjtByte_1d(&p.sitegroup[0], 6)
 *         self._jointgroup = _wrap_mjtByte_1d(&p.jointgroup[0], 6)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d((&(__pyx_v_p->geomgroup[0])), 6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_geomgroup);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_geomgroup);
  __pyx_v_self->_geomgroup = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3683
 * 
 *         self._geomgroup = _wrap_mjtByte_1d(&p.geomgroup[0], 6)
 *         self._sitegroup = _wrap_mjtByte_1d(&p.sitegroup[0], 6)             # <<<<<<<<<<<<<<
 *         self._jointgroup = _wrap_mjtByte_1d(&p.jointgroup[0], 6)
 *         self._tendongroup = _wrap_mjtByte_1d(&p.tendongroup[0], 6)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d((&(__pyx_v_p->sitegroup[0])), 6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_sitegroup);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_sitegroup);
  __pyx_v_self->_sitegroup = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3684
 *         self._geomgroup = _wrap_mjtByte_1d(&p.geomgroup[0], 6)
 *         self._sitegroup = _wrap_mjtByte_1d(&p.sitegroup[0], 6)
 *         self._jointgroup = _wrap_mjtByte_1d(&p.jointgroup[0], 6)             # <<<<<<<<<<<<<<
 *         self._tendongroup = _wrap_mjtByte_1d(&p.tendongroup[0], 6)
 *         self._actuatorgroup = _wrap_mjtByte_1d(&p.actuatorgroup[0], 6)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d((&(__pyx_v_p->jointgroup[0])), 6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3684, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_jointgroup);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_jointgroup);
  __pyx_v_self->_jointgroup = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3685
 *         self._sitegroup = _wrap_mjtByte_1d(&p.sitegroup[0], 6)
 *         self._jointgroup = _wrap_mjtByte_1d(&p.jointgroup[0], 6)
 *         self._tendongroup = _wrap_mjtByte_1d(&p.tendongroup[0], 6)             # <<<<<<<<<<<<<<
 *         self._actuatorgroup = _wrap_mjtByte_1d(&p.actuatorgroup[0], 6)
 *         self._flags = _wrap_mjtByte_1d(&p.flags[0], mjNVISFLAG)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d((&(__pyx_v_p->tendongroup[0])), 6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3685, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_tendongroup);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_tendongroup);
  __pyx_v_self->_tendongroup = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3686
 *         self._jointgroup = _wrap_mjtByte_1d(&p.jointgroup[0], 6)
 *         self._tendongroup = _wrap_mjtByte_1d(&p.tendongroup[0], 6)
 *         self._actuatorgroup = _wrap_mjtByte_1d(&p.actuatorgroup[0], 6)             # <<<<<<<<<<<<<<
 *         self._flags = _wrap_mjtByte_1d(&p.flags[0], mjNVISFLAG)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d((&(__pyx_v_p->actuatorgroup[0])), 6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_actuatorgroup);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_actuatorgroup);
  __pyx_v_self->_actuatorgroup = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3687
 *         self._tendongroup = _wrap_mjtByte_1d(&p.tendongroup[0], 6)
 *         self._actuatorgroup = _wrap_mjtByte_1d(&p.actuatorgroup[0], 6)
 *         self._flags = _wrap_mjtByte_1d(&p.flags[0], mjNVISFLAG)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d((&(__pyx_v_p->flags[0])), mjNVISFLAG)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_flags);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_flags);
  __pyx_v_self->_flags = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3677
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvOption* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjvOption._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":3689
 *         self._flags = _wrap_mjtByte_1d(&p.flags[0], mjNVISFLAG)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def label(self): return self.ptr.label
 *     @label.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5label_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5label_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_5label___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_5label___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3690
 * 
 *     @property
 *     def label(self): return self.ptr.label             # <<<<<<<<<<<<<<
 *     @label.setter
 *     def label(self, int x): self.ptr.label = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->label); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3690, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3689
 *         self._flags = _wrap_mjtByte_1d(&p.flags[0], mjNVISFLAG)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def label(self): return self.ptr.label
 *     @label.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvOption.label.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3691
 *     @property
 *     def label(self): return self.ptr.label
 *     @label.setter             # <<<<<<<<<<<<<<
 *     def label(self, int x): self.ptr.label = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5label_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5label_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3692, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvOption.label.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_5label_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_5label_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3692
 *     def label(self): return self.ptr.label
 *     @label.setter
 *     def label(self, int x): self.ptr.label = x             # <<<<<<<<<<<<<<
 *     @property
 *     def frame(self): return self.ptr.frame
 */
  __pyx_v_self->ptr->label = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3691
 *     @property
 *     def label(self): return self.ptr.label
 *     @label.setter             # <<<<<<<<<<<<<<
 *     def label(self, int x): self.ptr.label = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3693
 *     @label.setter
 *     def label(self, int x): self.ptr.label = x
 *     @property             # <<<<<<<<<<<<<<
 *     def frame(self): return self.ptr.frame
 *     @frame.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5frame_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5frame_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_5frame___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_5frame___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3694
 *     def label(self, int x): self.ptr.label = x
 *     @property
 *     def frame(self): return self.ptr.frame             # <<<<<<<<<<<<<<
 *     @frame.setter
 *     def frame(self, int x): self.ptr.frame = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3693
 *     @label.setter
 *     def label(self, int x): self.ptr.label = x
 *     @property             # <<<<<<<<<<<<<<
 *     def frame(self): return self.ptr.frame
 *     @frame.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvOption.frame.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3695
 *     @property
 *     def frame(self): return self.ptr.frame
 *     @frame.setter             # <<<<<<<<<<<<<<
 *     def frame(self, int x): self.ptr.frame = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5frame_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5frame_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3696, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvOption.frame.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_5frame_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_5frame_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3696
 *     def frame(self): return self.ptr.frame
 *     @frame.setter
 *     def frame(self, int x): self.ptr.frame = x             # <<<<<<<<<<<<<<
 *     @property
 *     def geomgroup(self): return self._geomgroup
 */
  __pyx_v_self->ptr->frame = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3695
 *     @property
 *     def frame(self): return self.ptr.frame
 *     @frame.setter             # <<<<<<<<<<<<<<
 *     def frame(self, int x): self.ptr.frame = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3697
 *     @frame.setter
 *     def frame(self, int x): self.ptr.frame = x
 *     @property             # <<<<<<<<<<<<<<
 *     def geomgroup(self): return self._geomgroup
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_9geomgroup_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_9geomgroup_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_9geomgroup___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_9geomgroup___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3698
 *     def frame(self, int x): self.ptr.frame = x
 *     @property
 *     def geomgroup(self): return self._geomgroup             # <<<<<<<<<<<<<<
 *     @property
 *     def sitegroup(self): return self._sitegroup
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_geomgroup);
  __pyx_r = ((PyObject *)__pyx_v_self->_geomgroup);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3697
 *     @frame.setter
 *     def frame(self, int x): self.ptr.frame = x
 *     @property             # <<<<<<<<<<<<<<
 *     def geomgroup(self): return self._geomgroup
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3699
 *     @property
 *     def geomgroup(self): return self._geomgroup
 *     @property             # <<<<<<<<<<<<<<
 *     def sitegroup(self): return self._sitegroup
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_9sitegroup_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_9sitegroup_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_9sitegroup___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_9sitegroup___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3700
 *     def geomgroup(self): return self._geomgroup
 *     @property
 *     def sitegroup(self): return self._sitegroup             # <<<<<<<<<<<<<<
 *     @property
 *     def jointgroup(self): return self._jointgroup
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_sitegroup);
  __pyx_r = ((PyObject *)__pyx_v_self->_sitegroup);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3699
 *     @property
 *     def geomgroup(self): return self._geomgroup
 *     @property             # <<<<<<<<<<<<<<
 *     def sitegroup(self): return self._sitegroup
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3701
 *     @property
 *     def sitegroup(self): return self._sitegroup
 *     @property             # <<<<<<<<<<<<<<
 *     def jointgroup(self): return self._jointgroup
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_10jointgroup_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_10jointgroup_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_10jointgroup___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_10jointgroup___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3702
 *     def sitegroup(self): return self._sitegroup
 *     @property
 *     def jointgroup(self): return self._jointgroup             # <<<<<<<<<<<<<<
 *     @property
 *     def tendongroup(self): return self._tendongroup
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_jointgroup);
  __pyx_r = ((PyObject *)__pyx_v_self->_jointgroup);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3701
 *     @property
 *     def sitegroup(self): return self._sitegroup
 *     @property             # <<<<<<<<<<<<<<
 *     def jointgroup(self): return self._jointgroup
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3703
 *     @property
 *     def jointgroup(self): return self._jointgroup
 *     @property             # <<<<<<<<<<<<<<
 *     def tendongroup(self): return self._tendongroup
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_11tendongroup_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_11tendongroup_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_11tendongroup___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_11tendongroup___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3704
 *     def jointgroup(self): return self._jointgroup
 *     @property
 *     def tendongroup(self): return self._tendongroup             # <<<<<<<<<<<<<<
 *     @property
 *     def actuatorgroup(self): return self._actuatorgroup
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_tendongroup);
  __pyx_r = ((PyObject *)__pyx_v_self->_tendongroup);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3703
 *     @property
 *     def jointgroup(self): return self._jointgroup
 *     @property             # <<<<<<<<<<<<<<
 *     def tendongroup(self): return self._tendongroup
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3705
 *     @property
 *     def tendongroup(self): return self._tendongroup
 *     @property             # <<<<<<<<<<<<<<
 *     def actuatorgroup(self): return self._actuatorgroup
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_13actuatorgroup_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_13actuatorgroup_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_13actuatorgroup___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_13actuatorgroup___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3706
 *     def tendongroup(self): return self._tendongroup
 *     @property
 *     def actuatorgroup(self): return self._actuatorgroup             # <<<<<<<<<<<<<<
 *     @property
 *     def flags(self): return self._flags
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_actuatorgroup);
  __pyx_r = ((PyObject *)__pyx_v_self->_actuatorgroup);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3705
 *     @property
 *     def tendongroup(self): return self._tendongroup
 *     @property             # <<<<<<<<<<<<<<
 *     def actuatorgroup(self): return self._actuatorgroup
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3707
 *     @property
 *     def actuatorgroup(self): return self._actuatorgroup
 *     @property             # <<<<<<<<<<<<<<
 *     def flags(self): return self._flags
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_5flags___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_5flags___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3708
 *     def actuatorgroup(self): return self._actuatorgroup
 *     @property
 *     def flags(self): return self._flags             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjvOption WrapMjvOption(mjvOption* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_flags);
  __pyx_r = ((PyObject *)__pyx_v_self->_flags);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3707
 *     @property
 *     def actuatorgroup(self): return self._actuatorgroup
 *     @property             # <<<<<<<<<<<<<<
 *     def flags(self): return self._flags
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11PyMjvOption_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvOption.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11PyMjvOption_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvOption.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvOption_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvOption_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvOption.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3710
 *     def flags(self): return self._flags
 * 
 * cdef PyMjvOption WrapMjvOption(mjvOption* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvOption o = PyMjvOption()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_f_9mujoco_py_4cymj_WrapMjvOption(mjvOption *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjvOption", 1);

  /* "mujoco_py/generated/wrappers.pxi":3711
 * 
 * cdef PyMjvOption WrapMjvOption(mjvOption* p):
 *     cdef PyMjvOption o = PyMjvOption()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjvOption)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3712
 * cdef PyMjvOption WrapMjvOption(mjvOption* p):
 *     cdef PyMjvOption o = PyMjvOption()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvOption *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":3713
 *     cdef PyMjvOption o = PyMjvOption()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjvScene(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3710
 *     def flags(self): return self._flags
 * 
 * cdef PyMjvOption WrapMjvOption(mjvOption* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvOption o = PyMjvOption()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjvOption", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3726
 *     cdef np.ndarray _framergb
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3727
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":3726
 *     cdef np.ndarray _framergb
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3730
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3731
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjvScene* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3731, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3730
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3733
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvScene* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_10PyMjvScene__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, mjvScene *__pyx_v_p) {
  long __pyx_8genexpr6__pyx_v_i;
  long __pyx_8genexpr7__pyx_v_i;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  long __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":3735
 *     cdef void _set(self, mjvScene* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":3738
 * 
 * 
 *         self._lights = [WrapMjvLight(&p.lights[i]) for i in range(8)]             # <<<<<<<<<<<<<<
 *         self._camera = [WrapMjvGLCamera(&p.camera[i]) for i in range(2)]
 *         self._translate = _wrap_float_1d(&p.translate[0], 3)
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3738, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    for (__pyx_t_2 = 0; __pyx_t_2 < 8; __pyx_t_2+=1) {
      __pyx_8genexpr6__pyx_v_i = __pyx_t_2;
      __pyx_t_3 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjvLight((&(__pyx_v_p->lights[__pyx_8genexpr6__pyx_v_i])))); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3738, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(4, 3738, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
  } /* exit inner scope */
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_lights);
  __Pyx_DECREF(__pyx_v_self->_lights);
  __pyx_v_self->_lights = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3739
 * 
 *         self._lights = [WrapMjvLight(&p.lights[i]) for i in range(8)]
 *         self._camera = [WrapMjvGLCamera(&p.camera[i]) for i in range(2)]             # <<<<<<<<<<<<<<
 *         self._translate = _wrap_float_1d(&p.translate[0], 3)
 *         self._rotate = _wrap_float_1d(&p.rotate[0], 4)
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3739, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    for (__pyx_t_2 = 0; __pyx_t_2 < 2; __pyx_t_2+=1) {
      __pyx_8genexpr7__pyx_v_i = __pyx_t_2;
      __pyx_t_3 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjvGLCamera((&(__pyx_v_p->camera[__pyx_8genexpr7__pyx_v_i])))); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3739, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(4, 3739, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
  } /* exit inner scope */
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_camera);
  __Pyx_DECREF(__pyx_v_self->_camera);
  __pyx_v_self->_camera = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3740
 *         self._lights = [WrapMjvLight(&p.lights[i]) for i in range(8)]
 *         self._camera = [WrapMjvGLCamera(&p.camera[i]) for i in range(2)]
 *         self._translate = _wrap_float_1d(&p.translate[0], 3)             # <<<<<<<<<<<<<<
 *         self._rotate = _wrap_float_1d(&p.rotate[0], 4)
 *         self._flags = _wrap_mjtByte_1d(&p.flags[0], mjNRNDFLAG)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->translate[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_translate);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_translate);
  __pyx_v_self->_translate = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3741
 *         self._camera = [WrapMjvGLCamera(&p.camera[i]) for i in range(2)]
 *         self._translate = _wrap_float_1d(&p.translate[0], 3)
 *         self._rotate = _wrap_float_1d(&p.rotate[0], 4)             # <<<<<<<<<<<<<<
 *         self._flags = _wrap_mjtByte_1d(&p.flags[0], mjNRNDFLAG)
 *         self._framergb = _wrap_float_1d(&p.framergb[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->rotate[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_rotate);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_rotate);
  __pyx_v_self->_rotate = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3742
 *         self._translate = _wrap_float_1d(&p.translate[0], 3)
 *         self._rotate = _wrap_float_1d(&p.rotate[0], 4)
 *         self._flags = _wrap_mjtByte_1d(&p.flags[0], mjNRNDFLAG)             # <<<<<<<<<<<<<<
 *         self._framergb = _wrap_float_1d(&p.framergb[0], 3)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d((&(__pyx_v_p->flags[0])), mjNRNDFLAG)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_flags);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_flags);
  __pyx_v_self->_flags = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3743
 *         self._rotate = _wrap_float_1d(&p.rotate[0], 4)
 *         self._flags = _wrap_mjtByte_1d(&p.flags[0], mjNRNDFLAG)
 *         self._framergb = _wrap_float_1d(&p.framergb[0], 3)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->framergb[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_framergb);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_framergb);
  __pyx_v_self->_framergb = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3733
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvScene* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjvScene._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":3745
 *         self._framergb = _wrap_float_1d(&p.framergb[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def maxgeom(self): return self.ptr.maxgeom
 *     @maxgeom.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_7maxgeom_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_7maxgeom_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_7maxgeom___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_7maxgeom___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3746
 * 
 *     @property
 *     def maxgeom(self): return self.ptr.maxgeom             # <<<<<<<<<<<<<<
 *     @maxgeom.setter
 *     def maxgeom(self, int x): self.ptr.maxgeom = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->maxgeom); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3745
 *         self._framergb = _wrap_float_1d(&p.framergb[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def maxgeom(self): return self.ptr.maxgeom
 *     @maxgeom.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.maxgeom.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3747
 *     @property
 *     def maxgeom(self): return self.ptr.maxgeom
 *     @maxgeom.setter             # <<<<<<<<<<<<<<
 *     def maxgeom(self, int x): self.ptr.maxgeom = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_7maxgeom_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_7maxgeom_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3748, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.maxgeom.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_7maxgeom_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_7maxgeom_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3748
 *     def maxgeom(self): return self.ptr.maxgeom
 *     @maxgeom.setter
 *     def maxgeom(self, int x): self.ptr.maxgeom = x             # <<<<<<<<<<<<<<
 *     @property
 *     def ngeom(self): return self.ptr.ngeom
 */
  __pyx_v_self->ptr->maxgeom = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3747
 *     @property
 *     def maxgeom(self): return self.ptr.maxgeom
 *     @maxgeom.setter             # <<<<<<<<<<<<<<
 *     def maxgeom(self, int x): self.ptr.maxgeom = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3749
 *     @maxgeom.setter
 *     def maxgeom(self, int x): self.ptr.maxgeom = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ngeom(self): return self.ptr.ngeom
 *     @ngeom.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5ngeom_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5ngeom_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5ngeom___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5ngeom___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3750
 *     def maxgeom(self, int x): self.ptr.maxgeom = x
 *     @property
 *     def ngeom(self): return self.ptr.ngeom             # <<<<<<<<<<<<<<
 *     @ngeom.setter
 *     def ngeom(self, int x): self.ptr.ngeom = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->ngeom); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3749
 *     @maxgeom.setter
 *     def maxgeom(self, int x): self.ptr.maxgeom = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ngeom(self): return self.ptr.ngeom
 *     @ngeom.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.ngeom.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3751
 *     @property
 *     def ngeom(self): return self.ptr.ngeom
 *     @ngeom.setter             # <<<<<<<<<<<<<<
 *     def ngeom(self, int x): self.ptr.ngeom = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5ngeom_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5ngeom_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3752, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.ngeom.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5ngeom_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5ngeom_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3752
 *     def ngeom(self): return self.ptr.ngeom
 *     @ngeom.setter
 *     def ngeom(self, int x): self.ptr.ngeom = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nskin(self): return self.ptr.nskin
 */
  __pyx_v_self->ptr->ngeom = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3751
 *     @property
 *     def ngeom(self): return self.ptr.ngeom
 *     @ngeom.setter             # <<<<<<<<<<<<<<
 *     def ngeom(self, int x): self.ptr.ngeom = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3753
 *     @ngeom.setter
 *     def ngeom(self, int x): self.ptr.ngeom = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskin(self): return self.ptr.nskin
 *     @nskin.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5nskin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5nskin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5nskin___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5nskin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3754
 *     def ngeom(self, int x): self.ptr.ngeom = x
 *     @property
 *     def nskin(self): return self.ptr.nskin             # <<<<<<<<<<<<<<
 *     @nskin.setter
 *     def nskin(self, int x): self.ptr.nskin = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nskin); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3753
 *     @ngeom.setter
 *     def ngeom(self, int x): self.ptr.ngeom = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskin(self): return self.ptr.nskin
 *     @nskin.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.nskin.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3755
 *     @property
 *     def nskin(self): return self.ptr.nskin
 *     @nskin.setter             # <<<<<<<<<<<<<<
 *     def nskin(self, int x): self.ptr.nskin = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5nskin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5nskin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3756, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.nskin.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5nskin_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5nskin_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3756
 *     def nskin(self): return self.ptr.nskin
 *     @nskin.setter
 *     def nskin(self, int x): self.ptr.nskin = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nlight(self): return self.ptr.nlight
 */
  __pyx_v_self->ptr->nskin = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3755
 *     @property
 *     def nskin(self): return self.ptr.nskin
 *     @nskin.setter             # <<<<<<<<<<<<<<
 *     def nskin(self, int x): self.ptr.nskin = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3757
 *     @nskin.setter
 *     def nskin(self, int x): self.ptr.nskin = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nlight(self): return self.ptr.nlight
 *     @nlight.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6nlight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6nlight_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6nlight___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6nlight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3758
 *     def nskin(self, int x): self.ptr.nskin = x
 *     @property
 *     def nlight(self): return self.ptr.nlight             # <<<<<<<<<<<<<<
 *     @nlight.setter
 *     def nlight(self, int x): self.ptr.nlight = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nlight); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3757
 *     @nskin.setter
 *     def nskin(self, int x): self.ptr.nskin = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nlight(self): return self.ptr.nlight
 *     @nlight.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.nlight.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3759
 *     @property
 *     def nlight(self): return self.ptr.nlight
 *     @nlight.setter             # <<<<<<<<<<<<<<
 *     def nlight(self, int x): self.ptr.nlight = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6nlight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6nlight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3760, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.nlight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6nlight_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6nlight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3760
 *     def nlight(self): return self.ptr.nlight
 *     @nlight.setter
 *     def nlight(self, int x): self.ptr.nlight = x             # <<<<<<<<<<<<<<
 *     @property
 *     def enabletransform(self): return self.ptr.enabletransform
 */
  __pyx_v_self->ptr->nlight = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3759
 *     @property
 *     def nlight(self): return self.ptr.nlight
 *     @nlight.setter             # <<<<<<<<<<<<<<
 *     def nlight(self, int x): self.ptr.nlight = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3761
 *     @nlight.setter
 *     def nlight(self, int x): self.ptr.nlight = x
 *     @property             # <<<<<<<<<<<<<<
 *     def enabletransform(self): return self.ptr.enabletransform
 *     @enabletransform.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_15enabletransform_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_15enabletransform_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_15enabletransform___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_15enabletransform___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3762
 *     def nlight(self, int x): self.ptr.nlight = x
 *     @property
 *     def enabletransform(self): return self.ptr.enabletransform             # <<<<<<<<<<<<<<
 *     @enabletransform.setter
 *     def enabletransform(self, mjtByte x): self.ptr.enabletransform = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_mjtByte(__pyx_v_self->ptr->enabletransform); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3761
 *     @nlight.setter
 *     def nlight(self, int x): self.ptr.nlight = x
 *     @property             # <<<<<<<<<<<<<<
 *     def enabletransform(self): return self.ptr.enabletransform
 *     @enabletransform.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.enabletransform.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3763
 *     @property
 *     def enabletransform(self): return self.ptr.enabletransform
 *     @enabletransform.setter             # <<<<<<<<<<<<<<
 *     def enabletransform(self, mjtByte x): self.ptr.enabletransform = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_15enabletransform_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_15enabletransform_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  mjtByte __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_mjtByte(__pyx_arg_x); if (unlikely((__pyx_v_x == ((mjtByte)-1)) && PyErr_Occurred())) __PYX_ERR(4, 3764, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.enabletransform.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_15enabletransform_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self), ((mjtByte)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_15enabletransform_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, mjtByte __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3764
 *     def enabletransform(self): return self.ptr.enabletransform
 *     @enabletransform.setter
 *     def enabletransform(self, mjtByte x): self.ptr.enabletransform = x             # <<<<<<<<<<<<<<
 *     @property
 *     def scale(self): return self.ptr.scale
 */
  __pyx_v_self->ptr->enabletransform = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3763
 *     @property
 *     def enabletransform(self): return self.ptr.enabletransform
 *     @enabletransform.setter             # <<<<<<<<<<<<<<
 *     def enabletransform(self, mjtByte x): self.ptr.enabletransform = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3765
 *     @enabletransform.setter
 *     def enabletransform(self, mjtByte x): self.ptr.enabletransform = x
 *     @property             # <<<<<<<<<<<<<<
 *     def scale(self): return self.ptr.scale
 *     @scale.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5scale_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5scale_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5scale___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5scale___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3766
 *     def enabletransform(self, mjtByte x): self.ptr.enabletransform = x
 *     @property
 *     def scale(self): return self.ptr.scale             # <<<<<<<<<<<<<<
 *     @scale.setter
 *     def scale(self, float x): self.ptr.scale = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->scale); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3766, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3765
 *     @enabletransform.setter
 *     def enabletransform(self, mjtByte x): self.ptr.enabletransform = x
 *     @property             # <<<<<<<<<<<<<<
 *     def scale(self): return self.ptr.scale
 *     @scale.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.scale.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3767
 *     @property
 *     def scale(self): return self.ptr.scale
 *     @scale.setter             # <<<<<<<<<<<<<<
 *     def scale(self, float x): self.ptr.scale = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5scale_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5scale_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3768, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.scale.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5scale_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5scale_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3768
 *     def scale(self): return self.ptr.scale
 *     @scale.setter
 *     def scale(self, float x): self.ptr.scale = x             # <<<<<<<<<<<<<<
 *     @property
 *     def stereo(self): return self.ptr.stereo
 */
  __pyx_v_self->ptr->scale = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3767
 *     @property
 *     def scale(self): return self.ptr.scale
 *     @scale.setter             # <<<<<<<<<<<<<<
 *     def scale(self, float x): self.ptr.scale = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3769
 *     @scale.setter
 *     def scale(self, float x): self.ptr.scale = x
 *     @property             # <<<<<<<<<<<<<<
 *     def stereo(self): return self.ptr.stereo
 *     @stereo.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6stereo_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6stereo_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6stereo___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6stereo___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3770
 *     def scale(self, float x): self.ptr.scale = x
 *     @property
 *     def stereo(self): return self.ptr.stereo             # <<<<<<<<<<<<<<
 *     @stereo.setter
 *     def stereo(self, int x): self.ptr.stereo = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->stereo); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3769
 *     @scale.setter
 *     def scale(self, float x): self.ptr.scale = x
 *     @property             # <<<<<<<<<<<<<<
 *     def stereo(self): return self.ptr.stereo
 *     @stereo.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.stereo.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3771
 *     @property
 *     def stereo(self): return self.ptr.stereo
 *     @stereo.setter             # <<<<<<<<<<<<<<
 *     def stereo(self, int x): self.ptr.stereo = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6stereo_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6stereo_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3772, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.stereo.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6stereo_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6stereo_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3772
 *     def stereo(self): return self.ptr.stereo
 *     @stereo.setter
 *     def stereo(self, int x): self.ptr.stereo = x             # <<<<<<<<<<<<<<
 *     @property
 *     def framewidth(self): return self.ptr.framewidth
 */
  __pyx_v_self->ptr->stereo = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3771
 *     @property
 *     def stereo(self): return self.ptr.stereo
 *     @stereo.setter             # <<<<<<<<<<<<<<
 *     def stereo(self, int x): self.ptr.stereo = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3773
 *     @stereo.setter
 *     def stereo(self, int x): self.ptr.stereo = x
 *     @property             # <<<<<<<<<<<<<<
 *     def framewidth(self): return self.ptr.framewidth
 *     @framewidth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_10framewidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_10framewidth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_10framewidth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_10framewidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3774
 *     def stereo(self, int x): self.ptr.stereo = x
 *     @property
 *     def framewidth(self): return self.ptr.framewidth             # <<<<<<<<<<<<<<
 *     @framewidth.setter
 *     def framewidth(self, int x): self.ptr.framewidth = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->framewidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3773
 *     @stereo.setter
 *     def stereo(self, int x): self.ptr.stereo = x
 *     @property             # <<<<<<<<<<<<<<
 *     def framewidth(self): return self.ptr.framewidth
 *     @framewidth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.framewidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3775
 *     @property
 *     def framewidth(self): return self.ptr.framewidth
 *     @framewidth.setter             # <<<<<<<<<<<<<<
 *     def framewidth(self, int x): self.ptr.framewidth = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_10framewidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_10framewidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3776, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.framewidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_10framewidth_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_10framewidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3776
 *     def framewidth(self): return self.ptr.framewidth
 *     @framewidth.setter
 *     def framewidth(self, int x): self.ptr.framewidth = x             # <<<<<<<<<<<<<<
 *     @property
 *     def lights(self): return self._lights
 */
  __pyx_v_self->ptr->framewidth = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3775
 *     @property
 *     def framewidth(self): return self.ptr.framewidth
 *     @framewidth.setter             # <<<<<<<<<<<<<<
 *     def framewidth(self, int x): self.ptr.framewidth = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3777
 *     @framewidth.setter
 *     def framewidth(self, int x): self.ptr.framewidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def lights(self): return self._lights
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6lights_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6lights_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6lights___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6lights___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3778
 *     def framewidth(self, int x): self.ptr.framewidth = x
 *     @property
 *     def lights(self): return self._lights             # <<<<<<<<<<<<<<
 *     @property
 *     def camera(self): return self._camera
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_lights);
  __pyx_r = __pyx_v_self->_lights;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3777
 *     @framewidth.setter
 *     def framewidth(self, int x): self.ptr.framewidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def lights(self): return self._lights
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3779
 *     @property
 *     def lights(self): return self._lights
 *     @property             # <<<<<<<<<<<<<<
 *     def camera(self): return self._camera
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6camera_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6camera_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6camera___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6camera___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3780
 *     def lights(self): return self._lights
 *     @property
 *     def camera(self): return self._camera             # <<<<<<<<<<<<<<
 *     @property
 *     def translate(self): return self._translate
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_camera);
  __pyx_r = __pyx_v_self->_camera;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3779
 *     @property
 *     def lights(self): return self._lights
 *     @property             # <<<<<<<<<<<<<<
 *     def camera(self): return self._camera
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3781
 *     @property
 *     def camera(self): return self._camera
 *     @property             # <<<<<<<<<<<<<<
 *     def translate(self): return self._translate
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_9translate_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_9translate_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_9translate___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_9translate___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3782
 *     def camera(self): return self._camera
 *     @property
 *     def translate(self): return self._translate             # <<<<<<<<<<<<<<
 *     @property
 *     def rotate(self): return self._rotate
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_translate);
  __pyx_r = ((PyObject *)__pyx_v_self->_translate);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3781
 *     @property
 *     def camera(self): return self._camera
 *     @property             # <<<<<<<<<<<<<<
 *     def translate(self): return self._translate
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3783
 *     @property
 *     def translate(self): return self._translate
 *     @property             # <<<<<<<<<<<<<<
 *     def rotate(self): return self._rotate
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6rotate_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6rotate_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6rotate___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_6rotate___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3784
 *     def translate(self): return self._translate
 *     @property
 *     def rotate(self): return self._rotate             # <<<<<<<<<<<<<<
 *     @property
 *     def flags(self): return self._flags
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_rotate);
  __pyx_r = ((PyObject *)__pyx_v_self->_rotate);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3783
 *     @property
 *     def translate(self): return self._translate
 *     @property             # <<<<<<<<<<<<<<
 *     def rotate(self): return self._rotate
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3785
 *     @property
 *     def rotate(self): return self._rotate
 *     @property             # <<<<<<<<<<<<<<
 *     def flags(self): return self._flags
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5flags___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_5flags___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3786
 *     def rotate(self): return self._rotate
 *     @property
 *     def flags(self): return self._flags             # <<<<<<<<<<<<<<
 *     @property
 *     def framergb(self): return self._framergb
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_flags);
  __pyx_r = ((PyObject *)__pyx_v_self->_flags);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3785
 *     @property
 *     def rotate(self): return self._rotate
 *     @property             # <<<<<<<<<<<<<<
 *     def flags(self): return self._flags
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3787
 *     @property
 *     def flags(self): return self._flags
 *     @property             # <<<<<<<<<<<<<<
 *     def framergb(self): return self._framergb
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_8framergb_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_8framergb_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_8framergb___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_8framergb___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3788
 *     def flags(self): return self._flags
 *     @property
 *     def framergb(self): return self._framergb             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjvScene WrapMjvScene(mjvScene* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_framergb);
  __pyx_r = ((PyObject *)__pyx_v_self->_framergb);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3787
 *     @property
 *     def flags(self): return self._flags
 *     @property             # <<<<<<<<<<<<<<
 *     def framergb(self): return self._framergb
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10PyMjvScene_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10PyMjvScene_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjvScene_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjvScene_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvScene.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3790
 *     def framergb(self): return self._framergb
 * 
 * cdef PyMjvScene WrapMjvScene(mjvScene* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvScene o = PyMjvScene()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_f_9mujoco_py_4cymj_WrapMjvScene(mjvScene *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjvScene", 1);

  /* "mujoco_py/generated/wrappers.pxi":3791
 * 
 * cdef PyMjvScene WrapMjvScene(mjvScene* p):
 *     cdef PyMjvScene o = PyMjvScene()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjvScene)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3791, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3792
 * cdef PyMjvScene WrapMjvScene(mjvScene* p):
 *     cdef PyMjvScene o = PyMjvScene()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvScene *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":3793
 *     cdef PyMjvScene o = PyMjvScene()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjvFigure(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3790
 *     def framergb(self): return self._framergb
 * 
 * cdef PyMjvScene WrapMjvScene(mjvScene* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvScene o = PyMjvScene()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjvScene", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3822
 *     cdef np.ndarray _linedata
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3823
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":3822
 *     cdef np.ndarray _linedata
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3826
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3827
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjvFigure* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3827, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3826
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3829
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvFigure* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_11PyMjvFigure__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, mjvFigure *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":3831
 *     cdef void _set(self, mjvFigure* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":3834
 * 
 * 
 *         self._flg_ticklabel = _wrap_int_1d(&p.flg_ticklabel[0], 2)             # <<<<<<<<<<<<<<
 *         self._gridsize = _wrap_int_1d(&p.gridsize[0], 2)
 *         self._gridrgb = _wrap_float_1d(&p.gridrgb[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d((&(__pyx_v_p->flg_ticklabel[0])), 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_flg_ticklabel);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_flg_ticklabel);
  __pyx_v_self->_flg_ticklabel = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3835
 * 
 *         self._flg_ticklabel = _wrap_int_1d(&p.flg_ticklabel[0], 2)
 *         self._gridsize = _wrap_int_1d(&p.gridsize[0], 2)             # <<<<<<<<<<<<<<
 *         self._gridrgb = _wrap_float_1d(&p.gridrgb[0], 3)
 *         self._figurergba = _wrap_float_1d(&p.figurergba[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d((&(__pyx_v_p->gridsize[0])), 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_gridsize);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_gridsize);
  __pyx_v_self->_gridsize = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3836
 *         self._flg_ticklabel = _wrap_int_1d(&p.flg_ticklabel[0], 2)
 *         self._gridsize = _wrap_int_1d(&p.gridsize[0], 2)
 *         self._gridrgb = _wrap_float_1d(&p.gridrgb[0], 3)             # <<<<<<<<<<<<<<
 *         self._figurergba = _wrap_float_1d(&p.figurergba[0], 4)
 *         self._panergba = _wrap_float_1d(&p.panergba[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->gridrgb[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_gridrgb);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_gridrgb);
  __pyx_v_self->_gridrgb = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3837
 *         self._gridsize = _wrap_int_1d(&p.gridsize[0], 2)
 *         self._gridrgb = _wrap_float_1d(&p.gridrgb[0], 3)
 *         self._figurergba = _wrap_float_1d(&p.figurergba[0], 4)             # <<<<<<<<<<<<<<
 *         self._panergba = _wrap_float_1d(&p.panergba[0], 4)
 *         self._legendrgba = _wrap_float_1d(&p.legendrgba[0], 4)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->figurergba[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_figurergba);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_figurergba);
  __pyx_v_self->_figurergba = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3838
 *         self._gridrgb = _wrap_float_1d(&p.gridrgb[0], 3)
 *         self._figurergba = _wrap_float_1d(&p.figurergba[0], 4)
 *         self._panergba = _wrap_float_1d(&p.panergba[0], 4)             # <<<<<<<<<<<<<<
 *         self._legendrgba = _wrap_float_1d(&p.legendrgba[0], 4)
 *         self._textrgb = _wrap_float_1d(&p.textrgb[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->panergba[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_panergba);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_panergba);
  __pyx_v_self->_panergba = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3839
 *         self._figurergba = _wrap_float_1d(&p.figurergba[0], 4)
 *         self._panergba = _wrap_float_1d(&p.panergba[0], 4)
 *         self._legendrgba = _wrap_float_1d(&p.legendrgba[0], 4)             # <<<<<<<<<<<<<<
 *         self._textrgb = _wrap_float_1d(&p.textrgb[0], 3)
 *         self._xformat = _wrap_char_1d(&p.xformat[0], 20)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->legendrgba[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_legendrgba);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_legendrgba);
  __pyx_v_self->_legendrgba = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3840
 *         self._panergba = _wrap_float_1d(&p.panergba[0], 4)
 *         self._legendrgba = _wrap_float_1d(&p.legendrgba[0], 4)
 *         self._textrgb = _wrap_float_1d(&p.textrgb[0], 3)             # <<<<<<<<<<<<<<
 *         self._xformat = _wrap_char_1d(&p.xformat[0], 20)
 *         self._yformat = _wrap_char_1d(&p.yformat[0], 20)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->textrgb[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_textrgb);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_textrgb);
  __pyx_v_self->_textrgb = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3841
 *         self._legendrgba = _wrap_float_1d(&p.legendrgba[0], 4)
 *         self._textrgb = _wrap_float_1d(&p.textrgb[0], 3)
 *         self._xformat = _wrap_char_1d(&p.xformat[0], 20)             # <<<<<<<<<<<<<<
 *         self._yformat = _wrap_char_1d(&p.yformat[0], 20)
 *         self._minwidth = _wrap_char_1d(&p.minwidth[0], 20)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_char_1d((&(__pyx_v_p->xformat[0])), 20)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_xformat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_xformat);
  __pyx_v_self->_xformat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3842
 *         self._textrgb = _wrap_float_1d(&p.textrgb[0], 3)
 *         self._xformat = _wrap_char_1d(&p.xformat[0], 20)
 *         self._yformat = _wrap_char_1d(&p.yformat[0], 20)             # <<<<<<<<<<<<<<
 *         self._minwidth = _wrap_char_1d(&p.minwidth[0], 20)
 *         self._title = _wrap_char_1d(&p.title[0], 1000)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_char_1d((&(__pyx_v_p->yformat[0])), 20)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_yformat);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_yformat);
  __pyx_v_self->_yformat = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3843
 *         self._xformat = _wrap_char_1d(&p.xformat[0], 20)
 *         self._yformat = _wrap_char_1d(&p.yformat[0], 20)
 *         self._minwidth = _wrap_char_1d(&p.minwidth[0], 20)             # <<<<<<<<<<<<<<
 *         self._title = _wrap_char_1d(&p.title[0], 1000)
 *         self._xlabel = _wrap_char_1d(&p.xlabel[0], 100)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_char_1d((&(__pyx_v_p->minwidth[0])), 20)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_minwidth);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_minwidth);
  __pyx_v_self->_minwidth = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3844
 *         self._yformat = _wrap_char_1d(&p.yformat[0], 20)
 *         self._minwidth = _wrap_char_1d(&p.minwidth[0], 20)
 *         self._title = _wrap_char_1d(&p.title[0], 1000)             # <<<<<<<<<<<<<<
 *         self._xlabel = _wrap_char_1d(&p.xlabel[0], 100)
 *         self._highlight = _wrap_int_1d(&p.highlight[0], 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_char_1d((&(__pyx_v_p->title[0])), 0x3E8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_title);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_title);
  __pyx_v_self->_title = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3845
 *         self._minwidth = _wrap_char_1d(&p.minwidth[0], 20)
 *         self._title = _wrap_char_1d(&p.title[0], 1000)
 *         self._xlabel = _wrap_char_1d(&p.xlabel[0], 100)             # <<<<<<<<<<<<<<
 *         self._highlight = _wrap_int_1d(&p.highlight[0], 2)
 *         self._linepnt = _wrap_int_1d(&p.linepnt[0], 100)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_char_1d((&(__pyx_v_p->xlabel[0])), 0x64)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_xlabel);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_xlabel);
  __pyx_v_self->_xlabel = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3846
 *         self._title = _wrap_char_1d(&p.title[0], 1000)
 *         self._xlabel = _wrap_char_1d(&p.xlabel[0], 100)
 *         self._highlight = _wrap_int_1d(&p.highlight[0], 2)             # <<<<<<<<<<<<<<
 *         self._linepnt = _wrap_int_1d(&p.linepnt[0], 100)
 *         self._xaxispixel = _wrap_int_1d(&p.xaxispixel[0], 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d((&(__pyx_v_p->highlight[0])), 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_highlight);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_highlight);
  __pyx_v_self->_highlight = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3847
 *         self._xlabel = _wrap_char_1d(&p.xlabel[0], 100)
 *         self._highlight = _wrap_int_1d(&p.highlight[0], 2)
 *         self._linepnt = _wrap_int_1d(&p.linepnt[0], 100)             # <<<<<<<<<<<<<<
 *         self._xaxispixel = _wrap_int_1d(&p.xaxispixel[0], 2)
 *         self._yaxispixel = _wrap_int_1d(&p.yaxispixel[0], 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d((&(__pyx_v_p->linepnt[0])), 0x64)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_linepnt);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_linepnt);
  __pyx_v_self->_linepnt = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3848
 *         self._highlight = _wrap_int_1d(&p.highlight[0], 2)
 *         self._linepnt = _wrap_int_1d(&p.linepnt[0], 100)
 *         self._xaxispixel = _wrap_int_1d(&p.xaxispixel[0], 2)             # <<<<<<<<<<<<<<
 *         self._yaxispixel = _wrap_int_1d(&p.yaxispixel[0], 2)
 *         self._xaxisdata = _wrap_float_1d(&p.xaxisdata[0], 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d((&(__pyx_v_p->xaxispixel[0])), 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3848, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_xaxispixel);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_xaxispixel);
  __pyx_v_self->_xaxispixel = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3849
 *         self._linepnt = _wrap_int_1d(&p.linepnt[0], 100)
 *         self._xaxispixel = _wrap_int_1d(&p.xaxispixel[0], 2)
 *         self._yaxispixel = _wrap_int_1d(&p.yaxispixel[0], 2)             # <<<<<<<<<<<<<<
 *         self._xaxisdata = _wrap_float_1d(&p.xaxisdata[0], 2)
 *         self._yaxisdata = _wrap_float_1d(&p.yaxisdata[0], 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d((&(__pyx_v_p->yaxispixel[0])), 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_yaxispixel);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_yaxispixel);
  __pyx_v_self->_yaxispixel = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3850
 *         self._xaxispixel = _wrap_int_1d(&p.xaxispixel[0], 2)
 *         self._yaxispixel = _wrap_int_1d(&p.yaxispixel[0], 2)
 *         self._xaxisdata = _wrap_float_1d(&p.xaxisdata[0], 2)             # <<<<<<<<<<<<<<
 *         self._yaxisdata = _wrap_float_1d(&p.yaxisdata[0], 2)
 *         self._linergb = _wrap_float_2d(&p.linergb[0][0], 100, 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->xaxisdata[0])), 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_xaxisdata);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_xaxisdata);
  __pyx_v_self->_xaxisdata = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3851
 *         self._yaxispixel = _wrap_int_1d(&p.yaxispixel[0], 2)
 *         self._xaxisdata = _wrap_float_1d(&p.xaxisdata[0], 2)
 *         self._yaxisdata = _wrap_float_1d(&p.yaxisdata[0], 2)             # <<<<<<<<<<<<<<
 *         self._linergb = _wrap_float_2d(&p.linergb[0][0], 100, 3)
 *         self._range = _wrap_float_2d(&p.range[0][0], 2, 2)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->yaxisdata[0])), 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_yaxisdata);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_yaxisdata);
  __pyx_v_self->_yaxisdata = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3852
 *         self._xaxisdata = _wrap_float_1d(&p.xaxisdata[0], 2)
 *         self._yaxisdata = _wrap_float_1d(&p.yaxisdata[0], 2)
 *         self._linergb = _wrap_float_2d(&p.linergb[0][0], 100, 3)             # <<<<<<<<<<<<<<
 *         self._range = _wrap_float_2d(&p.range[0][0], 2, 2)
 *         self._linename = _wrap_char_2d(&p.linename[0][0], 100, 100)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d((&((__pyx_v_p->linergb[0])[0])), 0x64, 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3852, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_linergb);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_linergb);
  __pyx_v_self->_linergb = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3853
 *         self._yaxisdata = _wrap_float_1d(&p.yaxisdata[0], 2)
 *         self._linergb = _wrap_float_2d(&p.linergb[0][0], 100, 3)
 *         self._range = _wrap_float_2d(&p.range[0][0], 2, 2)             # <<<<<<<<<<<<<<
 *         self._linename = _wrap_char_2d(&p.linename[0][0], 100, 100)
 *         self._linedata = _wrap_float_2d(&p.linedata[0][0], 100, 2000)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d((&((__pyx_v_p->range[0])[0])), 2, 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3853, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_range);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_range);
  __pyx_v_self->_range = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3854
 *         self._linergb = _wrap_float_2d(&p.linergb[0][0], 100, 3)
 *         self._range = _wrap_float_2d(&p.range[0][0], 2, 2)
 *         self._linename = _wrap_char_2d(&p.linename[0][0], 100, 100)             # <<<<<<<<<<<<<<
 *         self._linedata = _wrap_float_2d(&p.linedata[0][0], 100, 2000)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_char_2d((&((__pyx_v_p->linename[0])[0])), 0x64, 0x64)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_linename);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_linename);
  __pyx_v_self->_linename = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3855
 *         self._range = _wrap_float_2d(&p.range[0][0], 2, 2)
 *         self._linename = _wrap_char_2d(&p.linename[0][0], 100, 100)
 *         self._linedata = _wrap_float_2d(&p.linedata[0][0], 100, 2000)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_2d((&((__pyx_v_p->linedata[0])[0])), 0x64, 0x7D0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_linedata);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_linedata);
  __pyx_v_self->_linedata = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3829
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjvFigure* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjvFigure._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":3857
 *         self._linedata = _wrap_float_2d(&p.linedata[0][0], 100, 2000)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def flg_legend(self): return self.ptr.flg_legend
 *     @flg_legend.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10flg_legend_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10flg_legend_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10flg_legend___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10flg_legend___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3858
 * 
 *     @property
 *     def flg_legend(self): return self.ptr.flg_legend             # <<<<<<<<<<<<<<
 *     @flg_legend.setter
 *     def flg_legend(self, int x): self.ptr.flg_legend = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->flg_legend); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3857
 *         self._linedata = _wrap_float_2d(&p.linedata[0][0], 100, 2000)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def flg_legend(self): return self.ptr.flg_legend
 *     @flg_legend.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.flg_legend.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3859
 *     @property
 *     def flg_legend(self): return self.ptr.flg_legend
 *     @flg_legend.setter             # <<<<<<<<<<<<<<
 *     def flg_legend(self, int x): self.ptr.flg_legend = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10flg_legend_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10flg_legend_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3860, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.flg_legend.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10flg_legend_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10flg_legend_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3860
 *     def flg_legend(self): return self.ptr.flg_legend
 *     @flg_legend.setter
 *     def flg_legend(self, int x): self.ptr.flg_legend = x             # <<<<<<<<<<<<<<
 *     @property
 *     def flg_extend(self): return self.ptr.flg_extend
 */
  __pyx_v_self->ptr->flg_legend = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3859
 *     @property
 *     def flg_legend(self): return self.ptr.flg_legend
 *     @flg_legend.setter             # <<<<<<<<<<<<<<
 *     def flg_legend(self, int x): self.ptr.flg_legend = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3861
 *     @flg_legend.setter
 *     def flg_legend(self, int x): self.ptr.flg_legend = x
 *     @property             # <<<<<<<<<<<<<<
 *     def flg_extend(self): return self.ptr.flg_extend
 *     @flg_extend.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10flg_extend_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10flg_extend_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10flg_extend___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10flg_extend___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3862
 *     def flg_legend(self, int x): self.ptr.flg_legend = x
 *     @property
 *     def flg_extend(self): return self.ptr.flg_extend             # <<<<<<<<<<<<<<
 *     @flg_extend.setter
 *     def flg_extend(self, int x): self.ptr.flg_extend = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->flg_extend); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3861
 *     @flg_legend.setter
 *     def flg_legend(self, int x): self.ptr.flg_legend = x
 *     @property             # <<<<<<<<<<<<<<
 *     def flg_extend(self): return self.ptr.flg_extend
 *     @flg_extend.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.flg_extend.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3863
 *     @property
 *     def flg_extend(self): return self.ptr.flg_extend
 *     @flg_extend.setter             # <<<<<<<<<<<<<<
 *     def flg_extend(self, int x): self.ptr.flg_extend = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10flg_extend_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10flg_extend_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3864, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.flg_extend.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10flg_extend_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10flg_extend_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3864
 *     def flg_extend(self): return self.ptr.flg_extend
 *     @flg_extend.setter
 *     def flg_extend(self, int x): self.ptr.flg_extend = x             # <<<<<<<<<<<<<<
 *     @property
 *     def flg_barplot(self): return self.ptr.flg_barplot
 */
  __pyx_v_self->ptr->flg_extend = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3863
 *     @property
 *     def flg_extend(self): return self.ptr.flg_extend
 *     @flg_extend.setter             # <<<<<<<<<<<<<<
 *     def flg_extend(self, int x): self.ptr.flg_extend = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3865
 *     @flg_extend.setter
 *     def flg_extend(self, int x): self.ptr.flg_extend = x
 *     @property             # <<<<<<<<<<<<<<
 *     def flg_barplot(self): return self.ptr.flg_barplot
 *     @flg_barplot.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_11flg_barplot_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_11flg_barplot_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_11flg_barplot___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_11flg_barplot___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3866
 *     def flg_extend(self, int x): self.ptr.flg_extend = x
 *     @property
 *     def flg_barplot(self): return self.ptr.flg_barplot             # <<<<<<<<<<<<<<
 *     @flg_barplot.setter
 *     def flg_barplot(self, int x): self.ptr.flg_barplot = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->flg_barplot); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3865
 *     @flg_extend.setter
 *     def flg_extend(self, int x): self.ptr.flg_extend = x
 *     @property             # <<<<<<<<<<<<<<
 *     def flg_barplot(self): return self.ptr.flg_barplot
 *     @flg_barplot.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.flg_barplot.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3867
 *     @property
 *     def flg_barplot(self): return self.ptr.flg_barplot
 *     @flg_barplot.setter             # <<<<<<<<<<<<<<
 *     def flg_barplot(self, int x): self.ptr.flg_barplot = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_11flg_barplot_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_11flg_barplot_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3868, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.flg_barplot.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_11flg_barplot_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_11flg_barplot_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3868
 *     def flg_barplot(self): return self.ptr.flg_barplot
 *     @flg_barplot.setter
 *     def flg_barplot(self, int x): self.ptr.flg_barplot = x             # <<<<<<<<<<<<<<
 *     @property
 *     def flg_selection(self): return self.ptr.flg_selection
 */
  __pyx_v_self->ptr->flg_barplot = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3867
 *     @property
 *     def flg_barplot(self): return self.ptr.flg_barplot
 *     @flg_barplot.setter             # <<<<<<<<<<<<<<
 *     def flg_barplot(self, int x): self.ptr.flg_barplot = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3869
 *     @flg_barplot.setter
 *     def flg_barplot(self, int x): self.ptr.flg_barplot = x
 *     @property             # <<<<<<<<<<<<<<
 *     def flg_selection(self): return self.ptr.flg_selection
 *     @flg_selection.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_13flg_selection_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_13flg_selection_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_13flg_selection___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_13flg_selection___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3870
 *     def flg_barplot(self, int x): self.ptr.flg_barplot = x
 *     @property
 *     def flg_selection(self): return self.ptr.flg_selection             # <<<<<<<<<<<<<<
 *     @flg_selection.setter
 *     def flg_selection(self, int x): self.ptr.flg_selection = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->flg_selection); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3870, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3869
 *     @flg_barplot.setter
 *     def flg_barplot(self, int x): self.ptr.flg_barplot = x
 *     @property             # <<<<<<<<<<<<<<
 *     def flg_selection(self): return self.ptr.flg_selection
 *     @flg_selection.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.flg_selection.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3871
 *     @property
 *     def flg_selection(self): return self.ptr.flg_selection
 *     @flg_selection.setter             # <<<<<<<<<<<<<<
 *     def flg_selection(self, int x): self.ptr.flg_selection = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_13flg_selection_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_13flg_selection_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3872, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.flg_selection.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_13flg_selection_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_13flg_selection_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3872
 *     def flg_selection(self): return self.ptr.flg_selection
 *     @flg_selection.setter
 *     def flg_selection(self, int x): self.ptr.flg_selection = x             # <<<<<<<<<<<<<<
 *     @property
 *     def flg_symmetric(self): return self.ptr.flg_symmetric
 */
  __pyx_v_self->ptr->flg_selection = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3871
 *     @property
 *     def flg_selection(self): return self.ptr.flg_selection
 *     @flg_selection.setter             # <<<<<<<<<<<<<<
 *     def flg_selection(self, int x): self.ptr.flg_selection = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3873
 *     @flg_selection.setter
 *     def flg_selection(self, int x): self.ptr.flg_selection = x
 *     @property             # <<<<<<<<<<<<<<
 *     def flg_symmetric(self): return self.ptr.flg_symmetric
 *     @flg_symmetric.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_13flg_symmetric_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_13flg_symmetric_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_13flg_symmetric___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_13flg_symmetric___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3874
 *     def flg_selection(self, int x): self.ptr.flg_selection = x
 *     @property
 *     def flg_symmetric(self): return self.ptr.flg_symmetric             # <<<<<<<<<<<<<<
 *     @flg_symmetric.setter
 *     def flg_symmetric(self, int x): self.ptr.flg_symmetric = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->flg_symmetric); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3873
 *     @flg_selection.setter
 *     def flg_selection(self, int x): self.ptr.flg_selection = x
 *     @property             # <<<<<<<<<<<<<<
 *     def flg_symmetric(self): return self.ptr.flg_symmetric
 *     @flg_symmetric.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.flg_symmetric.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3875
 *     @property
 *     def flg_symmetric(self): return self.ptr.flg_symmetric
 *     @flg_symmetric.setter             # <<<<<<<<<<<<<<
 *     def flg_symmetric(self, int x): self.ptr.flg_symmetric = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_13flg_symmetric_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_13flg_symmetric_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3876, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.flg_symmetric.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_13flg_symmetric_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_13flg_symmetric_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3876
 *     def flg_symmetric(self): return self.ptr.flg_symmetric
 *     @flg_symmetric.setter
 *     def flg_symmetric(self, int x): self.ptr.flg_symmetric = x             # <<<<<<<<<<<<<<
 *     @property
 *     def linewidth(self): return self.ptr.linewidth
 */
  __pyx_v_self->ptr->flg_symmetric = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3875
 *     @property
 *     def flg_symmetric(self): return self.ptr.flg_symmetric
 *     @flg_symmetric.setter             # <<<<<<<<<<<<<<
 *     def flg_symmetric(self, int x): self.ptr.flg_symmetric = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3877
 *     @flg_symmetric.setter
 *     def flg_symmetric(self, int x): self.ptr.flg_symmetric = x
 *     @property             # <<<<<<<<<<<<<<
 *     def linewidth(self): return self.ptr.linewidth
 *     @linewidth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9linewidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9linewidth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9linewidth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9linewidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3878
 *     def flg_symmetric(self, int x): self.ptr.flg_symmetric = x
 *     @property
 *     def linewidth(self): return self.ptr.linewidth             # <<<<<<<<<<<<<<
 *     @linewidth.setter
 *     def linewidth(self, float x): self.ptr.linewidth = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->linewidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3877
 *     @flg_symmetric.setter
 *     def flg_symmetric(self, int x): self.ptr.flg_symmetric = x
 *     @property             # <<<<<<<<<<<<<<
 *     def linewidth(self): return self.ptr.linewidth
 *     @linewidth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.linewidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3879
 *     @property
 *     def linewidth(self): return self.ptr.linewidth
 *     @linewidth.setter             # <<<<<<<<<<<<<<
 *     def linewidth(self, float x): self.ptr.linewidth = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9linewidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9linewidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3880, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.linewidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9linewidth_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9linewidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3880
 *     def linewidth(self): return self.ptr.linewidth
 *     @linewidth.setter
 *     def linewidth(self, float x): self.ptr.linewidth = x             # <<<<<<<<<<<<<<
 *     @property
 *     def gridwidth(self): return self.ptr.gridwidth
 */
  __pyx_v_self->ptr->linewidth = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3879
 *     @property
 *     def linewidth(self): return self.ptr.linewidth
 *     @linewidth.setter             # <<<<<<<<<<<<<<
 *     def linewidth(self, float x): self.ptr.linewidth = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3881
 *     @linewidth.setter
 *     def linewidth(self, float x): self.ptr.linewidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def gridwidth(self): return self.ptr.gridwidth
 *     @gridwidth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9gridwidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9gridwidth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9gridwidth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9gridwidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3882
 *     def linewidth(self, float x): self.ptr.linewidth = x
 *     @property
 *     def gridwidth(self): return self.ptr.gridwidth             # <<<<<<<<<<<<<<
 *     @gridwidth.setter
 *     def gridwidth(self, float x): self.ptr.gridwidth = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->gridwidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3882, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3881
 *     @linewidth.setter
 *     def linewidth(self, float x): self.ptr.linewidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def gridwidth(self): return self.ptr.gridwidth
 *     @gridwidth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.gridwidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3883
 *     @property
 *     def gridwidth(self): return self.ptr.gridwidth
 *     @gridwidth.setter             # <<<<<<<<<<<<<<
 *     def gridwidth(self, float x): self.ptr.gridwidth = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9gridwidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9gridwidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3884, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.gridwidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9gridwidth_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9gridwidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3884
 *     def gridwidth(self): return self.ptr.gridwidth
 *     @gridwidth.setter
 *     def gridwidth(self, float x): self.ptr.gridwidth = x             # <<<<<<<<<<<<<<
 *     @property
 *     def legendoffset(self): return self.ptr.legendoffset
 */
  __pyx_v_self->ptr->gridwidth = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3883
 *     @property
 *     def gridwidth(self): return self.ptr.gridwidth
 *     @gridwidth.setter             # <<<<<<<<<<<<<<
 *     def gridwidth(self, float x): self.ptr.gridwidth = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3885
 *     @gridwidth.setter
 *     def gridwidth(self, float x): self.ptr.gridwidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def legendoffset(self): return self.ptr.legendoffset
 *     @legendoffset.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_12legendoffset_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_12legendoffset_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_12legendoffset___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_12legendoffset___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3886
 *     def gridwidth(self, float x): self.ptr.gridwidth = x
 *     @property
 *     def legendoffset(self): return self.ptr.legendoffset             # <<<<<<<<<<<<<<
 *     @legendoffset.setter
 *     def legendoffset(self, int x): self.ptr.legendoffset = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->legendoffset); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3885
 *     @gridwidth.setter
 *     def gridwidth(self, float x): self.ptr.gridwidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def legendoffset(self): return self.ptr.legendoffset
 *     @legendoffset.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.legendoffset.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3887
 *     @property
 *     def legendoffset(self): return self.ptr.legendoffset
 *     @legendoffset.setter             # <<<<<<<<<<<<<<
 *     def legendoffset(self, int x): self.ptr.legendoffset = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_12legendoffset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_12legendoffset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3888, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.legendoffset.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_12legendoffset_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_12legendoffset_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3888
 *     def legendoffset(self): return self.ptr.legendoffset
 *     @legendoffset.setter
 *     def legendoffset(self, int x): self.ptr.legendoffset = x             # <<<<<<<<<<<<<<
 *     @property
 *     def subplot(self): return self.ptr.subplot
 */
  __pyx_v_self->ptr->legendoffset = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3887
 *     @property
 *     def legendoffset(self): return self.ptr.legendoffset
 *     @legendoffset.setter             # <<<<<<<<<<<<<<
 *     def legendoffset(self, int x): self.ptr.legendoffset = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3889
 *     @legendoffset.setter
 *     def legendoffset(self, int x): self.ptr.legendoffset = x
 *     @property             # <<<<<<<<<<<<<<
 *     def subplot(self): return self.ptr.subplot
 *     @subplot.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7subplot_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7subplot_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7subplot___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7subplot___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3890
 *     def legendoffset(self, int x): self.ptr.legendoffset = x
 *     @property
 *     def subplot(self): return self.ptr.subplot             # <<<<<<<<<<<<<<
 *     @subplot.setter
 *     def subplot(self, int x): self.ptr.subplot = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->subplot); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3889
 *     @legendoffset.setter
 *     def legendoffset(self, int x): self.ptr.legendoffset = x
 *     @property             # <<<<<<<<<<<<<<
 *     def subplot(self): return self.ptr.subplot
 *     @subplot.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.subplot.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3891
 *     @property
 *     def subplot(self): return self.ptr.subplot
 *     @subplot.setter             # <<<<<<<<<<<<<<
 *     def subplot(self, int x): self.ptr.subplot = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7subplot_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7subplot_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3892, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.subplot.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7subplot_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7subplot_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3892
 *     def subplot(self): return self.ptr.subplot
 *     @subplot.setter
 *     def subplot(self, int x): self.ptr.subplot = x             # <<<<<<<<<<<<<<
 *     @property
 *     def highlightid(self): return self.ptr.highlightid
 */
  __pyx_v_self->ptr->subplot = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3891
 *     @property
 *     def subplot(self): return self.ptr.subplot
 *     @subplot.setter             # <<<<<<<<<<<<<<
 *     def subplot(self, int x): self.ptr.subplot = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3893
 *     @subplot.setter
 *     def subplot(self, int x): self.ptr.subplot = x
 *     @property             # <<<<<<<<<<<<<<
 *     def highlightid(self): return self.ptr.highlightid
 *     @highlightid.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_11highlightid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_11highlightid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_11highlightid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_11highlightid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3894
 *     def subplot(self, int x): self.ptr.subplot = x
 *     @property
 *     def highlightid(self): return self.ptr.highlightid             # <<<<<<<<<<<<<<
 *     @highlightid.setter
 *     def highlightid(self, int x): self.ptr.highlightid = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->highlightid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3893
 *     @subplot.setter
 *     def subplot(self, int x): self.ptr.subplot = x
 *     @property             # <<<<<<<<<<<<<<
 *     def highlightid(self): return self.ptr.highlightid
 *     @highlightid.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.highlightid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3895
 *     @property
 *     def highlightid(self): return self.ptr.highlightid
 *     @highlightid.setter             # <<<<<<<<<<<<<<
 *     def highlightid(self, int x): self.ptr.highlightid = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_11highlightid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_11highlightid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3896, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.highlightid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_11highlightid_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_11highlightid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3896
 *     def highlightid(self): return self.ptr.highlightid
 *     @highlightid.setter
 *     def highlightid(self, int x): self.ptr.highlightid = x             # <<<<<<<<<<<<<<
 *     @property
 *     def selection(self): return self.ptr.selection
 */
  __pyx_v_self->ptr->highlightid = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3895
 *     @property
 *     def highlightid(self): return self.ptr.highlightid
 *     @highlightid.setter             # <<<<<<<<<<<<<<
 *     def highlightid(self, int x): self.ptr.highlightid = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3897
 *     @highlightid.setter
 *     def highlightid(self, int x): self.ptr.highlightid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def selection(self): return self.ptr.selection
 *     @selection.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9selection_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9selection_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9selection___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9selection___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3898
 *     def highlightid(self, int x): self.ptr.highlightid = x
 *     @property
 *     def selection(self): return self.ptr.selection             # <<<<<<<<<<<<<<
 *     @selection.setter
 *     def selection(self, float x): self.ptr.selection = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->selection); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3897
 *     @highlightid.setter
 *     def highlightid(self, int x): self.ptr.highlightid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def selection(self): return self.ptr.selection
 *     @selection.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.selection.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3899
 *     @property
 *     def selection(self): return self.ptr.selection
 *     @selection.setter             # <<<<<<<<<<<<<<
 *     def selection(self, float x): self.ptr.selection = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9selection_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9selection_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 3900, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.selection.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9selection_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9selection_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3900
 *     def selection(self): return self.ptr.selection
 *     @selection.setter
 *     def selection(self, float x): self.ptr.selection = x             # <<<<<<<<<<<<<<
 *     @property
 *     def flg_ticklabel(self): return self._flg_ticklabel
 */
  __pyx_v_self->ptr->selection = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3899
 *     @property
 *     def selection(self): return self.ptr.selection
 *     @selection.setter             # <<<<<<<<<<<<<<
 *     def selection(self, float x): self.ptr.selection = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3901
 *     @selection.setter
 *     def selection(self, float x): self.ptr.selection = x
 *     @property             # <<<<<<<<<<<<<<
 *     def flg_ticklabel(self): return self._flg_ticklabel
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_13flg_ticklabel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_13flg_ticklabel_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_13flg_ticklabel___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_13flg_ticklabel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3902
 *     def selection(self, float x): self.ptr.selection = x
 *     @property
 *     def flg_ticklabel(self): return self._flg_ticklabel             # <<<<<<<<<<<<<<
 *     @property
 *     def gridsize(self): return self._gridsize
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_flg_ticklabel);
  __pyx_r = ((PyObject *)__pyx_v_self->_flg_ticklabel);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3901
 *     @selection.setter
 *     def selection(self, float x): self.ptr.selection = x
 *     @property             # <<<<<<<<<<<<<<
 *     def flg_ticklabel(self): return self._flg_ticklabel
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3903
 *     @property
 *     def flg_ticklabel(self): return self._flg_ticklabel
 *     @property             # <<<<<<<<<<<<<<
 *     def gridsize(self): return self._gridsize
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_8gridsize_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_8gridsize_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_8gridsize___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_8gridsize___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3904
 *     def flg_ticklabel(self): return self._flg_ticklabel
 *     @property
 *     def gridsize(self): return self._gridsize             # <<<<<<<<<<<<<<
 *     @property
 *     def gridrgb(self): return self._gridrgb
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_gridsize);
  __pyx_r = ((PyObject *)__pyx_v_self->_gridsize);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3903
 *     @property
 *     def flg_ticklabel(self): return self._flg_ticklabel
 *     @property             # <<<<<<<<<<<<<<
 *     def gridsize(self): return self._gridsize
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3905
 *     @property
 *     def gridsize(self): return self._gridsize
 *     @property             # <<<<<<<<<<<<<<
 *     def gridrgb(self): return self._gridrgb
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7gridrgb_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7gridrgb_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7gridrgb___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7gridrgb___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3906
 *     def gridsize(self): return self._gridsize
 *     @property
 *     def gridrgb(self): return self._gridrgb             # <<<<<<<<<<<<<<
 *     @property
 *     def figurergba(self): return self._figurergba
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_gridrgb);
  __pyx_r = ((PyObject *)__pyx_v_self->_gridrgb);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3905
 *     @property
 *     def gridsize(self): return self._gridsize
 *     @property             # <<<<<<<<<<<<<<
 *     def gridrgb(self): return self._gridrgb
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3907
 *     @property
 *     def gridrgb(self): return self._gridrgb
 *     @property             # <<<<<<<<<<<<<<
 *     def figurergba(self): return self._figurergba
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10figurergba_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10figurergba_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10figurergba___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10figurergba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3908
 *     def gridrgb(self): return self._gridrgb
 *     @property
 *     def figurergba(self): return self._figurergba             # <<<<<<<<<<<<<<
 *     @property
 *     def panergba(self): return self._panergba
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_figurergba);
  __pyx_r = ((PyObject *)__pyx_v_self->_figurergba);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3907
 *     @property
 *     def gridrgb(self): return self._gridrgb
 *     @property             # <<<<<<<<<<<<<<
 *     def figurergba(self): return self._figurergba
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3909
 *     @property
 *     def figurergba(self): return self._figurergba
 *     @property             # <<<<<<<<<<<<<<
 *     def panergba(self): return self._panergba
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_8panergba_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_8panergba_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_8panergba___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_8panergba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3910
 *     def figurergba(self): return self._figurergba
 *     @property
 *     def panergba(self): return self._panergba             # <<<<<<<<<<<<<<
 *     @property
 *     def legendrgba(self): return self._legendrgba
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_panergba);
  __pyx_r = ((PyObject *)__pyx_v_self->_panergba);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3909
 *     @property
 *     def figurergba(self): return self._figurergba
 *     @property             # <<<<<<<<<<<<<<
 *     def panergba(self): return self._panergba
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3911
 *     @property
 *     def panergba(self): return self._panergba
 *     @property             # <<<<<<<<<<<<<<
 *     def legendrgba(self): return self._legendrgba
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10legendrgba_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10legendrgba_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10legendrgba___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10legendrgba___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3912
 *     def panergba(self): return self._panergba
 *     @property
 *     def legendrgba(self): return self._legendrgba             # <<<<<<<<<<<<<<
 *     @property
 *     def textrgb(self): return self._textrgb
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_legendrgba);
  __pyx_r = ((PyObject *)__pyx_v_self->_legendrgba);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3911
 *     @property
 *     def panergba(self): return self._panergba
 *     @property             # <<<<<<<<<<<<<<
 *     def legendrgba(self): return self._legendrgba
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3913
 *     @property
 *     def legendrgba(self): return self._legendrgba
 *     @property             # <<<<<<<<<<<<<<
 *     def textrgb(self): return self._textrgb
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7textrgb_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7textrgb_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7textrgb___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7textrgb___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3914
 *     def legendrgba(self): return self._legendrgba
 *     @property
 *     def textrgb(self): return self._textrgb             # <<<<<<<<<<<<<<
 *     @property
 *     def xformat(self): return self._xformat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_textrgb);
  __pyx_r = ((PyObject *)__pyx_v_self->_textrgb);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3913
 *     @property
 *     def legendrgba(self): return self._legendrgba
 *     @property             # <<<<<<<<<<<<<<
 *     def textrgb(self): return self._textrgb
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3915
 *     @property
 *     def textrgb(self): return self._textrgb
 *     @property             # <<<<<<<<<<<<<<
 *     def xformat(self): return self._xformat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7xformat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7xformat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7xformat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7xformat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3916
 *     def textrgb(self): return self._textrgb
 *     @property
 *     def xformat(self): return self._xformat             # <<<<<<<<<<<<<<
 *     @property
 *     def yformat(self): return self._yformat
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_xformat);
  __pyx_r = ((PyObject *)__pyx_v_self->_xformat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3915
 *     @property
 *     def textrgb(self): return self._textrgb
 *     @property             # <<<<<<<<<<<<<<
 *     def xformat(self): return self._xformat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3917
 *     @property
 *     def xformat(self): return self._xformat
 *     @property             # <<<<<<<<<<<<<<
 *     def yformat(self): return self._yformat
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7yformat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7yformat_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7yformat___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7yformat___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3918
 *     def xformat(self): return self._xformat
 *     @property
 *     def yformat(self): return self._yformat             # <<<<<<<<<<<<<<
 *     @property
 *     def minwidth(self): return self._minwidth
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_yformat);
  __pyx_r = ((PyObject *)__pyx_v_self->_yformat);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3917
 *     @property
 *     def xformat(self): return self._xformat
 *     @property             # <<<<<<<<<<<<<<
 *     def yformat(self): return self._yformat
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3919
 *     @property
 *     def yformat(self): return self._yformat
 *     @property             # <<<<<<<<<<<<<<
 *     def minwidth(self): return self._minwidth
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_8minwidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_8minwidth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_8minwidth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_8minwidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3920
 *     def yformat(self): return self._yformat
 *     @property
 *     def minwidth(self): return self._minwidth             # <<<<<<<<<<<<<<
 *     @property
 *     def title(self): return self._title
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_minwidth);
  __pyx_r = ((PyObject *)__pyx_v_self->_minwidth);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3919
 *     @property
 *     def yformat(self): return self._yformat
 *     @property             # <<<<<<<<<<<<<<
 *     def minwidth(self): return self._minwidth
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3921
 *     @property
 *     def minwidth(self): return self._minwidth
 *     @property             # <<<<<<<<<<<<<<
 *     def title(self): return self._title
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_5title_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_5title_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_5title___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_5title___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3922
 *     def minwidth(self): return self._minwidth
 *     @property
 *     def title(self): return self._title             # <<<<<<<<<<<<<<
 *     @property
 *     def xlabel(self): return self._xlabel
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_title);
  __pyx_r = ((PyObject *)__pyx_v_self->_title);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3921
 *     @property
 *     def minwidth(self): return self._minwidth
 *     @property             # <<<<<<<<<<<<<<
 *     def title(self): return self._title
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3923
 *     @property
 *     def title(self): return self._title
 *     @property             # <<<<<<<<<<<<<<
 *     def xlabel(self): return self._xlabel
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_6xlabel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_6xlabel_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_6xlabel___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_6xlabel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3924
 *     def title(self): return self._title
 *     @property
 *     def xlabel(self): return self._xlabel             # <<<<<<<<<<<<<<
 *     @property
 *     def highlight(self): return self._highlight
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_xlabel);
  __pyx_r = ((PyObject *)__pyx_v_self->_xlabel);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3923
 *     @property
 *     def title(self): return self._title
 *     @property             # <<<<<<<<<<<<<<
 *     def xlabel(self): return self._xlabel
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3925
 *     @property
 *     def xlabel(self): return self._xlabel
 *     @property             # <<<<<<<<<<<<<<
 *     def highlight(self): return self._highlight
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9highlight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9highlight_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9highlight___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9highlight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3926
 *     def xlabel(self): return self._xlabel
 *     @property
 *     def highlight(self): return self._highlight             # <<<<<<<<<<<<<<
 *     @property
 *     def linepnt(self): return self._linepnt
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_highlight);
  __pyx_r = ((PyObject *)__pyx_v_self->_highlight);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3925
 *     @property
 *     def xlabel(self): return self._xlabel
 *     @property             # <<<<<<<<<<<<<<
 *     def highlight(self): return self._highlight
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3927
 *     @property
 *     def highlight(self): return self._highlight
 *     @property             # <<<<<<<<<<<<<<
 *     def linepnt(self): return self._linepnt
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7linepnt_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7linepnt_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7linepnt___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7linepnt___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3928
 *     def highlight(self): return self._highlight
 *     @property
 *     def linepnt(self): return self._linepnt             # <<<<<<<<<<<<<<
 *     @property
 *     def xaxispixel(self): return self._xaxispixel
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_linepnt);
  __pyx_r = ((PyObject *)__pyx_v_self->_linepnt);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3927
 *     @property
 *     def highlight(self): return self._highlight
 *     @property             # <<<<<<<<<<<<<<
 *     def linepnt(self): return self._linepnt
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3929
 *     @property
 *     def linepnt(self): return self._linepnt
 *     @property             # <<<<<<<<<<<<<<
 *     def xaxispixel(self): return self._xaxispixel
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10xaxispixel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10xaxispixel_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10xaxispixel___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10xaxispixel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3930
 *     def linepnt(self): return self._linepnt
 *     @property
 *     def xaxispixel(self): return self._xaxispixel             # <<<<<<<<<<<<<<
 *     @property
 *     def yaxispixel(self): return self._yaxispixel
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_xaxispixel);
  __pyx_r = ((PyObject *)__pyx_v_self->_xaxispixel);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3929
 *     @property
 *     def linepnt(self): return self._linepnt
 *     @property             # <<<<<<<<<<<<<<
 *     def xaxispixel(self): return self._xaxispixel
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3931
 *     @property
 *     def xaxispixel(self): return self._xaxispixel
 *     @property             # <<<<<<<<<<<<<<
 *     def yaxispixel(self): return self._yaxispixel
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10yaxispixel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10yaxispixel_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10yaxispixel___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_10yaxispixel___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3932
 *     def xaxispixel(self): return self._xaxispixel
 *     @property
 *     def yaxispixel(self): return self._yaxispixel             # <<<<<<<<<<<<<<
 *     @property
 *     def xaxisdata(self): return self._xaxisdata
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_yaxispixel);
  __pyx_r = ((PyObject *)__pyx_v_self->_yaxispixel);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3931
 *     @property
 *     def xaxispixel(self): return self._xaxispixel
 *     @property             # <<<<<<<<<<<<<<
 *     def yaxispixel(self): return self._yaxispixel
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3933
 *     @property
 *     def yaxispixel(self): return self._yaxispixel
 *     @property             # <<<<<<<<<<<<<<
 *     def xaxisdata(self): return self._xaxisdata
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9xaxisdata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9xaxisdata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9xaxisdata___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9xaxisdata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3934
 *     def yaxispixel(self): return self._yaxispixel
 *     @property
 *     def xaxisdata(self): return self._xaxisdata             # <<<<<<<<<<<<<<
 *     @property
 *     def yaxisdata(self): return self._yaxisdata
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_xaxisdata);
  __pyx_r = ((PyObject *)__pyx_v_self->_xaxisdata);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3933
 *     @property
 *     def yaxispixel(self): return self._yaxispixel
 *     @property             # <<<<<<<<<<<<<<
 *     def xaxisdata(self): return self._xaxisdata
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3935
 *     @property
 *     def xaxisdata(self): return self._xaxisdata
 *     @property             # <<<<<<<<<<<<<<
 *     def yaxisdata(self): return self._yaxisdata
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9yaxisdata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9yaxisdata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9yaxisdata___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_9yaxisdata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3936
 *     def xaxisdata(self): return self._xaxisdata
 *     @property
 *     def yaxisdata(self): return self._yaxisdata             # <<<<<<<<<<<<<<
 *     @property
 *     def linergb(self): return self._linergb
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_yaxisdata);
  __pyx_r = ((PyObject *)__pyx_v_self->_yaxisdata);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3935
 *     @property
 *     def xaxisdata(self): return self._xaxisdata
 *     @property             # <<<<<<<<<<<<<<
 *     def yaxisdata(self): return self._yaxisdata
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3937
 *     @property
 *     def yaxisdata(self): return self._yaxisdata
 *     @property             # <<<<<<<<<<<<<<
 *     def linergb(self): return self._linergb
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7linergb_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7linergb_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7linergb___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_7linergb___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3938
 *     def yaxisdata(self): return self._yaxisdata
 *     @property
 *     def linergb(self): return self._linergb             # <<<<<<<<<<<<<<
 *     @property
 *     def range(self): return self._range
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_linergb);
  __pyx_r = ((PyObject *)__pyx_v_self->_linergb);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3937
 *     @property
 *     def yaxisdata(self): return self._yaxisdata
 *     @property             # <<<<<<<<<<<<<<
 *     def linergb(self): return self._linergb
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3939
 *     @property
 *     def linergb(self): return self._linergb
 *     @property             # <<<<<<<<<<<<<<
 *     def range(self): return self._range
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_5range_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_5range_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_5range___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_5range___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3940
 *     def linergb(self): return self._linergb
 *     @property
 *     def range(self): return self._range             # <<<<<<<<<<<<<<
 *     @property
 *     def linename(self): return self._linename
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_range);
  __pyx_r = ((PyObject *)__pyx_v_self->_range);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3939
 *     @property
 *     def linergb(self): return self._linergb
 *     @property             # <<<<<<<<<<<<<<
 *     def range(self): return self._range
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3941
 *     @property
 *     def range(self): return self._range
 *     @property             # <<<<<<<<<<<<<<
 *     def linename(self): return self._linename
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_8linename_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_8linename_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_8linename___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_8linename___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3942
 *     def range(self): return self._range
 *     @property
 *     def linename(self): return self._linename             # <<<<<<<<<<<<<<
 *     @property
 *     def linedata(self): return self._linedata
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_linename);
  __pyx_r = ((PyObject *)__pyx_v_self->_linename);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3941
 *     @property
 *     def range(self): return self._range
 *     @property             # <<<<<<<<<<<<<<
 *     def linename(self): return self._linename
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3943
 *     @property
 *     def linename(self): return self._linename
 *     @property             # <<<<<<<<<<<<<<
 *     def linedata(self): return self._linedata
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_8linedata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_8linedata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_8linedata___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_8linedata___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3944
 *     def linename(self): return self._linename
 *     @property
 *     def linedata(self): return self._linedata             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjvFigure WrapMjvFigure(mjvFigure* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_linedata);
  __pyx_r = ((PyObject *)__pyx_v_self->_linedata);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3943
 *     @property
 *     def linename(self): return self._linename
 *     @property             # <<<<<<<<<<<<<<
 *     def linedata(self): return self._linedata
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11PyMjvFigure_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11PyMjvFigure_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjvFigure_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjvFigure.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3946
 *     def linedata(self): return self._linedata
 * 
 * cdef PyMjvFigure WrapMjvFigure(mjvFigure* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvFigure o = PyMjvFigure()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_f_9mujoco_py_4cymj_WrapMjvFigure(mjvFigure *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjvFigure", 1);

  /* "mujoco_py/generated/wrappers.pxi":3947
 * 
 * cdef PyMjvFigure WrapMjvFigure(mjvFigure* p):
 *     cdef PyMjvFigure o = PyMjvFigure()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjvFigure)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3948
 * cdef PyMjvFigure WrapMjvFigure(mjvFigure* p):
 *     cdef PyMjvFigure o = PyMjvFigure()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvFigure *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":3949
 *     cdef PyMjvFigure o = PyMjvFigure()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjrRect(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3946
 *     def linedata(self): return self._linedata
 * 
 * cdef PyMjvFigure WrapMjvFigure(mjvFigure* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjvFigure o = PyMjvFigure()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjvFigure", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3956
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = <mjrRect*> PyMem_Malloc(sizeof(mjrRect))
 *         if not self.ptr:
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjrRect___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjrRect___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "mujoco_py/generated/wrappers.pxi":3957
 * 
 *     def __cinit__(self):
 *         self.ptr = <mjrRect*> PyMem_Malloc(sizeof(mjrRect))             # <<<<<<<<<<<<<<
 *         if not self.ptr:
 *             raise MemoryError()
 */
  __pyx_v_self->ptr = ((mjrRect *)PyMem_Malloc((sizeof(mjrRect))));

  /* "mujoco_py/generated/wrappers.pxi":3958
 *     def __cinit__(self):
 *         self.ptr = <mjrRect*> PyMem_Malloc(sizeof(mjrRect))
 *         if not self.ptr:             # <<<<<<<<<<<<<<
 *             raise MemoryError()
 * 
 */
  __pyx_t_1 = (!(__pyx_v_self->ptr != 0));
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/generated/wrappers.pxi":3959
 *         self.ptr = <mjrRect*> PyMem_Malloc(sizeof(mjrRect))
 *         if not self.ptr:
 *             raise MemoryError()             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
    PyErr_NoMemory(); __PYX_ERR(4, 3959, __pyx_L1_error)

    /* "mujoco_py/generated/wrappers.pxi":3958
 *     def __cinit__(self):
 *         self.ptr = <mjrRect*> PyMem_Malloc(sizeof(mjrRect))
 *         if not self.ptr:             # <<<<<<<<<<<<<<
 *             raise MemoryError()
 * 
 */
  }

  /* "mujoco_py/generated/wrappers.pxi":3956
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = <mjrRect*> PyMem_Malloc(sizeof(mjrRect))
 *         if not self.ptr:
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrRect.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3961
 *             raise MemoryError()
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         PyMem_Free(self.ptr)
 * 
 */

/* Python wrapper */
static void __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_2__dealloc__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_2__dealloc__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self) {

  /* "mujoco_py/generated/wrappers.pxi":3962
 * 
 *     def __dealloc__(self):
 *         PyMem_Free(self.ptr)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  PyMem_Free(__pyx_v_self->ptr);

  /* "mujoco_py/generated/wrappers.pxi":3961
 *             raise MemoryError()
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         PyMem_Free(self.ptr)
 * 
 */

  /* function exit code */
}

/* "mujoco_py/generated/wrappers.pxi":3965
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjrRect_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3966
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjrRect* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3966, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3965
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrRect.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3968
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjrRect* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_9PyMjrRect__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self, mjrRect *__pyx_v_p) {

  /* "mujoco_py/generated/wrappers.pxi":3970
 *     cdef void _set(self, mjrRect* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":3968
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjrRect* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
}

/* "mujoco_py/generated/wrappers.pxi":3974
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def left(self): return self.ptr.left
 *     @left.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_4left_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_4left_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_4left___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjrRect_4left___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3975
 * 
 *     @property
 *     def left(self): return self.ptr.left             # <<<<<<<<<<<<<<
 *     @left.setter
 *     def left(self, int x): self.ptr.left = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->left); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3974
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def left(self): return self.ptr.left
 *     @left.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrRect.left.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3976
 *     @property
 *     def left(self): return self.ptr.left
 *     @left.setter             # <<<<<<<<<<<<<<
 *     def left(self, int x): self.ptr.left = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_4left_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_4left_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3977, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrRect.left.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_4left_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_4left_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3977
 *     def left(self): return self.ptr.left
 *     @left.setter
 *     def left(self, int x): self.ptr.left = x             # <<<<<<<<<<<<<<
 *     @property
 *     def bottom(self): return self.ptr.bottom
 */
  __pyx_v_self->ptr->left = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3976
 *     @property
 *     def left(self): return self.ptr.left
 *     @left.setter             # <<<<<<<<<<<<<<
 *     def left(self, int x): self.ptr.left = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3978
 *     @left.setter
 *     def left(self, int x): self.ptr.left = x
 *     @property             # <<<<<<<<<<<<<<
 *     def bottom(self): return self.ptr.bottom
 *     @bottom.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_6bottom_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_6bottom_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_6bottom___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjrRect_6bottom___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3979
 *     def left(self, int x): self.ptr.left = x
 *     @property
 *     def bottom(self): return self.ptr.bottom             # <<<<<<<<<<<<<<
 *     @bottom.setter
 *     def bottom(self, int x): self.ptr.bottom = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->bottom); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3978
 *     @left.setter
 *     def left(self, int x): self.ptr.left = x
 *     @property             # <<<<<<<<<<<<<<
 *     def bottom(self): return self.ptr.bottom
 *     @bottom.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrRect.bottom.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3980
 *     @property
 *     def bottom(self): return self.ptr.bottom
 *     @bottom.setter             # <<<<<<<<<<<<<<
 *     def bottom(self, int x): self.ptr.bottom = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_6bottom_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_6bottom_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3981, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrRect.bottom.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_6bottom_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_6bottom_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3981
 *     def bottom(self): return self.ptr.bottom
 *     @bottom.setter
 *     def bottom(self, int x): self.ptr.bottom = x             # <<<<<<<<<<<<<<
 *     @property
 *     def width(self): return self.ptr.width
 */
  __pyx_v_self->ptr->bottom = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3980
 *     @property
 *     def bottom(self): return self.ptr.bottom
 *     @bottom.setter             # <<<<<<<<<<<<<<
 *     def bottom(self, int x): self.ptr.bottom = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3982
 *     @bottom.setter
 *     def bottom(self, int x): self.ptr.bottom = x
 *     @property             # <<<<<<<<<<<<<<
 *     def width(self): return self.ptr.width
 *     @width.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_5width_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_5width_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_5width___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjrRect_5width___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3983
 *     def bottom(self, int x): self.ptr.bottom = x
 *     @property
 *     def width(self): return self.ptr.width             # <<<<<<<<<<<<<<
 *     @width.setter
 *     def width(self, int x): self.ptr.width = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->width); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3983, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3982
 *     @bottom.setter
 *     def bottom(self, int x): self.ptr.bottom = x
 *     @property             # <<<<<<<<<<<<<<
 *     def width(self): return self.ptr.width
 *     @width.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrRect.width.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3984
 *     @property
 *     def width(self): return self.ptr.width
 *     @width.setter             # <<<<<<<<<<<<<<
 *     def width(self, int x): self.ptr.width = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_5width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_5width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3985, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrRect.width.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_5width_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_5width_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3985
 *     def width(self): return self.ptr.width
 *     @width.setter
 *     def width(self, int x): self.ptr.width = x             # <<<<<<<<<<<<<<
 *     @property
 *     def height(self): return self.ptr.height
 */
  __pyx_v_self->ptr->width = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3984
 *     @property
 *     def width(self): return self.ptr.width
 *     @width.setter             # <<<<<<<<<<<<<<
 *     def width(self, int x): self.ptr.width = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3986
 *     @width.setter
 *     def width(self, int x): self.ptr.width = x
 *     @property             # <<<<<<<<<<<<<<
 *     def height(self): return self.ptr.height
 *     @height.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_6height_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_6height_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_6height___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjrRect_6height___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":3987
 *     def width(self, int x): self.ptr.width = x
 *     @property
 *     def height(self): return self.ptr.height             # <<<<<<<<<<<<<<
 *     @height.setter
 *     def height(self, int x): self.ptr.height = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->height); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3986
 *     @width.setter
 *     def width(self, int x): self.ptr.width = x
 *     @property             # <<<<<<<<<<<<<<
 *     def height(self): return self.ptr.height
 *     @height.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrRect.height.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3988
 *     @property
 *     def height(self): return self.ptr.height
 *     @height.setter             # <<<<<<<<<<<<<<
 *     def height(self, int x): self.ptr.height = x
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_6height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_6height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3989, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrRect.height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_6height_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_6height_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":3989
 *     def height(self): return self.ptr.height
 *     @height.setter
 *     def height(self, int x): self.ptr.height = x             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjrRect WrapMjrRect(mjrRect* p):
 */
  __pyx_v_self->ptr->height = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":3988
 *     @property
 *     def height(self): return self.ptr.height
 *     @height.setter             # <<<<<<<<<<<<<<
 *     def height(self, int x): self.ptr.height = x
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjrRect_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_4__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjrRect_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrRect.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjrRect_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrRect.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjrRect_6__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjrRect_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrRect.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":3991
 *     def height(self, int x): self.ptr.height = x
 * 
 * cdef PyMjrRect WrapMjrRect(mjrRect* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjrRect o = PyMjrRect()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_f_9mujoco_py_4cymj_WrapMjrRect(mjrRect *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjrRect", 1);

  /* "mujoco_py/generated/wrappers.pxi":3992
 * 
 * cdef PyMjrRect WrapMjrRect(mjrRect* p):
 *     cdef PyMjrRect o = PyMjrRect()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjrRect)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":3993
 * cdef PyMjrRect WrapMjrRect(mjrRect* p):
 *     cdef PyMjrRect o = PyMjrRect()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjrRect *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":3994
 *     cdef PyMjrRect o = PyMjrRect()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjrContext(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":3991
 *     def height(self, int x): self.ptr.height = x
 * 
 * cdef PyMjrRect WrapMjrRect(mjrRect* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjrRect o = PyMjrRect()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjrRect", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4013
 *     cdef np.ndarray _charWidthBig
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4014
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4013
 *     cdef np.ndarray _charWidthBig
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4017
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4018
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjrContext* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4017
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4020
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjrContext* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_12PyMjrContext__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, mjrContext *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":4022
 *     cdef void _set(self, mjrContext* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":4025
 * 
 * 
 *         self._fogRGBA = _wrap_float_1d(&p.fogRGBA[0], 4)             # <<<<<<<<<<<<<<
 *         self._auxWidth = _wrap_int_1d(&p.auxWidth[0], 10)
 *         self._auxHeight = _wrap_int_1d(&p.auxHeight[0], 10)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->fogRGBA[0])), 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4025, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_fogRGBA);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_fogRGBA);
  __pyx_v_self->_fogRGBA = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4026
 * 
 *         self._fogRGBA = _wrap_float_1d(&p.fogRGBA[0], 4)
 *         self._auxWidth = _wrap_int_1d(&p.auxWidth[0], 10)             # <<<<<<<<<<<<<<
 *         self._auxHeight = _wrap_int_1d(&p.auxHeight[0], 10)
 *         self._auxSamples = _wrap_int_1d(&p.auxSamples[0], 10)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d((&(__pyx_v_p->auxWidth[0])), 10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_auxWidth);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_auxWidth);
  __pyx_v_self->_auxWidth = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4027
 *         self._fogRGBA = _wrap_float_1d(&p.fogRGBA[0], 4)
 *         self._auxWidth = _wrap_int_1d(&p.auxWidth[0], 10)
 *         self._auxHeight = _wrap_int_1d(&p.auxHeight[0], 10)             # <<<<<<<<<<<<<<
 *         self._auxSamples = _wrap_int_1d(&p.auxSamples[0], 10)
 *         self._auxFBO = _wrap_unsigned_int_1d(&p.auxFBO[0], 10)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d((&(__pyx_v_p->auxHeight[0])), 10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_auxHeight);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_auxHeight);
  __pyx_v_self->_auxHeight = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4028
 *         self._auxWidth = _wrap_int_1d(&p.auxWidth[0], 10)
 *         self._auxHeight = _wrap_int_1d(&p.auxHeight[0], 10)
 *         self._auxSamples = _wrap_int_1d(&p.auxSamples[0], 10)             # <<<<<<<<<<<<<<
 *         self._auxFBO = _wrap_unsigned_int_1d(&p.auxFBO[0], 10)
 *         self._auxFBO_r = _wrap_unsigned_int_1d(&p.auxFBO_r[0], 10)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d((&(__pyx_v_p->auxSamples[0])), 10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_auxSamples);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_auxSamples);
  __pyx_v_self->_auxSamples = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4029
 *         self._auxHeight = _wrap_int_1d(&p.auxHeight[0], 10)
 *         self._auxSamples = _wrap_int_1d(&p.auxSamples[0], 10)
 *         self._auxFBO = _wrap_unsigned_int_1d(&p.auxFBO[0], 10)             # <<<<<<<<<<<<<<
 *         self._auxFBO_r = _wrap_unsigned_int_1d(&p.auxFBO_r[0], 10)
 *         self._auxColor = _wrap_unsigned_int_1d(&p.auxColor[0], 10)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_unsigned_int_1d((&(__pyx_v_p->auxFBO[0])), 10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_auxFBO);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_auxFBO);
  __pyx_v_self->_auxFBO = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4030
 *         self._auxSamples = _wrap_int_1d(&p.auxSamples[0], 10)
 *         self._auxFBO = _wrap_unsigned_int_1d(&p.auxFBO[0], 10)
 *         self._auxFBO_r = _wrap_unsigned_int_1d(&p.auxFBO_r[0], 10)             # <<<<<<<<<<<<<<
 *         self._auxColor = _wrap_unsigned_int_1d(&p.auxColor[0], 10)
 *         self._auxColor_r = _wrap_unsigned_int_1d(&p.auxColor_r[0], 10)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_unsigned_int_1d((&(__pyx_v_p->auxFBO_r[0])), 10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4030, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_auxFBO_r);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_auxFBO_r);
  __pyx_v_self->_auxFBO_r = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4031
 *         self._auxFBO = _wrap_unsigned_int_1d(&p.auxFBO[0], 10)
 *         self._auxFBO_r = _wrap_unsigned_int_1d(&p.auxFBO_r[0], 10)
 *         self._auxColor = _wrap_unsigned_int_1d(&p.auxColor[0], 10)             # <<<<<<<<<<<<<<
 *         self._auxColor_r = _wrap_unsigned_int_1d(&p.auxColor_r[0], 10)
 *         self._textureType = _wrap_int_1d(&p.textureType[0], 100)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_unsigned_int_1d((&(__pyx_v_p->auxColor[0])), 10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_auxColor);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_auxColor);
  __pyx_v_self->_auxColor = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4032
 *         self._auxFBO_r = _wrap_unsigned_int_1d(&p.auxFBO_r[0], 10)
 *         self._auxColor = _wrap_unsigned_int_1d(&p.auxColor[0], 10)
 *         self._auxColor_r = _wrap_unsigned_int_1d(&p.auxColor_r[0], 10)             # <<<<<<<<<<<<<<
 *         self._textureType = _wrap_int_1d(&p.textureType[0], 100)
 *         self._texture = _wrap_unsigned_int_1d(&p.texture[0], 100)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_unsigned_int_1d((&(__pyx_v_p->auxColor_r[0])), 10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4032, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_auxColor_r);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_auxColor_r);
  __pyx_v_self->_auxColor_r = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4033
 *         self._auxColor = _wrap_unsigned_int_1d(&p.auxColor[0], 10)
 *         self._auxColor_r = _wrap_unsigned_int_1d(&p.auxColor_r[0], 10)
 *         self._textureType = _wrap_int_1d(&p.textureType[0], 100)             # <<<<<<<<<<<<<<
 *         self._texture = _wrap_unsigned_int_1d(&p.texture[0], 100)
 *         self._charWidth = _wrap_int_1d(&p.charWidth[0], 127)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d((&(__pyx_v_p->textureType[0])), 0x64)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4033, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_textureType);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_textureType);
  __pyx_v_self->_textureType = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4034
 *         self._auxColor_r = _wrap_unsigned_int_1d(&p.auxColor_r[0], 10)
 *         self._textureType = _wrap_int_1d(&p.textureType[0], 100)
 *         self._texture = _wrap_unsigned_int_1d(&p.texture[0], 100)             # <<<<<<<<<<<<<<
 *         self._charWidth = _wrap_int_1d(&p.charWidth[0], 127)
 *         self._charWidthBig = _wrap_int_1d(&p.charWidthBig[0], 127)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_unsigned_int_1d((&(__pyx_v_p->texture[0])), 0x64)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_texture);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_texture);
  __pyx_v_self->_texture = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4035
 *         self._textureType = _wrap_int_1d(&p.textureType[0], 100)
 *         self._texture = _wrap_unsigned_int_1d(&p.texture[0], 100)
 *         self._charWidth = _wrap_int_1d(&p.charWidth[0], 127)             # <<<<<<<<<<<<<<
 *         self._charWidthBig = _wrap_int_1d(&p.charWidthBig[0], 127)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d((&(__pyx_v_p->charWidth[0])), 0x7F)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4035, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_charWidth);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_charWidth);
  __pyx_v_self->_charWidth = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4036
 *         self._texture = _wrap_unsigned_int_1d(&p.texture[0], 100)
 *         self._charWidth = _wrap_int_1d(&p.charWidth[0], 127)
 *         self._charWidthBig = _wrap_int_1d(&p.charWidthBig[0], 127)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_int_1d((&(__pyx_v_p->charWidthBig[0])), 0x7F)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4036, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_charWidthBig);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_charWidthBig);
  __pyx_v_self->_charWidthBig = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4020
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjrContext* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjrContext._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":4038
 *         self._charWidthBig = _wrap_int_1d(&p.charWidthBig[0], 127)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def lineWidth(self): return self.ptr.lineWidth
 *     @lineWidth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9lineWidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9lineWidth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9lineWidth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9lineWidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4039
 * 
 *     @property
 *     def lineWidth(self): return self.ptr.lineWidth             # <<<<<<<<<<<<<<
 *     @lineWidth.setter
 *     def lineWidth(self, float x): self.ptr.lineWidth = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->lineWidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4039, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4038
 *         self._charWidthBig = _wrap_int_1d(&p.charWidthBig[0], 127)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def lineWidth(self): return self.ptr.lineWidth
 *     @lineWidth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.lineWidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4040
 *     @property
 *     def lineWidth(self): return self.ptr.lineWidth
 *     @lineWidth.setter             # <<<<<<<<<<<<<<
 *     def lineWidth(self, float x): self.ptr.lineWidth = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9lineWidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9lineWidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 4041, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.lineWidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9lineWidth_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9lineWidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4041
 *     def lineWidth(self): return self.ptr.lineWidth
 *     @lineWidth.setter
 *     def lineWidth(self, float x): self.ptr.lineWidth = x             # <<<<<<<<<<<<<<
 *     @property
 *     def shadowClip(self): return self.ptr.shadowClip
 */
  __pyx_v_self->ptr->lineWidth = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4040
 *     @property
 *     def lineWidth(self): return self.ptr.lineWidth
 *     @lineWidth.setter             # <<<<<<<<<<<<<<
 *     def lineWidth(self, float x): self.ptr.lineWidth = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4042
 *     @lineWidth.setter
 *     def lineWidth(self, float x): self.ptr.lineWidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowClip(self): return self.ptr.shadowClip
 *     @shadowClip.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10shadowClip_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10shadowClip_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10shadowClip___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10shadowClip___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4043
 *     def lineWidth(self, float x): self.ptr.lineWidth = x
 *     @property
 *     def shadowClip(self): return self.ptr.shadowClip             # <<<<<<<<<<<<<<
 *     @shadowClip.setter
 *     def shadowClip(self, float x): self.ptr.shadowClip = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->shadowClip); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4042
 *     @lineWidth.setter
 *     def lineWidth(self, float x): self.ptr.lineWidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowClip(self): return self.ptr.shadowClip
 *     @shadowClip.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.shadowClip.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4044
 *     @property
 *     def shadowClip(self): return self.ptr.shadowClip
 *     @shadowClip.setter             # <<<<<<<<<<<<<<
 *     def shadowClip(self, float x): self.ptr.shadowClip = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10shadowClip_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10shadowClip_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 4045, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.shadowClip.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10shadowClip_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10shadowClip_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4045
 *     def shadowClip(self): return self.ptr.shadowClip
 *     @shadowClip.setter
 *     def shadowClip(self, float x): self.ptr.shadowClip = x             # <<<<<<<<<<<<<<
 *     @property
 *     def shadowScale(self): return self.ptr.shadowScale
 */
  __pyx_v_self->ptr->shadowClip = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4044
 *     @property
 *     def shadowClip(self): return self.ptr.shadowClip
 *     @shadowClip.setter             # <<<<<<<<<<<<<<
 *     def shadowClip(self, float x): self.ptr.shadowClip = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4046
 *     @shadowClip.setter
 *     def shadowClip(self, float x): self.ptr.shadowClip = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowScale(self): return self.ptr.shadowScale
 *     @shadowScale.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11shadowScale_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11shadowScale_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11shadowScale___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11shadowScale___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4047
 *     def shadowClip(self, float x): self.ptr.shadowClip = x
 *     @property
 *     def shadowScale(self): return self.ptr.shadowScale             # <<<<<<<<<<<<<<
 *     @shadowScale.setter
 *     def shadowScale(self, float x): self.ptr.shadowScale = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->shadowScale); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4046
 *     @shadowClip.setter
 *     def shadowClip(self, float x): self.ptr.shadowClip = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowScale(self): return self.ptr.shadowScale
 *     @shadowScale.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.shadowScale.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4048
 *     @property
 *     def shadowScale(self): return self.ptr.shadowScale
 *     @shadowScale.setter             # <<<<<<<<<<<<<<
 *     def shadowScale(self, float x): self.ptr.shadowScale = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11shadowScale_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11shadowScale_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 4049, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.shadowScale.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11shadowScale_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11shadowScale_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4049
 *     def shadowScale(self): return self.ptr.shadowScale
 *     @shadowScale.setter
 *     def shadowScale(self, float x): self.ptr.shadowScale = x             # <<<<<<<<<<<<<<
 *     @property
 *     def fogStart(self): return self.ptr.fogStart
 */
  __pyx_v_self->ptr->shadowScale = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4048
 *     @property
 *     def shadowScale(self): return self.ptr.shadowScale
 *     @shadowScale.setter             # <<<<<<<<<<<<<<
 *     def shadowScale(self, float x): self.ptr.shadowScale = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4050
 *     @shadowScale.setter
 *     def shadowScale(self, float x): self.ptr.shadowScale = x
 *     @property             # <<<<<<<<<<<<<<
 *     def fogStart(self): return self.ptr.fogStart
 *     @fogStart.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8fogStart_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8fogStart_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8fogStart___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8fogStart___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4051
 *     def shadowScale(self, float x): self.ptr.shadowScale = x
 *     @property
 *     def fogStart(self): return self.ptr.fogStart             # <<<<<<<<<<<<<<
 *     @fogStart.setter
 *     def fogStart(self, float x): self.ptr.fogStart = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->fogStart); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4051, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4050
 *     @shadowScale.setter
 *     def shadowScale(self, float x): self.ptr.shadowScale = x
 *     @property             # <<<<<<<<<<<<<<
 *     def fogStart(self): return self.ptr.fogStart
 *     @fogStart.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.fogStart.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4052
 *     @property
 *     def fogStart(self): return self.ptr.fogStart
 *     @fogStart.setter             # <<<<<<<<<<<<<<
 *     def fogStart(self, float x): self.ptr.fogStart = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8fogStart_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8fogStart_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 4053, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.fogStart.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8fogStart_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8fogStart_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4053
 *     def fogStart(self): return self.ptr.fogStart
 *     @fogStart.setter
 *     def fogStart(self, float x): self.ptr.fogStart = x             # <<<<<<<<<<<<<<
 *     @property
 *     def fogEnd(self): return self.ptr.fogEnd
 */
  __pyx_v_self->ptr->fogStart = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4052
 *     @property
 *     def fogStart(self): return self.ptr.fogStart
 *     @fogStart.setter             # <<<<<<<<<<<<<<
 *     def fogStart(self, float x): self.ptr.fogStart = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4054
 *     @fogStart.setter
 *     def fogStart(self, float x): self.ptr.fogStart = x
 *     @property             # <<<<<<<<<<<<<<
 *     def fogEnd(self): return self.ptr.fogEnd
 *     @fogEnd.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_6fogEnd_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_6fogEnd_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_6fogEnd___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_6fogEnd___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4055
 *     def fogStart(self, float x): self.ptr.fogStart = x
 *     @property
 *     def fogEnd(self): return self.ptr.fogEnd             # <<<<<<<<<<<<<<
 *     @fogEnd.setter
 *     def fogEnd(self, float x): self.ptr.fogEnd = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ptr->fogEnd); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4055, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4054
 *     @fogStart.setter
 *     def fogStart(self, float x): self.ptr.fogStart = x
 *     @property             # <<<<<<<<<<<<<<
 *     def fogEnd(self): return self.ptr.fogEnd
 *     @fogEnd.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.fogEnd.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4056
 *     @property
 *     def fogEnd(self): return self.ptr.fogEnd
 *     @fogEnd.setter             # <<<<<<<<<<<<<<
 *     def fogEnd(self, float x): self.ptr.fogEnd = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_6fogEnd_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_6fogEnd_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  float __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __pyx_PyFloat_AsFloat(__pyx_arg_x); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 4057, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.fogEnd.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_6fogEnd_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((float)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_6fogEnd_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, float __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4057
 *     def fogEnd(self): return self.ptr.fogEnd
 *     @fogEnd.setter
 *     def fogEnd(self, float x): self.ptr.fogEnd = x             # <<<<<<<<<<<<<<
 *     @property
 *     def shadowSize(self): return self.ptr.shadowSize
 */
  __pyx_v_self->ptr->fogEnd = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4056
 *     @property
 *     def fogEnd(self): return self.ptr.fogEnd
 *     @fogEnd.setter             # <<<<<<<<<<<<<<
 *     def fogEnd(self, float x): self.ptr.fogEnd = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4058
 *     @fogEnd.setter
 *     def fogEnd(self, float x): self.ptr.fogEnd = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowSize(self): return self.ptr.shadowSize
 *     @shadowSize.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10shadowSize_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10shadowSize_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10shadowSize___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10shadowSize___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4059
 *     def fogEnd(self, float x): self.ptr.fogEnd = x
 *     @property
 *     def shadowSize(self): return self.ptr.shadowSize             # <<<<<<<<<<<<<<
 *     @shadowSize.setter
 *     def shadowSize(self, int x): self.ptr.shadowSize = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->shadowSize); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4058
 *     @fogEnd.setter
 *     def fogEnd(self, float x): self.ptr.fogEnd = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowSize(self): return self.ptr.shadowSize
 *     @shadowSize.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.shadowSize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4060
 *     @property
 *     def shadowSize(self): return self.ptr.shadowSize
 *     @shadowSize.setter             # <<<<<<<<<<<<<<
 *     def shadowSize(self, int x): self.ptr.shadowSize = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10shadowSize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10shadowSize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4061, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.shadowSize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10shadowSize_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10shadowSize_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4061
 *     def shadowSize(self): return self.ptr.shadowSize
 *     @shadowSize.setter
 *     def shadowSize(self, int x): self.ptr.shadowSize = x             # <<<<<<<<<<<<<<
 *     @property
 *     def offWidth(self): return self.ptr.offWidth
 */
  __pyx_v_self->ptr->shadowSize = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4060
 *     @property
 *     def shadowSize(self): return self.ptr.shadowSize
 *     @shadowSize.setter             # <<<<<<<<<<<<<<
 *     def shadowSize(self, int x): self.ptr.shadowSize = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4062
 *     @shadowSize.setter
 *     def shadowSize(self, int x): self.ptr.shadowSize = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offWidth(self): return self.ptr.offWidth
 *     @offWidth.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offWidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offWidth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offWidth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offWidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4063
 *     def shadowSize(self, int x): self.ptr.shadowSize = x
 *     @property
 *     def offWidth(self): return self.ptr.offWidth             # <<<<<<<<<<<<<<
 *     @offWidth.setter
 *     def offWidth(self, int x): self.ptr.offWidth = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->offWidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4063, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4062
 *     @shadowSize.setter
 *     def shadowSize(self, int x): self.ptr.shadowSize = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offWidth(self): return self.ptr.offWidth
 *     @offWidth.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offWidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4064
 *     @property
 *     def offWidth(self): return self.ptr.offWidth
 *     @offWidth.setter             # <<<<<<<<<<<<<<
 *     def offWidth(self, int x): self.ptr.offWidth = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offWidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offWidth_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4065, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offWidth.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offWidth_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offWidth_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4065
 *     def offWidth(self): return self.ptr.offWidth
 *     @offWidth.setter
 *     def offWidth(self, int x): self.ptr.offWidth = x             # <<<<<<<<<<<<<<
 *     @property
 *     def offHeight(self): return self.ptr.offHeight
 */
  __pyx_v_self->ptr->offWidth = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4064
 *     @property
 *     def offWidth(self): return self.ptr.offWidth
 *     @offWidth.setter             # <<<<<<<<<<<<<<
 *     def offWidth(self, int x): self.ptr.offWidth = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4066
 *     @offWidth.setter
 *     def offWidth(self, int x): self.ptr.offWidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offHeight(self): return self.ptr.offHeight
 *     @offHeight.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9offHeight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9offHeight_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9offHeight___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9offHeight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4067
 *     def offWidth(self, int x): self.ptr.offWidth = x
 *     @property
 *     def offHeight(self): return self.ptr.offHeight             # <<<<<<<<<<<<<<
 *     @offHeight.setter
 *     def offHeight(self, int x): self.ptr.offHeight = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->offHeight); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4067, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4066
 *     @offWidth.setter
 *     def offWidth(self, int x): self.ptr.offWidth = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offHeight(self): return self.ptr.offHeight
 *     @offHeight.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offHeight.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4068
 *     @property
 *     def offHeight(self): return self.ptr.offHeight
 *     @offHeight.setter             # <<<<<<<<<<<<<<
 *     def offHeight(self, int x): self.ptr.offHeight = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9offHeight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9offHeight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4069, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offHeight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9offHeight_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9offHeight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4069
 *     def offHeight(self): return self.ptr.offHeight
 *     @offHeight.setter
 *     def offHeight(self, int x): self.ptr.offHeight = x             # <<<<<<<<<<<<<<
 *     @property
 *     def offSamples(self): return self.ptr.offSamples
 */
  __pyx_v_self->ptr->offHeight = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4068
 *     @property
 *     def offHeight(self): return self.ptr.offHeight
 *     @offHeight.setter             # <<<<<<<<<<<<<<
 *     def offHeight(self, int x): self.ptr.offHeight = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4070
 *     @offHeight.setter
 *     def offHeight(self, int x): self.ptr.offHeight = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offSamples(self): return self.ptr.offSamples
 *     @offSamples.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10offSamples_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10offSamples_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10offSamples___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10offSamples___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4071
 *     def offHeight(self, int x): self.ptr.offHeight = x
 *     @property
 *     def offSamples(self): return self.ptr.offSamples             # <<<<<<<<<<<<<<
 *     @offSamples.setter
 *     def offSamples(self, int x): self.ptr.offSamples = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->offSamples); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4071, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4070
 *     @offHeight.setter
 *     def offHeight(self, int x): self.ptr.offHeight = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offSamples(self): return self.ptr.offSamples
 *     @offSamples.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offSamples.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4072
 *     @property
 *     def offSamples(self): return self.ptr.offSamples
 *     @offSamples.setter             # <<<<<<<<<<<<<<
 *     def offSamples(self, int x): self.ptr.offSamples = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10offSamples_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10offSamples_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4073, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offSamples.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10offSamples_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10offSamples_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4073
 *     def offSamples(self): return self.ptr.offSamples
 *     @offSamples.setter
 *     def offSamples(self, int x): self.ptr.offSamples = x             # <<<<<<<<<<<<<<
 *     @property
 *     def fontScale(self): return self.ptr.fontScale
 */
  __pyx_v_self->ptr->offSamples = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4072
 *     @property
 *     def offSamples(self): return self.ptr.offSamples
 *     @offSamples.setter             # <<<<<<<<<<<<<<
 *     def offSamples(self, int x): self.ptr.offSamples = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4074
 *     @offSamples.setter
 *     def offSamples(self, int x): self.ptr.offSamples = x
 *     @property             # <<<<<<<<<<<<<<
 *     def fontScale(self): return self.ptr.fontScale
 *     @fontScale.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9fontScale_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9fontScale_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9fontScale___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9fontScale___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4075
 *     def offSamples(self, int x): self.ptr.offSamples = x
 *     @property
 *     def fontScale(self): return self.ptr.fontScale             # <<<<<<<<<<<<<<
 *     @fontScale.setter
 *     def fontScale(self, int x): self.ptr.fontScale = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->fontScale); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4075, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4074
 *     @offSamples.setter
 *     def offSamples(self, int x): self.ptr.offSamples = x
 *     @property             # <<<<<<<<<<<<<<
 *     def fontScale(self): return self.ptr.fontScale
 *     @fontScale.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.fontScale.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4076
 *     @property
 *     def fontScale(self): return self.ptr.fontScale
 *     @fontScale.setter             # <<<<<<<<<<<<<<
 *     def fontScale(self, int x): self.ptr.fontScale = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9fontScale_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9fontScale_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4077, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.fontScale.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9fontScale_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9fontScale_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4077
 *     def fontScale(self): return self.ptr.fontScale
 *     @fontScale.setter
 *     def fontScale(self, int x): self.ptr.fontScale = x             # <<<<<<<<<<<<<<
 *     @property
 *     def offFBO(self): return self.ptr.offFBO
 */
  __pyx_v_self->ptr->fontScale = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4076
 *     @property
 *     def fontScale(self): return self.ptr.fontScale
 *     @fontScale.setter             # <<<<<<<<<<<<<<
 *     def fontScale(self, int x): self.ptr.fontScale = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4078
 *     @fontScale.setter
 *     def fontScale(self, int x): self.ptr.fontScale = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offFBO(self): return self.ptr.offFBO
 *     @offFBO.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_6offFBO_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_6offFBO_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_6offFBO___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_6offFBO___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4079
 *     def fontScale(self, int x): self.ptr.fontScale = x
 *     @property
 *     def offFBO(self): return self.ptr.offFBO             # <<<<<<<<<<<<<<
 *     @offFBO.setter
 *     def offFBO(self, unsigned int x): self.ptr.offFBO = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->ptr->offFBO); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4078
 *     @fontScale.setter
 *     def fontScale(self, int x): self.ptr.fontScale = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offFBO(self): return self.ptr.offFBO
 *     @offFBO.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offFBO.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4080
 *     @property
 *     def offFBO(self): return self.ptr.offFBO
 *     @offFBO.setter             # <<<<<<<<<<<<<<
 *     def offFBO(self, unsigned int x): self.ptr.offFBO = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_6offFBO_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_6offFBO_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  unsigned int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_unsigned_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4081, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offFBO.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_6offFBO_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((unsigned int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_6offFBO_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4081
 *     def offFBO(self): return self.ptr.offFBO
 *     @offFBO.setter
 *     def offFBO(self, unsigned int x): self.ptr.offFBO = x             # <<<<<<<<<<<<<<
 *     @property
 *     def offFBO_r(self): return self.ptr.offFBO_r
 */
  __pyx_v_self->ptr->offFBO = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4080
 *     @property
 *     def offFBO(self): return self.ptr.offFBO
 *     @offFBO.setter             # <<<<<<<<<<<<<<
 *     def offFBO(self, unsigned int x): self.ptr.offFBO = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4082
 *     @offFBO.setter
 *     def offFBO(self, unsigned int x): self.ptr.offFBO = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offFBO_r(self): return self.ptr.offFBO_r
 *     @offFBO_r.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offFBO_r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offFBO_r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offFBO_r___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offFBO_r___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4083
 *     def offFBO(self, unsigned int x): self.ptr.offFBO = x
 *     @property
 *     def offFBO_r(self): return self.ptr.offFBO_r             # <<<<<<<<<<<<<<
 *     @offFBO_r.setter
 *     def offFBO_r(self, unsigned int x): self.ptr.offFBO_r = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->ptr->offFBO_r); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4082
 *     @offFBO.setter
 *     def offFBO(self, unsigned int x): self.ptr.offFBO = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offFBO_r(self): return self.ptr.offFBO_r
 *     @offFBO_r.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offFBO_r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4084
 *     @property
 *     def offFBO_r(self): return self.ptr.offFBO_r
 *     @offFBO_r.setter             # <<<<<<<<<<<<<<
 *     def offFBO_r(self, unsigned int x): self.ptr.offFBO_r = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offFBO_r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offFBO_r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  unsigned int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_unsigned_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4085, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offFBO_r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offFBO_r_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((unsigned int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offFBO_r_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4085
 *     def offFBO_r(self): return self.ptr.offFBO_r
 *     @offFBO_r.setter
 *     def offFBO_r(self, unsigned int x): self.ptr.offFBO_r = x             # <<<<<<<<<<<<<<
 *     @property
 *     def offColor(self): return self.ptr.offColor
 */
  __pyx_v_self->ptr->offFBO_r = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4084
 *     @property
 *     def offFBO_r(self): return self.ptr.offFBO_r
 *     @offFBO_r.setter             # <<<<<<<<<<<<<<
 *     def offFBO_r(self, unsigned int x): self.ptr.offFBO_r = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4086
 *     @offFBO_r.setter
 *     def offFBO_r(self, unsigned int x): self.ptr.offFBO_r = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offColor(self): return self.ptr.offColor
 *     @offColor.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offColor_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offColor_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offColor___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offColor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4087
 *     def offFBO_r(self, unsigned int x): self.ptr.offFBO_r = x
 *     @property
 *     def offColor(self): return self.ptr.offColor             # <<<<<<<<<<<<<<
 *     @offColor.setter
 *     def offColor(self, unsigned int x): self.ptr.offColor = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->ptr->offColor); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4087, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4086
 *     @offFBO_r.setter
 *     def offFBO_r(self, unsigned int x): self.ptr.offFBO_r = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offColor(self): return self.ptr.offColor
 *     @offColor.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offColor.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4088
 *     @property
 *     def offColor(self): return self.ptr.offColor
 *     @offColor.setter             # <<<<<<<<<<<<<<
 *     def offColor(self, unsigned int x): self.ptr.offColor = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offColor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offColor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  unsigned int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_unsigned_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4089, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offColor.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offColor_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((unsigned int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8offColor_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4089
 *     def offColor(self): return self.ptr.offColor
 *     @offColor.setter
 *     def offColor(self, unsigned int x): self.ptr.offColor = x             # <<<<<<<<<<<<<<
 *     @property
 *     def offColor_r(self): return self.ptr.offColor_r
 */
  __pyx_v_self->ptr->offColor = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4088
 *     @property
 *     def offColor(self): return self.ptr.offColor
 *     @offColor.setter             # <<<<<<<<<<<<<<
 *     def offColor(self, unsigned int x): self.ptr.offColor = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4090
 *     @offColor.setter
 *     def offColor(self, unsigned int x): self.ptr.offColor = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offColor_r(self): return self.ptr.offColor_r
 *     @offColor_r.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10offColor_r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10offColor_r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10offColor_r___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10offColor_r___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4091
 *     def offColor(self, unsigned int x): self.ptr.offColor = x
 *     @property
 *     def offColor_r(self): return self.ptr.offColor_r             # <<<<<<<<<<<<<<
 *     @offColor_r.setter
 *     def offColor_r(self, unsigned int x): self.ptr.offColor_r = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->ptr->offColor_r); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4091, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4090
 *     @offColor.setter
 *     def offColor(self, unsigned int x): self.ptr.offColor = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offColor_r(self): return self.ptr.offColor_r
 *     @offColor_r.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offColor_r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4092
 *     @property
 *     def offColor_r(self): return self.ptr.offColor_r
 *     @offColor_r.setter             # <<<<<<<<<<<<<<
 *     def offColor_r(self, unsigned int x): self.ptr.offColor_r = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10offColor_r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10offColor_r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  unsigned int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_unsigned_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4093, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offColor_r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10offColor_r_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((unsigned int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10offColor_r_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4093
 *     def offColor_r(self): return self.ptr.offColor_r
 *     @offColor_r.setter
 *     def offColor_r(self, unsigned int x): self.ptr.offColor_r = x             # <<<<<<<<<<<<<<
 *     @property
 *     def offDepthStencil(self): return self.ptr.offDepthStencil
 */
  __pyx_v_self->ptr->offColor_r = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4092
 *     @property
 *     def offColor_r(self): return self.ptr.offColor_r
 *     @offColor_r.setter             # <<<<<<<<<<<<<<
 *     def offColor_r(self, unsigned int x): self.ptr.offColor_r = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4094
 *     @offColor_r.setter
 *     def offColor_r(self, unsigned int x): self.ptr.offColor_r = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offDepthStencil(self): return self.ptr.offDepthStencil
 *     @offDepthStencil.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15offDepthStencil_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15offDepthStencil_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15offDepthStencil___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15offDepthStencil___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4095
 *     def offColor_r(self, unsigned int x): self.ptr.offColor_r = x
 *     @property
 *     def offDepthStencil(self): return self.ptr.offDepthStencil             # <<<<<<<<<<<<<<
 *     @offDepthStencil.setter
 *     def offDepthStencil(self, unsigned int x): self.ptr.offDepthStencil = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->ptr->offDepthStencil); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4095, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4094
 *     @offColor_r.setter
 *     def offColor_r(self, unsigned int x): self.ptr.offColor_r = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offDepthStencil(self): return self.ptr.offDepthStencil
 *     @offDepthStencil.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offDepthStencil.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4096
 *     @property
 *     def offDepthStencil(self): return self.ptr.offDepthStencil
 *     @offDepthStencil.setter             # <<<<<<<<<<<<<<
 *     def offDepthStencil(self, unsigned int x): self.ptr.offDepthStencil = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15offDepthStencil_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15offDepthStencil_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  unsigned int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_unsigned_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4097, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offDepthStencil.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15offDepthStencil_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((unsigned int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15offDepthStencil_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4097
 *     def offDepthStencil(self): return self.ptr.offDepthStencil
 *     @offDepthStencil.setter
 *     def offDepthStencil(self, unsigned int x): self.ptr.offDepthStencil = x             # <<<<<<<<<<<<<<
 *     @property
 *     def offDepthStencil_r(self): return self.ptr.offDepthStencil_r
 */
  __pyx_v_self->ptr->offDepthStencil = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4096
 *     @property
 *     def offDepthStencil(self): return self.ptr.offDepthStencil
 *     @offDepthStencil.setter             # <<<<<<<<<<<<<<
 *     def offDepthStencil(self, unsigned int x): self.ptr.offDepthStencil = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4098
 *     @offDepthStencil.setter
 *     def offDepthStencil(self, unsigned int x): self.ptr.offDepthStencil = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offDepthStencil_r(self): return self.ptr.offDepthStencil_r
 *     @offDepthStencil_r.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_17offDepthStencil_r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_17offDepthStencil_r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_17offDepthStencil_r___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_17offDepthStencil_r___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4099
 *     def offDepthStencil(self, unsigned int x): self.ptr.offDepthStencil = x
 *     @property
 *     def offDepthStencil_r(self): return self.ptr.offDepthStencil_r             # <<<<<<<<<<<<<<
 *     @offDepthStencil_r.setter
 *     def offDepthStencil_r(self, unsigned int x): self.ptr.offDepthStencil_r = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->ptr->offDepthStencil_r); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4098
 *     @offDepthStencil.setter
 *     def offDepthStencil(self, unsigned int x): self.ptr.offDepthStencil = x
 *     @property             # <<<<<<<<<<<<<<
 *     def offDepthStencil_r(self): return self.ptr.offDepthStencil_r
 *     @offDepthStencil_r.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offDepthStencil_r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4100
 *     @property
 *     def offDepthStencil_r(self): return self.ptr.offDepthStencil_r
 *     @offDepthStencil_r.setter             # <<<<<<<<<<<<<<
 *     def offDepthStencil_r(self, unsigned int x): self.ptr.offDepthStencil_r = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_17offDepthStencil_r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_17offDepthStencil_r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  unsigned int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_unsigned_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4101, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.offDepthStencil_r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_17offDepthStencil_r_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((unsigned int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_17offDepthStencil_r_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4101
 *     def offDepthStencil_r(self): return self.ptr.offDepthStencil_r
 *     @offDepthStencil_r.setter
 *     def offDepthStencil_r(self, unsigned int x): self.ptr.offDepthStencil_r = x             # <<<<<<<<<<<<<<
 *     @property
 *     def shadowFBO(self): return self.ptr.shadowFBO
 */
  __pyx_v_self->ptr->offDepthStencil_r = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4100
 *     @property
 *     def offDepthStencil_r(self): return self.ptr.offDepthStencil_r
 *     @offDepthStencil_r.setter             # <<<<<<<<<<<<<<
 *     def offDepthStencil_r(self, unsigned int x): self.ptr.offDepthStencil_r = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4102
 *     @offDepthStencil_r.setter
 *     def offDepthStencil_r(self, unsigned int x): self.ptr.offDepthStencil_r = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowFBO(self): return self.ptr.shadowFBO
 *     @shadowFBO.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9shadowFBO_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9shadowFBO_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9shadowFBO___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9shadowFBO___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4103
 *     def offDepthStencil_r(self, unsigned int x): self.ptr.offDepthStencil_r = x
 *     @property
 *     def shadowFBO(self): return self.ptr.shadowFBO             # <<<<<<<<<<<<<<
 *     @shadowFBO.setter
 *     def shadowFBO(self, unsigned int x): self.ptr.shadowFBO = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->ptr->shadowFBO); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4102
 *     @offDepthStencil_r.setter
 *     def offDepthStencil_r(self, unsigned int x): self.ptr.offDepthStencil_r = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowFBO(self): return self.ptr.shadowFBO
 *     @shadowFBO.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.shadowFBO.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4104
 *     @property
 *     def shadowFBO(self): return self.ptr.shadowFBO
 *     @shadowFBO.setter             # <<<<<<<<<<<<<<
 *     def shadowFBO(self, unsigned int x): self.ptr.shadowFBO = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9shadowFBO_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9shadowFBO_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  unsigned int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_unsigned_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4105, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.shadowFBO.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9shadowFBO_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((unsigned int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9shadowFBO_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4105
 *     def shadowFBO(self): return self.ptr.shadowFBO
 *     @shadowFBO.setter
 *     def shadowFBO(self, unsigned int x): self.ptr.shadowFBO = x             # <<<<<<<<<<<<<<
 *     @property
 *     def shadowTex(self): return self.ptr.shadowTex
 */
  __pyx_v_self->ptr->shadowFBO = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4104
 *     @property
 *     def shadowFBO(self): return self.ptr.shadowFBO
 *     @shadowFBO.setter             # <<<<<<<<<<<<<<
 *     def shadowFBO(self, unsigned int x): self.ptr.shadowFBO = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4106
 *     @shadowFBO.setter
 *     def shadowFBO(self, unsigned int x): self.ptr.shadowFBO = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowTex(self): return self.ptr.shadowTex
 *     @shadowTex.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9shadowTex_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9shadowTex_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9shadowTex___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9shadowTex___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4107
 *     def shadowFBO(self, unsigned int x): self.ptr.shadowFBO = x
 *     @property
 *     def shadowTex(self): return self.ptr.shadowTex             # <<<<<<<<<<<<<<
 *     @shadowTex.setter
 *     def shadowTex(self, unsigned int x): self.ptr.shadowTex = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->ptr->shadowTex); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4106
 *     @shadowFBO.setter
 *     def shadowFBO(self, unsigned int x): self.ptr.shadowFBO = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shadowTex(self): return self.ptr.shadowTex
 *     @shadowTex.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.shadowTex.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4108
 *     @property
 *     def shadowTex(self): return self.ptr.shadowTex
 *     @shadowTex.setter             # <<<<<<<<<<<<<<
 *     def shadowTex(self, unsigned int x): self.ptr.shadowTex = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9shadowTex_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9shadowTex_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  unsigned int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_unsigned_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4109, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.shadowTex.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9shadowTex_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((unsigned int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9shadowTex_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4109
 *     def shadowTex(self): return self.ptr.shadowTex
 *     @shadowTex.setter
 *     def shadowTex(self, unsigned int x): self.ptr.shadowTex = x             # <<<<<<<<<<<<<<
 *     @property
 *     def ntexture(self): return self.ptr.ntexture
 */
  __pyx_v_self->ptr->shadowTex = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4108
 *     @property
 *     def shadowTex(self): return self.ptr.shadowTex
 *     @shadowTex.setter             # <<<<<<<<<<<<<<
 *     def shadowTex(self, unsigned int x): self.ptr.shadowTex = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4110
 *     @shadowTex.setter
 *     def shadowTex(self, unsigned int x): self.ptr.shadowTex = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntexture(self): return self.ptr.ntexture
 *     @ntexture.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8ntexture_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8ntexture_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8ntexture___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8ntexture___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4111
 *     def shadowTex(self, unsigned int x): self.ptr.shadowTex = x
 *     @property
 *     def ntexture(self): return self.ptr.ntexture             # <<<<<<<<<<<<<<
 *     @ntexture.setter
 *     def ntexture(self, int x): self.ptr.ntexture = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->ntexture); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4110
 *     @shadowTex.setter
 *     def shadowTex(self, unsigned int x): self.ptr.shadowTex = x
 *     @property             # <<<<<<<<<<<<<<
 *     def ntexture(self): return self.ptr.ntexture
 *     @ntexture.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.ntexture.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4112
 *     @property
 *     def ntexture(self): return self.ptr.ntexture
 *     @ntexture.setter             # <<<<<<<<<<<<<<
 *     def ntexture(self, int x): self.ptr.ntexture = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8ntexture_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8ntexture_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4113, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.ntexture.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8ntexture_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8ntexture_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4113
 *     def ntexture(self): return self.ptr.ntexture
 *     @ntexture.setter
 *     def ntexture(self, int x): self.ptr.ntexture = x             # <<<<<<<<<<<<<<
 *     @property
 *     def basePlane(self): return self.ptr.basePlane
 */
  __pyx_v_self->ptr->ntexture = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4112
 *     @property
 *     def ntexture(self): return self.ptr.ntexture
 *     @ntexture.setter             # <<<<<<<<<<<<<<
 *     def ntexture(self, int x): self.ptr.ntexture = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4114
 *     @ntexture.setter
 *     def ntexture(self, int x): self.ptr.ntexture = x
 *     @property             # <<<<<<<<<<<<<<
 *     def basePlane(self): return self.ptr.basePlane
 *     @basePlane.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9basePlane_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9basePlane_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9basePlane___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9basePlane___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4115
 *     def ntexture(self, int x): self.ptr.ntexture = x
 *     @property
 *     def basePlane(self): return self.ptr.basePlane             # <<<<<<<<<<<<<<
 *     @basePlane.setter
 *     def basePlane(self, unsigned int x): self.ptr.basePlane = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->ptr->basePlane); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4114
 *     @ntexture.setter
 *     def ntexture(self, int x): self.ptr.ntexture = x
 *     @property             # <<<<<<<<<<<<<<
 *     def basePlane(self): return self.ptr.basePlane
 *     @basePlane.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.basePlane.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4116
 *     @property
 *     def basePlane(self): return self.ptr.basePlane
 *     @basePlane.setter             # <<<<<<<<<<<<<<
 *     def basePlane(self, unsigned int x): self.ptr.basePlane = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9basePlane_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9basePlane_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  unsigned int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_unsigned_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4117, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.basePlane.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9basePlane_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((unsigned int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9basePlane_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4117
 *     def basePlane(self): return self.ptr.basePlane
 *     @basePlane.setter
 *     def basePlane(self, unsigned int x): self.ptr.basePlane = x             # <<<<<<<<<<<<<<
 *     @property
 *     def baseMesh(self): return self.ptr.baseMesh
 */
  __pyx_v_self->ptr->basePlane = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4116
 *     @property
 *     def basePlane(self): return self.ptr.basePlane
 *     @basePlane.setter             # <<<<<<<<<<<<<<
 *     def basePlane(self, unsigned int x): self.ptr.basePlane = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4118
 *     @basePlane.setter
 *     def basePlane(self, unsigned int x): self.ptr.basePlane = x
 *     @property             # <<<<<<<<<<<<<<
 *     def baseMesh(self): return self.ptr.baseMesh
 *     @baseMesh.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8baseMesh_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8baseMesh_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8baseMesh___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8baseMesh___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4119
 *     def basePlane(self, unsigned int x): self.ptr.basePlane = x
 *     @property
 *     def baseMesh(self): return self.ptr.baseMesh             # <<<<<<<<<<<<<<
 *     @baseMesh.setter
 *     def baseMesh(self, unsigned int x): self.ptr.baseMesh = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->ptr->baseMesh); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4118
 *     @basePlane.setter
 *     def basePlane(self, unsigned int x): self.ptr.basePlane = x
 *     @property             # <<<<<<<<<<<<<<
 *     def baseMesh(self): return self.ptr.baseMesh
 *     @baseMesh.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.baseMesh.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4120
 *     @property
 *     def baseMesh(self): return self.ptr.baseMesh
 *     @baseMesh.setter             # <<<<<<<<<<<<<<
 *     def baseMesh(self, unsigned int x): self.ptr.baseMesh = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8baseMesh_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8baseMesh_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  unsigned int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_unsigned_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4121, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.baseMesh.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8baseMesh_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((unsigned int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8baseMesh_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4121
 *     def baseMesh(self): return self.ptr.baseMesh
 *     @baseMesh.setter
 *     def baseMesh(self, unsigned int x): self.ptr.baseMesh = x             # <<<<<<<<<<<<<<
 *     @property
 *     def baseHField(self): return self.ptr.baseHField
 */
  __pyx_v_self->ptr->baseMesh = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4120
 *     @property
 *     def baseMesh(self): return self.ptr.baseMesh
 *     @baseMesh.setter             # <<<<<<<<<<<<<<
 *     def baseMesh(self, unsigned int x): self.ptr.baseMesh = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4122
 *     @baseMesh.setter
 *     def baseMesh(self, unsigned int x): self.ptr.baseMesh = x
 *     @property             # <<<<<<<<<<<<<<
 *     def baseHField(self): return self.ptr.baseHField
 *     @baseHField.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10baseHField_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10baseHField_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10baseHField___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10baseHField___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4123
 *     def baseMesh(self, unsigned int x): self.ptr.baseMesh = x
 *     @property
 *     def baseHField(self): return self.ptr.baseHField             # <<<<<<<<<<<<<<
 *     @baseHField.setter
 *     def baseHField(self, unsigned int x): self.ptr.baseHField = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->ptr->baseHField); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4122
 *     @baseMesh.setter
 *     def baseMesh(self, unsigned int x): self.ptr.baseMesh = x
 *     @property             # <<<<<<<<<<<<<<
 *     def baseHField(self): return self.ptr.baseHField
 *     @baseHField.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.baseHField.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4124
 *     @property
 *     def baseHField(self): return self.ptr.baseHField
 *     @baseHField.setter             # <<<<<<<<<<<<<<
 *     def baseHField(self, unsigned int x): self.ptr.baseHField = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10baseHField_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10baseHField_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  unsigned int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_unsigned_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4125, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.baseHField.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10baseHField_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((unsigned int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10baseHField_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4125
 *     def baseHField(self): return self.ptr.baseHField
 *     @baseHField.setter
 *     def baseHField(self, unsigned int x): self.ptr.baseHField = x             # <<<<<<<<<<<<<<
 *     @property
 *     def baseBuiltin(self): return self.ptr.baseBuiltin
 */
  __pyx_v_self->ptr->baseHField = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4124
 *     @property
 *     def baseHField(self): return self.ptr.baseHField
 *     @baseHField.setter             # <<<<<<<<<<<<<<
 *     def baseHField(self, unsigned int x): self.ptr.baseHField = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4126
 *     @baseHField.setter
 *     def baseHField(self, unsigned int x): self.ptr.baseHField = x
 *     @property             # <<<<<<<<<<<<<<
 *     def baseBuiltin(self): return self.ptr.baseBuiltin
 *     @baseBuiltin.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11baseBuiltin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11baseBuiltin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11baseBuiltin___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11baseBuiltin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4127
 *     def baseHField(self, unsigned int x): self.ptr.baseHField = x
 *     @property
 *     def baseBuiltin(self): return self.ptr.baseBuiltin             # <<<<<<<<<<<<<<
 *     @baseBuiltin.setter
 *     def baseBuiltin(self, unsigned int x): self.ptr.baseBuiltin = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->ptr->baseBuiltin); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4126
 *     @baseHField.setter
 *     def baseHField(self, unsigned int x): self.ptr.baseHField = x
 *     @property             # <<<<<<<<<<<<<<
 *     def baseBuiltin(self): return self.ptr.baseBuiltin
 *     @baseBuiltin.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.baseBuiltin.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4128
 *     @property
 *     def baseBuiltin(self): return self.ptr.baseBuiltin
 *     @baseBuiltin.setter             # <<<<<<<<<<<<<<
 *     def baseBuiltin(self, unsigned int x): self.ptr.baseBuiltin = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11baseBuiltin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11baseBuiltin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  unsigned int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_unsigned_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4129, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.baseBuiltin.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11baseBuiltin_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((unsigned int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11baseBuiltin_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4129
 *     def baseBuiltin(self): return self.ptr.baseBuiltin
 *     @baseBuiltin.setter
 *     def baseBuiltin(self, unsigned int x): self.ptr.baseBuiltin = x             # <<<<<<<<<<<<<<
 *     @property
 *     def baseFontNormal(self): return self.ptr.baseFontNormal
 */
  __pyx_v_self->ptr->baseBuiltin = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4128
 *     @property
 *     def baseBuiltin(self): return self.ptr.baseBuiltin
 *     @baseBuiltin.setter             # <<<<<<<<<<<<<<
 *     def baseBuiltin(self, unsigned int x): self.ptr.baseBuiltin = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4130
 *     @baseBuiltin.setter
 *     def baseBuiltin(self, unsigned int x): self.ptr.baseBuiltin = x
 *     @property             # <<<<<<<<<<<<<<
 *     def baseFontNormal(self): return self.ptr.baseFontNormal
 *     @baseFontNormal.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_14baseFontNormal_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_14baseFontNormal_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_14baseFontNormal___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_14baseFontNormal___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4131
 *     def baseBuiltin(self, unsigned int x): self.ptr.baseBuiltin = x
 *     @property
 *     def baseFontNormal(self): return self.ptr.baseFontNormal             # <<<<<<<<<<<<<<
 *     @baseFontNormal.setter
 *     def baseFontNormal(self, unsigned int x): self.ptr.baseFontNormal = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->ptr->baseFontNormal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4130
 *     @baseBuiltin.setter
 *     def baseBuiltin(self, unsigned int x): self.ptr.baseBuiltin = x
 *     @property             # <<<<<<<<<<<<<<
 *     def baseFontNormal(self): return self.ptr.baseFontNormal
 *     @baseFontNormal.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.baseFontNormal.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4132
 *     @property
 *     def baseFontNormal(self): return self.ptr.baseFontNormal
 *     @baseFontNormal.setter             # <<<<<<<<<<<<<<
 *     def baseFontNormal(self, unsigned int x): self.ptr.baseFontNormal = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_14baseFontNormal_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_14baseFontNormal_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  unsigned int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_unsigned_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4133, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.baseFontNormal.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_14baseFontNormal_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((unsigned int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_14baseFontNormal_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4133
 *     def baseFontNormal(self): return self.ptr.baseFontNormal
 *     @baseFontNormal.setter
 *     def baseFontNormal(self, unsigned int x): self.ptr.baseFontNormal = x             # <<<<<<<<<<<<<<
 *     @property
 *     def baseFontShadow(self): return self.ptr.baseFontShadow
 */
  __pyx_v_self->ptr->baseFontNormal = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4132
 *     @property
 *     def baseFontNormal(self): return self.ptr.baseFontNormal
 *     @baseFontNormal.setter             # <<<<<<<<<<<<<<
 *     def baseFontNormal(self, unsigned int x): self.ptr.baseFontNormal = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4134
 *     @baseFontNormal.setter
 *     def baseFontNormal(self, unsigned int x): self.ptr.baseFontNormal = x
 *     @property             # <<<<<<<<<<<<<<
 *     def baseFontShadow(self): return self.ptr.baseFontShadow
 *     @baseFontShadow.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_14baseFontShadow_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_14baseFontShadow_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_14baseFontShadow___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_14baseFontShadow___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4135
 *     def baseFontNormal(self, unsigned int x): self.ptr.baseFontNormal = x
 *     @property
 *     def baseFontShadow(self): return self.ptr.baseFontShadow             # <<<<<<<<<<<<<<
 *     @baseFontShadow.setter
 *     def baseFontShadow(self, unsigned int x): self.ptr.baseFontShadow = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->ptr->baseFontShadow); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4134
 *     @baseFontNormal.setter
 *     def baseFontNormal(self, unsigned int x): self.ptr.baseFontNormal = x
 *     @property             # <<<<<<<<<<<<<<
 *     def baseFontShadow(self): return self.ptr.baseFontShadow
 *     @baseFontShadow.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.baseFontShadow.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4136
 *     @property
 *     def baseFontShadow(self): return self.ptr.baseFontShadow
 *     @baseFontShadow.setter             # <<<<<<<<<<<<<<
 *     def baseFontShadow(self, unsigned int x): self.ptr.baseFontShadow = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_14baseFontShadow_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_14baseFontShadow_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  unsigned int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_unsigned_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4137, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.baseFontShadow.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_14baseFontShadow_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((unsigned int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_14baseFontShadow_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4137
 *     def baseFontShadow(self): return self.ptr.baseFontShadow
 *     @baseFontShadow.setter
 *     def baseFontShadow(self, unsigned int x): self.ptr.baseFontShadow = x             # <<<<<<<<<<<<<<
 *     @property
 *     def baseFontBig(self): return self.ptr.baseFontBig
 */
  __pyx_v_self->ptr->baseFontShadow = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4136
 *     @property
 *     def baseFontShadow(self): return self.ptr.baseFontShadow
 *     @baseFontShadow.setter             # <<<<<<<<<<<<<<
 *     def baseFontShadow(self, unsigned int x): self.ptr.baseFontShadow = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4138
 *     @baseFontShadow.setter
 *     def baseFontShadow(self, unsigned int x): self.ptr.baseFontShadow = x
 *     @property             # <<<<<<<<<<<<<<
 *     def baseFontBig(self): return self.ptr.baseFontBig
 *     @baseFontBig.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11baseFontBig_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11baseFontBig_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11baseFontBig___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11baseFontBig___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4139
 *     def baseFontShadow(self, unsigned int x): self.ptr.baseFontShadow = x
 *     @property
 *     def baseFontBig(self): return self.ptr.baseFontBig             # <<<<<<<<<<<<<<
 *     @baseFontBig.setter
 *     def baseFontBig(self, unsigned int x): self.ptr.baseFontBig = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->ptr->baseFontBig); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4138
 *     @baseFontShadow.setter
 *     def baseFontShadow(self, unsigned int x): self.ptr.baseFontShadow = x
 *     @property             # <<<<<<<<<<<<<<
 *     def baseFontBig(self): return self.ptr.baseFontBig
 *     @baseFontBig.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.baseFontBig.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4140
 *     @property
 *     def baseFontBig(self): return self.ptr.baseFontBig
 *     @baseFontBig.setter             # <<<<<<<<<<<<<<
 *     def baseFontBig(self, unsigned int x): self.ptr.baseFontBig = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11baseFontBig_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11baseFontBig_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  unsigned int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_unsigned_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4141, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.baseFontBig.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11baseFontBig_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((unsigned int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11baseFontBig_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, unsigned int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4141
 *     def baseFontBig(self): return self.ptr.baseFontBig
 *     @baseFontBig.setter
 *     def baseFontBig(self, unsigned int x): self.ptr.baseFontBig = x             # <<<<<<<<<<<<<<
 *     @property
 *     def rangePlane(self): return self.ptr.rangePlane
 */
  __pyx_v_self->ptr->baseFontBig = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4140
 *     @property
 *     def baseFontBig(self): return self.ptr.baseFontBig
 *     @baseFontBig.setter             # <<<<<<<<<<<<<<
 *     def baseFontBig(self, unsigned int x): self.ptr.baseFontBig = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4142
 *     @baseFontBig.setter
 *     def baseFontBig(self, unsigned int x): self.ptr.baseFontBig = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rangePlane(self): return self.ptr.rangePlane
 *     @rangePlane.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10rangePlane_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10rangePlane_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10rangePlane___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10rangePlane___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4143
 *     def baseFontBig(self, unsigned int x): self.ptr.baseFontBig = x
 *     @property
 *     def rangePlane(self): return self.ptr.rangePlane             # <<<<<<<<<<<<<<
 *     @rangePlane.setter
 *     def rangePlane(self, int x): self.ptr.rangePlane = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->rangePlane); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4142
 *     @baseFontBig.setter
 *     def baseFontBig(self, unsigned int x): self.ptr.baseFontBig = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rangePlane(self): return self.ptr.rangePlane
 *     @rangePlane.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.rangePlane.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4144
 *     @property
 *     def rangePlane(self): return self.ptr.rangePlane
 *     @rangePlane.setter             # <<<<<<<<<<<<<<
 *     def rangePlane(self, int x): self.ptr.rangePlane = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10rangePlane_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10rangePlane_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4145, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.rangePlane.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10rangePlane_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10rangePlane_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4145
 *     def rangePlane(self): return self.ptr.rangePlane
 *     @rangePlane.setter
 *     def rangePlane(self, int x): self.ptr.rangePlane = x             # <<<<<<<<<<<<<<
 *     @property
 *     def rangeMesh(self): return self.ptr.rangeMesh
 */
  __pyx_v_self->ptr->rangePlane = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4144
 *     @property
 *     def rangePlane(self): return self.ptr.rangePlane
 *     @rangePlane.setter             # <<<<<<<<<<<<<<
 *     def rangePlane(self, int x): self.ptr.rangePlane = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4146
 *     @rangePlane.setter
 *     def rangePlane(self, int x): self.ptr.rangePlane = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rangeMesh(self): return self.ptr.rangeMesh
 *     @rangeMesh.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9rangeMesh_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9rangeMesh_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9rangeMesh___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9rangeMesh___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4147
 *     def rangePlane(self, int x): self.ptr.rangePlane = x
 *     @property
 *     def rangeMesh(self): return self.ptr.rangeMesh             # <<<<<<<<<<<<<<
 *     @rangeMesh.setter
 *     def rangeMesh(self, int x): self.ptr.rangeMesh = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->rangeMesh); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4146
 *     @rangePlane.setter
 *     def rangePlane(self, int x): self.ptr.rangePlane = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rangeMesh(self): return self.ptr.rangeMesh
 *     @rangeMesh.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.rangeMesh.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4148
 *     @property
 *     def rangeMesh(self): return self.ptr.rangeMesh
 *     @rangeMesh.setter             # <<<<<<<<<<<<<<
 *     def rangeMesh(self, int x): self.ptr.rangeMesh = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9rangeMesh_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9rangeMesh_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4149, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.rangeMesh.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9rangeMesh_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9rangeMesh_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4149
 *     def rangeMesh(self): return self.ptr.rangeMesh
 *     @rangeMesh.setter
 *     def rangeMesh(self, int x): self.ptr.rangeMesh = x             # <<<<<<<<<<<<<<
 *     @property
 *     def rangeHField(self): return self.ptr.rangeHField
 */
  __pyx_v_self->ptr->rangeMesh = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4148
 *     @property
 *     def rangeMesh(self): return self.ptr.rangeMesh
 *     @rangeMesh.setter             # <<<<<<<<<<<<<<
 *     def rangeMesh(self, int x): self.ptr.rangeMesh = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4150
 *     @rangeMesh.setter
 *     def rangeMesh(self, int x): self.ptr.rangeMesh = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rangeHField(self): return self.ptr.rangeHField
 *     @rangeHField.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11rangeHField_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11rangeHField_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11rangeHField___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11rangeHField___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4151
 *     def rangeMesh(self, int x): self.ptr.rangeMesh = x
 *     @property
 *     def rangeHField(self): return self.ptr.rangeHField             # <<<<<<<<<<<<<<
 *     @rangeHField.setter
 *     def rangeHField(self, int x): self.ptr.rangeHField = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->rangeHField); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4150
 *     @rangeMesh.setter
 *     def rangeMesh(self, int x): self.ptr.rangeMesh = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rangeHField(self): return self.ptr.rangeHField
 *     @rangeHField.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.rangeHField.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4152
 *     @property
 *     def rangeHField(self): return self.ptr.rangeHField
 *     @rangeHField.setter             # <<<<<<<<<<<<<<
 *     def rangeHField(self, int x): self.ptr.rangeHField = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11rangeHField_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11rangeHField_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4153, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.rangeHField.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11rangeHField_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11rangeHField_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4153
 *     def rangeHField(self): return self.ptr.rangeHField
 *     @rangeHField.setter
 *     def rangeHField(self, int x): self.ptr.rangeHField = x             # <<<<<<<<<<<<<<
 *     @property
 *     def rangeBuiltin(self): return self.ptr.rangeBuiltin
 */
  __pyx_v_self->ptr->rangeHField = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4152
 *     @property
 *     def rangeHField(self): return self.ptr.rangeHField
 *     @rangeHField.setter             # <<<<<<<<<<<<<<
 *     def rangeHField(self, int x): self.ptr.rangeHField = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4154
 *     @rangeHField.setter
 *     def rangeHField(self, int x): self.ptr.rangeHField = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rangeBuiltin(self): return self.ptr.rangeBuiltin
 *     @rangeBuiltin.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_12rangeBuiltin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_12rangeBuiltin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_12rangeBuiltin___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_12rangeBuiltin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4155
 *     def rangeHField(self, int x): self.ptr.rangeHField = x
 *     @property
 *     def rangeBuiltin(self): return self.ptr.rangeBuiltin             # <<<<<<<<<<<<<<
 *     @rangeBuiltin.setter
 *     def rangeBuiltin(self, int x): self.ptr.rangeBuiltin = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->rangeBuiltin); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4154
 *     @rangeHField.setter
 *     def rangeHField(self, int x): self.ptr.rangeHField = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rangeBuiltin(self): return self.ptr.rangeBuiltin
 *     @rangeBuiltin.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.rangeBuiltin.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4156
 *     @property
 *     def rangeBuiltin(self): return self.ptr.rangeBuiltin
 *     @rangeBuiltin.setter             # <<<<<<<<<<<<<<
 *     def rangeBuiltin(self, int x): self.ptr.rangeBuiltin = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_12rangeBuiltin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_12rangeBuiltin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4157, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.rangeBuiltin.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_12rangeBuiltin_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_12rangeBuiltin_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4157
 *     def rangeBuiltin(self): return self.ptr.rangeBuiltin
 *     @rangeBuiltin.setter
 *     def rangeBuiltin(self, int x): self.ptr.rangeBuiltin = x             # <<<<<<<<<<<<<<
 *     @property
 *     def rangeFont(self): return self.ptr.rangeFont
 */
  __pyx_v_self->ptr->rangeBuiltin = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4156
 *     @property
 *     def rangeBuiltin(self): return self.ptr.rangeBuiltin
 *     @rangeBuiltin.setter             # <<<<<<<<<<<<<<
 *     def rangeBuiltin(self, int x): self.ptr.rangeBuiltin = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4158
 *     @rangeBuiltin.setter
 *     def rangeBuiltin(self, int x): self.ptr.rangeBuiltin = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rangeFont(self): return self.ptr.rangeFont
 *     @rangeFont.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9rangeFont_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9rangeFont_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9rangeFont___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9rangeFont___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4159
 *     def rangeBuiltin(self, int x): self.ptr.rangeBuiltin = x
 *     @property
 *     def rangeFont(self): return self.ptr.rangeFont             # <<<<<<<<<<<<<<
 *     @rangeFont.setter
 *     def rangeFont(self, int x): self.ptr.rangeFont = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->rangeFont); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4158
 *     @rangeBuiltin.setter
 *     def rangeBuiltin(self, int x): self.ptr.rangeBuiltin = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rangeFont(self): return self.ptr.rangeFont
 *     @rangeFont.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.rangeFont.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4160
 *     @property
 *     def rangeFont(self): return self.ptr.rangeFont
 *     @rangeFont.setter             # <<<<<<<<<<<<<<
 *     def rangeFont(self, int x): self.ptr.rangeFont = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9rangeFont_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9rangeFont_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4161, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.rangeFont.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9rangeFont_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9rangeFont_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4161
 *     def rangeFont(self): return self.ptr.rangeFont
 *     @rangeFont.setter
 *     def rangeFont(self, int x): self.ptr.rangeFont = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nskin(self): return self.ptr.nskin
 */
  __pyx_v_self->ptr->rangeFont = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4160
 *     @property
 *     def rangeFont(self): return self.ptr.rangeFont
 *     @rangeFont.setter             # <<<<<<<<<<<<<<
 *     def rangeFont(self, int x): self.ptr.rangeFont = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4162
 *     @rangeFont.setter
 *     def rangeFont(self, int x): self.ptr.rangeFont = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskin(self): return self.ptr.nskin
 *     @nskin.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_5nskin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_5nskin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_5nskin___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_5nskin___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4163
 *     def rangeFont(self, int x): self.ptr.rangeFont = x
 *     @property
 *     def nskin(self): return self.ptr.nskin             # <<<<<<<<<<<<<<
 *     @nskin.setter
 *     def nskin(self, int x): self.ptr.nskin = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nskin); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4162
 *     @rangeFont.setter
 *     def rangeFont(self, int x): self.ptr.rangeFont = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nskin(self): return self.ptr.nskin
 *     @nskin.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.nskin.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4164
 *     @property
 *     def nskin(self): return self.ptr.nskin
 *     @nskin.setter             # <<<<<<<<<<<<<<
 *     def nskin(self, int x): self.ptr.nskin = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_5nskin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_5nskin_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4165, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.nskin.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_5nskin_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_5nskin_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4165
 *     def nskin(self): return self.ptr.nskin
 *     @nskin.setter
 *     def nskin(self, int x): self.ptr.nskin = x             # <<<<<<<<<<<<<<
 *     @property
 *     def charHeight(self): return self.ptr.charHeight
 */
  __pyx_v_self->ptr->nskin = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4164
 *     @property
 *     def nskin(self): return self.ptr.nskin
 *     @nskin.setter             # <<<<<<<<<<<<<<
 *     def nskin(self, int x): self.ptr.nskin = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4166
 *     @nskin.setter
 *     def nskin(self, int x): self.ptr.nskin = x
 *     @property             # <<<<<<<<<<<<<<
 *     def charHeight(self): return self.ptr.charHeight
 *     @charHeight.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10charHeight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10charHeight_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10charHeight___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10charHeight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4167
 *     def nskin(self, int x): self.ptr.nskin = x
 *     @property
 *     def charHeight(self): return self.ptr.charHeight             # <<<<<<<<<<<<<<
 *     @charHeight.setter
 *     def charHeight(self, int x): self.ptr.charHeight = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->charHeight); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4166
 *     @nskin.setter
 *     def nskin(self, int x): self.ptr.nskin = x
 *     @property             # <<<<<<<<<<<<<<
 *     def charHeight(self): return self.ptr.charHeight
 *     @charHeight.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.charHeight.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4168
 *     @property
 *     def charHeight(self): return self.ptr.charHeight
 *     @charHeight.setter             # <<<<<<<<<<<<<<
 *     def charHeight(self, int x): self.ptr.charHeight = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10charHeight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10charHeight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4169, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.charHeight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10charHeight_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10charHeight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4169
 *     def charHeight(self): return self.ptr.charHeight
 *     @charHeight.setter
 *     def charHeight(self, int x): self.ptr.charHeight = x             # <<<<<<<<<<<<<<
 *     @property
 *     def charHeightBig(self): return self.ptr.charHeightBig
 */
  __pyx_v_self->ptr->charHeight = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4168
 *     @property
 *     def charHeight(self): return self.ptr.charHeight
 *     @charHeight.setter             # <<<<<<<<<<<<<<
 *     def charHeight(self, int x): self.ptr.charHeight = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4170
 *     @charHeight.setter
 *     def charHeight(self, int x): self.ptr.charHeight = x
 *     @property             # <<<<<<<<<<<<<<
 *     def charHeightBig(self): return self.ptr.charHeightBig
 *     @charHeightBig.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13charHeightBig_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13charHeightBig_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13charHeightBig___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13charHeightBig___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4171
 *     def charHeight(self, int x): self.ptr.charHeight = x
 *     @property
 *     def charHeightBig(self): return self.ptr.charHeightBig             # <<<<<<<<<<<<<<
 *     @charHeightBig.setter
 *     def charHeightBig(self, int x): self.ptr.charHeightBig = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->charHeightBig); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4170
 *     @charHeight.setter
 *     def charHeight(self, int x): self.ptr.charHeight = x
 *     @property             # <<<<<<<<<<<<<<
 *     def charHeightBig(self): return self.ptr.charHeightBig
 *     @charHeightBig.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.charHeightBig.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4172
 *     @property
 *     def charHeightBig(self): return self.ptr.charHeightBig
 *     @charHeightBig.setter             # <<<<<<<<<<<<<<
 *     def charHeightBig(self, int x): self.ptr.charHeightBig = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13charHeightBig_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13charHeightBig_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4173, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.charHeightBig.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13charHeightBig_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13charHeightBig_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4173
 *     def charHeightBig(self): return self.ptr.charHeightBig
 *     @charHeightBig.setter
 *     def charHeightBig(self, int x): self.ptr.charHeightBig = x             # <<<<<<<<<<<<<<
 *     @property
 *     def glewInitialized(self): return self.ptr.glewInitialized
 */
  __pyx_v_self->ptr->charHeightBig = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4172
 *     @property
 *     def charHeightBig(self): return self.ptr.charHeightBig
 *     @charHeightBig.setter             # <<<<<<<<<<<<<<
 *     def charHeightBig(self, int x): self.ptr.charHeightBig = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4174
 *     @charHeightBig.setter
 *     def charHeightBig(self, int x): self.ptr.charHeightBig = x
 *     @property             # <<<<<<<<<<<<<<
 *     def glewInitialized(self): return self.ptr.glewInitialized
 *     @glewInitialized.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15glewInitialized_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15glewInitialized_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15glewInitialized___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15glewInitialized___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4175
 *     def charHeightBig(self, int x): self.ptr.charHeightBig = x
 *     @property
 *     def glewInitialized(self): return self.ptr.glewInitialized             # <<<<<<<<<<<<<<
 *     @glewInitialized.setter
 *     def glewInitialized(self, int x): self.ptr.glewInitialized = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->glewInitialized); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4174
 *     @charHeightBig.setter
 *     def charHeightBig(self, int x): self.ptr.charHeightBig = x
 *     @property             # <<<<<<<<<<<<<<
 *     def glewInitialized(self): return self.ptr.glewInitialized
 *     @glewInitialized.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.glewInitialized.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4176
 *     @property
 *     def glewInitialized(self): return self.ptr.glewInitialized
 *     @glewInitialized.setter             # <<<<<<<<<<<<<<
 *     def glewInitialized(self, int x): self.ptr.glewInitialized = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15glewInitialized_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15glewInitialized_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4177, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.glewInitialized.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15glewInitialized_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15glewInitialized_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4177
 *     def glewInitialized(self): return self.ptr.glewInitialized
 *     @glewInitialized.setter
 *     def glewInitialized(self, int x): self.ptr.glewInitialized = x             # <<<<<<<<<<<<<<
 *     @property
 *     def windowAvailable(self): return self.ptr.windowAvailable
 */
  __pyx_v_self->ptr->glewInitialized = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4176
 *     @property
 *     def glewInitialized(self): return self.ptr.glewInitialized
 *     @glewInitialized.setter             # <<<<<<<<<<<<<<
 *     def glewInitialized(self, int x): self.ptr.glewInitialized = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4178
 *     @glewInitialized.setter
 *     def glewInitialized(self, int x): self.ptr.glewInitialized = x
 *     @property             # <<<<<<<<<<<<<<
 *     def windowAvailable(self): return self.ptr.windowAvailable
 *     @windowAvailable.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15windowAvailable_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15windowAvailable_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15windowAvailable___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15windowAvailable___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4179
 *     def glewInitialized(self, int x): self.ptr.glewInitialized = x
 *     @property
 *     def windowAvailable(self): return self.ptr.windowAvailable             # <<<<<<<<<<<<<<
 *     @windowAvailable.setter
 *     def windowAvailable(self, int x): self.ptr.windowAvailable = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->windowAvailable); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4178
 *     @glewInitialized.setter
 *     def glewInitialized(self, int x): self.ptr.glewInitialized = x
 *     @property             # <<<<<<<<<<<<<<
 *     def windowAvailable(self): return self.ptr.windowAvailable
 *     @windowAvailable.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.windowAvailable.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4180
 *     @property
 *     def windowAvailable(self): return self.ptr.windowAvailable
 *     @windowAvailable.setter             # <<<<<<<<<<<<<<
 *     def windowAvailable(self, int x): self.ptr.windowAvailable = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15windowAvailable_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15windowAvailable_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4181, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.windowAvailable.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15windowAvailable_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_15windowAvailable_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4181
 *     def windowAvailable(self): return self.ptr.windowAvailable
 *     @windowAvailable.setter
 *     def windowAvailable(self, int x): self.ptr.windowAvailable = x             # <<<<<<<<<<<<<<
 *     @property
 *     def windowSamples(self): return self.ptr.windowSamples
 */
  __pyx_v_self->ptr->windowAvailable = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4180
 *     @property
 *     def windowAvailable(self): return self.ptr.windowAvailable
 *     @windowAvailable.setter             # <<<<<<<<<<<<<<
 *     def windowAvailable(self, int x): self.ptr.windowAvailable = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4182
 *     @windowAvailable.setter
 *     def windowAvailable(self, int x): self.ptr.windowAvailable = x
 *     @property             # <<<<<<<<<<<<<<
 *     def windowSamples(self): return self.ptr.windowSamples
 *     @windowSamples.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13windowSamples_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13windowSamples_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13windowSamples___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13windowSamples___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4183
 *     def windowAvailable(self, int x): self.ptr.windowAvailable = x
 *     @property
 *     def windowSamples(self): return self.ptr.windowSamples             # <<<<<<<<<<<<<<
 *     @windowSamples.setter
 *     def windowSamples(self, int x): self.ptr.windowSamples = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->windowSamples); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4182
 *     @windowAvailable.setter
 *     def windowAvailable(self, int x): self.ptr.windowAvailable = x
 *     @property             # <<<<<<<<<<<<<<
 *     def windowSamples(self): return self.ptr.windowSamples
 *     @windowSamples.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.windowSamples.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4184
 *     @property
 *     def windowSamples(self): return self.ptr.windowSamples
 *     @windowSamples.setter             # <<<<<<<<<<<<<<
 *     def windowSamples(self, int x): self.ptr.windowSamples = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13windowSamples_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13windowSamples_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4185, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.windowSamples.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13windowSamples_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13windowSamples_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4185
 *     def windowSamples(self): return self.ptr.windowSamples
 *     @windowSamples.setter
 *     def windowSamples(self, int x): self.ptr.windowSamples = x             # <<<<<<<<<<<<<<
 *     @property
 *     def windowStereo(self): return self.ptr.windowStereo
 */
  __pyx_v_self->ptr->windowSamples = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4184
 *     @property
 *     def windowSamples(self): return self.ptr.windowSamples
 *     @windowSamples.setter             # <<<<<<<<<<<<<<
 *     def windowSamples(self, int x): self.ptr.windowSamples = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4186
 *     @windowSamples.setter
 *     def windowSamples(self, int x): self.ptr.windowSamples = x
 *     @property             # <<<<<<<<<<<<<<
 *     def windowStereo(self): return self.ptr.windowStereo
 *     @windowStereo.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_12windowStereo_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_12windowStereo_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_12windowStereo___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_12windowStereo___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4187
 *     def windowSamples(self, int x): self.ptr.windowSamples = x
 *     @property
 *     def windowStereo(self): return self.ptr.windowStereo             # <<<<<<<<<<<<<<
 *     @windowStereo.setter
 *     def windowStereo(self, int x): self.ptr.windowStereo = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->windowStereo); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4186
 *     @windowSamples.setter
 *     def windowSamples(self, int x): self.ptr.windowSamples = x
 *     @property             # <<<<<<<<<<<<<<
 *     def windowStereo(self): return self.ptr.windowStereo
 *     @windowStereo.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.windowStereo.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4188
 *     @property
 *     def windowStereo(self): return self.ptr.windowStereo
 *     @windowStereo.setter             # <<<<<<<<<<<<<<
 *     def windowStereo(self, int x): self.ptr.windowStereo = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_12windowStereo_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_12windowStereo_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4189, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.windowStereo.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_12windowStereo_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_12windowStereo_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4189
 *     def windowStereo(self): return self.ptr.windowStereo
 *     @windowStereo.setter
 *     def windowStereo(self, int x): self.ptr.windowStereo = x             # <<<<<<<<<<<<<<
 *     @property
 *     def windowDoublebuffer(self): return self.ptr.windowDoublebuffer
 */
  __pyx_v_self->ptr->windowStereo = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4188
 *     @property
 *     def windowStereo(self): return self.ptr.windowStereo
 *     @windowStereo.setter             # <<<<<<<<<<<<<<
 *     def windowStereo(self, int x): self.ptr.windowStereo = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4190
 *     @windowStereo.setter
 *     def windowStereo(self, int x): self.ptr.windowStereo = x
 *     @property             # <<<<<<<<<<<<<<
 *     def windowDoublebuffer(self): return self.ptr.windowDoublebuffer
 *     @windowDoublebuffer.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_18windowDoublebuffer_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_18windowDoublebuffer_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_18windowDoublebuffer___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_18windowDoublebuffer___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4191
 *     def windowStereo(self, int x): self.ptr.windowStereo = x
 *     @property
 *     def windowDoublebuffer(self): return self.ptr.windowDoublebuffer             # <<<<<<<<<<<<<<
 *     @windowDoublebuffer.setter
 *     def windowDoublebuffer(self, int x): self.ptr.windowDoublebuffer = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->windowDoublebuffer); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4190
 *     @windowStereo.setter
 *     def windowStereo(self, int x): self.ptr.windowStereo = x
 *     @property             # <<<<<<<<<<<<<<
 *     def windowDoublebuffer(self): return self.ptr.windowDoublebuffer
 *     @windowDoublebuffer.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.windowDoublebuffer.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4192
 *     @property
 *     def windowDoublebuffer(self): return self.ptr.windowDoublebuffer
 *     @windowDoublebuffer.setter             # <<<<<<<<<<<<<<
 *     def windowDoublebuffer(self, int x): self.ptr.windowDoublebuffer = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_18windowDoublebuffer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_18windowDoublebuffer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4193, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.windowDoublebuffer.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_18windowDoublebuffer_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_18windowDoublebuffer_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4193
 *     def windowDoublebuffer(self): return self.ptr.windowDoublebuffer
 *     @windowDoublebuffer.setter
 *     def windowDoublebuffer(self, int x): self.ptr.windowDoublebuffer = x             # <<<<<<<<<<<<<<
 *     @property
 *     def currentBuffer(self): return self.ptr.currentBuffer
 */
  __pyx_v_self->ptr->windowDoublebuffer = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4192
 *     @property
 *     def windowDoublebuffer(self): return self.ptr.windowDoublebuffer
 *     @windowDoublebuffer.setter             # <<<<<<<<<<<<<<
 *     def windowDoublebuffer(self, int x): self.ptr.windowDoublebuffer = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4194
 *     @windowDoublebuffer.setter
 *     def windowDoublebuffer(self, int x): self.ptr.windowDoublebuffer = x
 *     @property             # <<<<<<<<<<<<<<
 *     def currentBuffer(self): return self.ptr.currentBuffer
 *     @currentBuffer.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13currentBuffer_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13currentBuffer_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13currentBuffer___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13currentBuffer___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4195
 *     def windowDoublebuffer(self, int x): self.ptr.windowDoublebuffer = x
 *     @property
 *     def currentBuffer(self): return self.ptr.currentBuffer             # <<<<<<<<<<<<<<
 *     @currentBuffer.setter
 *     def currentBuffer(self, int x): self.ptr.currentBuffer = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->currentBuffer); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4194
 *     @windowDoublebuffer.setter
 *     def windowDoublebuffer(self, int x): self.ptr.windowDoublebuffer = x
 *     @property             # <<<<<<<<<<<<<<
 *     def currentBuffer(self): return self.ptr.currentBuffer
 *     @currentBuffer.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.currentBuffer.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4196
 *     @property
 *     def currentBuffer(self): return self.ptr.currentBuffer
 *     @currentBuffer.setter             # <<<<<<<<<<<<<<
 *     def currentBuffer(self, int x): self.ptr.currentBuffer = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13currentBuffer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13currentBuffer_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4197, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.currentBuffer.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13currentBuffer_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_13currentBuffer_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4197
 *     def currentBuffer(self): return self.ptr.currentBuffer
 *     @currentBuffer.setter
 *     def currentBuffer(self, int x): self.ptr.currentBuffer = x             # <<<<<<<<<<<<<<
 *     @property
 *     def fogRGBA(self): return self._fogRGBA
 */
  __pyx_v_self->ptr->currentBuffer = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4196
 *     @property
 *     def currentBuffer(self): return self.ptr.currentBuffer
 *     @currentBuffer.setter             # <<<<<<<<<<<<<<
 *     def currentBuffer(self, int x): self.ptr.currentBuffer = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4198
 *     @currentBuffer.setter
 *     def currentBuffer(self, int x): self.ptr.currentBuffer = x
 *     @property             # <<<<<<<<<<<<<<
 *     def fogRGBA(self): return self._fogRGBA
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_7fogRGBA_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_7fogRGBA_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_7fogRGBA___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_7fogRGBA___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4199
 *     def currentBuffer(self, int x): self.ptr.currentBuffer = x
 *     @property
 *     def fogRGBA(self): return self._fogRGBA             # <<<<<<<<<<<<<<
 *     @property
 *     def auxWidth(self): return self._auxWidth
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_fogRGBA);
  __pyx_r = ((PyObject *)__pyx_v_self->_fogRGBA);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4198
 *     @currentBuffer.setter
 *     def currentBuffer(self, int x): self.ptr.currentBuffer = x
 *     @property             # <<<<<<<<<<<<<<
 *     def fogRGBA(self): return self._fogRGBA
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4200
 *     @property
 *     def fogRGBA(self): return self._fogRGBA
 *     @property             # <<<<<<<<<<<<<<
 *     def auxWidth(self): return self._auxWidth
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8auxWidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8auxWidth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8auxWidth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8auxWidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4201
 *     def fogRGBA(self): return self._fogRGBA
 *     @property
 *     def auxWidth(self): return self._auxWidth             # <<<<<<<<<<<<<<
 *     @property
 *     def auxHeight(self): return self._auxHeight
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_auxWidth);
  __pyx_r = ((PyObject *)__pyx_v_self->_auxWidth);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4200
 *     @property
 *     def fogRGBA(self): return self._fogRGBA
 *     @property             # <<<<<<<<<<<<<<
 *     def auxWidth(self): return self._auxWidth
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4202
 *     @property
 *     def auxWidth(self): return self._auxWidth
 *     @property             # <<<<<<<<<<<<<<
 *     def auxHeight(self): return self._auxHeight
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9auxHeight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9auxHeight_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9auxHeight___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9auxHeight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4203
 *     def auxWidth(self): return self._auxWidth
 *     @property
 *     def auxHeight(self): return self._auxHeight             # <<<<<<<<<<<<<<
 *     @property
 *     def auxSamples(self): return self._auxSamples
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_auxHeight);
  __pyx_r = ((PyObject *)__pyx_v_self->_auxHeight);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4202
 *     @property
 *     def auxWidth(self): return self._auxWidth
 *     @property             # <<<<<<<<<<<<<<
 *     def auxHeight(self): return self._auxHeight
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4204
 *     @property
 *     def auxHeight(self): return self._auxHeight
 *     @property             # <<<<<<<<<<<<<<
 *     def auxSamples(self): return self._auxSamples
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10auxSamples_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10auxSamples_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10auxSamples___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10auxSamples___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4205
 *     def auxHeight(self): return self._auxHeight
 *     @property
 *     def auxSamples(self): return self._auxSamples             # <<<<<<<<<<<<<<
 *     @property
 *     def auxFBO(self): return self._auxFBO
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_auxSamples);
  __pyx_r = ((PyObject *)__pyx_v_self->_auxSamples);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4204
 *     @property
 *     def auxHeight(self): return self._auxHeight
 *     @property             # <<<<<<<<<<<<<<
 *     def auxSamples(self): return self._auxSamples
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4206
 *     @property
 *     def auxSamples(self): return self._auxSamples
 *     @property             # <<<<<<<<<<<<<<
 *     def auxFBO(self): return self._auxFBO
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_6auxFBO_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_6auxFBO_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_6auxFBO___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_6auxFBO___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4207
 *     def auxSamples(self): return self._auxSamples
 *     @property
 *     def auxFBO(self): return self._auxFBO             # <<<<<<<<<<<<<<
 *     @property
 *     def auxFBO_r(self): return self._auxFBO_r
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_auxFBO);
  __pyx_r = ((PyObject *)__pyx_v_self->_auxFBO);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4206
 *     @property
 *     def auxSamples(self): return self._auxSamples
 *     @property             # <<<<<<<<<<<<<<
 *     def auxFBO(self): return self._auxFBO
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4208
 *     @property
 *     def auxFBO(self): return self._auxFBO
 *     @property             # <<<<<<<<<<<<<<
 *     def auxFBO_r(self): return self._auxFBO_r
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8auxFBO_r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8auxFBO_r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8auxFBO_r___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8auxFBO_r___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4209
 *     def auxFBO(self): return self._auxFBO
 *     @property
 *     def auxFBO_r(self): return self._auxFBO_r             # <<<<<<<<<<<<<<
 *     @property
 *     def auxColor(self): return self._auxColor
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_auxFBO_r);
  __pyx_r = ((PyObject *)__pyx_v_self->_auxFBO_r);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4208
 *     @property
 *     def auxFBO(self): return self._auxFBO
 *     @property             # <<<<<<<<<<<<<<
 *     def auxFBO_r(self): return self._auxFBO_r
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4210
 *     @property
 *     def auxFBO_r(self): return self._auxFBO_r
 *     @property             # <<<<<<<<<<<<<<
 *     def auxColor(self): return self._auxColor
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8auxColor_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8auxColor_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8auxColor___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_8auxColor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4211
 *     def auxFBO_r(self): return self._auxFBO_r
 *     @property
 *     def auxColor(self): return self._auxColor             # <<<<<<<<<<<<<<
 *     @property
 *     def auxColor_r(self): return self._auxColor_r
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_auxColor);
  __pyx_r = ((PyObject *)__pyx_v_self->_auxColor);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4210
 *     @property
 *     def auxFBO_r(self): return self._auxFBO_r
 *     @property             # <<<<<<<<<<<<<<
 *     def auxColor(self): return self._auxColor
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4212
 *     @property
 *     def auxColor(self): return self._auxColor
 *     @property             # <<<<<<<<<<<<<<
 *     def auxColor_r(self): return self._auxColor_r
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10auxColor_r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10auxColor_r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10auxColor_r___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_10auxColor_r___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4213
 *     def auxColor(self): return self._auxColor
 *     @property
 *     def auxColor_r(self): return self._auxColor_r             # <<<<<<<<<<<<<<
 *     @property
 *     def textureType(self): return self._textureType
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_auxColor_r);
  __pyx_r = ((PyObject *)__pyx_v_self->_auxColor_r);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4212
 *     @property
 *     def auxColor(self): return self._auxColor
 *     @property             # <<<<<<<<<<<<<<
 *     def auxColor_r(self): return self._auxColor_r
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4214
 *     @property
 *     def auxColor_r(self): return self._auxColor_r
 *     @property             # <<<<<<<<<<<<<<
 *     def textureType(self): return self._textureType
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11textureType_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11textureType_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11textureType___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_11textureType___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4215
 *     def auxColor_r(self): return self._auxColor_r
 *     @property
 *     def textureType(self): return self._textureType             # <<<<<<<<<<<<<<
 *     @property
 *     def texture(self): return self._texture
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_textureType);
  __pyx_r = ((PyObject *)__pyx_v_self->_textureType);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4214
 *     @property
 *     def auxColor_r(self): return self._auxColor_r
 *     @property             # <<<<<<<<<<<<<<
 *     def textureType(self): return self._textureType
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4216
 *     @property
 *     def textureType(self): return self._textureType
 *     @property             # <<<<<<<<<<<<<<
 *     def texture(self): return self._texture
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_7texture_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_7texture_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_7texture___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_7texture___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4217
 *     def textureType(self): return self._textureType
 *     @property
 *     def texture(self): return self._texture             # <<<<<<<<<<<<<<
 *     @property
 *     def charWidth(self): return self._charWidth
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_texture);
  __pyx_r = ((PyObject *)__pyx_v_self->_texture);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4216
 *     @property
 *     def textureType(self): return self._textureType
 *     @property             # <<<<<<<<<<<<<<
 *     def texture(self): return self._texture
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4218
 *     @property
 *     def texture(self): return self._texture
 *     @property             # <<<<<<<<<<<<<<
 *     def charWidth(self): return self._charWidth
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9charWidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9charWidth_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9charWidth___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_9charWidth___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4219
 *     def texture(self): return self._texture
 *     @property
 *     def charWidth(self): return self._charWidth             # <<<<<<<<<<<<<<
 *     @property
 *     def charWidthBig(self): return self._charWidthBig
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_charWidth);
  __pyx_r = ((PyObject *)__pyx_v_self->_charWidth);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4218
 *     @property
 *     def texture(self): return self._texture
 *     @property             # <<<<<<<<<<<<<<
 *     def charWidth(self): return self._charWidth
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4220
 *     @property
 *     def charWidth(self): return self._charWidth
 *     @property             # <<<<<<<<<<<<<<
 *     def charWidthBig(self): return self._charWidthBig
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_12charWidthBig_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_12charWidthBig_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_12charWidthBig___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_12charWidthBig___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4221
 *     def charWidth(self): return self._charWidth
 *     @property
 *     def charWidthBig(self): return self._charWidthBig             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjrContext WrapMjrContext(mjrContext* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_charWidthBig);
  __pyx_r = ((PyObject *)__pyx_v_self->_charWidthBig);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4220
 *     @property
 *     def charWidth(self): return self._charWidth
 *     @property             # <<<<<<<<<<<<<<
 *     def charWidthBig(self): return self._charWidthBig
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_12PyMjrContext_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_12PyMjrContext_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12PyMjrContext_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12PyMjrContext_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjrContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4223
 *     def charWidthBig(self): return self._charWidthBig
 * 
 * cdef PyMjrContext WrapMjrContext(mjrContext* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjrContext o = PyMjrContext()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_f_9mujoco_py_4cymj_WrapMjrContext(mjrContext *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjrContext", 1);

  /* "mujoco_py/generated/wrappers.pxi":4224
 * 
 * cdef PyMjrContext WrapMjrContext(mjrContext* p):
 *     cdef PyMjrContext o = PyMjrContext()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjrContext)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4225
 * cdef PyMjrContext WrapMjrContext(mjrContext* p):
 *     cdef PyMjrContext o = PyMjrContext()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjrContext *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":4226
 *     cdef PyMjrContext o = PyMjrContext()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjuiState(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4223
 *     def charWidthBig(self): return self._charWidthBig
 * 
 * cdef PyMjrContext WrapMjrContext(mjrContext* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjrContext o = PyMjrContext()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjrContext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4234
 *     cdef list _rect
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4235
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4234
 *     cdef list _rect
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4238
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4239
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjuiState* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4238
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4241
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjuiState* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_11PyMjuiState__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, mjuiState *__pyx_v_p) {
  long __pyx_8genexpr8__pyx_v_i;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  long __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":4243
 *     cdef void _set(self, mjuiState* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":4246
 * 
 * 
 *         self._rect = [WrapMjrRect(&p.rect[i]) for i in range(25)]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4246, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    for (__pyx_t_2 = 0; __pyx_t_2 < 25; __pyx_t_2+=1) {
      __pyx_8genexpr8__pyx_v_i = __pyx_t_2;
      __pyx_t_3 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjrRect((&(__pyx_v_p->rect[__pyx_8genexpr8__pyx_v_i])))); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4246, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(4, 4246, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
  } /* exit inner scope */
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_rect);
  __Pyx_DECREF(__pyx_v_self->_rect);
  __pyx_v_self->_rect = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4241
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjuiState* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjuiState._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":4248
 *         self._rect = [WrapMjrRect(&p.rect[i]) for i in range(25)]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def nrect(self): return self.ptr.nrect
 *     @nrect.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5nrect_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5nrect_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5nrect___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5nrect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4249
 * 
 *     @property
 *     def nrect(self): return self.ptr.nrect             # <<<<<<<<<<<<<<
 *     @nrect.setter
 *     def nrect(self, int x): self.ptr.nrect = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nrect); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4248
 *         self._rect = [WrapMjrRect(&p.rect[i]) for i in range(25)]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def nrect(self): return self.ptr.nrect
 *     @nrect.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.nrect.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4250
 *     @property
 *     def nrect(self): return self.ptr.nrect
 *     @nrect.setter             # <<<<<<<<<<<<<<
 *     def nrect(self, int x): self.ptr.nrect = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5nrect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5nrect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4251, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.nrect.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5nrect_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5nrect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4251
 *     def nrect(self): return self.ptr.nrect
 *     @nrect.setter
 *     def nrect(self, int x): self.ptr.nrect = x             # <<<<<<<<<<<<<<
 *     @property
 *     def type(self): return self.ptr.type
 */
  __pyx_v_self->ptr->nrect = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4250
 *     @property
 *     def nrect(self): return self.ptr.nrect
 *     @nrect.setter             # <<<<<<<<<<<<<<
 *     def nrect(self, int x): self.ptr.nrect = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4252
 *     @nrect.setter
 *     def nrect(self, int x): self.ptr.nrect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def type(self): return self.ptr.type
 *     @type.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_4type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_4type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4type___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4253
 *     def nrect(self, int x): self.ptr.nrect = x
 *     @property
 *     def type(self): return self.ptr.type             # <<<<<<<<<<<<<<
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->type); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4252
 *     @nrect.setter
 *     def nrect(self, int x): self.ptr.nrect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def type(self): return self.ptr.type
 *     @type.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4254
 *     @property
 *     def type(self): return self.ptr.type
 *     @type.setter             # <<<<<<<<<<<<<<
 *     def type(self, int x): self.ptr.type = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4255, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4type_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4type_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4255
 *     def type(self): return self.ptr.type
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x             # <<<<<<<<<<<<<<
 *     @property
 *     def left(self): return self.ptr.left
 */
  __pyx_v_self->ptr->type = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4254
 *     @property
 *     def type(self): return self.ptr.type
 *     @type.setter             # <<<<<<<<<<<<<<
 *     def type(self, int x): self.ptr.type = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4256
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x
 *     @property             # <<<<<<<<<<<<<<
 *     def left(self): return self.ptr.left
 *     @left.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_4left_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_4left_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4left___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4left___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4257
 *     def type(self, int x): self.ptr.type = x
 *     @property
 *     def left(self): return self.ptr.left             # <<<<<<<<<<<<<<
 *     @left.setter
 *     def left(self, int x): self.ptr.left = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->left); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4256
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x
 *     @property             # <<<<<<<<<<<<<<
 *     def left(self): return self.ptr.left
 *     @left.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.left.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4258
 *     @property
 *     def left(self): return self.ptr.left
 *     @left.setter             # <<<<<<<<<<<<<<
 *     def left(self, int x): self.ptr.left = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_4left_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_4left_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4259, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.left.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4left_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4left_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4259
 *     def left(self): return self.ptr.left
 *     @left.setter
 *     def left(self, int x): self.ptr.left = x             # <<<<<<<<<<<<<<
 *     @property
 *     def right(self): return self.ptr.right
 */
  __pyx_v_self->ptr->left = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4258
 *     @property
 *     def left(self): return self.ptr.left
 *     @left.setter             # <<<<<<<<<<<<<<
 *     def left(self, int x): self.ptr.left = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4260
 *     @left.setter
 *     def left(self, int x): self.ptr.left = x
 *     @property             # <<<<<<<<<<<<<<
 *     def right(self): return self.ptr.right
 *     @right.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5right_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5right_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5right___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5right___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4261
 *     def left(self, int x): self.ptr.left = x
 *     @property
 *     def right(self): return self.ptr.right             # <<<<<<<<<<<<<<
 *     @right.setter
 *     def right(self, int x): self.ptr.right = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->right); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4260
 *     @left.setter
 *     def left(self, int x): self.ptr.left = x
 *     @property             # <<<<<<<<<<<<<<
 *     def right(self): return self.ptr.right
 *     @right.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.right.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4262
 *     @property
 *     def right(self): return self.ptr.right
 *     @right.setter             # <<<<<<<<<<<<<<
 *     def right(self, int x): self.ptr.right = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5right_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5right_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4263, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.right.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5right_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5right_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4263
 *     def right(self): return self.ptr.right
 *     @right.setter
 *     def right(self, int x): self.ptr.right = x             # <<<<<<<<<<<<<<
 *     @property
 *     def middle(self): return self.ptr.middle
 */
  __pyx_v_self->ptr->right = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4262
 *     @property
 *     def right(self): return self.ptr.right
 *     @right.setter             # <<<<<<<<<<<<<<
 *     def right(self, int x): self.ptr.right = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4264
 *     @right.setter
 *     def right(self, int x): self.ptr.right = x
 *     @property             # <<<<<<<<<<<<<<
 *     def middle(self): return self.ptr.middle
 *     @middle.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_6middle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_6middle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_6middle___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_6middle___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4265
 *     def right(self, int x): self.ptr.right = x
 *     @property
 *     def middle(self): return self.ptr.middle             # <<<<<<<<<<<<<<
 *     @middle.setter
 *     def middle(self, int x): self.ptr.middle = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->middle); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4264
 *     @right.setter
 *     def right(self, int x): self.ptr.right = x
 *     @property             # <<<<<<<<<<<<<<
 *     def middle(self): return self.ptr.middle
 *     @middle.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.middle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4266
 *     @property
 *     def middle(self): return self.ptr.middle
 *     @middle.setter             # <<<<<<<<<<<<<<
 *     def middle(self, int x): self.ptr.middle = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_6middle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_6middle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4267, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.middle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_6middle_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_6middle_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4267
 *     def middle(self): return self.ptr.middle
 *     @middle.setter
 *     def middle(self, int x): self.ptr.middle = x             # <<<<<<<<<<<<<<
 *     @property
 *     def doubleclick(self): return self.ptr.doubleclick
 */
  __pyx_v_self->ptr->middle = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4266
 *     @property
 *     def middle(self): return self.ptr.middle
 *     @middle.setter             # <<<<<<<<<<<<<<
 *     def middle(self, int x): self.ptr.middle = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4268
 *     @middle.setter
 *     def middle(self, int x): self.ptr.middle = x
 *     @property             # <<<<<<<<<<<<<<
 *     def doubleclick(self): return self.ptr.doubleclick
 *     @doubleclick.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_11doubleclick_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_11doubleclick_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_11doubleclick___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_11doubleclick___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4269
 *     def middle(self, int x): self.ptr.middle = x
 *     @property
 *     def doubleclick(self): return self.ptr.doubleclick             # <<<<<<<<<<<<<<
 *     @doubleclick.setter
 *     def doubleclick(self, int x): self.ptr.doubleclick = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->doubleclick); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4268
 *     @middle.setter
 *     def middle(self, int x): self.ptr.middle = x
 *     @property             # <<<<<<<<<<<<<<
 *     def doubleclick(self): return self.ptr.doubleclick
 *     @doubleclick.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.doubleclick.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4270
 *     @property
 *     def doubleclick(self): return self.ptr.doubleclick
 *     @doubleclick.setter             # <<<<<<<<<<<<<<
 *     def doubleclick(self, int x): self.ptr.doubleclick = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_11doubleclick_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_11doubleclick_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4271, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.doubleclick.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_11doubleclick_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_11doubleclick_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4271
 *     def doubleclick(self): return self.ptr.doubleclick
 *     @doubleclick.setter
 *     def doubleclick(self, int x): self.ptr.doubleclick = x             # <<<<<<<<<<<<<<
 *     @property
 *     def button(self): return self.ptr.button
 */
  __pyx_v_self->ptr->doubleclick = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4270
 *     @property
 *     def doubleclick(self): return self.ptr.doubleclick
 *     @doubleclick.setter             # <<<<<<<<<<<<<<
 *     def doubleclick(self, int x): self.ptr.doubleclick = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4272
 *     @doubleclick.setter
 *     def doubleclick(self, int x): self.ptr.doubleclick = x
 *     @property             # <<<<<<<<<<<<<<
 *     def button(self): return self.ptr.button
 *     @button.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_6button_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_6button_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_6button___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_6button___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4273
 *     def doubleclick(self, int x): self.ptr.doubleclick = x
 *     @property
 *     def button(self): return self.ptr.button             # <<<<<<<<<<<<<<
 *     @button.setter
 *     def button(self, int x): self.ptr.button = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->button); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4272
 *     @doubleclick.setter
 *     def doubleclick(self, int x): self.ptr.doubleclick = x
 *     @property             # <<<<<<<<<<<<<<
 *     def button(self): return self.ptr.button
 *     @button.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.button.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4274
 *     @property
 *     def button(self): return self.ptr.button
 *     @button.setter             # <<<<<<<<<<<<<<
 *     def button(self, int x): self.ptr.button = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_6button_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_6button_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4275, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.button.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_6button_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_6button_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4275
 *     def button(self): return self.ptr.button
 *     @button.setter
 *     def button(self, int x): self.ptr.button = x             # <<<<<<<<<<<<<<
 *     @property
 *     def control(self): return self.ptr.control
 */
  __pyx_v_self->ptr->button = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4274
 *     @property
 *     def button(self): return self.ptr.button
 *     @button.setter             # <<<<<<<<<<<<<<
 *     def button(self, int x): self.ptr.button = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4276
 *     @button.setter
 *     def button(self, int x): self.ptr.button = x
 *     @property             # <<<<<<<<<<<<<<
 *     def control(self): return self.ptr.control
 *     @control.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_7control_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_7control_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_7control___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_7control___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4277
 *     def button(self, int x): self.ptr.button = x
 *     @property
 *     def control(self): return self.ptr.control             # <<<<<<<<<<<<<<
 *     @control.setter
 *     def control(self, int x): self.ptr.control = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->control); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4276
 *     @button.setter
 *     def button(self, int x): self.ptr.button = x
 *     @property             # <<<<<<<<<<<<<<
 *     def control(self): return self.ptr.control
 *     @control.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.control.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4278
 *     @property
 *     def control(self): return self.ptr.control
 *     @control.setter             # <<<<<<<<<<<<<<
 *     def control(self, int x): self.ptr.control = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_7control_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_7control_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4279, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.control.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_7control_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_7control_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4279
 *     def control(self): return self.ptr.control
 *     @control.setter
 *     def control(self, int x): self.ptr.control = x             # <<<<<<<<<<<<<<
 *     @property
 *     def shift(self): return self.ptr.shift
 */
  __pyx_v_self->ptr->control = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4278
 *     @property
 *     def control(self): return self.ptr.control
 *     @control.setter             # <<<<<<<<<<<<<<
 *     def control(self, int x): self.ptr.control = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4280
 *     @control.setter
 *     def control(self, int x): self.ptr.control = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shift(self): return self.ptr.shift
 *     @shift.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5shift_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5shift_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5shift___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5shift___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4281
 *     def control(self, int x): self.ptr.control = x
 *     @property
 *     def shift(self): return self.ptr.shift             # <<<<<<<<<<<<<<
 *     @shift.setter
 *     def shift(self, int x): self.ptr.shift = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->shift); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4280
 *     @control.setter
 *     def control(self, int x): self.ptr.control = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shift(self): return self.ptr.shift
 *     @shift.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.shift.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4282
 *     @property
 *     def shift(self): return self.ptr.shift
 *     @shift.setter             # <<<<<<<<<<<<<<
 *     def shift(self, int x): self.ptr.shift = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5shift_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5shift_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4283, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.shift.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5shift_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_5shift_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4283
 *     def shift(self): return self.ptr.shift
 *     @shift.setter
 *     def shift(self, int x): self.ptr.shift = x             # <<<<<<<<<<<<<<
 *     @property
 *     def alt(self): return self.ptr.alt
 */
  __pyx_v_self->ptr->shift = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4282
 *     @property
 *     def shift(self): return self.ptr.shift
 *     @shift.setter             # <<<<<<<<<<<<<<
 *     def shift(self, int x): self.ptr.shift = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4284
 *     @shift.setter
 *     def shift(self, int x): self.ptr.shift = x
 *     @property             # <<<<<<<<<<<<<<
 *     def alt(self): return self.ptr.alt
 *     @alt.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3alt_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3alt_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_3alt___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_3alt___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4285
 *     def shift(self, int x): self.ptr.shift = x
 *     @property
 *     def alt(self): return self.ptr.alt             # <<<<<<<<<<<<<<
 *     @alt.setter
 *     def alt(self, int x): self.ptr.alt = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->alt); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4284
 *     @shift.setter
 *     def shift(self, int x): self.ptr.shift = x
 *     @property             # <<<<<<<<<<<<<<
 *     def alt(self): return self.ptr.alt
 *     @alt.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.alt.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4286
 *     @property
 *     def alt(self): return self.ptr.alt
 *     @alt.setter             # <<<<<<<<<<<<<<
 *     def alt(self, int x): self.ptr.alt = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3alt_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3alt_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4287, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.alt.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_3alt_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_3alt_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4287
 *     def alt(self): return self.ptr.alt
 *     @alt.setter
 *     def alt(self, int x): self.ptr.alt = x             # <<<<<<<<<<<<<<
 *     @property
 *     def key(self): return self.ptr.key
 */
  __pyx_v_self->ptr->alt = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4286
 *     @property
 *     def alt(self): return self.ptr.alt
 *     @alt.setter             # <<<<<<<<<<<<<<
 *     def alt(self, int x): self.ptr.alt = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4288
 *     @alt.setter
 *     def alt(self, int x): self.ptr.alt = x
 *     @property             # <<<<<<<<<<<<<<
 *     def key(self): return self.ptr.key
 *     @key.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3key_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3key_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_3key___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_3key___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4289
 *     def alt(self, int x): self.ptr.alt = x
 *     @property
 *     def key(self): return self.ptr.key             # <<<<<<<<<<<<<<
 *     @key.setter
 *     def key(self, int x): self.ptr.key = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->key); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4288
 *     @alt.setter
 *     def alt(self, int x): self.ptr.alt = x
 *     @property             # <<<<<<<<<<<<<<
 *     def key(self): return self.ptr.key
 *     @key.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.key.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4290
 *     @property
 *     def key(self): return self.ptr.key
 *     @key.setter             # <<<<<<<<<<<<<<
 *     def key(self, int x): self.ptr.key = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3key_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3key_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4291, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.key.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_3key_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_3key_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4291
 *     def key(self): return self.ptr.key
 *     @key.setter
 *     def key(self, int x): self.ptr.key = x             # <<<<<<<<<<<<<<
 *     @property
 *     def mouserect(self): return self.ptr.mouserect
 */
  __pyx_v_self->ptr->key = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4290
 *     @property
 *     def key(self): return self.ptr.key
 *     @key.setter             # <<<<<<<<<<<<<<
 *     def key(self, int x): self.ptr.key = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4292
 *     @key.setter
 *     def key(self, int x): self.ptr.key = x
 *     @property             # <<<<<<<<<<<<<<
 *     def mouserect(self): return self.ptr.mouserect
 *     @mouserect.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_9mouserect_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_9mouserect_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_9mouserect___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_9mouserect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4293
 *     def key(self, int x): self.ptr.key = x
 *     @property
 *     def mouserect(self): return self.ptr.mouserect             # <<<<<<<<<<<<<<
 *     @mouserect.setter
 *     def mouserect(self, int x): self.ptr.mouserect = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->mouserect); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4292
 *     @key.setter
 *     def key(self, int x): self.ptr.key = x
 *     @property             # <<<<<<<<<<<<<<
 *     def mouserect(self): return self.ptr.mouserect
 *     @mouserect.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.mouserect.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4294
 *     @property
 *     def mouserect(self): return self.ptr.mouserect
 *     @mouserect.setter             # <<<<<<<<<<<<<<
 *     def mouserect(self, int x): self.ptr.mouserect = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_9mouserect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_9mouserect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4295, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.mouserect.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_9mouserect_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_9mouserect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4295
 *     def mouserect(self): return self.ptr.mouserect
 *     @mouserect.setter
 *     def mouserect(self, int x): self.ptr.mouserect = x             # <<<<<<<<<<<<<<
 *     @property
 *     def dragrect(self): return self.ptr.dragrect
 */
  __pyx_v_self->ptr->mouserect = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4294
 *     @property
 *     def mouserect(self): return self.ptr.mouserect
 *     @mouserect.setter             # <<<<<<<<<<<<<<
 *     def mouserect(self, int x): self.ptr.mouserect = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4296
 *     @mouserect.setter
 *     def mouserect(self, int x): self.ptr.mouserect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def dragrect(self): return self.ptr.dragrect
 *     @dragrect.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_8dragrect_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_8dragrect_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_8dragrect___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_8dragrect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4297
 *     def mouserect(self, int x): self.ptr.mouserect = x
 *     @property
 *     def dragrect(self): return self.ptr.dragrect             # <<<<<<<<<<<<<<
 *     @dragrect.setter
 *     def dragrect(self, int x): self.ptr.dragrect = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->dragrect); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4296
 *     @mouserect.setter
 *     def mouserect(self, int x): self.ptr.mouserect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def dragrect(self): return self.ptr.dragrect
 *     @dragrect.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.dragrect.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4298
 *     @property
 *     def dragrect(self): return self.ptr.dragrect
 *     @dragrect.setter             # <<<<<<<<<<<<<<
 *     def dragrect(self, int x): self.ptr.dragrect = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_8dragrect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_8dragrect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4299, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.dragrect.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_8dragrect_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_8dragrect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4299
 *     def dragrect(self): return self.ptr.dragrect
 *     @dragrect.setter
 *     def dragrect(self, int x): self.ptr.dragrect = x             # <<<<<<<<<<<<<<
 *     @property
 *     def dragbutton(self): return self.ptr.dragbutton
 */
  __pyx_v_self->ptr->dragrect = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4298
 *     @property
 *     def dragrect(self): return self.ptr.dragrect
 *     @dragrect.setter             # <<<<<<<<<<<<<<
 *     def dragrect(self, int x): self.ptr.dragrect = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4300
 *     @dragrect.setter
 *     def dragrect(self, int x): self.ptr.dragrect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def dragbutton(self): return self.ptr.dragbutton
 *     @dragbutton.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_10dragbutton_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_10dragbutton_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_10dragbutton___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_10dragbutton___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4301
 *     def dragrect(self, int x): self.ptr.dragrect = x
 *     @property
 *     def dragbutton(self): return self.ptr.dragbutton             # <<<<<<<<<<<<<<
 *     @dragbutton.setter
 *     def dragbutton(self, int x): self.ptr.dragbutton = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->dragbutton); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4300
 *     @dragrect.setter
 *     def dragrect(self, int x): self.ptr.dragrect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def dragbutton(self): return self.ptr.dragbutton
 *     @dragbutton.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.dragbutton.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4302
 *     @property
 *     def dragbutton(self): return self.ptr.dragbutton
 *     @dragbutton.setter             # <<<<<<<<<<<<<<
 *     def dragbutton(self, int x): self.ptr.dragbutton = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_10dragbutton_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_10dragbutton_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4303, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.dragbutton.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_10dragbutton_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_10dragbutton_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4303
 *     def dragbutton(self): return self.ptr.dragbutton
 *     @dragbutton.setter
 *     def dragbutton(self, int x): self.ptr.dragbutton = x             # <<<<<<<<<<<<<<
 *     @property
 *     def rect(self): return self._rect
 */
  __pyx_v_self->ptr->dragbutton = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4302
 *     @property
 *     def dragbutton(self): return self.ptr.dragbutton
 *     @dragbutton.setter             # <<<<<<<<<<<<<<
 *     def dragbutton(self, int x): self.ptr.dragbutton = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4304
 *     @dragbutton.setter
 *     def dragbutton(self, int x): self.ptr.dragbutton = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rect(self): return self._rect
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_4rect_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_4rect_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4rect___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4rect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4305
 *     def dragbutton(self, int x): self.ptr.dragbutton = x
 *     @property
 *     def rect(self): return self._rect             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjuiState WrapMjuiState(mjuiState* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_rect);
  __pyx_r = __pyx_v_self->_rect;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4304
 *     @dragbutton.setter
 *     def dragbutton(self, int x): self.ptr.dragbutton = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rect(self): return self._rect
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11PyMjuiState_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11PyMjuiState_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11PyMjuiState_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4307
 *     def rect(self): return self._rect
 * 
 * cdef PyMjuiState WrapMjuiState(mjuiState* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjuiState o = PyMjuiState()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_f_9mujoco_py_4cymj_WrapMjuiState(mjuiState *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjuiState", 1);

  /* "mujoco_py/generated/wrappers.pxi":4308
 * 
 * cdef PyMjuiState WrapMjuiState(mjuiState* p):
 *     cdef PyMjuiState o = PyMjuiState()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjuiState)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4309
 * cdef PyMjuiState WrapMjuiState(mjuiState* p):
 *     cdef PyMjuiState o = PyMjuiState()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiState *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":4310
 *     cdef PyMjuiState o = PyMjuiState()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjuiThemeSpacing(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4307
 *     def rect(self): return self._rect
 * 
 * cdef PyMjuiState WrapMjuiState(mjuiState* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjuiState o = PyMjuiState()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjuiState", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4317
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4318
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4317
 * 
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4321
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4322
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjuiThemeSpacing* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4321
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4324
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjuiThemeSpacing* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_18PyMjuiThemeSpacing__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, mjuiThemeSpacing *__pyx_v_p) {

  /* "mujoco_py/generated/wrappers.pxi":4326
 *     cdef void _set(self, mjuiThemeSpacing* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":4324
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjuiThemeSpacing* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
}

/* "mujoco_py/generated/wrappers.pxi":4330
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def total(self): return self.ptr.total
 *     @total.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5total_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5total_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5total___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5total___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4331
 * 
 *     @property
 *     def total(self): return self.ptr.total             # <<<<<<<<<<<<<<
 *     @total.setter
 *     def total(self, int x): self.ptr.total = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->total); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4330
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def total(self): return self.ptr.total
 *     @total.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.total.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4332
 *     @property
 *     def total(self): return self.ptr.total
 *     @total.setter             # <<<<<<<<<<<<<<
 *     def total(self, int x): self.ptr.total = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5total_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5total_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4333, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.total.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5total_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5total_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4333
 *     def total(self): return self.ptr.total
 *     @total.setter
 *     def total(self, int x): self.ptr.total = x             # <<<<<<<<<<<<<<
 *     @property
 *     def scroll(self): return self.ptr.scroll
 */
  __pyx_v_self->ptr->total = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4332
 *     @property
 *     def total(self): return self.ptr.total
 *     @total.setter             # <<<<<<<<<<<<<<
 *     def total(self, int x): self.ptr.total = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4334
 *     @total.setter
 *     def total(self, int x): self.ptr.total = x
 *     @property             # <<<<<<<<<<<<<<
 *     def scroll(self): return self.ptr.scroll
 *     @scroll.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_6scroll_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_6scroll_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_6scroll___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_6scroll___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4335
 *     def total(self, int x): self.ptr.total = x
 *     @property
 *     def scroll(self): return self.ptr.scroll             # <<<<<<<<<<<<<<
 *     @scroll.setter
 *     def scroll(self, int x): self.ptr.scroll = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->scroll); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4334
 *     @total.setter
 *     def total(self, int x): self.ptr.total = x
 *     @property             # <<<<<<<<<<<<<<
 *     def scroll(self): return self.ptr.scroll
 *     @scroll.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.scroll.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4336
 *     @property
 *     def scroll(self): return self.ptr.scroll
 *     @scroll.setter             # <<<<<<<<<<<<<<
 *     def scroll(self, int x): self.ptr.scroll = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_6scroll_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_6scroll_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4337, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.scroll.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_6scroll_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_6scroll_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4337
 *     def scroll(self): return self.ptr.scroll
 *     @scroll.setter
 *     def scroll(self, int x): self.ptr.scroll = x             # <<<<<<<<<<<<<<
 *     @property
 *     def label(self): return self.ptr.label
 */
  __pyx_v_self->ptr->scroll = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4336
 *     @property
 *     def scroll(self): return self.ptr.scroll
 *     @scroll.setter             # <<<<<<<<<<<<<<
 *     def scroll(self, int x): self.ptr.scroll = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4338
 *     @scroll.setter
 *     def scroll(self, int x): self.ptr.scroll = x
 *     @property             # <<<<<<<<<<<<<<
 *     def label(self): return self.ptr.label
 *     @label.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5label_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5label_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5label___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5label___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4339
 *     def scroll(self, int x): self.ptr.scroll = x
 *     @property
 *     def label(self): return self.ptr.label             # <<<<<<<<<<<<<<
 *     @label.setter
 *     def label(self, int x): self.ptr.label = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->label); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4338
 *     @scroll.setter
 *     def scroll(self, int x): self.ptr.scroll = x
 *     @property             # <<<<<<<<<<<<<<
 *     def label(self): return self.ptr.label
 *     @label.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.label.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4340
 *     @property
 *     def label(self): return self.ptr.label
 *     @label.setter             # <<<<<<<<<<<<<<
 *     def label(self, int x): self.ptr.label = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5label_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5label_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4341, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.label.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5label_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5label_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4341
 *     def label(self): return self.ptr.label
 *     @label.setter
 *     def label(self, int x): self.ptr.label = x             # <<<<<<<<<<<<<<
 *     @property
 *     def section(self): return self.ptr.section
 */
  __pyx_v_self->ptr->label = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4340
 *     @property
 *     def label(self): return self.ptr.label
 *     @label.setter             # <<<<<<<<<<<<<<
 *     def label(self, int x): self.ptr.label = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4342
 *     @label.setter
 *     def label(self, int x): self.ptr.label = x
 *     @property             # <<<<<<<<<<<<<<
 *     def section(self): return self.ptr.section
 *     @section.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7section_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7section_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7section___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7section___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4343
 *     def label(self, int x): self.ptr.label = x
 *     @property
 *     def section(self): return self.ptr.section             # <<<<<<<<<<<<<<
 *     @section.setter
 *     def section(self, int x): self.ptr.section = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->section); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4342
 *     @label.setter
 *     def label(self, int x): self.ptr.label = x
 *     @property             # <<<<<<<<<<<<<<
 *     def section(self): return self.ptr.section
 *     @section.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.section.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4344
 *     @property
 *     def section(self): return self.ptr.section
 *     @section.setter             # <<<<<<<<<<<<<<
 *     def section(self, int x): self.ptr.section = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7section_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7section_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4345, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.section.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7section_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7section_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4345
 *     def section(self): return self.ptr.section
 *     @section.setter
 *     def section(self, int x): self.ptr.section = x             # <<<<<<<<<<<<<<
 *     @property
 *     def itemside(self): return self.ptr.itemside
 */
  __pyx_v_self->ptr->section = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4344
 *     @property
 *     def section(self): return self.ptr.section
 *     @section.setter             # <<<<<<<<<<<<<<
 *     def section(self, int x): self.ptr.section = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4346
 *     @section.setter
 *     def section(self, int x): self.ptr.section = x
 *     @property             # <<<<<<<<<<<<<<
 *     def itemside(self): return self.ptr.itemside
 *     @itemside.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_8itemside_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_8itemside_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_8itemside___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_8itemside___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4347
 *     def section(self, int x): self.ptr.section = x
 *     @property
 *     def itemside(self): return self.ptr.itemside             # <<<<<<<<<<<<<<
 *     @itemside.setter
 *     def itemside(self, int x): self.ptr.itemside = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->itemside); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4346
 *     @section.setter
 *     def section(self, int x): self.ptr.section = x
 *     @property             # <<<<<<<<<<<<<<
 *     def itemside(self): return self.ptr.itemside
 *     @itemside.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.itemside.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4348
 *     @property
 *     def itemside(self): return self.ptr.itemside
 *     @itemside.setter             # <<<<<<<<<<<<<<
 *     def itemside(self, int x): self.ptr.itemside = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_8itemside_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_8itemside_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4349, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.itemside.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_8itemside_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_8itemside_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4349
 *     def itemside(self): return self.ptr.itemside
 *     @itemside.setter
 *     def itemside(self, int x): self.ptr.itemside = x             # <<<<<<<<<<<<<<
 *     @property
 *     def itemmid(self): return self.ptr.itemmid
 */
  __pyx_v_self->ptr->itemside = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4348
 *     @property
 *     def itemside(self): return self.ptr.itemside
 *     @itemside.setter             # <<<<<<<<<<<<<<
 *     def itemside(self, int x): self.ptr.itemside = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4350
 *     @itemside.setter
 *     def itemside(self, int x): self.ptr.itemside = x
 *     @property             # <<<<<<<<<<<<<<
 *     def itemmid(self): return self.ptr.itemmid
 *     @itemmid.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemmid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemmid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemmid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemmid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4351
 *     def itemside(self, int x): self.ptr.itemside = x
 *     @property
 *     def itemmid(self): return self.ptr.itemmid             # <<<<<<<<<<<<<<
 *     @itemmid.setter
 *     def itemmid(self, int x): self.ptr.itemmid = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->itemmid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4350
 *     @itemside.setter
 *     def itemside(self, int x): self.ptr.itemside = x
 *     @property             # <<<<<<<<<<<<<<
 *     def itemmid(self): return self.ptr.itemmid
 *     @itemmid.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.itemmid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4352
 *     @property
 *     def itemmid(self): return self.ptr.itemmid
 *     @itemmid.setter             # <<<<<<<<<<<<<<
 *     def itemmid(self, int x): self.ptr.itemmid = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemmid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemmid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4353, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.itemmid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemmid_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemmid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4353
 *     def itemmid(self): return self.ptr.itemmid
 *     @itemmid.setter
 *     def itemmid(self, int x): self.ptr.itemmid = x             # <<<<<<<<<<<<<<
 *     @property
 *     def itemver(self): return self.ptr.itemver
 */
  __pyx_v_self->ptr->itemmid = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4352
 *     @property
 *     def itemmid(self): return self.ptr.itemmid
 *     @itemmid.setter             # <<<<<<<<<<<<<<
 *     def itemmid(self, int x): self.ptr.itemmid = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4354
 *     @itemmid.setter
 *     def itemmid(self, int x): self.ptr.itemmid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def itemver(self): return self.ptr.itemver
 *     @itemver.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemver_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemver_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemver___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemver___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4355
 *     def itemmid(self, int x): self.ptr.itemmid = x
 *     @property
 *     def itemver(self): return self.ptr.itemver             # <<<<<<<<<<<<<<
 *     @itemver.setter
 *     def itemver(self, int x): self.ptr.itemver = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->itemver); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4354
 *     @itemmid.setter
 *     def itemmid(self, int x): self.ptr.itemmid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def itemver(self): return self.ptr.itemver
 *     @itemver.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.itemver.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4356
 *     @property
 *     def itemver(self): return self.ptr.itemver
 *     @itemver.setter             # <<<<<<<<<<<<<<
 *     def itemver(self, int x): self.ptr.itemver = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemver_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemver_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4357, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.itemver.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemver_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemver_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4357
 *     def itemver(self): return self.ptr.itemver
 *     @itemver.setter
 *     def itemver(self, int x): self.ptr.itemver = x             # <<<<<<<<<<<<<<
 *     @property
 *     def texthor(self): return self.ptr.texthor
 */
  __pyx_v_self->ptr->itemver = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4356
 *     @property
 *     def itemver(self): return self.ptr.itemver
 *     @itemver.setter             # <<<<<<<<<<<<<<
 *     def itemver(self, int x): self.ptr.itemver = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4358
 *     @itemver.setter
 *     def itemver(self, int x): self.ptr.itemver = x
 *     @property             # <<<<<<<<<<<<<<
 *     def texthor(self): return self.ptr.texthor
 *     @texthor.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7texthor_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7texthor_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7texthor___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7texthor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4359
 *     def itemver(self, int x): self.ptr.itemver = x
 *     @property
 *     def texthor(self): return self.ptr.texthor             # <<<<<<<<<<<<<<
 *     @texthor.setter
 *     def texthor(self, int x): self.ptr.texthor = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->texthor); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4359, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4358
 *     @itemver.setter
 *     def itemver(self, int x): self.ptr.itemver = x
 *     @property             # <<<<<<<<<<<<<<
 *     def texthor(self): return self.ptr.texthor
 *     @texthor.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.texthor.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4360
 *     @property
 *     def texthor(self): return self.ptr.texthor
 *     @texthor.setter             # <<<<<<<<<<<<<<
 *     def texthor(self, int x): self.ptr.texthor = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7texthor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7texthor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4361, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.texthor.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7texthor_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7texthor_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4361
 *     def texthor(self): return self.ptr.texthor
 *     @texthor.setter
 *     def texthor(self, int x): self.ptr.texthor = x             # <<<<<<<<<<<<<<
 *     @property
 *     def textver(self): return self.ptr.textver
 */
  __pyx_v_self->ptr->texthor = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4360
 *     @property
 *     def texthor(self): return self.ptr.texthor
 *     @texthor.setter             # <<<<<<<<<<<<<<
 *     def texthor(self, int x): self.ptr.texthor = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4362
 *     @texthor.setter
 *     def texthor(self, int x): self.ptr.texthor = x
 *     @property             # <<<<<<<<<<<<<<
 *     def textver(self): return self.ptr.textver
 *     @textver.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7textver_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7textver_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7textver___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7textver___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4363
 *     def texthor(self, int x): self.ptr.texthor = x
 *     @property
 *     def textver(self): return self.ptr.textver             # <<<<<<<<<<<<<<
 *     @textver.setter
 *     def textver(self, int x): self.ptr.textver = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->textver); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4362
 *     @texthor.setter
 *     def texthor(self, int x): self.ptr.texthor = x
 *     @property             # <<<<<<<<<<<<<<
 *     def textver(self): return self.ptr.textver
 *     @textver.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.textver.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4364
 *     @property
 *     def textver(self): return self.ptr.textver
 *     @textver.setter             # <<<<<<<<<<<<<<
 *     def textver(self, int x): self.ptr.textver = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7textver_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7textver_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4365, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.textver.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7textver_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7textver_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4365
 *     def textver(self): return self.ptr.textver
 *     @textver.setter
 *     def textver(self, int x): self.ptr.textver = x             # <<<<<<<<<<<<<<
 *     @property
 *     def linescroll(self): return self.ptr.linescroll
 */
  __pyx_v_self->ptr->textver = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4364
 *     @property
 *     def textver(self): return self.ptr.textver
 *     @textver.setter             # <<<<<<<<<<<<<<
 *     def textver(self, int x): self.ptr.textver = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4366
 *     @textver.setter
 *     def textver(self, int x): self.ptr.textver = x
 *     @property             # <<<<<<<<<<<<<<
 *     def linescroll(self): return self.ptr.linescroll
 *     @linescroll.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_10linescroll_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_10linescroll_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_10linescroll___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_10linescroll___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4367
 *     def textver(self, int x): self.ptr.textver = x
 *     @property
 *     def linescroll(self): return self.ptr.linescroll             # <<<<<<<<<<<<<<
 *     @linescroll.setter
 *     def linescroll(self, int x): self.ptr.linescroll = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->linescroll); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4366
 *     @textver.setter
 *     def textver(self, int x): self.ptr.textver = x
 *     @property             # <<<<<<<<<<<<<<
 *     def linescroll(self): return self.ptr.linescroll
 *     @linescroll.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.linescroll.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4368
 *     @property
 *     def linescroll(self): return self.ptr.linescroll
 *     @linescroll.setter             # <<<<<<<<<<<<<<
 *     def linescroll(self, int x): self.ptr.linescroll = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_10linescroll_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_10linescroll_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4369, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.linescroll.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_10linescroll_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_10linescroll_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4369
 *     def linescroll(self): return self.ptr.linescroll
 *     @linescroll.setter
 *     def linescroll(self, int x): self.ptr.linescroll = x             # <<<<<<<<<<<<<<
 *     @property
 *     def samples(self): return self.ptr.samples
 */
  __pyx_v_self->ptr->linescroll = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4368
 *     @property
 *     def linescroll(self): return self.ptr.linescroll
 *     @linescroll.setter             # <<<<<<<<<<<<<<
 *     def linescroll(self, int x): self.ptr.linescroll = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4370
 *     @linescroll.setter
 *     def linescroll(self, int x): self.ptr.linescroll = x
 *     @property             # <<<<<<<<<<<<<<
 *     def samples(self): return self.ptr.samples
 *     @samples.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7samples_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7samples_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7samples___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7samples___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4371
 *     def linescroll(self, int x): self.ptr.linescroll = x
 *     @property
 *     def samples(self): return self.ptr.samples             # <<<<<<<<<<<<<<
 *     @samples.setter
 *     def samples(self, int x): self.ptr.samples = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->samples); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4370
 *     @linescroll.setter
 *     def linescroll(self, int x): self.ptr.linescroll = x
 *     @property             # <<<<<<<<<<<<<<
 *     def samples(self): return self.ptr.samples
 *     @samples.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.samples.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4372
 *     @property
 *     def samples(self): return self.ptr.samples
 *     @samples.setter             # <<<<<<<<<<<<<<
 *     def samples(self, int x): self.ptr.samples = x
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7samples_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7samples_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4373, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.samples.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7samples_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7samples_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4373
 *     def samples(self): return self.ptr.samples
 *     @samples.setter
 *     def samples(self, int x): self.ptr.samples = x             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjuiThemeSpacing WrapMjuiThemeSpacing(mjuiThemeSpacing* p):
 */
  __pyx_v_self->ptr->samples = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4372
 *     @property
 *     def samples(self): return self.ptr.samples
 *     @samples.setter             # <<<<<<<<<<<<<<
 *     def samples(self, int x): self.ptr.samples = x
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_18PyMjuiThemeSpacing_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18PyMjuiThemeSpacing_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeSpacing.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4375
 *     def samples(self, int x): self.ptr.samples = x
 * 
 * cdef PyMjuiThemeSpacing WrapMjuiThemeSpacing(mjuiThemeSpacing* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjuiThemeSpacing o = PyMjuiThemeSpacing()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_f_9mujoco_py_4cymj_WrapMjuiThemeSpacing(mjuiThemeSpacing *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjuiThemeSpacing", 1);

  /* "mujoco_py/generated/wrappers.pxi":4376
 * 
 * cdef PyMjuiThemeSpacing WrapMjuiThemeSpacing(mjuiThemeSpacing* p):
 *     cdef PyMjuiThemeSpacing o = PyMjuiThemeSpacing()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4377
 * cdef PyMjuiThemeSpacing WrapMjuiThemeSpacing(mjuiThemeSpacing* p):
 *     cdef PyMjuiThemeSpacing o = PyMjuiThemeSpacing()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":4378
 *     cdef PyMjuiThemeSpacing o = PyMjuiThemeSpacing()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjuiThemeColor(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4375
 *     def samples(self, int x): self.ptr.samples = x
 * 
 * cdef PyMjuiThemeSpacing WrapMjuiThemeSpacing(mjuiThemeSpacing* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjuiThemeSpacing o = PyMjuiThemeSpacing()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjuiThemeSpacing", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4406
 *     cdef np.ndarray _cursor
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4407
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4406
 *     cdef np.ndarray _cursor
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4410
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4411
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjuiThemeColor* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4410
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeColor.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4413
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjuiThemeColor* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_16PyMjuiThemeColor__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self, mjuiThemeColor *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":4415
 *     cdef void _set(self, mjuiThemeColor* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":4418
 * 
 * 
 *         self._master = _wrap_float_1d(&p.master[0], 3)             # <<<<<<<<<<<<<<
 *         self._thumb = _wrap_float_1d(&p.thumb[0], 3)
 *         self._secttitle = _wrap_float_1d(&p.secttitle[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->master[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_master);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_master);
  __pyx_v_self->_master = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4419
 * 
 *         self._master = _wrap_float_1d(&p.master[0], 3)
 *         self._thumb = _wrap_float_1d(&p.thumb[0], 3)             # <<<<<<<<<<<<<<
 *         self._secttitle = _wrap_float_1d(&p.secttitle[0], 3)
 *         self._sectfont = _wrap_float_1d(&p.sectfont[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->thumb[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_thumb);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_thumb);
  __pyx_v_self->_thumb = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4420
 *         self._master = _wrap_float_1d(&p.master[0], 3)
 *         self._thumb = _wrap_float_1d(&p.thumb[0], 3)
 *         self._secttitle = _wrap_float_1d(&p.secttitle[0], 3)             # <<<<<<<<<<<<<<
 *         self._sectfont = _wrap_float_1d(&p.sectfont[0], 3)
 *         self._sectsymbol = _wrap_float_1d(&p.sectsymbol[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->secttitle[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_secttitle);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_secttitle);
  __pyx_v_self->_secttitle = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4421
 *         self._thumb = _wrap_float_1d(&p.thumb[0], 3)
 *         self._secttitle = _wrap_float_1d(&p.secttitle[0], 3)
 *         self._sectfont = _wrap_float_1d(&p.sectfont[0], 3)             # <<<<<<<<<<<<<<
 *         self._sectsymbol = _wrap_float_1d(&p.sectsymbol[0], 3)
 *         self._sectpane = _wrap_float_1d(&p.sectpane[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->sectfont[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_sectfont);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_sectfont);
  __pyx_v_self->_sectfont = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4422
 *         self._secttitle = _wrap_float_1d(&p.secttitle[0], 3)
 *         self._sectfont = _wrap_float_1d(&p.sectfont[0], 3)
 *         self._sectsymbol = _wrap_float_1d(&p.sectsymbol[0], 3)             # <<<<<<<<<<<<<<
 *         self._sectpane = _wrap_float_1d(&p.sectpane[0], 3)
 *         self._shortcut = _wrap_float_1d(&p.shortcut[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->sectsymbol[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_sectsymbol);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_sectsymbol);
  __pyx_v_self->_sectsymbol = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4423
 *         self._sectfont = _wrap_float_1d(&p.sectfont[0], 3)
 *         self._sectsymbol = _wrap_float_1d(&p.sectsymbol[0], 3)
 *         self._sectpane = _wrap_float_1d(&p.sectpane[0], 3)             # <<<<<<<<<<<<<<
 *         self._shortcut = _wrap_float_1d(&p.shortcut[0], 3)
 *         self._fontactive = _wrap_float_1d(&p.fontactive[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->sectpane[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_sectpane);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_sectpane);
  __pyx_v_self->_sectpane = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4424
 *         self._sectsymbol = _wrap_float_1d(&p.sectsymbol[0], 3)
 *         self._sectpane = _wrap_float_1d(&p.sectpane[0], 3)
 *         self._shortcut = _wrap_float_1d(&p.shortcut[0], 3)             # <<<<<<<<<<<<<<
 *         self._fontactive = _wrap_float_1d(&p.fontactive[0], 3)
 *         self._fontinactive = _wrap_float_1d(&p.fontinactive[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->shortcut[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_shortcut);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_shortcut);
  __pyx_v_self->_shortcut = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4425
 *         self._sectpane = _wrap_float_1d(&p.sectpane[0], 3)
 *         self._shortcut = _wrap_float_1d(&p.shortcut[0], 3)
 *         self._fontactive = _wrap_float_1d(&p.fontactive[0], 3)             # <<<<<<<<<<<<<<
 *         self._fontinactive = _wrap_float_1d(&p.fontinactive[0], 3)
 *         self._decorinactive = _wrap_float_1d(&p.decorinactive[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->fontactive[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_fontactive);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_fontactive);
  __pyx_v_self->_fontactive = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4426
 *         self._shortcut = _wrap_float_1d(&p.shortcut[0], 3)
 *         self._fontactive = _wrap_float_1d(&p.fontactive[0], 3)
 *         self._fontinactive = _wrap_float_1d(&p.fontinactive[0], 3)             # <<<<<<<<<<<<<<
 *         self._decorinactive = _wrap_float_1d(&p.decorinactive[0], 3)
 *         self._decorinactive2 = _wrap_float_1d(&p.decorinactive2[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->fontinactive[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_fontinactive);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_fontinactive);
  __pyx_v_self->_fontinactive = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4427
 *         self._fontactive = _wrap_float_1d(&p.fontactive[0], 3)
 *         self._fontinactive = _wrap_float_1d(&p.fontinactive[0], 3)
 *         self._decorinactive = _wrap_float_1d(&p.decorinactive[0], 3)             # <<<<<<<<<<<<<<
 *         self._decorinactive2 = _wrap_float_1d(&p.decorinactive2[0], 3)
 *         self._button = _wrap_float_1d(&p.button[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->decorinactive[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_decorinactive);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_decorinactive);
  __pyx_v_self->_decorinactive = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4428
 *         self._fontinactive = _wrap_float_1d(&p.fontinactive[0], 3)
 *         self._decorinactive = _wrap_float_1d(&p.decorinactive[0], 3)
 *         self._decorinactive2 = _wrap_float_1d(&p.decorinactive2[0], 3)             # <<<<<<<<<<<<<<
 *         self._button = _wrap_float_1d(&p.button[0], 3)
 *         self._check = _wrap_float_1d(&p.check[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->decorinactive2[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4428, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_decorinactive2);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_decorinactive2);
  __pyx_v_self->_decorinactive2 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4429
 *         self._decorinactive = _wrap_float_1d(&p.decorinactive[0], 3)
 *         self._decorinactive2 = _wrap_float_1d(&p.decorinactive2[0], 3)
 *         self._button = _wrap_float_1d(&p.button[0], 3)             # <<<<<<<<<<<<<<
 *         self._check = _wrap_float_1d(&p.check[0], 3)
 *         self._radio = _wrap_float_1d(&p.radio[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->button[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_button);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_button);
  __pyx_v_self->_button = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4430
 *         self._decorinactive2 = _wrap_float_1d(&p.decorinactive2[0], 3)
 *         self._button = _wrap_float_1d(&p.button[0], 3)
 *         self._check = _wrap_float_1d(&p.check[0], 3)             # <<<<<<<<<<<<<<
 *         self._radio = _wrap_float_1d(&p.radio[0], 3)
 *         self._select = _wrap_float_1d(&p.select[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->check[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_check);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_check);
  __pyx_v_self->_check = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4431
 *         self._button = _wrap_float_1d(&p.button[0], 3)
 *         self._check = _wrap_float_1d(&p.check[0], 3)
 *         self._radio = _wrap_float_1d(&p.radio[0], 3)             # <<<<<<<<<<<<<<
 *         self._select = _wrap_float_1d(&p.select[0], 3)
 *         self._select2 = _wrap_float_1d(&p.select2[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->radio[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_radio);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_radio);
  __pyx_v_self->_radio = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4432
 *         self._check = _wrap_float_1d(&p.check[0], 3)
 *         self._radio = _wrap_float_1d(&p.radio[0], 3)
 *         self._select = _wrap_float_1d(&p.select[0], 3)             # <<<<<<<<<<<<<<
 *         self._select2 = _wrap_float_1d(&p.select2[0], 3)
 *         self._slider = _wrap_float_1d(&p.slider[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->select[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_select);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_select);
  __pyx_v_self->_select = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4433
 *         self._radio = _wrap_float_1d(&p.radio[0], 3)
 *         self._select = _wrap_float_1d(&p.select[0], 3)
 *         self._select2 = _wrap_float_1d(&p.select2[0], 3)             # <<<<<<<<<<<<<<
 *         self._slider = _wrap_float_1d(&p.slider[0], 3)
 *         self._slider2 = _wrap_float_1d(&p.slider2[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->select2[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_select2);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_select2);
  __pyx_v_self->_select2 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4434
 *         self._select = _wrap_float_1d(&p.select[0], 3)
 *         self._select2 = _wrap_float_1d(&p.select2[0], 3)
 *         self._slider = _wrap_float_1d(&p.slider[0], 3)             # <<<<<<<<<<<<<<
 *         self._slider2 = _wrap_float_1d(&p.slider2[0], 3)
 *         self._edit = _wrap_float_1d(&p.edit[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->slider[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_slider);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_slider);
  __pyx_v_self->_slider = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4435
 *         self._select2 = _wrap_float_1d(&p.select2[0], 3)
 *         self._slider = _wrap_float_1d(&p.slider[0], 3)
 *         self._slider2 = _wrap_float_1d(&p.slider2[0], 3)             # <<<<<<<<<<<<<<
 *         self._edit = _wrap_float_1d(&p.edit[0], 3)
 *         self._edit2 = _wrap_float_1d(&p.edit2[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->slider2[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_slider2);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_slider2);
  __pyx_v_self->_slider2 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4436
 *         self._slider = _wrap_float_1d(&p.slider[0], 3)
 *         self._slider2 = _wrap_float_1d(&p.slider2[0], 3)
 *         self._edit = _wrap_float_1d(&p.edit[0], 3)             # <<<<<<<<<<<<<<
 *         self._edit2 = _wrap_float_1d(&p.edit2[0], 3)
 *         self._cursor = _wrap_float_1d(&p.cursor[0], 3)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->edit[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_edit);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_edit);
  __pyx_v_self->_edit = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4437
 *         self._slider2 = _wrap_float_1d(&p.slider2[0], 3)
 *         self._edit = _wrap_float_1d(&p.edit[0], 3)
 *         self._edit2 = _wrap_float_1d(&p.edit2[0], 3)             # <<<<<<<<<<<<<<
 *         self._cursor = _wrap_float_1d(&p.cursor[0], 3)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->edit2[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_edit2);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_edit2);
  __pyx_v_self->_edit2 = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4438
 *         self._edit = _wrap_float_1d(&p.edit[0], 3)
 *         self._edit2 = _wrap_float_1d(&p.edit2[0], 3)
 *         self._cursor = _wrap_float_1d(&p.cursor[0], 3)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_float_1d((&(__pyx_v_p->cursor[0])), 3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_cursor);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_cursor);
  __pyx_v_self->_cursor = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4413
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjuiThemeColor* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjuiThemeColor._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":4440
 *         self._cursor = _wrap_float_1d(&p.cursor[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def master(self): return self._master
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_6master_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_6master_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_6master___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_6master___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4441
 * 
 *     @property
 *     def master(self): return self._master             # <<<<<<<<<<<<<<
 *     @property
 *     def thumb(self): return self._thumb
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_master);
  __pyx_r = ((PyObject *)__pyx_v_self->_master);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4440
 *         self._cursor = _wrap_float_1d(&p.cursor[0], 3)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def master(self): return self._master
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4442
 *     @property
 *     def master(self): return self._master
 *     @property             # <<<<<<<<<<<<<<
 *     def thumb(self): return self._thumb
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5thumb_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5thumb_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_5thumb___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_5thumb___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4443
 *     def master(self): return self._master
 *     @property
 *     def thumb(self): return self._thumb             # <<<<<<<<<<<<<<
 *     @property
 *     def secttitle(self): return self._secttitle
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_thumb);
  __pyx_r = ((PyObject *)__pyx_v_self->_thumb);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4442
 *     @property
 *     def master(self): return self._master
 *     @property             # <<<<<<<<<<<<<<
 *     def thumb(self): return self._thumb
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4444
 *     @property
 *     def thumb(self): return self._thumb
 *     @property             # <<<<<<<<<<<<<<
 *     def secttitle(self): return self._secttitle
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_9secttitle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_9secttitle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_9secttitle___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_9secttitle___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4445
 *     def thumb(self): return self._thumb
 *     @property
 *     def secttitle(self): return self._secttitle             # <<<<<<<<<<<<<<
 *     @property
 *     def sectfont(self): return self._sectfont
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_secttitle);
  __pyx_r = ((PyObject *)__pyx_v_self->_secttitle);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4444
 *     @property
 *     def thumb(self): return self._thumb
 *     @property             # <<<<<<<<<<<<<<
 *     def secttitle(self): return self._secttitle
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4446
 *     @property
 *     def secttitle(self): return self._secttitle
 *     @property             # <<<<<<<<<<<<<<
 *     def sectfont(self): return self._sectfont
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_8sectfont_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_8sectfont_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_8sectfont___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_8sectfont___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4447
 *     def secttitle(self): return self._secttitle
 *     @property
 *     def sectfont(self): return self._sectfont             # <<<<<<<<<<<<<<
 *     @property
 *     def sectsymbol(self): return self._sectsymbol
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_sectfont);
  __pyx_r = ((PyObject *)__pyx_v_self->_sectfont);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4446
 *     @property
 *     def secttitle(self): return self._secttitle
 *     @property             # <<<<<<<<<<<<<<
 *     def sectfont(self): return self._sectfont
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4448
 *     @property
 *     def sectfont(self): return self._sectfont
 *     @property             # <<<<<<<<<<<<<<
 *     def sectsymbol(self): return self._sectsymbol
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_10sectsymbol_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_10sectsymbol_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_10sectsymbol___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_10sectsymbol___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4449
 *     def sectfont(self): return self._sectfont
 *     @property
 *     def sectsymbol(self): return self._sectsymbol             # <<<<<<<<<<<<<<
 *     @property
 *     def sectpane(self): return self._sectpane
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_sectsymbol);
  __pyx_r = ((PyObject *)__pyx_v_self->_sectsymbol);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4448
 *     @property
 *     def sectfont(self): return self._sectfont
 *     @property             # <<<<<<<<<<<<<<
 *     def sectsymbol(self): return self._sectsymbol
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4450
 *     @property
 *     def sectsymbol(self): return self._sectsymbol
 *     @property             # <<<<<<<<<<<<<<
 *     def sectpane(self): return self._sectpane
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_8sectpane_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_8sectpane_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_8sectpane___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_8sectpane___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4451
 *     def sectsymbol(self): return self._sectsymbol
 *     @property
 *     def sectpane(self): return self._sectpane             # <<<<<<<<<<<<<<
 *     @property
 *     def shortcut(self): return self._shortcut
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_sectpane);
  __pyx_r = ((PyObject *)__pyx_v_self->_sectpane);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4450
 *     @property
 *     def sectsymbol(self): return self._sectsymbol
 *     @property             # <<<<<<<<<<<<<<
 *     def sectpane(self): return self._sectpane
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4452
 *     @property
 *     def sectpane(self): return self._sectpane
 *     @property             # <<<<<<<<<<<<<<
 *     def shortcut(self): return self._shortcut
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_8shortcut_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_8shortcut_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_8shortcut___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_8shortcut___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4453
 *     def sectpane(self): return self._sectpane
 *     @property
 *     def shortcut(self): return self._shortcut             # <<<<<<<<<<<<<<
 *     @property
 *     def fontactive(self): return self._fontactive
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_shortcut);
  __pyx_r = ((PyObject *)__pyx_v_self->_shortcut);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4452
 *     @property
 *     def sectpane(self): return self._sectpane
 *     @property             # <<<<<<<<<<<<<<
 *     def shortcut(self): return self._shortcut
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4454
 *     @property
 *     def shortcut(self): return self._shortcut
 *     @property             # <<<<<<<<<<<<<<
 *     def fontactive(self): return self._fontactive
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_10fontactive_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_10fontactive_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_10fontactive___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_10fontactive___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4455
 *     def shortcut(self): return self._shortcut
 *     @property
 *     def fontactive(self): return self._fontactive             # <<<<<<<<<<<<<<
 *     @property
 *     def fontinactive(self): return self._fontinactive
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_fontactive);
  __pyx_r = ((PyObject *)__pyx_v_self->_fontactive);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4454
 *     @property
 *     def shortcut(self): return self._shortcut
 *     @property             # <<<<<<<<<<<<<<
 *     def fontactive(self): return self._fontactive
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4456
 *     @property
 *     def fontactive(self): return self._fontactive
 *     @property             # <<<<<<<<<<<<<<
 *     def fontinactive(self): return self._fontinactive
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_12fontinactive_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_12fontinactive_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_12fontinactive___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_12fontinactive___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4457
 *     def fontactive(self): return self._fontactive
 *     @property
 *     def fontinactive(self): return self._fontinactive             # <<<<<<<<<<<<<<
 *     @property
 *     def decorinactive(self): return self._decorinactive
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_fontinactive);
  __pyx_r = ((PyObject *)__pyx_v_self->_fontinactive);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4456
 *     @property
 *     def fontactive(self): return self._fontactive
 *     @property             # <<<<<<<<<<<<<<
 *     def fontinactive(self): return self._fontinactive
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4458
 *     @property
 *     def fontinactive(self): return self._fontinactive
 *     @property             # <<<<<<<<<<<<<<
 *     def decorinactive(self): return self._decorinactive
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_13decorinactive_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_13decorinactive_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_13decorinactive___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_13decorinactive___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4459
 *     def fontinactive(self): return self._fontinactive
 *     @property
 *     def decorinactive(self): return self._decorinactive             # <<<<<<<<<<<<<<
 *     @property
 *     def decorinactive2(self): return self._decorinactive2
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_decorinactive);
  __pyx_r = ((PyObject *)__pyx_v_self->_decorinactive);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4458
 *     @property
 *     def fontinactive(self): return self._fontinactive
 *     @property             # <<<<<<<<<<<<<<
 *     def decorinactive(self): return self._decorinactive
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4460
 *     @property
 *     def decorinactive(self): return self._decorinactive
 *     @property             # <<<<<<<<<<<<<<
 *     def decorinactive2(self): return self._decorinactive2
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_14decorinactive2_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_14decorinactive2_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_14decorinactive2___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_14decorinactive2___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4461
 *     def decorinactive(self): return self._decorinactive
 *     @property
 *     def decorinactive2(self): return self._decorinactive2             # <<<<<<<<<<<<<<
 *     @property
 *     def button(self): return self._button
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_decorinactive2);
  __pyx_r = ((PyObject *)__pyx_v_self->_decorinactive2);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4460
 *     @property
 *     def decorinactive(self): return self._decorinactive
 *     @property             # <<<<<<<<<<<<<<
 *     def decorinactive2(self): return self._decorinactive2
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4462
 *     @property
 *     def decorinactive2(self): return self._decorinactive2
 *     @property             # <<<<<<<<<<<<<<
 *     def button(self): return self._button
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_6button_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_6button_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_6button___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_6button___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4463
 *     def decorinactive2(self): return self._decorinactive2
 *     @property
 *     def button(self): return self._button             # <<<<<<<<<<<<<<
 *     @property
 *     def check(self): return self._check
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_button);
  __pyx_r = ((PyObject *)__pyx_v_self->_button);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4462
 *     @property
 *     def decorinactive2(self): return self._decorinactive2
 *     @property             # <<<<<<<<<<<<<<
 *     def button(self): return self._button
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4464
 *     @property
 *     def button(self): return self._button
 *     @property             # <<<<<<<<<<<<<<
 *     def check(self): return self._check
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5check_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5check_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_5check___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_5check___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4465
 *     def button(self): return self._button
 *     @property
 *     def check(self): return self._check             # <<<<<<<<<<<<<<
 *     @property
 *     def radio(self): return self._radio
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_check);
  __pyx_r = ((PyObject *)__pyx_v_self->_check);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4464
 *     @property
 *     def button(self): return self._button
 *     @property             # <<<<<<<<<<<<<<
 *     def check(self): return self._check
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4466
 *     @property
 *     def check(self): return self._check
 *     @property             # <<<<<<<<<<<<<<
 *     def radio(self): return self._radio
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5radio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5radio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_5radio___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_5radio___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4467
 *     def check(self): return self._check
 *     @property
 *     def radio(self): return self._radio             # <<<<<<<<<<<<<<
 *     @property
 *     def select(self): return self._select
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_radio);
  __pyx_r = ((PyObject *)__pyx_v_self->_radio);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4466
 *     @property
 *     def check(self): return self._check
 *     @property             # <<<<<<<<<<<<<<
 *     def radio(self): return self._radio
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4468
 *     @property
 *     def radio(self): return self._radio
 *     @property             # <<<<<<<<<<<<<<
 *     def select(self): return self._select
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_6select_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_6select_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_6select___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_6select___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4469
 *     def radio(self): return self._radio
 *     @property
 *     def select(self): return self._select             # <<<<<<<<<<<<<<
 *     @property
 *     def select2(self): return self._select2
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_select);
  __pyx_r = ((PyObject *)__pyx_v_self->_select);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4468
 *     @property
 *     def radio(self): return self._radio
 *     @property             # <<<<<<<<<<<<<<
 *     def select(self): return self._select
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4470
 *     @property
 *     def select(self): return self._select
 *     @property             # <<<<<<<<<<<<<<
 *     def select2(self): return self._select2
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_7select2_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_7select2_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_7select2___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_7select2___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4471
 *     def select(self): return self._select
 *     @property
 *     def select2(self): return self._select2             # <<<<<<<<<<<<<<
 *     @property
 *     def slider(self): return self._slider
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_select2);
  __pyx_r = ((PyObject *)__pyx_v_self->_select2);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4470
 *     @property
 *     def select(self): return self._select
 *     @property             # <<<<<<<<<<<<<<
 *     def select2(self): return self._select2
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4472
 *     @property
 *     def select2(self): return self._select2
 *     @property             # <<<<<<<<<<<<<<
 *     def slider(self): return self._slider
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_6slider_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_6slider_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_6slider___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_6slider___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4473
 *     def select2(self): return self._select2
 *     @property
 *     def slider(self): return self._slider             # <<<<<<<<<<<<<<
 *     @property
 *     def slider2(self): return self._slider2
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_slider);
  __pyx_r = ((PyObject *)__pyx_v_self->_slider);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4472
 *     @property
 *     def select2(self): return self._select2
 *     @property             # <<<<<<<<<<<<<<
 *     def slider(self): return self._slider
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4474
 *     @property
 *     def slider(self): return self._slider
 *     @property             # <<<<<<<<<<<<<<
 *     def slider2(self): return self._slider2
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_7slider2_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_7slider2_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_7slider2___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_7slider2___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4475
 *     def slider(self): return self._slider
 *     @property
 *     def slider2(self): return self._slider2             # <<<<<<<<<<<<<<
 *     @property
 *     def edit(self): return self._edit
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_slider2);
  __pyx_r = ((PyObject *)__pyx_v_self->_slider2);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4474
 *     @property
 *     def slider(self): return self._slider
 *     @property             # <<<<<<<<<<<<<<
 *     def slider2(self): return self._slider2
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4476
 *     @property
 *     def slider2(self): return self._slider2
 *     @property             # <<<<<<<<<<<<<<
 *     def edit(self): return self._edit
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_4edit_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_4edit_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_4edit___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_4edit___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4477
 *     def slider2(self): return self._slider2
 *     @property
 *     def edit(self): return self._edit             # <<<<<<<<<<<<<<
 *     @property
 *     def edit2(self): return self._edit2
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_edit);
  __pyx_r = ((PyObject *)__pyx_v_self->_edit);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4476
 *     @property
 *     def slider2(self): return self._slider2
 *     @property             # <<<<<<<<<<<<<<
 *     def edit(self): return self._edit
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4478
 *     @property
 *     def edit(self): return self._edit
 *     @property             # <<<<<<<<<<<<<<
 *     def edit2(self): return self._edit2
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5edit2_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5edit2_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_5edit2___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_5edit2___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4479
 *     def edit(self): return self._edit
 *     @property
 *     def edit2(self): return self._edit2             # <<<<<<<<<<<<<<
 *     @property
 *     def cursor(self): return self._cursor
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_edit2);
  __pyx_r = ((PyObject *)__pyx_v_self->_edit2);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4478
 *     @property
 *     def edit(self): return self._edit
 *     @property             # <<<<<<<<<<<<<<
 *     def edit2(self): return self._edit2
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4480
 *     @property
 *     def edit2(self): return self._edit2
 *     @property             # <<<<<<<<<<<<<<
 *     def cursor(self): return self._cursor
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_6cursor_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_6cursor_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_6cursor___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_6cursor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4481
 *     def edit2(self): return self._edit2
 *     @property
 *     def cursor(self): return self._cursor             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjuiThemeColor WrapMjuiThemeColor(mjuiThemeColor* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_cursor);
  __pyx_r = ((PyObject *)__pyx_v_self->_cursor);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4480
 *     @property
 *     def edit2(self): return self._edit2
 *     @property             # <<<<<<<<<<<<<<
 *     def cursor(self): return self._cursor
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_16PyMjuiThemeColor_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeColor.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_16PyMjuiThemeColor_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeColor.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16PyMjuiThemeColor_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiThemeColor.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4483
 *     def cursor(self): return self._cursor
 * 
 * cdef PyMjuiThemeColor WrapMjuiThemeColor(mjuiThemeColor* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjuiThemeColor o = PyMjuiThemeColor()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_f_9mujoco_py_4cymj_WrapMjuiThemeColor(mjuiThemeColor *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjuiThemeColor", 1);

  /* "mujoco_py/generated/wrappers.pxi":4484
 * 
 * cdef PyMjuiThemeColor WrapMjuiThemeColor(mjuiThemeColor* p):
 *     cdef PyMjuiThemeColor o = PyMjuiThemeColor()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4485
 * cdef PyMjuiThemeColor WrapMjuiThemeColor(mjuiThemeColor* p):
 *     cdef PyMjuiThemeColor o = PyMjuiThemeColor()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":4486
 *     cdef PyMjuiThemeColor o = PyMjuiThemeColor()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjuiItem(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4483
 *     def cursor(self): return self._cursor
 * 
 * cdef PyMjuiThemeColor WrapMjuiThemeColor(mjuiThemeColor* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjuiThemeColor o = PyMjuiThemeColor()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjuiThemeColor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4495
 *     cdef np.ndarray _name
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4496
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4495
 *     cdef np.ndarray _name
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4499
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4500
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjuiItem* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4499
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiItem.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4502
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjuiItem* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_10PyMjuiItem__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self, mjuiItem *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":4504
 *     cdef void _set(self, mjuiItem* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":4507
 * 
 * 
 *         self._rect = WrapMjrRect(&p.rect)             # <<<<<<<<<<<<<<
 *         self._name = _wrap_char_1d(&p.name[0], 40)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjrRect((&__pyx_v_p->rect))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_rect);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_rect);
  __pyx_v_self->_rect = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4508
 * 
 *         self._rect = WrapMjrRect(&p.rect)
 *         self._name = _wrap_char_1d(&p.name[0], 40)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_char_1d((&(__pyx_v_p->name[0])), 40)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name);
  __pyx_v_self->_name = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4502
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjuiItem* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjuiItem._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":4510
 *         self._name = _wrap_char_1d(&p.name[0], 40)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type(self): return self.ptr.type
 *     @type.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_4type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_4type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_4type___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_4type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4511
 * 
 *     @property
 *     def type(self): return self.ptr.type             # <<<<<<<<<<<<<<
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->type); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4510
 *         self._name = _wrap_char_1d(&p.name[0], 40)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type(self): return self.ptr.type
 *     @type.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiItem.type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4512
 *     @property
 *     def type(self): return self.ptr.type
 *     @type.setter             # <<<<<<<<<<<<<<
 *     def type(self, int x): self.ptr.type = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4513, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiItem.type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_4type_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_4type_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4513
 *     def type(self): return self.ptr.type
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x             # <<<<<<<<<<<<<<
 *     @property
 *     def state(self): return self.ptr.state
 */
  __pyx_v_self->ptr->type = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4512
 *     @property
 *     def type(self): return self.ptr.type
 *     @type.setter             # <<<<<<<<<<<<<<
 *     def type(self, int x): self.ptr.type = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4514
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x
 *     @property             # <<<<<<<<<<<<<<
 *     def state(self): return self.ptr.state
 *     @state.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_5state_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_5state_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_5state___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_5state___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4515
 *     def type(self, int x): self.ptr.type = x
 *     @property
 *     def state(self): return self.ptr.state             # <<<<<<<<<<<<<<
 *     @state.setter
 *     def state(self, int x): self.ptr.state = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->state); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4514
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x
 *     @property             # <<<<<<<<<<<<<<
 *     def state(self): return self.ptr.state
 *     @state.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiItem.state.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4516
 *     @property
 *     def state(self): return self.ptr.state
 *     @state.setter             # <<<<<<<<<<<<<<
 *     def state(self, int x): self.ptr.state = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_5state_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_5state_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4517, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiItem.state.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_5state_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_5state_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4517
 *     def state(self): return self.ptr.state
 *     @state.setter
 *     def state(self, int x): self.ptr.state = x             # <<<<<<<<<<<<<<
 *     @property
 *     def sectionid(self): return self.ptr.sectionid
 */
  __pyx_v_self->ptr->state = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4516
 *     @property
 *     def state(self): return self.ptr.state
 *     @state.setter             # <<<<<<<<<<<<<<
 *     def state(self, int x): self.ptr.state = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4518
 *     @state.setter
 *     def state(self, int x): self.ptr.state = x
 *     @property             # <<<<<<<<<<<<<<
 *     def sectionid(self): return self.ptr.sectionid
 *     @sectionid.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_9sectionid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_9sectionid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_9sectionid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_9sectionid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4519
 *     def state(self, int x): self.ptr.state = x
 *     @property
 *     def sectionid(self): return self.ptr.sectionid             # <<<<<<<<<<<<<<
 *     @sectionid.setter
 *     def sectionid(self, int x): self.ptr.sectionid = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->sectionid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4518
 *     @state.setter
 *     def state(self, int x): self.ptr.state = x
 *     @property             # <<<<<<<<<<<<<<
 *     def sectionid(self): return self.ptr.sectionid
 *     @sectionid.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiItem.sectionid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4520
 *     @property
 *     def sectionid(self): return self.ptr.sectionid
 *     @sectionid.setter             # <<<<<<<<<<<<<<
 *     def sectionid(self, int x): self.ptr.sectionid = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_9sectionid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_9sectionid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4521, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiItem.sectionid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_9sectionid_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_9sectionid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4521
 *     def sectionid(self): return self.ptr.sectionid
 *     @sectionid.setter
 *     def sectionid(self, int x): self.ptr.sectionid = x             # <<<<<<<<<<<<<<
 *     @property
 *     def itemid(self): return self.ptr.itemid
 */
  __pyx_v_self->ptr->sectionid = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4520
 *     @property
 *     def sectionid(self): return self.ptr.sectionid
 *     @sectionid.setter             # <<<<<<<<<<<<<<
 *     def sectionid(self, int x): self.ptr.sectionid = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4522
 *     @sectionid.setter
 *     def sectionid(self, int x): self.ptr.sectionid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def itemid(self): return self.ptr.itemid
 *     @itemid.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_6itemid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_6itemid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_6itemid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_6itemid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4523
 *     def sectionid(self, int x): self.ptr.sectionid = x
 *     @property
 *     def itemid(self): return self.ptr.itemid             # <<<<<<<<<<<<<<
 *     @itemid.setter
 *     def itemid(self, int x): self.ptr.itemid = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->itemid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4522
 *     @sectionid.setter
 *     def sectionid(self, int x): self.ptr.sectionid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def itemid(self): return self.ptr.itemid
 *     @itemid.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiItem.itemid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4524
 *     @property
 *     def itemid(self): return self.ptr.itemid
 *     @itemid.setter             # <<<<<<<<<<<<<<
 *     def itemid(self, int x): self.ptr.itemid = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_6itemid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_6itemid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4525, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiItem.itemid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_6itemid_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_6itemid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4525
 *     def itemid(self): return self.ptr.itemid
 *     @itemid.setter
 *     def itemid(self, int x): self.ptr.itemid = x             # <<<<<<<<<<<<<<
 *     @property
 *     def rect(self): return self._rect
 */
  __pyx_v_self->ptr->itemid = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4524
 *     @property
 *     def itemid(self): return self.ptr.itemid
 *     @itemid.setter             # <<<<<<<<<<<<<<
 *     def itemid(self, int x): self.ptr.itemid = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4526
 *     @itemid.setter
 *     def itemid(self, int x): self.ptr.itemid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rect(self): return self._rect
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_4rect_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_4rect_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_4rect___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_4rect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4527
 *     def itemid(self, int x): self.ptr.itemid = x
 *     @property
 *     def rect(self): return self._rect             # <<<<<<<<<<<<<<
 *     @property
 *     def name(self): return self._name
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_rect);
  __pyx_r = ((PyObject *)__pyx_v_self->_rect);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4526
 *     @itemid.setter
 *     def itemid(self, int x): self.ptr.itemid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rect(self): return self._rect
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4528
 *     @property
 *     def rect(self): return self._rect
 *     @property             # <<<<<<<<<<<<<<
 *     def name(self): return self._name
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_4name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_4name___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_4name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4529
 *     def rect(self): return self._rect
 *     @property
 *     def name(self): return self._name             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjuiItem WrapMjuiItem(mjuiItem* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name);
  __pyx_r = ((PyObject *)__pyx_v_self->_name);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4528
 *     @property
 *     def rect(self): return self._rect
 *     @property             # <<<<<<<<<<<<<<
 *     def name(self): return self._name
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10PyMjuiItem_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiItem.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10PyMjuiItem_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiItem.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10PyMjuiItem_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiItem.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4531
 *     def name(self): return self._name
 * 
 * cdef PyMjuiItem WrapMjuiItem(mjuiItem* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjuiItem o = PyMjuiItem()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_f_9mujoco_py_4cymj_WrapMjuiItem(mjuiItem *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjuiItem", 1);

  /* "mujoco_py/generated/wrappers.pxi":4532
 * 
 * cdef PyMjuiItem WrapMjuiItem(mjuiItem* p):
 *     cdef PyMjuiItem o = PyMjuiItem()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjuiItem)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4532, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4533
 * cdef PyMjuiItem WrapMjuiItem(mjuiItem* p):
 *     cdef PyMjuiItem o = PyMjuiItem()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiItem *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":4534
 *     cdef PyMjuiItem o = PyMjuiItem()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjuiSection(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4531
 *     def name(self): return self._name
 * 
 * cdef PyMjuiItem WrapMjuiItem(mjuiItem* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjuiItem o = PyMjuiItem()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjuiItem", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4545
 *     cdef list _item
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4546
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4545
 *     cdef list _item
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4549
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4550
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjuiSection* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4549
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiSection.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4552
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjuiSection* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_13PyMjuiSection__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self, mjuiSection *__pyx_v_p) {
  long __pyx_8genexpr9__pyx_v_i;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  long __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":4554
 *     cdef void _set(self, mjuiSection* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":4557
 * 
 * 
 *         self._rtitle = WrapMjrRect(&p.rtitle)             # <<<<<<<<<<<<<<
 *         self._rcontent = WrapMjrRect(&p.rcontent)
 *         self._name = _wrap_char_1d(&p.name[0], 40)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjrRect((&__pyx_v_p->rtitle))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_rtitle);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_rtitle);
  __pyx_v_self->_rtitle = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4558
 * 
 *         self._rtitle = WrapMjrRect(&p.rtitle)
 *         self._rcontent = WrapMjrRect(&p.rcontent)             # <<<<<<<<<<<<<<
 *         self._name = _wrap_char_1d(&p.name[0], 40)
 *         self._item = [WrapMjuiItem(&p.item[i]) for i in range(80)]
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjrRect((&__pyx_v_p->rcontent))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_rcontent);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_rcontent);
  __pyx_v_self->_rcontent = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4559
 *         self._rtitle = WrapMjrRect(&p.rtitle)
 *         self._rcontent = WrapMjrRect(&p.rcontent)
 *         self._name = _wrap_char_1d(&p.name[0], 40)             # <<<<<<<<<<<<<<
 *         self._item = [WrapMjuiItem(&p.item[i]) for i in range(80)]
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_char_1d((&(__pyx_v_p->name[0])), 40)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name);
  __pyx_v_self->_name = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4560
 *         self._rcontent = WrapMjrRect(&p.rcontent)
 *         self._name = _wrap_char_1d(&p.name[0], 40)
 *         self._item = [WrapMjuiItem(&p.item[i]) for i in range(80)]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4560, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    for (__pyx_t_2 = 0; __pyx_t_2 < 80; __pyx_t_2+=1) {
      __pyx_8genexpr9__pyx_v_i = __pyx_t_2;
      __pyx_t_3 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjuiItem((&(__pyx_v_p->item[__pyx_8genexpr9__pyx_v_i])))); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4560, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(4, 4560, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
  } /* exit inner scope */
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_item);
  __Pyx_DECREF(__pyx_v_self->_item);
  __pyx_v_self->_item = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4552
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjuiSection* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjuiSection._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":4562
 *         self._item = [WrapMjuiItem(&p.item[i]) for i in range(80)]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def state(self): return self.ptr.state
 *     @state.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5state_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5state_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_5state___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_5state___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4563
 * 
 *     @property
 *     def state(self): return self.ptr.state             # <<<<<<<<<<<<<<
 *     @state.setter
 *     def state(self, int x): self.ptr.state = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->state); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4562
 *         self._item = [WrapMjuiItem(&p.item[i]) for i in range(80)]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def state(self): return self.ptr.state
 *     @state.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiSection.state.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4564
 *     @property
 *     def state(self): return self.ptr.state
 *     @state.setter             # <<<<<<<<<<<<<<
 *     def state(self, int x): self.ptr.state = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5state_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5state_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4565, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiSection.state.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_5state_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_5state_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4565
 *     def state(self): return self.ptr.state
 *     @state.setter
 *     def state(self, int x): self.ptr.state = x             # <<<<<<<<<<<<<<
 *     @property
 *     def modifier(self): return self.ptr.modifier
 */
  __pyx_v_self->ptr->state = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4564
 *     @property
 *     def state(self): return self.ptr.state
 *     @state.setter             # <<<<<<<<<<<<<<
 *     def state(self, int x): self.ptr.state = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4566
 *     @state.setter
 *     def state(self, int x): self.ptr.state = x
 *     @property             # <<<<<<<<<<<<<<
 *     def modifier(self): return self.ptr.modifier
 *     @modifier.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_8modifier_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_8modifier_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_8modifier___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_8modifier___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4567
 *     def state(self, int x): self.ptr.state = x
 *     @property
 *     def modifier(self): return self.ptr.modifier             # <<<<<<<<<<<<<<
 *     @modifier.setter
 *     def modifier(self, int x): self.ptr.modifier = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->modifier); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4567, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4566
 *     @state.setter
 *     def state(self, int x): self.ptr.state = x
 *     @property             # <<<<<<<<<<<<<<
 *     def modifier(self): return self.ptr.modifier
 *     @modifier.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiSection.modifier.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4568
 *     @property
 *     def modifier(self): return self.ptr.modifier
 *     @modifier.setter             # <<<<<<<<<<<<<<
 *     def modifier(self, int x): self.ptr.modifier = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_8modifier_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_8modifier_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4569, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiSection.modifier.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_8modifier_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_8modifier_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4569
 *     def modifier(self): return self.ptr.modifier
 *     @modifier.setter
 *     def modifier(self, int x): self.ptr.modifier = x             # <<<<<<<<<<<<<<
 *     @property
 *     def shortcut(self): return self.ptr.shortcut
 */
  __pyx_v_self->ptr->modifier = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4568
 *     @property
 *     def modifier(self): return self.ptr.modifier
 *     @modifier.setter             # <<<<<<<<<<<<<<
 *     def modifier(self, int x): self.ptr.modifier = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4570
 *     @modifier.setter
 *     def modifier(self, int x): self.ptr.modifier = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shortcut(self): return self.ptr.shortcut
 *     @shortcut.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_8shortcut_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_8shortcut_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_8shortcut___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_8shortcut___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4571
 *     def modifier(self, int x): self.ptr.modifier = x
 *     @property
 *     def shortcut(self): return self.ptr.shortcut             # <<<<<<<<<<<<<<
 *     @shortcut.setter
 *     def shortcut(self, int x): self.ptr.shortcut = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->shortcut); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4570
 *     @modifier.setter
 *     def modifier(self, int x): self.ptr.modifier = x
 *     @property             # <<<<<<<<<<<<<<
 *     def shortcut(self): return self.ptr.shortcut
 *     @shortcut.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiSection.shortcut.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4572
 *     @property
 *     def shortcut(self): return self.ptr.shortcut
 *     @shortcut.setter             # <<<<<<<<<<<<<<
 *     def shortcut(self, int x): self.ptr.shortcut = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_8shortcut_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_8shortcut_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4573, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiSection.shortcut.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_8shortcut_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_8shortcut_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4573
 *     def shortcut(self): return self.ptr.shortcut
 *     @shortcut.setter
 *     def shortcut(self, int x): self.ptr.shortcut = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nitem(self): return self.ptr.nitem
 */
  __pyx_v_self->ptr->shortcut = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4572
 *     @property
 *     def shortcut(self): return self.ptr.shortcut
 *     @shortcut.setter             # <<<<<<<<<<<<<<
 *     def shortcut(self, int x): self.ptr.shortcut = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4574
 *     @shortcut.setter
 *     def shortcut(self, int x): self.ptr.shortcut = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nitem(self): return self.ptr.nitem
 *     @nitem.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5nitem_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5nitem_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_5nitem___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_5nitem___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4575
 *     def shortcut(self, int x): self.ptr.shortcut = x
 *     @property
 *     def nitem(self): return self.ptr.nitem             # <<<<<<<<<<<<<<
 *     @nitem.setter
 *     def nitem(self, int x): self.ptr.nitem = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nitem); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4574
 *     @shortcut.setter
 *     def shortcut(self, int x): self.ptr.shortcut = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nitem(self): return self.ptr.nitem
 *     @nitem.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiSection.nitem.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4576
 *     @property
 *     def nitem(self): return self.ptr.nitem
 *     @nitem.setter             # <<<<<<<<<<<<<<
 *     def nitem(self, int x): self.ptr.nitem = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5nitem_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5nitem_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4577, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiSection.nitem.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_5nitem_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_5nitem_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4577
 *     def nitem(self): return self.ptr.nitem
 *     @nitem.setter
 *     def nitem(self, int x): self.ptr.nitem = x             # <<<<<<<<<<<<<<
 *     @property
 *     def rtitle(self): return self._rtitle
 */
  __pyx_v_self->ptr->nitem = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4576
 *     @property
 *     def nitem(self): return self.ptr.nitem
 *     @nitem.setter             # <<<<<<<<<<<<<<
 *     def nitem(self, int x): self.ptr.nitem = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4578
 *     @nitem.setter
 *     def nitem(self, int x): self.ptr.nitem = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rtitle(self): return self._rtitle
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_6rtitle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_6rtitle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_6rtitle___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_6rtitle___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4579
 *     def nitem(self, int x): self.ptr.nitem = x
 *     @property
 *     def rtitle(self): return self._rtitle             # <<<<<<<<<<<<<<
 *     @property
 *     def rcontent(self): return self._rcontent
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_rtitle);
  __pyx_r = ((PyObject *)__pyx_v_self->_rtitle);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4578
 *     @nitem.setter
 *     def nitem(self, int x): self.ptr.nitem = x
 *     @property             # <<<<<<<<<<<<<<
 *     def rtitle(self): return self._rtitle
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4580
 *     @property
 *     def rtitle(self): return self._rtitle
 *     @property             # <<<<<<<<<<<<<<
 *     def rcontent(self): return self._rcontent
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_8rcontent_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_8rcontent_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_8rcontent___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_8rcontent___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4581
 *     def rtitle(self): return self._rtitle
 *     @property
 *     def rcontent(self): return self._rcontent             # <<<<<<<<<<<<<<
 *     @property
 *     def name(self): return self._name
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_rcontent);
  __pyx_r = ((PyObject *)__pyx_v_self->_rcontent);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4580
 *     @property
 *     def rtitle(self): return self._rtitle
 *     @property             # <<<<<<<<<<<<<<
 *     def rcontent(self): return self._rcontent
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4582
 *     @property
 *     def rcontent(self): return self._rcontent
 *     @property             # <<<<<<<<<<<<<<
 *     def name(self): return self._name
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_4name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_4name___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_4name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4583
 *     def rcontent(self): return self._rcontent
 *     @property
 *     def name(self): return self._name             # <<<<<<<<<<<<<<
 *     @property
 *     def item(self): return self._item
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name);
  __pyx_r = ((PyObject *)__pyx_v_self->_name);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4582
 *     @property
 *     def rcontent(self): return self._rcontent
 *     @property             # <<<<<<<<<<<<<<
 *     def name(self): return self._name
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4584
 *     @property
 *     def name(self): return self._name
 *     @property             # <<<<<<<<<<<<<<
 *     def item(self): return self._item
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_4item_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_4item_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_4item___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_4item___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4585
 *     def name(self): return self._name
 *     @property
 *     def item(self): return self._item             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjuiSection WrapMjuiSection(mjuiSection* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_item);
  __pyx_r = __pyx_v_self->_item;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4584
 *     @property
 *     def name(self): return self._name
 *     @property             # <<<<<<<<<<<<<<
 *     def item(self): return self._item
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_13PyMjuiSection_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiSection.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_13PyMjuiSection_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiSection.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13PyMjuiSection_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiSection.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4587
 *     def item(self): return self._item
 * 
 * cdef PyMjuiSection WrapMjuiSection(mjuiSection* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjuiSection o = PyMjuiSection()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_f_9mujoco_py_4cymj_WrapMjuiSection(mjuiSection *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjuiSection", 1);

  /* "mujoco_py/generated/wrappers.pxi":4588
 * 
 * cdef PyMjuiSection WrapMjuiSection(mjuiSection* p):
 *     cdef PyMjuiSection o = PyMjuiSection()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjuiSection)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4589
 * cdef PyMjuiSection WrapMjuiSection(mjuiSection* p):
 *     cdef PyMjuiSection o = PyMjuiSection()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiSection *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":4590
 *     cdef PyMjuiSection o = PyMjuiSection()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjUI(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4587
 *     def item(self): return self._item
 * 
 * cdef PyMjuiSection WrapMjuiSection(mjuiSection* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjuiSection o = PyMjuiSection()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjuiSection", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4601
 *     cdef list _sect
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4602
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4601
 *     cdef list _sect
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4605
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4606
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjUI* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4606, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4605
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4608
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjUI* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_6PyMjUI__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, mjUI *__pyx_v_p) {
  long __pyx_9genexpr10__pyx_v_i;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  long __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":4610
 *     cdef void _set(self, mjUI* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":4613
 * 
 * 
 *         self._spacing = WrapMjuiThemeSpacing(&p.spacing)             # <<<<<<<<<<<<<<
 *         self._color = WrapMjuiThemeColor(&p.color)
 *         self._edittext = _wrap_char_1d(&p.edittext[0], 300)
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjuiThemeSpacing((&__pyx_v_p->spacing))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4613, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_spacing);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_spacing);
  __pyx_v_self->_spacing = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4614
 * 
 *         self._spacing = WrapMjuiThemeSpacing(&p.spacing)
 *         self._color = WrapMjuiThemeColor(&p.color)             # <<<<<<<<<<<<<<
 *         self._edittext = _wrap_char_1d(&p.edittext[0], 300)
 *         self._sect = [WrapMjuiSection(&p.sect[i]) for i in range(10)]
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjuiThemeColor((&__pyx_v_p->color))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4614, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_color);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_color);
  __pyx_v_self->_color = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4615
 *         self._spacing = WrapMjuiThemeSpacing(&p.spacing)
 *         self._color = WrapMjuiThemeColor(&p.color)
 *         self._edittext = _wrap_char_1d(&p.edittext[0], 300)             # <<<<<<<<<<<<<<
 *         self._sect = [WrapMjuiSection(&p.sect[i]) for i in range(10)]
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_char_1d((&(__pyx_v_p->edittext[0])), 0x12C)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_edittext);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_edittext);
  __pyx_v_self->_edittext = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4616
 *         self._color = WrapMjuiThemeColor(&p.color)
 *         self._edittext = _wrap_char_1d(&p.edittext[0], 300)
 *         self._sect = [WrapMjuiSection(&p.sect[i]) for i in range(10)]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4616, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    for (__pyx_t_2 = 0; __pyx_t_2 < 10; __pyx_t_2+=1) {
      __pyx_9genexpr10__pyx_v_i = __pyx_t_2;
      __pyx_t_3 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjuiSection((&(__pyx_v_p->sect[__pyx_9genexpr10__pyx_v_i])))); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4616, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(4, 4616, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
  } /* exit inner scope */
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_sect);
  __Pyx_DECREF(__pyx_v_self->_sect);
  __pyx_v_self->_sect = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4608
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjUI* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjUI._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":4618
 *         self._sect = [WrapMjuiSection(&p.sect[i]) for i in range(10)]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def spacing(self): return self._spacing
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_7spacing_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_7spacing_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_7spacing___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_7spacing___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4619
 * 
 *     @property
 *     def spacing(self): return self._spacing             # <<<<<<<<<<<<<<
 *     @property
 *     def color(self): return self._color
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_spacing);
  __pyx_r = ((PyObject *)__pyx_v_self->_spacing);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4618
 *         self._sect = [WrapMjuiSection(&p.sect[i]) for i in range(10)]
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def spacing(self): return self._spacing
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4620
 *     @property
 *     def spacing(self): return self._spacing
 *     @property             # <<<<<<<<<<<<<<
 *     def color(self): return self._color
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_5color_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_5color_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_5color___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_5color___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4621
 *     def spacing(self): return self._spacing
 *     @property
 *     def color(self): return self._color             # <<<<<<<<<<<<<<
 *     @property
 *     def rectid(self): return self.ptr.rectid
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_color);
  __pyx_r = ((PyObject *)__pyx_v_self->_color);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4620
 *     @property
 *     def spacing(self): return self._spacing
 *     @property             # <<<<<<<<<<<<<<
 *     def color(self): return self._color
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4622
 *     @property
 *     def color(self): return self._color
 *     @property             # <<<<<<<<<<<<<<
 *     def rectid(self): return self.ptr.rectid
 *     @rectid.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_6rectid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_6rectid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_6rectid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_6rectid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4623
 *     def color(self): return self._color
 *     @property
 *     def rectid(self): return self.ptr.rectid             # <<<<<<<<<<<<<<
 *     @rectid.setter
 *     def rectid(self, int x): self.ptr.rectid = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->rectid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4622
 *     @property
 *     def color(self): return self._color
 *     @property             # <<<<<<<<<<<<<<
 *     def rectid(self): return self.ptr.rectid
 *     @rectid.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.rectid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4624
 *     @property
 *     def rectid(self): return self.ptr.rectid
 *     @rectid.setter             # <<<<<<<<<<<<<<
 *     def rectid(self, int x): self.ptr.rectid = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_6rectid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_6rectid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4625, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.rectid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_6rectid_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_6rectid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4625
 *     def rectid(self): return self.ptr.rectid
 *     @rectid.setter
 *     def rectid(self, int x): self.ptr.rectid = x             # <<<<<<<<<<<<<<
 *     @property
 *     def auxid(self): return self.ptr.auxid
 */
  __pyx_v_self->ptr->rectid = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4624
 *     @property
 *     def rectid(self): return self.ptr.rectid
 *     @rectid.setter             # <<<<<<<<<<<<<<
 *     def rectid(self, int x): self.ptr.rectid = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4626
 *     @rectid.setter
 *     def rectid(self, int x): self.ptr.rectid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def auxid(self): return self.ptr.auxid
 *     @auxid.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_5auxid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_5auxid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_5auxid___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_5auxid___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4627
 *     def rectid(self, int x): self.ptr.rectid = x
 *     @property
 *     def auxid(self): return self.ptr.auxid             # <<<<<<<<<<<<<<
 *     @auxid.setter
 *     def auxid(self, int x): self.ptr.auxid = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->auxid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4626
 *     @rectid.setter
 *     def rectid(self, int x): self.ptr.rectid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def auxid(self): return self.ptr.auxid
 *     @auxid.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.auxid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4628
 *     @property
 *     def auxid(self): return self.ptr.auxid
 *     @auxid.setter             # <<<<<<<<<<<<<<
 *     def auxid(self, int x): self.ptr.auxid = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_5auxid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_5auxid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4629, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.auxid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_5auxid_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_5auxid_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4629
 *     def auxid(self): return self.ptr.auxid
 *     @auxid.setter
 *     def auxid(self, int x): self.ptr.auxid = x             # <<<<<<<<<<<<<<
 *     @property
 *     def radiocol(self): return self.ptr.radiocol
 */
  __pyx_v_self->ptr->auxid = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4628
 *     @property
 *     def auxid(self): return self.ptr.auxid
 *     @auxid.setter             # <<<<<<<<<<<<<<
 *     def auxid(self, int x): self.ptr.auxid = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4630
 *     @auxid.setter
 *     def auxid(self, int x): self.ptr.auxid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def radiocol(self): return self.ptr.radiocol
 *     @radiocol.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_8radiocol_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_8radiocol_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_8radiocol___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_8radiocol___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4631
 *     def auxid(self, int x): self.ptr.auxid = x
 *     @property
 *     def radiocol(self): return self.ptr.radiocol             # <<<<<<<<<<<<<<
 *     @radiocol.setter
 *     def radiocol(self, int x): self.ptr.radiocol = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->radiocol); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4630
 *     @auxid.setter
 *     def auxid(self, int x): self.ptr.auxid = x
 *     @property             # <<<<<<<<<<<<<<
 *     def radiocol(self): return self.ptr.radiocol
 *     @radiocol.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.radiocol.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4632
 *     @property
 *     def radiocol(self): return self.ptr.radiocol
 *     @radiocol.setter             # <<<<<<<<<<<<<<
 *     def radiocol(self, int x): self.ptr.radiocol = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_8radiocol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_8radiocol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4633, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.radiocol.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_8radiocol_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_8radiocol_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4633
 *     def radiocol(self): return self.ptr.radiocol
 *     @radiocol.setter
 *     def radiocol(self, int x): self.ptr.radiocol = x             # <<<<<<<<<<<<<<
 *     @property
 *     def width(self): return self.ptr.width
 */
  __pyx_v_self->ptr->radiocol = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4632
 *     @property
 *     def radiocol(self): return self.ptr.radiocol
 *     @radiocol.setter             # <<<<<<<<<<<<<<
 *     def radiocol(self, int x): self.ptr.radiocol = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4634
 *     @radiocol.setter
 *     def radiocol(self, int x): self.ptr.radiocol = x
 *     @property             # <<<<<<<<<<<<<<
 *     def width(self): return self.ptr.width
 *     @width.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_5width_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_5width_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_5width___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_5width___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4635
 *     def radiocol(self, int x): self.ptr.radiocol = x
 *     @property
 *     def width(self): return self.ptr.width             # <<<<<<<<<<<<<<
 *     @width.setter
 *     def width(self, int x): self.ptr.width = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->width); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4634
 *     @radiocol.setter
 *     def radiocol(self, int x): self.ptr.radiocol = x
 *     @property             # <<<<<<<<<<<<<<
 *     def width(self): return self.ptr.width
 *     @width.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.width.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4636
 *     @property
 *     def width(self): return self.ptr.width
 *     @width.setter             # <<<<<<<<<<<<<<
 *     def width(self, int x): self.ptr.width = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_5width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_5width_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4637, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.width.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_5width_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_5width_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4637
 *     def width(self): return self.ptr.width
 *     @width.setter
 *     def width(self, int x): self.ptr.width = x             # <<<<<<<<<<<<<<
 *     @property
 *     def height(self): return self.ptr.height
 */
  __pyx_v_self->ptr->width = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4636
 *     @property
 *     def width(self): return self.ptr.width
 *     @width.setter             # <<<<<<<<<<<<<<
 *     def width(self, int x): self.ptr.width = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4638
 *     @width.setter
 *     def width(self, int x): self.ptr.width = x
 *     @property             # <<<<<<<<<<<<<<
 *     def height(self): return self.ptr.height
 *     @height.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_6height_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_6height_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_6height___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_6height___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4639
 *     def width(self, int x): self.ptr.width = x
 *     @property
 *     def height(self): return self.ptr.height             # <<<<<<<<<<<<<<
 *     @height.setter
 *     def height(self, int x): self.ptr.height = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->height); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4638
 *     @width.setter
 *     def width(self, int x): self.ptr.width = x
 *     @property             # <<<<<<<<<<<<<<
 *     def height(self): return self.ptr.height
 *     @height.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.height.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4640
 *     @property
 *     def height(self): return self.ptr.height
 *     @height.setter             # <<<<<<<<<<<<<<
 *     def height(self, int x): self.ptr.height = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_6height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_6height_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4641, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.height.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_6height_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_6height_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4641
 *     def height(self): return self.ptr.height
 *     @height.setter
 *     def height(self, int x): self.ptr.height = x             # <<<<<<<<<<<<<<
 *     @property
 *     def maxheight(self): return self.ptr.maxheight
 */
  __pyx_v_self->ptr->height = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4640
 *     @property
 *     def height(self): return self.ptr.height
 *     @height.setter             # <<<<<<<<<<<<<<
 *     def height(self, int x): self.ptr.height = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4642
 *     @height.setter
 *     def height(self, int x): self.ptr.height = x
 *     @property             # <<<<<<<<<<<<<<
 *     def maxheight(self): return self.ptr.maxheight
 *     @maxheight.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_9maxheight_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_9maxheight_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9maxheight___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_9maxheight___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4643
 *     def height(self, int x): self.ptr.height = x
 *     @property
 *     def maxheight(self): return self.ptr.maxheight             # <<<<<<<<<<<<<<
 *     @maxheight.setter
 *     def maxheight(self, int x): self.ptr.maxheight = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->maxheight); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4643, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4642
 *     @height.setter
 *     def height(self, int x): self.ptr.height = x
 *     @property             # <<<<<<<<<<<<<<
 *     def maxheight(self): return self.ptr.maxheight
 *     @maxheight.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.maxheight.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4644
 *     @property
 *     def maxheight(self): return self.ptr.maxheight
 *     @maxheight.setter             # <<<<<<<<<<<<<<
 *     def maxheight(self, int x): self.ptr.maxheight = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9maxheight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9maxheight_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4645, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.maxheight.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9maxheight_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9maxheight_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4645
 *     def maxheight(self): return self.ptr.maxheight
 *     @maxheight.setter
 *     def maxheight(self, int x): self.ptr.maxheight = x             # <<<<<<<<<<<<<<
 *     @property
 *     def scroll(self): return self.ptr.scroll
 */
  __pyx_v_self->ptr->maxheight = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4644
 *     @property
 *     def maxheight(self): return self.ptr.maxheight
 *     @maxheight.setter             # <<<<<<<<<<<<<<
 *     def maxheight(self, int x): self.ptr.maxheight = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4646
 *     @maxheight.setter
 *     def maxheight(self, int x): self.ptr.maxheight = x
 *     @property             # <<<<<<<<<<<<<<
 *     def scroll(self): return self.ptr.scroll
 *     @scroll.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_6scroll_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_6scroll_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_6scroll___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_6scroll___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4647
 *     def maxheight(self, int x): self.ptr.maxheight = x
 *     @property
 *     def scroll(self): return self.ptr.scroll             # <<<<<<<<<<<<<<
 *     @scroll.setter
 *     def scroll(self, int x): self.ptr.scroll = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->scroll); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4646
 *     @maxheight.setter
 *     def maxheight(self, int x): self.ptr.maxheight = x
 *     @property             # <<<<<<<<<<<<<<
 *     def scroll(self): return self.ptr.scroll
 *     @scroll.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.scroll.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4648
 *     @property
 *     def scroll(self): return self.ptr.scroll
 *     @scroll.setter             # <<<<<<<<<<<<<<
 *     def scroll(self, int x): self.ptr.scroll = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_6scroll_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_6scroll_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4649, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.scroll.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_6scroll_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_6scroll_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4649
 *     def scroll(self): return self.ptr.scroll
 *     @scroll.setter
 *     def scroll(self, int x): self.ptr.scroll = x             # <<<<<<<<<<<<<<
 *     @property
 *     def mousesect(self): return self.ptr.mousesect
 */
  __pyx_v_self->ptr->scroll = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4648
 *     @property
 *     def scroll(self): return self.ptr.scroll
 *     @scroll.setter             # <<<<<<<<<<<<<<
 *     def scroll(self, int x): self.ptr.scroll = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4650
 *     @scroll.setter
 *     def scroll(self, int x): self.ptr.scroll = x
 *     @property             # <<<<<<<<<<<<<<
 *     def mousesect(self): return self.ptr.mousesect
 *     @mousesect.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mousesect_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mousesect_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mousesect___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mousesect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4651
 *     def scroll(self, int x): self.ptr.scroll = x
 *     @property
 *     def mousesect(self): return self.ptr.mousesect             # <<<<<<<<<<<<<<
 *     @mousesect.setter
 *     def mousesect(self, int x): self.ptr.mousesect = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->mousesect); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4650
 *     @scroll.setter
 *     def scroll(self, int x): self.ptr.scroll = x
 *     @property             # <<<<<<<<<<<<<<
 *     def mousesect(self): return self.ptr.mousesect
 *     @mousesect.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.mousesect.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4652
 *     @property
 *     def mousesect(self): return self.ptr.mousesect
 *     @mousesect.setter             # <<<<<<<<<<<<<<
 *     def mousesect(self, int x): self.ptr.mousesect = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mousesect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mousesect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4653, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.mousesect.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mousesect_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mousesect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4653
 *     def mousesect(self): return self.ptr.mousesect
 *     @mousesect.setter
 *     def mousesect(self, int x): self.ptr.mousesect = x             # <<<<<<<<<<<<<<
 *     @property
 *     def mouseitem(self): return self.ptr.mouseitem
 */
  __pyx_v_self->ptr->mousesect = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4652
 *     @property
 *     def mousesect(self): return self.ptr.mousesect
 *     @mousesect.setter             # <<<<<<<<<<<<<<
 *     def mousesect(self, int x): self.ptr.mousesect = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4654
 *     @mousesect.setter
 *     def mousesect(self, int x): self.ptr.mousesect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def mouseitem(self): return self.ptr.mouseitem
 *     @mouseitem.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mouseitem_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mouseitem_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mouseitem___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mouseitem___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4655
 *     def mousesect(self, int x): self.ptr.mousesect = x
 *     @property
 *     def mouseitem(self): return self.ptr.mouseitem             # <<<<<<<<<<<<<<
 *     @mouseitem.setter
 *     def mouseitem(self, int x): self.ptr.mouseitem = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->mouseitem); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4654
 *     @mousesect.setter
 *     def mousesect(self, int x): self.ptr.mousesect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def mouseitem(self): return self.ptr.mouseitem
 *     @mouseitem.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.mouseitem.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4656
 *     @property
 *     def mouseitem(self): return self.ptr.mouseitem
 *     @mouseitem.setter             # <<<<<<<<<<<<<<
 *     def mouseitem(self, int x): self.ptr.mouseitem = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mouseitem_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mouseitem_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4657, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.mouseitem.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mouseitem_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mouseitem_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4657
 *     def mouseitem(self): return self.ptr.mouseitem
 *     @mouseitem.setter
 *     def mouseitem(self, int x): self.ptr.mouseitem = x             # <<<<<<<<<<<<<<
 *     @property
 *     def mousehelp(self): return self.ptr.mousehelp
 */
  __pyx_v_self->ptr->mouseitem = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4656
 *     @property
 *     def mouseitem(self): return self.ptr.mouseitem
 *     @mouseitem.setter             # <<<<<<<<<<<<<<
 *     def mouseitem(self, int x): self.ptr.mouseitem = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4658
 *     @mouseitem.setter
 *     def mouseitem(self, int x): self.ptr.mouseitem = x
 *     @property             # <<<<<<<<<<<<<<
 *     def mousehelp(self): return self.ptr.mousehelp
 *     @mousehelp.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mousehelp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mousehelp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mousehelp___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mousehelp___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4659
 *     def mouseitem(self, int x): self.ptr.mouseitem = x
 *     @property
 *     def mousehelp(self): return self.ptr.mousehelp             # <<<<<<<<<<<<<<
 *     @mousehelp.setter
 *     def mousehelp(self, int x): self.ptr.mousehelp = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->mousehelp); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4658
 *     @mouseitem.setter
 *     def mouseitem(self, int x): self.ptr.mouseitem = x
 *     @property             # <<<<<<<<<<<<<<
 *     def mousehelp(self): return self.ptr.mousehelp
 *     @mousehelp.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.mousehelp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4660
 *     @property
 *     def mousehelp(self): return self.ptr.mousehelp
 *     @mousehelp.setter             # <<<<<<<<<<<<<<
 *     def mousehelp(self, int x): self.ptr.mousehelp = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mousehelp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mousehelp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4661, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.mousehelp.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mousehelp_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_9mousehelp_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4661
 *     def mousehelp(self): return self.ptr.mousehelp
 *     @mousehelp.setter
 *     def mousehelp(self, int x): self.ptr.mousehelp = x             # <<<<<<<<<<<<<<
 *     @property
 *     def editsect(self): return self.ptr.editsect
 */
  __pyx_v_self->ptr->mousehelp = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4660
 *     @property
 *     def mousehelp(self): return self.ptr.mousehelp
 *     @mousehelp.setter             # <<<<<<<<<<<<<<
 *     def mousehelp(self, int x): self.ptr.mousehelp = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4662
 *     @mousehelp.setter
 *     def mousehelp(self, int x): self.ptr.mousehelp = x
 *     @property             # <<<<<<<<<<<<<<
 *     def editsect(self): return self.ptr.editsect
 *     @editsect.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_8editsect_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_8editsect_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_8editsect___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_8editsect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4663
 *     def mousehelp(self, int x): self.ptr.mousehelp = x
 *     @property
 *     def editsect(self): return self.ptr.editsect             # <<<<<<<<<<<<<<
 *     @editsect.setter
 *     def editsect(self, int x): self.ptr.editsect = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->editsect); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4662
 *     @mousehelp.setter
 *     def mousehelp(self, int x): self.ptr.mousehelp = x
 *     @property             # <<<<<<<<<<<<<<
 *     def editsect(self): return self.ptr.editsect
 *     @editsect.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.editsect.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4664
 *     @property
 *     def editsect(self): return self.ptr.editsect
 *     @editsect.setter             # <<<<<<<<<<<<<<
 *     def editsect(self, int x): self.ptr.editsect = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_8editsect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_8editsect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4665, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.editsect.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_8editsect_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_8editsect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4665
 *     def editsect(self): return self.ptr.editsect
 *     @editsect.setter
 *     def editsect(self, int x): self.ptr.editsect = x             # <<<<<<<<<<<<<<
 *     @property
 *     def edititem(self): return self.ptr.edititem
 */
  __pyx_v_self->ptr->editsect = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4664
 *     @property
 *     def editsect(self): return self.ptr.editsect
 *     @editsect.setter             # <<<<<<<<<<<<<<
 *     def editsect(self, int x): self.ptr.editsect = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4666
 *     @editsect.setter
 *     def editsect(self, int x): self.ptr.editsect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def edititem(self): return self.ptr.edititem
 *     @edititem.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_8edititem_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_8edititem_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_8edititem___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_8edititem___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4667
 *     def editsect(self, int x): self.ptr.editsect = x
 *     @property
 *     def edititem(self): return self.ptr.edititem             # <<<<<<<<<<<<<<
 *     @edititem.setter
 *     def edititem(self, int x): self.ptr.edititem = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->edititem); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4667, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4666
 *     @editsect.setter
 *     def editsect(self, int x): self.ptr.editsect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def edititem(self): return self.ptr.edititem
 *     @edititem.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.edititem.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4668
 *     @property
 *     def edititem(self): return self.ptr.edititem
 *     @edititem.setter             # <<<<<<<<<<<<<<
 *     def edititem(self, int x): self.ptr.edititem = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_8edititem_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_8edititem_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4669, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.edititem.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_8edititem_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_8edititem_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4669
 *     def edititem(self): return self.ptr.edititem
 *     @edititem.setter
 *     def edititem(self, int x): self.ptr.edititem = x             # <<<<<<<<<<<<<<
 *     @property
 *     def editcursor(self): return self.ptr.editcursor
 */
  __pyx_v_self->ptr->edititem = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4668
 *     @property
 *     def edititem(self): return self.ptr.edititem
 *     @edititem.setter             # <<<<<<<<<<<<<<
 *     def edititem(self, int x): self.ptr.edititem = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4670
 *     @edititem.setter
 *     def edititem(self, int x): self.ptr.edititem = x
 *     @property             # <<<<<<<<<<<<<<
 *     def editcursor(self): return self.ptr.editcursor
 *     @editcursor.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_10editcursor_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_10editcursor_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_10editcursor___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_10editcursor___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4671
 *     def edititem(self, int x): self.ptr.edititem = x
 *     @property
 *     def editcursor(self): return self.ptr.editcursor             # <<<<<<<<<<<<<<
 *     @editcursor.setter
 *     def editcursor(self, int x): self.ptr.editcursor = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->editcursor); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4670
 *     @edititem.setter
 *     def edititem(self, int x): self.ptr.edititem = x
 *     @property             # <<<<<<<<<<<<<<
 *     def editcursor(self): return self.ptr.editcursor
 *     @editcursor.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.editcursor.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4672
 *     @property
 *     def editcursor(self): return self.ptr.editcursor
 *     @editcursor.setter             # <<<<<<<<<<<<<<
 *     def editcursor(self, int x): self.ptr.editcursor = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_10editcursor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_10editcursor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4673, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.editcursor.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_10editcursor_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_10editcursor_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4673
 *     def editcursor(self): return self.ptr.editcursor
 *     @editcursor.setter
 *     def editcursor(self, int x): self.ptr.editcursor = x             # <<<<<<<<<<<<<<
 *     @property
 *     def editscroll(self): return self.ptr.editscroll
 */
  __pyx_v_self->ptr->editcursor = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4672
 *     @property
 *     def editcursor(self): return self.ptr.editcursor
 *     @editcursor.setter             # <<<<<<<<<<<<<<
 *     def editcursor(self, int x): self.ptr.editcursor = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4674
 *     @editcursor.setter
 *     def editcursor(self, int x): self.ptr.editcursor = x
 *     @property             # <<<<<<<<<<<<<<
 *     def editscroll(self): return self.ptr.editscroll
 *     @editscroll.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_10editscroll_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_10editscroll_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_10editscroll___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_10editscroll___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4675
 *     def editcursor(self, int x): self.ptr.editcursor = x
 *     @property
 *     def editscroll(self): return self.ptr.editscroll             # <<<<<<<<<<<<<<
 *     @editscroll.setter
 *     def editscroll(self, int x): self.ptr.editscroll = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->editscroll); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4674
 *     @editcursor.setter
 *     def editcursor(self, int x): self.ptr.editcursor = x
 *     @property             # <<<<<<<<<<<<<<
 *     def editscroll(self): return self.ptr.editscroll
 *     @editscroll.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.editscroll.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4676
 *     @property
 *     def editscroll(self): return self.ptr.editscroll
 *     @editscroll.setter             # <<<<<<<<<<<<<<
 *     def editscroll(self, int x): self.ptr.editscroll = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_10editscroll_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_10editscroll_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4677, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.editscroll.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_10editscroll_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_10editscroll_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4677
 *     def editscroll(self): return self.ptr.editscroll
 *     @editscroll.setter
 *     def editscroll(self, int x): self.ptr.editscroll = x             # <<<<<<<<<<<<<<
 *     @property
 *     def nsect(self): return self.ptr.nsect
 */
  __pyx_v_self->ptr->editscroll = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4676
 *     @property
 *     def editscroll(self): return self.ptr.editscroll
 *     @editscroll.setter             # <<<<<<<<<<<<<<
 *     def editscroll(self, int x): self.ptr.editscroll = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4678
 *     @editscroll.setter
 *     def editscroll(self, int x): self.ptr.editscroll = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nsect(self): return self.ptr.nsect
 *     @nsect.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_5nsect_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_5nsect_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_5nsect___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_5nsect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4679
 *     def editscroll(self, int x): self.ptr.editscroll = x
 *     @property
 *     def nsect(self): return self.ptr.nsect             # <<<<<<<<<<<<<<
 *     @nsect.setter
 *     def nsect(self, int x): self.ptr.nsect = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->nsect); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4678
 *     @editscroll.setter
 *     def editscroll(self, int x): self.ptr.editscroll = x
 *     @property             # <<<<<<<<<<<<<<
 *     def nsect(self): return self.ptr.nsect
 *     @nsect.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.nsect.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4680
 *     @property
 *     def nsect(self): return self.ptr.nsect
 *     @nsect.setter             # <<<<<<<<<<<<<<
 *     def nsect(self, int x): self.ptr.nsect = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_5nsect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_6PyMjUI_5nsect_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4681, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.nsect.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_5nsect_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_6PyMjUI_5nsect_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4681
 *     def nsect(self): return self.ptr.nsect
 *     @nsect.setter
 *     def nsect(self, int x): self.ptr.nsect = x             # <<<<<<<<<<<<<<
 *     @property
 *     def edittext(self): return self._edittext
 */
  __pyx_v_self->ptr->nsect = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4680
 *     @property
 *     def nsect(self): return self.ptr.nsect
 *     @nsect.setter             # <<<<<<<<<<<<<<
 *     def nsect(self, int x): self.ptr.nsect = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4682
 *     @nsect.setter
 *     def nsect(self, int x): self.ptr.nsect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def edittext(self): return self._edittext
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_8edittext_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_8edittext_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_8edittext___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_8edittext___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4683
 *     def nsect(self, int x): self.ptr.nsect = x
 *     @property
 *     def edittext(self): return self._edittext             # <<<<<<<<<<<<<<
 *     @property
 *     def sect(self): return self._sect
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_edittext);
  __pyx_r = ((PyObject *)__pyx_v_self->_edittext);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4682
 *     @nsect.setter
 *     def nsect(self, int x): self.ptr.nsect = x
 *     @property             # <<<<<<<<<<<<<<
 *     def edittext(self): return self._edittext
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4684
 *     @property
 *     def edittext(self): return self._edittext
 *     @property             # <<<<<<<<<<<<<<
 *     def sect(self): return self._sect
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_4sect_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_4sect_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_4sect___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_4sect___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4685
 *     def edittext(self): return self._edittext
 *     @property
 *     def sect(self): return self._sect             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjUI WrapMjUI(mjUI* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_sect);
  __pyx_r = __pyx_v_self->_sect;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4684
 *     @property
 *     def edittext(self): return self._edittext
 *     @property             # <<<<<<<<<<<<<<
 *     def sect(self): return self._sect
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_6PyMjUI_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_6PyMjUI_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_6PyMjUI_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_6PyMjUI_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_6PyMjUI_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6PyMjUI_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6PyMjUI_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjUI.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4687
 *     def sect(self): return self._sect
 * 
 * cdef PyMjUI WrapMjUI(mjUI* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjUI o = PyMjUI()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_f_9mujoco_py_4cymj_WrapMjUI(mjUI *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjUI", 1);

  /* "mujoco_py/generated/wrappers.pxi":4688
 * 
 * cdef PyMjUI WrapMjUI(mjUI* p):
 *     cdef PyMjUI o = PyMjUI()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjUI)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4689
 * cdef PyMjUI WrapMjUI(mjUI* p):
 *     cdef PyMjUI o = PyMjUI()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjUI *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":4690
 *     cdef PyMjUI o = PyMjUI()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjuiDef(object):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4687
 *     def sect(self): return self._sect
 * 
 * cdef PyMjUI WrapMjUI(mjUI* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjUI o = PyMjUI()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjUI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4699
 *     cdef np.ndarray _other
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef___cinit__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4700
 * 
 *     def __cinit__(self):
 *         self.ptr = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4699
 *     cdef np.ndarray _other
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.ptr = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4703
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_7uintptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_7uintptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_7uintptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_7uintptr___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4704
 * 
 *     @property
 *     def uintptr(self): return <uintptr_t>self.ptr             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set(self, mjuiDef* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_self->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4703
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiDef.uintptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4706
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjuiDef* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

static void __pyx_f_9mujoco_py_4cymj_9PyMjuiDef__set(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self, mjuiDef *__pyx_v_p) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set", 1);

  /* "mujoco_py/generated/wrappers.pxi":4708
 *     cdef void _set(self, mjuiDef* p):
 * 
 *         self.ptr = p             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->ptr = __pyx_v_p;

  /* "mujoco_py/generated/wrappers.pxi":4711
 * 
 * 
 *         self._name = _wrap_char_1d(&p.name[0], 40)             # <<<<<<<<<<<<<<
 *         self._other = _wrap_char_1d(&p.other[0], 300)
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_char_1d((&(__pyx_v_p->name[0])), 40)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_name);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_name);
  __pyx_v_self->_name = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4712
 * 
 *         self._name = _wrap_char_1d(&p.name[0], 40)
 *         self._other = _wrap_char_1d(&p.other[0], 300)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj__wrap_char_1d((&(__pyx_v_p->other[0])), 0x12C)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_other);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_other);
  __pyx_v_self->_other = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4706
 *     def uintptr(self): return <uintptr_t>self.ptr
 * 
 *     cdef void _set(self, mjuiDef* p):             # <<<<<<<<<<<<<<
 * 
 *         self.ptr = p
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("mujoco_py.cymj.PyMjuiDef._set", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "mujoco_py/generated/wrappers.pxi":4714
 *         self._other = _wrap_char_1d(&p.other[0], 300)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type(self): return self.ptr.type
 *     @type.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_4type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_4type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_4type___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_4type___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4715
 * 
 *     @property
 *     def type(self): return self.ptr.type             # <<<<<<<<<<<<<<
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->type); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4714
 *         self._other = _wrap_char_1d(&p.other[0], 300)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def type(self): return self.ptr.type
 *     @type.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiDef.type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4716
 *     @property
 *     def type(self): return self.ptr.type
 *     @type.setter             # <<<<<<<<<<<<<<
 *     def type(self, int x): self.ptr.type = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4717, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiDef.type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_4type_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_4type_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4717
 *     def type(self): return self.ptr.type
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x             # <<<<<<<<<<<<<<
 *     @property
 *     def state(self): return self.ptr.state
 */
  __pyx_v_self->ptr->type = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4716
 *     @property
 *     def type(self): return self.ptr.type
 *     @type.setter             # <<<<<<<<<<<<<<
 *     def type(self, int x): self.ptr.type = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4718
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x
 *     @property             # <<<<<<<<<<<<<<
 *     def state(self): return self.ptr.state
 *     @state.setter
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_5state_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_5state_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_5state___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_5state___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4719
 *     def type(self, int x): self.ptr.type = x
 *     @property
 *     def state(self): return self.ptr.state             # <<<<<<<<<<<<<<
 *     @state.setter
 *     def state(self, int x): self.ptr.state = x
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ptr->state); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4719, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4718
 *     @type.setter
 *     def type(self, int x): self.ptr.type = x
 *     @property             # <<<<<<<<<<<<<<
 *     def state(self): return self.ptr.state
 *     @state.setter
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiDef.state.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4720
 *     @property
 *     def state(self): return self.ptr.state
 *     @state.setter             # <<<<<<<<<<<<<<
 *     def state(self, int x): self.ptr.state = x
 *     @property
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_5state_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_5state_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
  int __pyx_v_x;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_x); {
    __pyx_v_x = __Pyx_PyInt_As_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4721, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiDef.state.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_5state_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)__pyx_v_self), ((int)__pyx_v_x));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_5state_2__set__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self, int __pyx_v_x) {
  int __pyx_r;

  /* "mujoco_py/generated/wrappers.pxi":4721
 *     def state(self): return self.ptr.state
 *     @state.setter
 *     def state(self, int x): self.ptr.state = x             # <<<<<<<<<<<<<<
 *     @property
 *     def name(self): return self._name
 */
  __pyx_v_self->ptr->state = __pyx_v_x;

  /* "mujoco_py/generated/wrappers.pxi":4720
 *     @property
 *     def state(self): return self.ptr.state
 *     @state.setter             # <<<<<<<<<<<<<<
 *     def state(self, int x): self.ptr.state = x
 *     @property
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4722
 *     @state.setter
 *     def state(self, int x): self.ptr.state = x
 *     @property             # <<<<<<<<<<<<<<
 *     def name(self): return self._name
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_4name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_4name___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_4name___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4723
 *     def state(self, int x): self.ptr.state = x
 *     @property
 *     def name(self): return self._name             # <<<<<<<<<<<<<<
 *     @property
 *     def other(self): return self._other
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_name);
  __pyx_r = ((PyObject *)__pyx_v_self->_name);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4722
 *     @state.setter
 *     def state(self, int x): self.ptr.state = x
 *     @property             # <<<<<<<<<<<<<<
 *     def name(self): return self._name
 *     @property
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4724
 *     @property
 *     def name(self): return self._name
 *     @property             # <<<<<<<<<<<<<<
 *     def other(self): return self._other
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_5other_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_5other_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_5other___get__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_5other___get__(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/generated/wrappers.pxi":4725
 *     def name(self): return self._name
 *     @property
 *     def other(self): return self._other             # <<<<<<<<<<<<<<
 * 
 * cdef PyMjuiDef WrapMjuiDef(mjuiDef* p):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_other);
  __pyx_r = ((PyObject *)__pyx_v_self->_other);
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4724
 *     @property
 *     def name(self): return self._name
 *     @property             # <<<<<<<<<<<<<<
 *     def other(self): return self._other
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjuiDef_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_2__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiDef.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9PyMjuiDef_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiDef.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_4__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_9PyMjuiDef_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.PyMjuiDef.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4727
 *     def other(self): return self._other
 * 
 * cdef PyMjuiDef WrapMjuiDef(mjuiDef* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjuiDef o = PyMjuiDef()
 *     o._set(p)
 */

static struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_f_9mujoco_py_4cymj_WrapMjuiDef(mjuiDef *__pyx_v_p) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v_o = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("WrapMjuiDef", 1);

  /* "mujoco_py/generated/wrappers.pxi":4728
 * 
 * cdef PyMjuiDef WrapMjuiDef(mjuiDef* p):
 *     cdef PyMjuiDef o = PyMjuiDef()             # <<<<<<<<<<<<<<
 *     o._set(p)
 *     return o
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjuiDef)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_o = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4729
 * cdef PyMjuiDef WrapMjuiDef(mjuiDef* p):
 *     cdef PyMjuiDef o = PyMjuiDef()
 *     o._set(p)             # <<<<<<<<<<<<<<
 *     return o
 * 
 */
  ((struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiDef *)__pyx_v_o->__pyx_vtab)->_set(__pyx_v_o, __pyx_v_p);

  /* "mujoco_py/generated/wrappers.pxi":4730
 *     cdef PyMjuiDef o = PyMjuiDef()
 *     o._set(p)
 *     return o             # <<<<<<<<<<<<<<
 * 
 * cdef inline np.ndarray _wrap_char_1d(char* a, int shape0):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_o);
  __pyx_r = __pyx_v_o;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4727
 *     def other(self): return self._other
 * 
 * cdef PyMjuiDef WrapMjuiDef(mjuiDef* p):             # <<<<<<<<<<<<<<
 *     cdef PyMjuiDef o = PyMjuiDef()
 *     o._set(p)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.WrapMjuiDef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_o);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4732
 *     return o
 * 
 * cdef inline np.ndarray _wrap_char_1d(char* a, int shape0):             # <<<<<<<<<<<<<<
 *     if shape0 == 0: return None
 *     cdef char[:] b = <char[:shape0]> a
 */

static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_char_1d(char *__pyx_v_a, int __pyx_v_shape0) {
  __Pyx_memviewslice __pyx_v_b = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  struct __pyx_array_obj *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_wrap_char_1d", 1);

  /* "mujoco_py/generated/wrappers.pxi":4733
 * 
 * cdef inline np.ndarray _wrap_char_1d(char* a, int shape0):
 *     if shape0 == 0: return None             # <<<<<<<<<<<<<<
 *     cdef char[:] b = <char[:shape0]> a
 *     return np.asarray(b)
 */
  __pyx_t_1 = (__pyx_v_shape0 == 0);
  if (__pyx_t_1) {
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_r = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":4734
 * cdef inline np.ndarray _wrap_char_1d(char* a, int shape0):
 *     if shape0 == 0: return None
 *     cdef char[:] b = <char[:shape0]> a             # <<<<<<<<<<<<<<
 *     return np.asarray(b)
 * 
 */
  if (!__pyx_v_a) {
    PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer");
    __PYX_ERR(4, 4734, __pyx_L1_error)
  }
  __pyx_t_4 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_char); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = Py_BuildValue((char*) "("  __PYX_BUILD_PY_SSIZE_T  ")", ((Py_ssize_t)__pyx_v_shape0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_array_new(__pyx_t_3, sizeof(char), PyBytes_AS_STRING(__pyx_t_4), (char *) "c", (char *) __pyx_v_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4734, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_ds_char(((PyObject *)__pyx_t_2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(4, 4734, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_5;
  __pyx_t_5.memview = NULL;
  __pyx_t_5.data = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4735
 *     if shape0 == 0: return None
 *     cdef char[:] b = <char[:shape0]> a
 *     return np.asarray(b)             # <<<<<<<<<<<<<<
 * 
 * cdef inline np.ndarray _wrap_double_1d(double* a, int shape0):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_b, 1, (PyObject *(*)(char *)) __pyx_memview_get_char, (int (*)(char *, PyObject *)) __pyx_memview_set_char, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4735, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 4735, __pyx_L1_error)
  __pyx_r = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4732
 *     return o
 * 
 * cdef inline np.ndarray _wrap_char_1d(char* a, int shape0):             # <<<<<<<<<<<<<<
 *     if shape0 == 0: return None
 *     cdef char[:] b = <char[:shape0]> a
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF((PyObject *)__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_5, 1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj._wrap_char_1d", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_b, 1);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4737
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_double_1d(double* a, int shape0):             # <<<<<<<<<<<<<<
 *     if shape0 == 0: return None
 *     cdef double[:] b = <double[:shape0]> a
 */

static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_double_1d(double *__pyx_v_a, int __pyx_v_shape0) {
  __Pyx_memviewslice __pyx_v_b = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  struct __pyx_array_obj *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_wrap_double_1d", 1);

  /* "mujoco_py/generated/wrappers.pxi":4738
 * 
 * cdef inline np.ndarray _wrap_double_1d(double* a, int shape0):
 *     if shape0 == 0: return None             # <<<<<<<<<<<<<<
 *     cdef double[:] b = <double[:shape0]> a
 *     return np.asarray(b)
 */
  __pyx_t_1 = (__pyx_v_shape0 == 0);
  if (__pyx_t_1) {
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_r = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":4739
 * cdef inline np.ndarray _wrap_double_1d(double* a, int shape0):
 *     if shape0 == 0: return None
 *     cdef double[:] b = <double[:shape0]> a             # <<<<<<<<<<<<<<
 *     return np.asarray(b)
 * 
 */
  if (!__pyx_v_a) {
    PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer");
    __PYX_ERR(4, 4739, __pyx_L1_error)
  }
  __pyx_t_4 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_double); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = Py_BuildValue((char*) "("  __PYX_BUILD_PY_SSIZE_T  ")", ((Py_ssize_t)__pyx_v_shape0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_array_new(__pyx_t_3, sizeof(double), PyBytes_AS_STRING(__pyx_t_4), (char *) "c", (char *) __pyx_v_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4739, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(((PyObject *)__pyx_t_2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(4, 4739, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_5;
  __pyx_t_5.memview = NULL;
  __pyx_t_5.data = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4740
 *     if shape0 == 0: return None
 *     cdef double[:] b = <double[:shape0]> a
 *     return np.asarray(b)             # <<<<<<<<<<<<<<
 * 
 * cdef inline np.ndarray _wrap_float_1d(float* a, int shape0):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_b, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 4740, __pyx_L1_error)
  __pyx_r = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4737
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_double_1d(double* a, int shape0):             # <<<<<<<<<<<<<<
 *     if shape0 == 0: return None
 *     cdef double[:] b = <double[:shape0]> a
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF((PyObject *)__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_5, 1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj._wrap_double_1d", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_b, 1);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4742
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_float_1d(float* a, int shape0):             # <<<<<<<<<<<<<<
 *     if shape0 == 0: return None
 *     cdef float[:] b = <float[:shape0]> a
 */

static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_float_1d(float *__pyx_v_a, int __pyx_v_shape0) {
  __Pyx_memviewslice __pyx_v_b = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  struct __pyx_array_obj *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_wrap_float_1d", 1);

  /* "mujoco_py/generated/wrappers.pxi":4743
 * 
 * cdef inline np.ndarray _wrap_float_1d(float* a, int shape0):
 *     if shape0 == 0: return None             # <<<<<<<<<<<<<<
 *     cdef float[:] b = <float[:shape0]> a
 *     return np.asarray(b)
 */
  __pyx_t_1 = (__pyx_v_shape0 == 0);
  if (__pyx_t_1) {
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_r = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":4744
 * cdef inline np.ndarray _wrap_float_1d(float* a, int shape0):
 *     if shape0 == 0: return None
 *     cdef float[:] b = <float[:shape0]> a             # <<<<<<<<<<<<<<
 *     return np.asarray(b)
 * 
 */
  if (!__pyx_v_a) {
    PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer");
    __PYX_ERR(4, 4744, __pyx_L1_error)
  }
  __pyx_t_4 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_float); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = Py_BuildValue((char*) "("  __PYX_BUILD_PY_SSIZE_T  ")", ((Py_ssize_t)__pyx_v_shape0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_array_new(__pyx_t_3, sizeof(float), PyBytes_AS_STRING(__pyx_t_4), (char *) "c", (char *) __pyx_v_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4744, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(((PyObject *)__pyx_t_2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(4, 4744, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_5;
  __pyx_t_5.memview = NULL;
  __pyx_t_5.data = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4745
 *     if shape0 == 0: return None
 *     cdef float[:] b = <float[:shape0]> a
 *     return np.asarray(b)             # <<<<<<<<<<<<<<
 * 
 * cdef inline np.ndarray _wrap_int_1d(int* a, int shape0):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_b, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4745, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 4745, __pyx_L1_error)
  __pyx_r = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4742
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_float_1d(float* a, int shape0):             # <<<<<<<<<<<<<<
 *     if shape0 == 0: return None
 *     cdef float[:] b = <float[:shape0]> a
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF((PyObject *)__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_5, 1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj._wrap_float_1d", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_b, 1);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4747
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_int_1d(int* a, int shape0):             # <<<<<<<<<<<<<<
 *     if shape0 == 0: return None
 *     cdef int[:] b = <int[:shape0]> a
 */

static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_int_1d(int *__pyx_v_a, int __pyx_v_shape0) {
  __Pyx_memviewslice __pyx_v_b = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  struct __pyx_array_obj *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_wrap_int_1d", 1);

  /* "mujoco_py/generated/wrappers.pxi":4748
 * 
 * cdef inline np.ndarray _wrap_int_1d(int* a, int shape0):
 *     if shape0 == 0: return None             # <<<<<<<<<<<<<<
 *     cdef int[:] b = <int[:shape0]> a
 *     return np.asarray(b)
 */
  __pyx_t_1 = (__pyx_v_shape0 == 0);
  if (__pyx_t_1) {
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_r = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":4749
 * cdef inline np.ndarray _wrap_int_1d(int* a, int shape0):
 *     if shape0 == 0: return None
 *     cdef int[:] b = <int[:shape0]> a             # <<<<<<<<<<<<<<
 *     return np.asarray(b)
 * 
 */
  if (!__pyx_v_a) {
    PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer");
    __PYX_ERR(4, 4749, __pyx_L1_error)
  }
  __pyx_t_4 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_int); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = Py_BuildValue((char*) "("  __PYX_BUILD_PY_SSIZE_T  ")", ((Py_ssize_t)__pyx_v_shape0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_array_new(__pyx_t_3, sizeof(int), PyBytes_AS_STRING(__pyx_t_4), (char *) "c", (char *) __pyx_v_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4749, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_ds_int(((PyObject *)__pyx_t_2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(4, 4749, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_5;
  __pyx_t_5.memview = NULL;
  __pyx_t_5.data = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4750
 *     if shape0 == 0: return None
 *     cdef int[:] b = <int[:shape0]> a
 *     return np.asarray(b)             # <<<<<<<<<<<<<<
 * 
 * cdef inline np.ndarray _wrap_mjtByte_1d(mjtByte* a, int shape0):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_b, 1, (PyObject *(*)(char *)) __pyx_memview_get_int, (int (*)(char *, PyObject *)) __pyx_memview_set_int, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4750, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 4750, __pyx_L1_error)
  __pyx_r = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4747
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_int_1d(int* a, int shape0):             # <<<<<<<<<<<<<<
 *     if shape0 == 0: return None
 *     cdef int[:] b = <int[:shape0]> a
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF((PyObject *)__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_5, 1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj._wrap_int_1d", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_b, 1);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4752
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_mjtByte_1d(mjtByte* a, int shape0):             # <<<<<<<<<<<<<<
 *     if shape0 == 0: return None
 *     cdef mjtByte[:] b = <mjtByte[:shape0]> a
 */

static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_1d(mjtByte *__pyx_v_a, int __pyx_v_shape0) {
  __Pyx_memviewslice __pyx_v_b = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  struct __pyx_array_obj *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_wrap_mjtByte_1d", 1);

  /* "mujoco_py/generated/wrappers.pxi":4753
 * 
 * cdef inline np.ndarray _wrap_mjtByte_1d(mjtByte* a, int shape0):
 *     if shape0 == 0: return None             # <<<<<<<<<<<<<<
 *     cdef mjtByte[:] b = <mjtByte[:shape0]> a
 *     return np.asarray(b)
 */
  __pyx_t_1 = (__pyx_v_shape0 == 0);
  if (__pyx_t_1) {
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_r = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":4754
 * cdef inline np.ndarray _wrap_mjtByte_1d(mjtByte* a, int shape0):
 *     if shape0 == 0: return None
 *     cdef mjtByte[:] b = <mjtByte[:shape0]> a             # <<<<<<<<<<<<<<
 *     return np.asarray(b)
 * 
 */
  if (!__pyx_v_a) {
    PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer");
    __PYX_ERR(4, 4754, __pyx_L1_error)
  }
  __pyx_t_4 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_nn_mjtByte); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = Py_BuildValue((char*) "("  __PYX_BUILD_PY_SSIZE_T  ")", ((Py_ssize_t)__pyx_v_shape0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_array_new(__pyx_t_3, sizeof(mjtByte), PyBytes_AS_STRING(__pyx_t_4), (char *) "c", (char *) __pyx_v_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4754, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn_mjtByte(((PyObject *)__pyx_t_2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(4, 4754, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_5;
  __pyx_t_5.memview = NULL;
  __pyx_t_5.data = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4755
 *     if shape0 == 0: return None
 *     cdef mjtByte[:] b = <mjtByte[:shape0]> a
 *     return np.asarray(b)             # <<<<<<<<<<<<<<
 * 
 * cdef inline np.ndarray _wrap_mjtNum_1d(mjtNum* a, int shape0):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_b, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn_mjtByte, (int (*)(char *, PyObject *)) __pyx_memview_set_nn_mjtByte, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4755, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 4755, __pyx_L1_error)
  __pyx_r = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4752
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_mjtByte_1d(mjtByte* a, int shape0):             # <<<<<<<<<<<<<<
 *     if shape0 == 0: return None
 *     cdef mjtByte[:] b = <mjtByte[:shape0]> a
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF((PyObject *)__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_5, 1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj._wrap_mjtByte_1d", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_b, 1);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4757
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_mjtNum_1d(mjtNum* a, int shape0):             # <<<<<<<<<<<<<<
 *     if shape0 == 0: return None
 *     cdef mjtNum[:] b = <mjtNum[:shape0]> a
 */

static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_1d(mjtNum *__pyx_v_a, int __pyx_v_shape0) {
  __Pyx_memviewslice __pyx_v_b = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  struct __pyx_array_obj *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_wrap_mjtNum_1d", 1);

  /* "mujoco_py/generated/wrappers.pxi":4758
 * 
 * cdef inline np.ndarray _wrap_mjtNum_1d(mjtNum* a, int shape0):
 *     if shape0 == 0: return None             # <<<<<<<<<<<<<<
 *     cdef mjtNum[:] b = <mjtNum[:shape0]> a
 *     return np.asarray(b)
 */
  __pyx_t_1 = (__pyx_v_shape0 == 0);
  if (__pyx_t_1) {
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_r = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":4759
 * cdef inline np.ndarray _wrap_mjtNum_1d(mjtNum* a, int shape0):
 *     if shape0 == 0: return None
 *     cdef mjtNum[:] b = <mjtNum[:shape0]> a             # <<<<<<<<<<<<<<
 *     return np.asarray(b)
 * 
 */
  if (!__pyx_v_a) {
    PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer");
    __PYX_ERR(4, 4759, __pyx_L1_error)
  }
  __pyx_t_4 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_nn_mjtNum); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = Py_BuildValue((char*) "("  __PYX_BUILD_PY_SSIZE_T  ")", ((Py_ssize_t)__pyx_v_shape0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_array_new(__pyx_t_3, sizeof(mjtNum), PyBytes_AS_STRING(__pyx_t_4), (char *) "c", (char *) __pyx_v_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4759, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn_mjtNum(((PyObject *)__pyx_t_2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(4, 4759, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_5;
  __pyx_t_5.memview = NULL;
  __pyx_t_5.data = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4760
 *     if shape0 == 0: return None
 *     cdef mjtNum[:] b = <mjtNum[:shape0]> a
 *     return np.asarray(b)             # <<<<<<<<<<<<<<
 * 
 * cdef inline np.ndarray _wrap_unsigned_int_1d(unsigned int* a, int shape0):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_b, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn_mjtNum, (int (*)(char *, PyObject *)) __pyx_memview_set_nn_mjtNum, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4760, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 4760, __pyx_L1_error)
  __pyx_r = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4757
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_mjtNum_1d(mjtNum* a, int shape0):             # <<<<<<<<<<<<<<
 *     if shape0 == 0: return None
 *     cdef mjtNum[:] b = <mjtNum[:shape0]> a
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF((PyObject *)__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_5, 1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj._wrap_mjtNum_1d", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_b, 1);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4762
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_unsigned_int_1d(unsigned int* a, int shape0):             # <<<<<<<<<<<<<<
 *     if shape0 == 0: return None
 *     cdef unsigned int[:] b = <unsigned int[:shape0]> a
 */

static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_unsigned_int_1d(unsigned int *__pyx_v_a, int __pyx_v_shape0) {
  __Pyx_memviewslice __pyx_v_b = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  struct __pyx_array_obj *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_wrap_unsigned_int_1d", 1);

  /* "mujoco_py/generated/wrappers.pxi":4763
 * 
 * cdef inline np.ndarray _wrap_unsigned_int_1d(unsigned int* a, int shape0):
 *     if shape0 == 0: return None             # <<<<<<<<<<<<<<
 *     cdef unsigned int[:] b = <unsigned int[:shape0]> a
 *     return np.asarray(b)
 */
  __pyx_t_1 = (__pyx_v_shape0 == 0);
  if (__pyx_t_1) {
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_r = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":4764
 * cdef inline np.ndarray _wrap_unsigned_int_1d(unsigned int* a, int shape0):
 *     if shape0 == 0: return None
 *     cdef unsigned int[:] b = <unsigned int[:shape0]> a             # <<<<<<<<<<<<<<
 *     return np.asarray(b)
 * 
 */
  if (!__pyx_v_a) {
    PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer");
    __PYX_ERR(4, 4764, __pyx_L1_error)
  }
  __pyx_t_4 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_unsigned_int); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = Py_BuildValue((char*) "("  __PYX_BUILD_PY_SSIZE_T  ")", ((Py_ssize_t)__pyx_v_shape0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_array_new(__pyx_t_3, sizeof(unsigned int), PyBytes_AS_STRING(__pyx_t_4), (char *) "c", (char *) __pyx_v_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4764, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_ds_unsigned_int(((PyObject *)__pyx_t_2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(4, 4764, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_5;
  __pyx_t_5.memview = NULL;
  __pyx_t_5.data = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4765
 *     if shape0 == 0: return None
 *     cdef unsigned int[:] b = <unsigned int[:shape0]> a
 *     return np.asarray(b)             # <<<<<<<<<<<<<<
 * 
 * cdef inline np.ndarray _wrap_char_2d(char* a, int shape0, int shape1):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_b, 1, (PyObject *(*)(char *)) __pyx_memview_get_unsigned_int, (int (*)(char *, PyObject *)) __pyx_memview_set_unsigned_int, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4765, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 4765, __pyx_L1_error)
  __pyx_r = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4762
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_unsigned_int_1d(unsigned int* a, int shape0):             # <<<<<<<<<<<<<<
 *     if shape0 == 0: return None
 *     cdef unsigned int[:] b = <unsigned int[:shape0]> a
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF((PyObject *)__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_5, 1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj._wrap_unsigned_int_1d", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_b, 1);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4767
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_char_2d(char* a, int shape0, int shape1):             # <<<<<<<<<<<<<<
 *     if shape0 * shape1 == 0: return None
 *     cdef char[:,:] b = <char[:shape0,:shape1]> a
 */

static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_char_2d(char *__pyx_v_a, int __pyx_v_shape0, int __pyx_v_shape1) {
  __Pyx_memviewslice __pyx_v_b = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  struct __pyx_array_obj *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_wrap_char_2d", 1);

  /* "mujoco_py/generated/wrappers.pxi":4768
 * 
 * cdef inline np.ndarray _wrap_char_2d(char* a, int shape0, int shape1):
 *     if shape0 * shape1 == 0: return None             # <<<<<<<<<<<<<<
 *     cdef char[:,:] b = <char[:shape0,:shape1]> a
 *     return np.asarray(b)
 */
  __pyx_t_1 = ((__pyx_v_shape0 * __pyx_v_shape1) == 0);
  if (__pyx_t_1) {
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_r = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":4769
 * cdef inline np.ndarray _wrap_char_2d(char* a, int shape0, int shape1):
 *     if shape0 * shape1 == 0: return None
 *     cdef char[:,:] b = <char[:shape0,:shape1]> a             # <<<<<<<<<<<<<<
 *     return np.asarray(b)
 * 
 */
  if (!__pyx_v_a) {
    PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer");
    __PYX_ERR(4, 4769, __pyx_L1_error)
  }
  __pyx_t_4 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_char); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = Py_BuildValue((char*) "("  __PYX_BUILD_PY_SSIZE_T  __PYX_BUILD_PY_SSIZE_T  ")", ((Py_ssize_t)__pyx_v_shape0), ((Py_ssize_t)__pyx_v_shape1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_array_new(__pyx_t_3, sizeof(char), PyBytes_AS_STRING(__pyx_t_4), (char *) "c", (char *) __pyx_v_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4769, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dsds_char(((PyObject *)__pyx_t_2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(4, 4769, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_5;
  __pyx_t_5.memview = NULL;
  __pyx_t_5.data = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4770
 *     if shape0 * shape1 == 0: return None
 *     cdef char[:,:] b = <char[:shape0,:shape1]> a
 *     return np.asarray(b)             # <<<<<<<<<<<<<<
 * 
 * cdef inline np.ndarray _wrap_double_2d(double* a, int shape0, int shape1):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_b, 2, (PyObject *(*)(char *)) __pyx_memview_get_char, (int (*)(char *, PyObject *)) __pyx_memview_set_char, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 4770, __pyx_L1_error)
  __pyx_r = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4767
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_char_2d(char* a, int shape0, int shape1):             # <<<<<<<<<<<<<<
 *     if shape0 * shape1 == 0: return None
 *     cdef char[:,:] b = <char[:shape0,:shape1]> a
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF((PyObject *)__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_5, 1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj._wrap_char_2d", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_b, 1);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4772
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_double_2d(double* a, int shape0, int shape1):             # <<<<<<<<<<<<<<
 *     if shape0 * shape1 == 0: return None
 *     cdef double[:,:] b = <double[:shape0,:shape1]> a
 */

static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_double_2d(double *__pyx_v_a, int __pyx_v_shape0, int __pyx_v_shape1) {
  __Pyx_memviewslice __pyx_v_b = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  struct __pyx_array_obj *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_wrap_double_2d", 1);

  /* "mujoco_py/generated/wrappers.pxi":4773
 * 
 * cdef inline np.ndarray _wrap_double_2d(double* a, int shape0, int shape1):
 *     if shape0 * shape1 == 0: return None             # <<<<<<<<<<<<<<
 *     cdef double[:,:] b = <double[:shape0,:shape1]> a
 *     return np.asarray(b)
 */
  __pyx_t_1 = ((__pyx_v_shape0 * __pyx_v_shape1) == 0);
  if (__pyx_t_1) {
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_r = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":4774
 * cdef inline np.ndarray _wrap_double_2d(double* a, int shape0, int shape1):
 *     if shape0 * shape1 == 0: return None
 *     cdef double[:,:] b = <double[:shape0,:shape1]> a             # <<<<<<<<<<<<<<
 *     return np.asarray(b)
 * 
 */
  if (!__pyx_v_a) {
    PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer");
    __PYX_ERR(4, 4774, __pyx_L1_error)
  }
  __pyx_t_4 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_double); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = Py_BuildValue((char*) "("  __PYX_BUILD_PY_SSIZE_T  __PYX_BUILD_PY_SSIZE_T  ")", ((Py_ssize_t)__pyx_v_shape0), ((Py_ssize_t)__pyx_v_shape1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_array_new(__pyx_t_3, sizeof(double), PyBytes_AS_STRING(__pyx_t_4), (char *) "c", (char *) __pyx_v_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4774, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(((PyObject *)__pyx_t_2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(4, 4774, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_5;
  __pyx_t_5.memview = NULL;
  __pyx_t_5.data = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4775
 *     if shape0 * shape1 == 0: return None
 *     cdef double[:,:] b = <double[:shape0,:shape1]> a
 *     return np.asarray(b)             # <<<<<<<<<<<<<<
 * 
 * cdef inline np.ndarray _wrap_float_2d(float* a, int shape0, int shape1):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_b, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 4775, __pyx_L1_error)
  __pyx_r = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4772
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_double_2d(double* a, int shape0, int shape1):             # <<<<<<<<<<<<<<
 *     if shape0 * shape1 == 0: return None
 *     cdef double[:,:] b = <double[:shape0,:shape1]> a
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF((PyObject *)__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_5, 1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj._wrap_double_2d", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_b, 1);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4777
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_float_2d(float* a, int shape0, int shape1):             # <<<<<<<<<<<<<<
 *     if shape0 * shape1 == 0: return None
 *     cdef float[:,:] b = <float[:shape0,:shape1]> a
 */

static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_float_2d(float *__pyx_v_a, int __pyx_v_shape0, int __pyx_v_shape1) {
  __Pyx_memviewslice __pyx_v_b = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  struct __pyx_array_obj *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_wrap_float_2d", 1);

  /* "mujoco_py/generated/wrappers.pxi":4778
 * 
 * cdef inline np.ndarray _wrap_float_2d(float* a, int shape0, int shape1):
 *     if shape0 * shape1 == 0: return None             # <<<<<<<<<<<<<<
 *     cdef float[:,:] b = <float[:shape0,:shape1]> a
 *     return np.asarray(b)
 */
  __pyx_t_1 = ((__pyx_v_shape0 * __pyx_v_shape1) == 0);
  if (__pyx_t_1) {
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_r = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":4779
 * cdef inline np.ndarray _wrap_float_2d(float* a, int shape0, int shape1):
 *     if shape0 * shape1 == 0: return None
 *     cdef float[:,:] b = <float[:shape0,:shape1]> a             # <<<<<<<<<<<<<<
 *     return np.asarray(b)
 * 
 */
  if (!__pyx_v_a) {
    PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer");
    __PYX_ERR(4, 4779, __pyx_L1_error)
  }
  __pyx_t_4 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_float); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4779, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = Py_BuildValue((char*) "("  __PYX_BUILD_PY_SSIZE_T  __PYX_BUILD_PY_SSIZE_T  ")", ((Py_ssize_t)__pyx_v_shape0), ((Py_ssize_t)__pyx_v_shape1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4779, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_array_new(__pyx_t_3, sizeof(float), PyBytes_AS_STRING(__pyx_t_4), (char *) "c", (char *) __pyx_v_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4779, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dsds_float(((PyObject *)__pyx_t_2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(4, 4779, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_5;
  __pyx_t_5.memview = NULL;
  __pyx_t_5.data = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4780
 *     if shape0 * shape1 == 0: return None
 *     cdef float[:,:] b = <float[:shape0,:shape1]> a
 *     return np.asarray(b)             # <<<<<<<<<<<<<<
 * 
 * cdef inline np.ndarray _wrap_int_2d(int* a, int shape0, int shape1):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_b, 2, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 4780, __pyx_L1_error)
  __pyx_r = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4777
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_float_2d(float* a, int shape0, int shape1):             # <<<<<<<<<<<<<<
 *     if shape0 * shape1 == 0: return None
 *     cdef float[:,:] b = <float[:shape0,:shape1]> a
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF((PyObject *)__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_5, 1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj._wrap_float_2d", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_b, 1);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4782
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_int_2d(int* a, int shape0, int shape1):             # <<<<<<<<<<<<<<
 *     if shape0 * shape1 == 0: return None
 *     cdef int[:,:] b = <int[:shape0,:shape1]> a
 */

static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_int_2d(int *__pyx_v_a, int __pyx_v_shape0, int __pyx_v_shape1) {
  __Pyx_memviewslice __pyx_v_b = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  struct __pyx_array_obj *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_wrap_int_2d", 1);

  /* "mujoco_py/generated/wrappers.pxi":4783
 * 
 * cdef inline np.ndarray _wrap_int_2d(int* a, int shape0, int shape1):
 *     if shape0 * shape1 == 0: return None             # <<<<<<<<<<<<<<
 *     cdef int[:,:] b = <int[:shape0,:shape1]> a
 *     return np.asarray(b)
 */
  __pyx_t_1 = ((__pyx_v_shape0 * __pyx_v_shape1) == 0);
  if (__pyx_t_1) {
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_r = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":4784
 * cdef inline np.ndarray _wrap_int_2d(int* a, int shape0, int shape1):
 *     if shape0 * shape1 == 0: return None
 *     cdef int[:,:] b = <int[:shape0,:shape1]> a             # <<<<<<<<<<<<<<
 *     return np.asarray(b)
 * 
 */
  if (!__pyx_v_a) {
    PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer");
    __PYX_ERR(4, 4784, __pyx_L1_error)
  }
  __pyx_t_4 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_int); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = Py_BuildValue((char*) "("  __PYX_BUILD_PY_SSIZE_T  __PYX_BUILD_PY_SSIZE_T  ")", ((Py_ssize_t)__pyx_v_shape0), ((Py_ssize_t)__pyx_v_shape1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_array_new(__pyx_t_3, sizeof(int), PyBytes_AS_STRING(__pyx_t_4), (char *) "c", (char *) __pyx_v_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4784, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dsds_int(((PyObject *)__pyx_t_2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(4, 4784, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_5;
  __pyx_t_5.memview = NULL;
  __pyx_t_5.data = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4785
 *     if shape0 * shape1 == 0: return None
 *     cdef int[:,:] b = <int[:shape0,:shape1]> a
 *     return np.asarray(b)             # <<<<<<<<<<<<<<
 * 
 * cdef inline np.ndarray _wrap_mjtByte_2d(mjtByte* a, int shape0, int shape1):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_b, 2, (PyObject *(*)(char *)) __pyx_memview_get_int, (int (*)(char *, PyObject *)) __pyx_memview_set_int, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4785, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 4785, __pyx_L1_error)
  __pyx_r = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4782
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_int_2d(int* a, int shape0, int shape1):             # <<<<<<<<<<<<<<
 *     if shape0 * shape1 == 0: return None
 *     cdef int[:,:] b = <int[:shape0,:shape1]> a
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF((PyObject *)__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_5, 1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj._wrap_int_2d", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_b, 1);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4787
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_mjtByte_2d(mjtByte* a, int shape0, int shape1):             # <<<<<<<<<<<<<<
 *     if shape0 * shape1 == 0: return None
 *     cdef mjtByte[:,:] b = <mjtByte[:shape0,:shape1]> a
 */

static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_mjtByte_2d(mjtByte *__pyx_v_a, int __pyx_v_shape0, int __pyx_v_shape1) {
  __Pyx_memviewslice __pyx_v_b = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  struct __pyx_array_obj *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_wrap_mjtByte_2d", 1);

  /* "mujoco_py/generated/wrappers.pxi":4788
 * 
 * cdef inline np.ndarray _wrap_mjtByte_2d(mjtByte* a, int shape0, int shape1):
 *     if shape0 * shape1 == 0: return None             # <<<<<<<<<<<<<<
 *     cdef mjtByte[:,:] b = <mjtByte[:shape0,:shape1]> a
 *     return np.asarray(b)
 */
  __pyx_t_1 = ((__pyx_v_shape0 * __pyx_v_shape1) == 0);
  if (__pyx_t_1) {
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_r = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":4789
 * cdef inline np.ndarray _wrap_mjtByte_2d(mjtByte* a, int shape0, int shape1):
 *     if shape0 * shape1 == 0: return None
 *     cdef mjtByte[:,:] b = <mjtByte[:shape0,:shape1]> a             # <<<<<<<<<<<<<<
 *     return np.asarray(b)
 * 
 */
  if (!__pyx_v_a) {
    PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer");
    __PYX_ERR(4, 4789, __pyx_L1_error)
  }
  __pyx_t_4 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_nn_mjtByte); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = Py_BuildValue((char*) "("  __PYX_BUILD_PY_SSIZE_T  __PYX_BUILD_PY_SSIZE_T  ")", ((Py_ssize_t)__pyx_v_shape0), ((Py_ssize_t)__pyx_v_shape1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_array_new(__pyx_t_3, sizeof(mjtByte), PyBytes_AS_STRING(__pyx_t_4), (char *) "c", (char *) __pyx_v_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4789, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_mjtByte(((PyObject *)__pyx_t_2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(4, 4789, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_5;
  __pyx_t_5.memview = NULL;
  __pyx_t_5.data = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4790
 *     if shape0 * shape1 == 0: return None
 *     cdef mjtByte[:,:] b = <mjtByte[:shape0,:shape1]> a
 *     return np.asarray(b)             # <<<<<<<<<<<<<<
 * 
 * cdef inline np.ndarray _wrap_mjtNum_2d(mjtNum* a, int shape0, int shape1):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_b, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn_mjtByte, (int (*)(char *, PyObject *)) __pyx_memview_set_nn_mjtByte, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4790, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 4790, __pyx_L1_error)
  __pyx_r = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4787
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_mjtByte_2d(mjtByte* a, int shape0, int shape1):             # <<<<<<<<<<<<<<
 *     if shape0 * shape1 == 0: return None
 *     cdef mjtByte[:,:] b = <mjtByte[:shape0,:shape1]> a
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF((PyObject *)__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_5, 1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj._wrap_mjtByte_2d", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_b, 1);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4792
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_mjtNum_2d(mjtNum* a, int shape0, int shape1):             # <<<<<<<<<<<<<<
 *     if shape0 * shape1 == 0: return None
 *     cdef mjtNum[:,:] b = <mjtNum[:shape0,:shape1]> a
 */

static CYTHON_INLINE PyArrayObject *__pyx_f_9mujoco_py_4cymj__wrap_mjtNum_2d(mjtNum *__pyx_v_a, int __pyx_v_shape0, int __pyx_v_shape1) {
  __Pyx_memviewslice __pyx_v_b = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyArrayObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  struct __pyx_array_obj *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_wrap_mjtNum_2d", 1);

  /* "mujoco_py/generated/wrappers.pxi":4793
 * 
 * cdef inline np.ndarray _wrap_mjtNum_2d(mjtNum* a, int shape0, int shape1):
 *     if shape0 * shape1 == 0: return None             # <<<<<<<<<<<<<<
 *     cdef mjtNum[:,:] b = <mjtNum[:shape0,:shape1]> a
 *     return np.asarray(b)
 */
  __pyx_t_1 = ((__pyx_v_shape0 * __pyx_v_shape1) == 0);
  if (__pyx_t_1) {
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_r = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "mujoco_py/generated/wrappers.pxi":4794
 * cdef inline np.ndarray _wrap_mjtNum_2d(mjtNum* a, int shape0, int shape1):
 *     if shape0 * shape1 == 0: return None
 *     cdef mjtNum[:,:] b = <mjtNum[:shape0,:shape1]> a             # <<<<<<<<<<<<<<
 *     return np.asarray(b)
 * 
 */
  if (!__pyx_v_a) {
    PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer");
    __PYX_ERR(4, 4794, __pyx_L1_error)
  }
  __pyx_t_4 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_nn_mjtNum); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = Py_BuildValue((char*) "("  __PYX_BUILD_PY_SSIZE_T  __PYX_BUILD_PY_SSIZE_T  ")", ((Py_ssize_t)__pyx_v_shape0), ((Py_ssize_t)__pyx_v_shape1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_array_new(__pyx_t_3, sizeof(mjtNum), PyBytes_AS_STRING(__pyx_t_4), (char *) "c", (char *) __pyx_v_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4794, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_mjtNum(((PyObject *)__pyx_t_2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(4, 4794, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_5;
  __pyx_t_5.memview = NULL;
  __pyx_t_5.data = NULL;

  /* "mujoco_py/generated/wrappers.pxi":4795
 *     if shape0 * shape1 == 0: return None
 *     cdef mjtNum[:,:] b = <mjtNum[:shape0,:shape1]> a
 *     return np.asarray(b)             # <<<<<<<<<<<<<<
 * 
 * def _mj_activate(str filename):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_b, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn_mjtNum, (int (*)(char *, PyObject *)) __pyx_memview_set_nn_mjtNum, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4795, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(4, 4795, __pyx_L1_error)
  __pyx_r = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4792
 *     return np.asarray(b)
 * 
 * cdef inline np.ndarray _wrap_mjtNum_2d(mjtNum* a, int shape0, int shape1):             # <<<<<<<<<<<<<<
 *     if shape0 * shape1 == 0: return None
 *     cdef mjtNum[:,:] b = <mjtNum[:shape0,:shape1]> a
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF((PyObject *)__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_5, 1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj._wrap_mjtNum_2d", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_b, 1);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4797
 *     return np.asarray(b)
 * 
 * def _mj_activate(str filename):             # <<<<<<<<<<<<<<
 *     return mj_activate(filename.encode())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_1_mj_activate(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_1_mj_activate = {"_mj_activate", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_1_mj_activate, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_1_mj_activate(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_filename = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_activate (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_filename)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4797, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_activate") < 0)) __PYX_ERR(4, 4797, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_filename = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_activate", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4797, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_activate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_filename), (&PyUnicode_Type), 1, "filename", 1))) __PYX_ERR(4, 4797, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj__mj_activate(__pyx_self, __pyx_v_filename);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj__mj_activate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_filename) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_activate", 1);

  /* "mujoco_py/generated/wrappers.pxi":4798
 * 
 * def _mj_activate(str filename):
 *     return mj_activate(filename.encode())             # <<<<<<<<<<<<<<
 * 
 * def _mj_deactivate():
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_filename == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4798, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_filename, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 4798, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyInt_From_int(mj_activate(__pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4797
 *     return np.asarray(b)
 * 
 * def _mj_activate(str filename):             # <<<<<<<<<<<<<<
 *     return mj_activate(filename.encode())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_activate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4800
 *     return mj_activate(filename.encode())
 * 
 * def _mj_deactivate():             # <<<<<<<<<<<<<<
 *     mj_deactivate()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_3_mj_deactivate(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_3_mj_deactivate = {"_mj_deactivate", (PyCFunction)__pyx_pw_9mujoco_py_4cymj_3_mj_deactivate, METH_NOARGS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_3_mj_deactivate(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_deactivate (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_2_mj_deactivate(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_2_mj_deactivate(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_deactivate", 1);

  /* "mujoco_py/generated/wrappers.pxi":4801
 * 
 * def _mj_deactivate():
 *     mj_deactivate()             # <<<<<<<<<<<<<<
 * 
 * def _mj_defaultVFS(PyMjVFS vfs):
 */
  mj_deactivate();

  /* "mujoco_py/generated/wrappers.pxi":4800
 *     return mj_activate(filename.encode())
 * 
 * def _mj_deactivate():             # <<<<<<<<<<<<<<
 *     mj_deactivate()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4803
 *     mj_deactivate()
 * 
 * def _mj_defaultVFS(PyMjVFS vfs):             # <<<<<<<<<<<<<<
 *     mj_defaultVFS(vfs.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5_mj_defaultVFS(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5_mj_defaultVFS = {"_mj_defaultVFS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5_mj_defaultVFS, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5_mj_defaultVFS(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_defaultVFS (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vfs,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vfs)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4803, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_defaultVFS") < 0)) __PYX_ERR(4, 4803, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_vfs = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_defaultVFS", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4803, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_defaultVFS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vfs), __pyx_ptype_9mujoco_py_4cymj_PyMjVFS, 1, "vfs", 0))) __PYX_ERR(4, 4803, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_4_mj_defaultVFS(__pyx_self, __pyx_v_vfs);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_4_mj_defaultVFS(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_defaultVFS", 1);

  /* "mujoco_py/generated/wrappers.pxi":4804
 * 
 * def _mj_defaultVFS(PyMjVFS vfs):
 *     mj_defaultVFS(vfs.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_addFileVFS(PyMjVFS vfs, str directory, str filename):
 */
  mj_defaultVFS(__pyx_v_vfs->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4803
 *     mj_deactivate()
 * 
 * def _mj_defaultVFS(PyMjVFS vfs):             # <<<<<<<<<<<<<<
 *     mj_defaultVFS(vfs.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4806
 *     mj_defaultVFS(vfs.ptr)
 * 
 * def _mj_addFileVFS(PyMjVFS vfs, str directory, str filename):             # <<<<<<<<<<<<<<
 *     return mj_addFileVFS(vfs.ptr, directory.encode(), filename.encode())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_7_mj_addFileVFS(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_7_mj_addFileVFS = {"_mj_addFileVFS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_7_mj_addFileVFS, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_7_mj_addFileVFS(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs = 0;
  PyObject *__pyx_v_directory = 0;
  PyObject *__pyx_v_filename = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_addFileVFS (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vfs,&__pyx_n_s_directory,&__pyx_n_s_filename,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vfs)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4806, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_directory)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4806, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_addFileVFS", 1, 3, 3, 1); __PYX_ERR(4, 4806, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_filename)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4806, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_addFileVFS", 1, 3, 3, 2); __PYX_ERR(4, 4806, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_addFileVFS") < 0)) __PYX_ERR(4, 4806, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_vfs = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)values[0]);
    __pyx_v_directory = ((PyObject*)values[1]);
    __pyx_v_filename = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_addFileVFS", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 4806, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_addFileVFS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vfs), __pyx_ptype_9mujoco_py_4cymj_PyMjVFS, 1, "vfs", 0))) __PYX_ERR(4, 4806, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_directory), (&PyUnicode_Type), 1, "directory", 1))) __PYX_ERR(4, 4806, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_filename), (&PyUnicode_Type), 1, "filename", 1))) __PYX_ERR(4, 4806, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_6_mj_addFileVFS(__pyx_self, __pyx_v_vfs, __pyx_v_directory, __pyx_v_filename);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_6_mj_addFileVFS(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs, PyObject *__pyx_v_directory, PyObject *__pyx_v_filename) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  char const *__pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_addFileVFS", 1);

  /* "mujoco_py/generated/wrappers.pxi":4807
 * 
 * def _mj_addFileVFS(PyMjVFS vfs, str directory, str filename):
 *     return mj_addFileVFS(vfs.ptr, directory.encode(), filename.encode())             # <<<<<<<<<<<<<<
 * 
 * def _mj_makeEmptyFileVFS(PyMjVFS vfs, str filename, int filesize):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_directory == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4807, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_directory, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 4807, __pyx_L1_error)
  if (unlikely(__pyx_v_filename == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4807, __pyx_L1_error)
  }
  __pyx_t_3 = PyUnicode_AsEncodedString(__pyx_v_filename, NULL, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_t_3); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(4, 4807, __pyx_L1_error)
  __pyx_t_5 = __Pyx_PyInt_From_int(mj_addFileVFS(__pyx_v_vfs->ptr, __pyx_t_2, __pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4806
 *     mj_defaultVFS(vfs.ptr)
 * 
 * def _mj_addFileVFS(PyMjVFS vfs, str directory, str filename):             # <<<<<<<<<<<<<<
 *     return mj_addFileVFS(vfs.ptr, directory.encode(), filename.encode())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_addFileVFS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4809
 *     return mj_addFileVFS(vfs.ptr, directory.encode(), filename.encode())
 * 
 * def _mj_makeEmptyFileVFS(PyMjVFS vfs, str filename, int filesize):             # <<<<<<<<<<<<<<
 *     return mj_makeEmptyFileVFS(vfs.ptr, filename.encode(), filesize)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_9_mj_makeEmptyFileVFS(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_9_mj_makeEmptyFileVFS = {"_mj_makeEmptyFileVFS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9_mj_makeEmptyFileVFS, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_9_mj_makeEmptyFileVFS(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs = 0;
  PyObject *__pyx_v_filename = 0;
  int __pyx_v_filesize;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_makeEmptyFileVFS (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vfs,&__pyx_n_s_filename,&__pyx_n_s_filesize,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vfs)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4809, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_filename)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4809, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_makeEmptyFileVFS", 1, 3, 3, 1); __PYX_ERR(4, 4809, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_filesize)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4809, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_makeEmptyFileVFS", 1, 3, 3, 2); __PYX_ERR(4, 4809, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_makeEmptyFileVFS") < 0)) __PYX_ERR(4, 4809, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_vfs = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)values[0]);
    __pyx_v_filename = ((PyObject*)values[1]);
    __pyx_v_filesize = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_filesize == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4809, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_makeEmptyFileVFS", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 4809, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_makeEmptyFileVFS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vfs), __pyx_ptype_9mujoco_py_4cymj_PyMjVFS, 1, "vfs", 0))) __PYX_ERR(4, 4809, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_filename), (&PyUnicode_Type), 1, "filename", 1))) __PYX_ERR(4, 4809, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_8_mj_makeEmptyFileVFS(__pyx_self, __pyx_v_vfs, __pyx_v_filename, __pyx_v_filesize);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_8_mj_makeEmptyFileVFS(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs, PyObject *__pyx_v_filename, int __pyx_v_filesize) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_makeEmptyFileVFS", 1);

  /* "mujoco_py/generated/wrappers.pxi":4810
 * 
 * def _mj_makeEmptyFileVFS(PyMjVFS vfs, str filename, int filesize):
 *     return mj_makeEmptyFileVFS(vfs.ptr, filename.encode(), filesize)             # <<<<<<<<<<<<<<
 * 
 * def _mj_findFileVFS(PyMjVFS vfs, str filename):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_filename == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4810, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_filename, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 4810, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyInt_From_int(mj_makeEmptyFileVFS(__pyx_v_vfs->ptr, __pyx_t_2, __pyx_v_filesize)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4809
 *     return mj_addFileVFS(vfs.ptr, directory.encode(), filename.encode())
 * 
 * def _mj_makeEmptyFileVFS(PyMjVFS vfs, str filename, int filesize):             # <<<<<<<<<<<<<<
 *     return mj_makeEmptyFileVFS(vfs.ptr, filename.encode(), filesize)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_makeEmptyFileVFS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4812
 *     return mj_makeEmptyFileVFS(vfs.ptr, filename.encode(), filesize)
 * 
 * def _mj_findFileVFS(PyMjVFS vfs, str filename):             # <<<<<<<<<<<<<<
 *     return mj_findFileVFS(vfs.ptr, filename.encode())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11_mj_findFileVFS(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11_mj_findFileVFS = {"_mj_findFileVFS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11_mj_findFileVFS, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11_mj_findFileVFS(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs = 0;
  PyObject *__pyx_v_filename = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_findFileVFS (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vfs,&__pyx_n_s_filename,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vfs)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4812, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_filename)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4812, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_findFileVFS", 1, 2, 2, 1); __PYX_ERR(4, 4812, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_findFileVFS") < 0)) __PYX_ERR(4, 4812, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_vfs = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)values[0]);
    __pyx_v_filename = ((PyObject*)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_findFileVFS", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4812, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_findFileVFS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vfs), __pyx_ptype_9mujoco_py_4cymj_PyMjVFS, 1, "vfs", 0))) __PYX_ERR(4, 4812, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_filename), (&PyUnicode_Type), 1, "filename", 1))) __PYX_ERR(4, 4812, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10_mj_findFileVFS(__pyx_self, __pyx_v_vfs, __pyx_v_filename);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10_mj_findFileVFS(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs, PyObject *__pyx_v_filename) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_findFileVFS", 1);

  /* "mujoco_py/generated/wrappers.pxi":4813
 * 
 * def _mj_findFileVFS(PyMjVFS vfs, str filename):
 *     return mj_findFileVFS(vfs.ptr, filename.encode())             # <<<<<<<<<<<<<<
 * 
 * def _mj_deleteFileVFS(PyMjVFS vfs, str filename):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_filename == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4813, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_filename, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 4813, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyInt_From_int(mj_findFileVFS(__pyx_v_vfs->ptr, __pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4812
 *     return mj_makeEmptyFileVFS(vfs.ptr, filename.encode(), filesize)
 * 
 * def _mj_findFileVFS(PyMjVFS vfs, str filename):             # <<<<<<<<<<<<<<
 *     return mj_findFileVFS(vfs.ptr, filename.encode())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_findFileVFS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4815
 *     return mj_findFileVFS(vfs.ptr, filename.encode())
 * 
 * def _mj_deleteFileVFS(PyMjVFS vfs, str filename):             # <<<<<<<<<<<<<<
 *     return mj_deleteFileVFS(vfs.ptr, filename.encode())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13_mj_deleteFileVFS(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_13_mj_deleteFileVFS = {"_mj_deleteFileVFS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13_mj_deleteFileVFS, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_13_mj_deleteFileVFS(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs = 0;
  PyObject *__pyx_v_filename = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_deleteFileVFS (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vfs,&__pyx_n_s_filename,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vfs)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4815, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_filename)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4815, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_deleteFileVFS", 1, 2, 2, 1); __PYX_ERR(4, 4815, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_deleteFileVFS") < 0)) __PYX_ERR(4, 4815, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_vfs = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)values[0]);
    __pyx_v_filename = ((PyObject*)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_deleteFileVFS", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4815, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_deleteFileVFS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vfs), __pyx_ptype_9mujoco_py_4cymj_PyMjVFS, 1, "vfs", 0))) __PYX_ERR(4, 4815, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_filename), (&PyUnicode_Type), 1, "filename", 1))) __PYX_ERR(4, 4815, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_12_mj_deleteFileVFS(__pyx_self, __pyx_v_vfs, __pyx_v_filename);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_12_mj_deleteFileVFS(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs, PyObject *__pyx_v_filename) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_deleteFileVFS", 1);

  /* "mujoco_py/generated/wrappers.pxi":4816
 * 
 * def _mj_deleteFileVFS(PyMjVFS vfs, str filename):
 *     return mj_deleteFileVFS(vfs.ptr, filename.encode())             # <<<<<<<<<<<<<<
 * 
 * def _mj_deleteVFS(PyMjVFS vfs):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_filename == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4816, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_filename, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 4816, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyInt_From_int(mj_deleteFileVFS(__pyx_v_vfs->ptr, __pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4815
 *     return mj_findFileVFS(vfs.ptr, filename.encode())
 * 
 * def _mj_deleteFileVFS(PyMjVFS vfs, str filename):             # <<<<<<<<<<<<<<
 *     return mj_deleteFileVFS(vfs.ptr, filename.encode())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_deleteFileVFS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4818
 *     return mj_deleteFileVFS(vfs.ptr, filename.encode())
 * 
 * def _mj_deleteVFS(PyMjVFS vfs):             # <<<<<<<<<<<<<<
 *     mj_deleteVFS(vfs.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15_mj_deleteVFS(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15_mj_deleteVFS = {"_mj_deleteVFS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15_mj_deleteVFS, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15_mj_deleteVFS(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_deleteVFS (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vfs,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vfs)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4818, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_deleteVFS") < 0)) __PYX_ERR(4, 4818, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_vfs = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_deleteVFS", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4818, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_deleteVFS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vfs), __pyx_ptype_9mujoco_py_4cymj_PyMjVFS, 1, "vfs", 0))) __PYX_ERR(4, 4818, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_14_mj_deleteVFS(__pyx_self, __pyx_v_vfs);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_14_mj_deleteVFS(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_deleteVFS", 1);

  /* "mujoco_py/generated/wrappers.pxi":4819
 * 
 * def _mj_deleteVFS(PyMjVFS vfs):
 *     mj_deleteVFS(vfs.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_loadXML(str filename, PyMjVFS vfs, str error, int error_sz):
 */
  mj_deleteVFS(__pyx_v_vfs->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4818
 *     return mj_deleteFileVFS(vfs.ptr, filename.encode())
 * 
 * def _mj_deleteVFS(PyMjVFS vfs):             # <<<<<<<<<<<<<<
 *     mj_deleteVFS(vfs.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4821
 *     mj_deleteVFS(vfs.ptr)
 * 
 * def _mj_loadXML(str filename, PyMjVFS vfs, str error, int error_sz):             # <<<<<<<<<<<<<<
 *     return WrapMjModel(mj_loadXML(filename.encode(), vfs.ptr, error.encode(), error_sz))
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_17_mj_loadXML(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_17_mj_loadXML = {"_mj_loadXML", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_17_mj_loadXML, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_17_mj_loadXML(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_filename = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs = 0;
  PyObject *__pyx_v_error = 0;
  int __pyx_v_error_sz;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_loadXML (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_vfs,&__pyx_n_s_error,&__pyx_n_s_error_sz,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_filename)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4821, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vfs)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4821, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_loadXML", 1, 4, 4, 1); __PYX_ERR(4, 4821, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_error)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4821, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_loadXML", 1, 4, 4, 2); __PYX_ERR(4, 4821, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_error_sz)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4821, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_loadXML", 1, 4, 4, 3); __PYX_ERR(4, 4821, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_loadXML") < 0)) __PYX_ERR(4, 4821, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_filename = ((PyObject*)values[0]);
    __pyx_v_vfs = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)values[1]);
    __pyx_v_error = ((PyObject*)values[2]);
    __pyx_v_error_sz = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_error_sz == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4821, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_loadXML", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 4821, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_loadXML", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_filename), (&PyUnicode_Type), 1, "filename", 1))) __PYX_ERR(4, 4821, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vfs), __pyx_ptype_9mujoco_py_4cymj_PyMjVFS, 1, "vfs", 0))) __PYX_ERR(4, 4821, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_error), (&PyUnicode_Type), 1, "error", 1))) __PYX_ERR(4, 4821, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_16_mj_loadXML(__pyx_self, __pyx_v_filename, __pyx_v_vfs, __pyx_v_error, __pyx_v_error_sz);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_16_mj_loadXML(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_filename, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs, PyObject *__pyx_v_error, int __pyx_v_error_sz) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  char *__pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_loadXML", 1);

  /* "mujoco_py/generated/wrappers.pxi":4822
 * 
 * def _mj_loadXML(str filename, PyMjVFS vfs, str error, int error_sz):
 *     return WrapMjModel(mj_loadXML(filename.encode(), vfs.ptr, error.encode(), error_sz))             # <<<<<<<<<<<<<<
 * 
 * def _mj_saveLastXML(str filename, PyMjModel m, str error, int error_sz):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_filename == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4822, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_filename, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 4822, __pyx_L1_error)
  if (unlikely(__pyx_v_error == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4822, __pyx_L1_error)
  }
  __pyx_t_3 = PyUnicode_AsEncodedString(__pyx_v_error, NULL, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBytes_AsWritableString(__pyx_t_3); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(4, 4822, __pyx_L1_error)
  __pyx_t_5 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjModel(mj_loadXML(__pyx_t_2, __pyx_v_vfs->ptr, __pyx_t_4, __pyx_v_error_sz))); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4821
 *     mj_deleteVFS(vfs.ptr)
 * 
 * def _mj_loadXML(str filename, PyMjVFS vfs, str error, int error_sz):             # <<<<<<<<<<<<<<
 *     return WrapMjModel(mj_loadXML(filename.encode(), vfs.ptr, error.encode(), error_sz))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_loadXML", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4824
 *     return WrapMjModel(mj_loadXML(filename.encode(), vfs.ptr, error.encode(), error_sz))
 * 
 * def _mj_saveLastXML(str filename, PyMjModel m, str error, int error_sz):             # <<<<<<<<<<<<<<
 *     return mj_saveLastXML(filename.encode(), m.ptr, error.encode(), error_sz)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_19_mj_saveLastXML(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_19_mj_saveLastXML = {"_mj_saveLastXML", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_19_mj_saveLastXML, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_19_mj_saveLastXML(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_filename = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  PyObject *__pyx_v_error = 0;
  int __pyx_v_error_sz;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_saveLastXML (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_m,&__pyx_n_s_error,&__pyx_n_s_error_sz,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_filename)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4824, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4824, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_saveLastXML", 1, 4, 4, 1); __PYX_ERR(4, 4824, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_error)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4824, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_saveLastXML", 1, 4, 4, 2); __PYX_ERR(4, 4824, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_error_sz)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4824, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_saveLastXML", 1, 4, 4, 3); __PYX_ERR(4, 4824, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_saveLastXML") < 0)) __PYX_ERR(4, 4824, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_filename = ((PyObject*)values[0]);
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[1]);
    __pyx_v_error = ((PyObject*)values[2]);
    __pyx_v_error_sz = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_error_sz == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4824, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_saveLastXML", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 4824, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_saveLastXML", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_filename), (&PyUnicode_Type), 1, "filename", 1))) __PYX_ERR(4, 4824, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4824, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_error), (&PyUnicode_Type), 1, "error", 1))) __PYX_ERR(4, 4824, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_18_mj_saveLastXML(__pyx_self, __pyx_v_filename, __pyx_v_m, __pyx_v_error, __pyx_v_error_sz);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_18_mj_saveLastXML(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_filename, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, PyObject *__pyx_v_error, int __pyx_v_error_sz) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  char *__pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_saveLastXML", 1);

  /* "mujoco_py/generated/wrappers.pxi":4825
 * 
 * def _mj_saveLastXML(str filename, PyMjModel m, str error, int error_sz):
 *     return mj_saveLastXML(filename.encode(), m.ptr, error.encode(), error_sz)             # <<<<<<<<<<<<<<
 * 
 * def _mj_freeLastXML():
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_filename == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4825, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_filename, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 4825, __pyx_L1_error)
  if (unlikely(__pyx_v_error == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4825, __pyx_L1_error)
  }
  __pyx_t_3 = PyUnicode_AsEncodedString(__pyx_v_error, NULL, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBytes_AsWritableString(__pyx_t_3); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(4, 4825, __pyx_L1_error)
  __pyx_t_5 = __Pyx_PyInt_From_int(mj_saveLastXML(__pyx_t_2, __pyx_v_m->ptr, __pyx_t_4, __pyx_v_error_sz)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4824
 *     return WrapMjModel(mj_loadXML(filename.encode(), vfs.ptr, error.encode(), error_sz))
 * 
 * def _mj_saveLastXML(str filename, PyMjModel m, str error, int error_sz):             # <<<<<<<<<<<<<<
 *     return mj_saveLastXML(filename.encode(), m.ptr, error.encode(), error_sz)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_saveLastXML", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4827
 *     return mj_saveLastXML(filename.encode(), m.ptr, error.encode(), error_sz)
 * 
 * def _mj_freeLastXML():             # <<<<<<<<<<<<<<
 *     mj_freeLastXML()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_21_mj_freeLastXML(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_21_mj_freeLastXML = {"_mj_freeLastXML", (PyCFunction)__pyx_pw_9mujoco_py_4cymj_21_mj_freeLastXML, METH_NOARGS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_21_mj_freeLastXML(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_freeLastXML (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_20_mj_freeLastXML(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_20_mj_freeLastXML(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_freeLastXML", 1);

  /* "mujoco_py/generated/wrappers.pxi":4828
 * 
 * def _mj_freeLastXML():
 *     mj_freeLastXML()             # <<<<<<<<<<<<<<
 * 
 * def _mj_printSchema(str filename, str buffer, int buffer_sz, int flg_html, int flg_pad):
 */
  mj_freeLastXML();

  /* "mujoco_py/generated/wrappers.pxi":4827
 *     return mj_saveLastXML(filename.encode(), m.ptr, error.encode(), error_sz)
 * 
 * def _mj_freeLastXML():             # <<<<<<<<<<<<<<
 *     mj_freeLastXML()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4830
 *     mj_freeLastXML()
 * 
 * def _mj_printSchema(str filename, str buffer, int buffer_sz, int flg_html, int flg_pad):             # <<<<<<<<<<<<<<
 *     return mj_printSchema(filename.encode(), buffer.encode(), buffer_sz, flg_html, flg_pad)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_23_mj_printSchema(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_23_mj_printSchema = {"_mj_printSchema", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_23_mj_printSchema, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_23_mj_printSchema(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_filename = 0;
  PyObject *__pyx_v_buffer = 0;
  int __pyx_v_buffer_sz;
  int __pyx_v_flg_html;
  int __pyx_v_flg_pad;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_printSchema (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_buffer,&__pyx_n_s_buffer_sz,&__pyx_n_s_flg_html,&__pyx_n_s_flg_pad,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_filename)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4830, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_buffer)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4830, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_printSchema", 1, 5, 5, 1); __PYX_ERR(4, 4830, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_buffer_sz)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4830, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_printSchema", 1, 5, 5, 2); __PYX_ERR(4, 4830, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flg_html)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4830, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_printSchema", 1, 5, 5, 3); __PYX_ERR(4, 4830, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flg_pad)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4830, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_printSchema", 1, 5, 5, 4); __PYX_ERR(4, 4830, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_printSchema") < 0)) __PYX_ERR(4, 4830, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_filename = ((PyObject*)values[0]);
    __pyx_v_buffer = ((PyObject*)values[1]);
    __pyx_v_buffer_sz = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_buffer_sz == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4830, __pyx_L3_error)
    __pyx_v_flg_html = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_flg_html == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4830, __pyx_L3_error)
    __pyx_v_flg_pad = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_flg_pad == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4830, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_printSchema", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 4830, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_printSchema", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_filename), (&PyUnicode_Type), 1, "filename", 1))) __PYX_ERR(4, 4830, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_buffer), (&PyUnicode_Type), 1, "buffer", 1))) __PYX_ERR(4, 4830, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_22_mj_printSchema(__pyx_self, __pyx_v_filename, __pyx_v_buffer, __pyx_v_buffer_sz, __pyx_v_flg_html, __pyx_v_flg_pad);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_22_mj_printSchema(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_buffer, int __pyx_v_buffer_sz, int __pyx_v_flg_html, int __pyx_v_flg_pad) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  char *__pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_printSchema", 1);

  /* "mujoco_py/generated/wrappers.pxi":4831
 * 
 * def _mj_printSchema(str filename, str buffer, int buffer_sz, int flg_html, int flg_pad):
 *     return mj_printSchema(filename.encode(), buffer.encode(), buffer_sz, flg_html, flg_pad)             # <<<<<<<<<<<<<<
 * 
 * def _mj_step(PyMjModel m, PyMjData d):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_filename == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4831, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_filename, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 4831, __pyx_L1_error)
  if (unlikely(__pyx_v_buffer == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4831, __pyx_L1_error)
  }
  __pyx_t_3 = PyUnicode_AsEncodedString(__pyx_v_buffer, NULL, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBytes_AsWritableString(__pyx_t_3); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(4, 4831, __pyx_L1_error)
  __pyx_t_5 = __Pyx_PyInt_From_int(mj_printSchema(__pyx_t_2, __pyx_t_4, __pyx_v_buffer_sz, __pyx_v_flg_html, __pyx_v_flg_pad)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4830
 *     mj_freeLastXML()
 * 
 * def _mj_printSchema(str filename, str buffer, int buffer_sz, int flg_html, int flg_pad):             # <<<<<<<<<<<<<<
 *     return mj_printSchema(filename.encode(), buffer.encode(), buffer_sz, flg_html, flg_pad)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_printSchema", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4833
 *     return mj_printSchema(filename.encode(), buffer.encode(), buffer_sz, flg_html, flg_pad)
 * 
 * def _mj_step(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_step(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_25_mj_step(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_25_mj_step = {"_mj_step", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_25_mj_step, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_25_mj_step(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_step (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4833, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4833, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_step", 1, 2, 2, 1); __PYX_ERR(4, 4833, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_step") < 0)) __PYX_ERR(4, 4833, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_step", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4833, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_step", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4833, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4833, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_24_mj_step(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_24_mj_step(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_step", 1);

  /* "mujoco_py/generated/wrappers.pxi":4834
 * 
 * def _mj_step(PyMjModel m, PyMjData d):
 *     mj_step(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_step1(PyMjModel m, PyMjData d):
 */
  mj_step(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4833
 *     return mj_printSchema(filename.encode(), buffer.encode(), buffer_sz, flg_html, flg_pad)
 * 
 * def _mj_step(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_step(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4836
 *     mj_step(m.ptr, d.ptr)
 * 
 * def _mj_step1(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_step1(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_27_mj_step1(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_27_mj_step1 = {"_mj_step1", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_27_mj_step1, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_27_mj_step1(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_step1 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4836, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4836, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_step1", 1, 2, 2, 1); __PYX_ERR(4, 4836, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_step1") < 0)) __PYX_ERR(4, 4836, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_step1", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4836, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_step1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4836, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4836, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_26_mj_step1(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_26_mj_step1(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_step1", 1);

  /* "mujoco_py/generated/wrappers.pxi":4837
 * 
 * def _mj_step1(PyMjModel m, PyMjData d):
 *     mj_step1(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_step2(PyMjModel m, PyMjData d):
 */
  mj_step1(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4836
 *     mj_step(m.ptr, d.ptr)
 * 
 * def _mj_step1(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_step1(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4839
 *     mj_step1(m.ptr, d.ptr)
 * 
 * def _mj_step2(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_step2(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_29_mj_step2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_29_mj_step2 = {"_mj_step2", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_29_mj_step2, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_29_mj_step2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_step2 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4839, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4839, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_step2", 1, 2, 2, 1); __PYX_ERR(4, 4839, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_step2") < 0)) __PYX_ERR(4, 4839, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_step2", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4839, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_step2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4839, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4839, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_28_mj_step2(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_28_mj_step2(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_step2", 1);

  /* "mujoco_py/generated/wrappers.pxi":4840
 * 
 * def _mj_step2(PyMjModel m, PyMjData d):
 *     mj_step2(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_forward(PyMjModel m, PyMjData d):
 */
  mj_step2(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4839
 *     mj_step1(m.ptr, d.ptr)
 * 
 * def _mj_step2(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_step2(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4842
 *     mj_step2(m.ptr, d.ptr)
 * 
 * def _mj_forward(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_forward(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_31_mj_forward(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_31_mj_forward = {"_mj_forward", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_31_mj_forward, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_31_mj_forward(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_forward (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4842, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4842, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_forward", 1, 2, 2, 1); __PYX_ERR(4, 4842, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_forward") < 0)) __PYX_ERR(4, 4842, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_forward", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4842, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4842, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4842, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_30_mj_forward(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_30_mj_forward(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_forward", 1);

  /* "mujoco_py/generated/wrappers.pxi":4843
 * 
 * def _mj_forward(PyMjModel m, PyMjData d):
 *     mj_forward(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_inverse(PyMjModel m, PyMjData d):
 */
  mj_forward(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4842
 *     mj_step2(m.ptr, d.ptr)
 * 
 * def _mj_forward(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_forward(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4845
 *     mj_forward(m.ptr, d.ptr)
 * 
 * def _mj_inverse(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_inverse(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_33_mj_inverse(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_33_mj_inverse = {"_mj_inverse", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_33_mj_inverse, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_33_mj_inverse(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_inverse (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4845, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4845, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_inverse", 1, 2, 2, 1); __PYX_ERR(4, 4845, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_inverse") < 0)) __PYX_ERR(4, 4845, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_inverse", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4845, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_inverse", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4845, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4845, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_32_mj_inverse(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_32_mj_inverse(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_inverse", 1);

  /* "mujoco_py/generated/wrappers.pxi":4846
 * 
 * def _mj_inverse(PyMjModel m, PyMjData d):
 *     mj_inverse(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_forwardSkip(PyMjModel m, PyMjData d, int skipstage, int skipsensor):
 */
  mj_inverse(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4845
 *     mj_forward(m.ptr, d.ptr)
 * 
 * def _mj_inverse(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_inverse(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4848
 *     mj_inverse(m.ptr, d.ptr)
 * 
 * def _mj_forwardSkip(PyMjModel m, PyMjData d, int skipstage, int skipsensor):             # <<<<<<<<<<<<<<
 *     mj_forwardSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_35_mj_forwardSkip(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_35_mj_forwardSkip = {"_mj_forwardSkip", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_35_mj_forwardSkip, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_35_mj_forwardSkip(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  int __pyx_v_skipstage;
  int __pyx_v_skipsensor;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_forwardSkip (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_skipstage,&__pyx_n_s_skipsensor,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4848, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4848, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_forwardSkip", 1, 4, 4, 1); __PYX_ERR(4, 4848, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_skipstage)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4848, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_forwardSkip", 1, 4, 4, 2); __PYX_ERR(4, 4848, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_skipsensor)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4848, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_forwardSkip", 1, 4, 4, 3); __PYX_ERR(4, 4848, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_forwardSkip") < 0)) __PYX_ERR(4, 4848, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_skipstage = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_skipstage == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4848, __pyx_L3_error)
    __pyx_v_skipsensor = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_skipsensor == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4848, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_forwardSkip", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 4848, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_forwardSkip", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4848, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4848, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_34_mj_forwardSkip(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_skipstage, __pyx_v_skipsensor);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_34_mj_forwardSkip(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_skipstage, int __pyx_v_skipsensor) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_forwardSkip", 1);

  /* "mujoco_py/generated/wrappers.pxi":4849
 * 
 * def _mj_forwardSkip(PyMjModel m, PyMjData d, int skipstage, int skipsensor):
 *     mj_forwardSkip(m.ptr, d.ptr, skipstage, skipsensor)             # <<<<<<<<<<<<<<
 * 
 * def _mj_inverseSkip(PyMjModel m, PyMjData d, int skipstage, int skipsensor):
 */
  mj_forwardSkip(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_skipstage, __pyx_v_skipsensor);

  /* "mujoco_py/generated/wrappers.pxi":4848
 *     mj_inverse(m.ptr, d.ptr)
 * 
 * def _mj_forwardSkip(PyMjModel m, PyMjData d, int skipstage, int skipsensor):             # <<<<<<<<<<<<<<
 *     mj_forwardSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4851
 *     mj_forwardSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 * def _mj_inverseSkip(PyMjModel m, PyMjData d, int skipstage, int skipsensor):             # <<<<<<<<<<<<<<
 *     mj_inverseSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_37_mj_inverseSkip(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_37_mj_inverseSkip = {"_mj_inverseSkip", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_37_mj_inverseSkip, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_37_mj_inverseSkip(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  int __pyx_v_skipstage;
  int __pyx_v_skipsensor;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_inverseSkip (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_skipstage,&__pyx_n_s_skipsensor,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4851, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4851, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_inverseSkip", 1, 4, 4, 1); __PYX_ERR(4, 4851, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_skipstage)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4851, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_inverseSkip", 1, 4, 4, 2); __PYX_ERR(4, 4851, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_skipsensor)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4851, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_inverseSkip", 1, 4, 4, 3); __PYX_ERR(4, 4851, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_inverseSkip") < 0)) __PYX_ERR(4, 4851, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_skipstage = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_skipstage == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4851, __pyx_L3_error)
    __pyx_v_skipsensor = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_skipsensor == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4851, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_inverseSkip", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 4851, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_inverseSkip", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4851, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4851, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_36_mj_inverseSkip(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_skipstage, __pyx_v_skipsensor);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_36_mj_inverseSkip(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_skipstage, int __pyx_v_skipsensor) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_inverseSkip", 1);

  /* "mujoco_py/generated/wrappers.pxi":4852
 * 
 * def _mj_inverseSkip(PyMjModel m, PyMjData d, int skipstage, int skipsensor):
 *     mj_inverseSkip(m.ptr, d.ptr, skipstage, skipsensor)             # <<<<<<<<<<<<<<
 * 
 * def _mj_defaultLROpt(PyMjLROpt opt):
 */
  mj_inverseSkip(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_skipstage, __pyx_v_skipsensor);

  /* "mujoco_py/generated/wrappers.pxi":4851
 *     mj_forwardSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 * def _mj_inverseSkip(PyMjModel m, PyMjData d, int skipstage, int skipsensor):             # <<<<<<<<<<<<<<
 *     mj_inverseSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4854
 *     mj_inverseSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 * def _mj_defaultLROpt(PyMjLROpt opt):             # <<<<<<<<<<<<<<
 *     mj_defaultLROpt(opt.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_39_mj_defaultLROpt(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_39_mj_defaultLROpt = {"_mj_defaultLROpt", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_39_mj_defaultLROpt, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_39_mj_defaultLROpt(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_opt = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_defaultLROpt (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_opt,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_opt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4854, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_defaultLROpt") < 0)) __PYX_ERR(4, 4854, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_opt = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_defaultLROpt", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4854, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_defaultLROpt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_opt), __pyx_ptype_9mujoco_py_4cymj_PyMjLROpt, 1, "opt", 0))) __PYX_ERR(4, 4854, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_38_mj_defaultLROpt(__pyx_self, __pyx_v_opt);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_38_mj_defaultLROpt(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_opt) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_defaultLROpt", 1);

  /* "mujoco_py/generated/wrappers.pxi":4855
 * 
 * def _mj_defaultLROpt(PyMjLROpt opt):
 *     mj_defaultLROpt(opt.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_defaultSolRefImp(np.ndarray[np.float64_t, mode="c", ndim=1] solref, np.ndarray[np.float64_t, mode="c", ndim=1] solimp):
 */
  mj_defaultLROpt(__pyx_v_opt->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4854
 *     mj_inverseSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 * def _mj_defaultLROpt(PyMjLROpt opt):             # <<<<<<<<<<<<<<
 *     mj_defaultLROpt(opt.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4857
 *     mj_defaultLROpt(opt.ptr)
 * 
 * def _mj_defaultSolRefImp(np.ndarray[np.float64_t, mode="c", ndim=1] solref, np.ndarray[np.float64_t, mode="c", ndim=1] solimp):             # <<<<<<<<<<<<<<
 *     mj_defaultSolRefImp(&solref[0], &solimp[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_41_mj_defaultSolRefImp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_41_mj_defaultSolRefImp = {"_mj_defaultSolRefImp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_41_mj_defaultSolRefImp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_41_mj_defaultSolRefImp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_solref = 0;
  PyArrayObject *__pyx_v_solimp = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_defaultSolRefImp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_solref,&__pyx_n_s_solimp,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_solref)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4857, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_solimp)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4857, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_defaultSolRefImp", 1, 2, 2, 1); __PYX_ERR(4, 4857, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_defaultSolRefImp") < 0)) __PYX_ERR(4, 4857, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_solref = ((PyArrayObject *)values[0]);
    __pyx_v_solimp = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_defaultSolRefImp", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4857, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_defaultSolRefImp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_solref), __pyx_ptype_5numpy_ndarray, 1, "solref", 0))) __PYX_ERR(4, 4857, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_solimp), __pyx_ptype_5numpy_ndarray, 1, "solimp", 0))) __PYX_ERR(4, 4857, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_40_mj_defaultSolRefImp(__pyx_self, __pyx_v_solref, __pyx_v_solimp);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_40_mj_defaultSolRefImp(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_solref, PyArrayObject *__pyx_v_solimp) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_solimp;
  __Pyx_Buffer __pyx_pybuffer_solimp;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_solref;
  __Pyx_Buffer __pyx_pybuffer_solref;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_defaultSolRefImp", 1);
  __pyx_pybuffer_solref.pybuffer.buf = NULL;
  __pyx_pybuffer_solref.refcount = 0;
  __pyx_pybuffernd_solref.data = NULL;
  __pyx_pybuffernd_solref.rcbuffer = &__pyx_pybuffer_solref;
  __pyx_pybuffer_solimp.pybuffer.buf = NULL;
  __pyx_pybuffer_solimp.refcount = 0;
  __pyx_pybuffernd_solimp.data = NULL;
  __pyx_pybuffernd_solimp.rcbuffer = &__pyx_pybuffer_solimp;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_solref.rcbuffer->pybuffer, (PyObject*)__pyx_v_solref, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 4857, __pyx_L1_error)
  }
  __pyx_pybuffernd_solref.diminfo[0].strides = __pyx_pybuffernd_solref.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_solref.diminfo[0].shape = __pyx_pybuffernd_solref.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_solimp.rcbuffer->pybuffer, (PyObject*)__pyx_v_solimp, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 4857, __pyx_L1_error)
  }
  __pyx_pybuffernd_solimp.diminfo[0].strides = __pyx_pybuffernd_solimp.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_solimp.diminfo[0].shape = __pyx_pybuffernd_solimp.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":4858
 * 
 * def _mj_defaultSolRefImp(np.ndarray[np.float64_t, mode="c", ndim=1] solref, np.ndarray[np.float64_t, mode="c", ndim=1] solimp):
 *     mj_defaultSolRefImp(&solref[0], &solimp[0])             # <<<<<<<<<<<<<<
 * 
 * def _mj_defaultOption(PyMjOption opt):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_solref.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_solref.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 4858, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_solimp.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_solimp.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 4858, __pyx_L1_error)
  }
  mj_defaultSolRefImp((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_solref.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_solref.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_solimp.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_solimp.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":4857
 *     mj_defaultLROpt(opt.ptr)
 * 
 * def _mj_defaultSolRefImp(np.ndarray[np.float64_t, mode="c", ndim=1] solref, np.ndarray[np.float64_t, mode="c", ndim=1] solimp):             # <<<<<<<<<<<<<<
 *     mj_defaultSolRefImp(&solref[0], &solimp[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_solimp.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_solref.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_defaultSolRefImp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_solimp.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_solref.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4860
 *     mj_defaultSolRefImp(&solref[0], &solimp[0])
 * 
 * def _mj_defaultOption(PyMjOption opt):             # <<<<<<<<<<<<<<
 *     mj_defaultOption(opt.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_43_mj_defaultOption(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_43_mj_defaultOption = {"_mj_defaultOption", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_43_mj_defaultOption, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_43_mj_defaultOption(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_opt = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_defaultOption (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_opt,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_opt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4860, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_defaultOption") < 0)) __PYX_ERR(4, 4860, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_opt = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_defaultOption", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4860, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_defaultOption", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_opt), __pyx_ptype_9mujoco_py_4cymj_PyMjOption, 1, "opt", 0))) __PYX_ERR(4, 4860, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_42_mj_defaultOption(__pyx_self, __pyx_v_opt);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_42_mj_defaultOption(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *__pyx_v_opt) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_defaultOption", 1);

  /* "mujoco_py/generated/wrappers.pxi":4861
 * 
 * def _mj_defaultOption(PyMjOption opt):
 *     mj_defaultOption(opt.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_defaultVisual(PyMjVisual vis):
 */
  mj_defaultOption(__pyx_v_opt->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4860
 *     mj_defaultSolRefImp(&solref[0], &solimp[0])
 * 
 * def _mj_defaultOption(PyMjOption opt):             # <<<<<<<<<<<<<<
 *     mj_defaultOption(opt.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4863
 *     mj_defaultOption(opt.ptr)
 * 
 * def _mj_defaultVisual(PyMjVisual vis):             # <<<<<<<<<<<<<<
 *     mj_defaultVisual(vis.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_45_mj_defaultVisual(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_45_mj_defaultVisual = {"_mj_defaultVisual", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_45_mj_defaultVisual, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_45_mj_defaultVisual(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_vis = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_defaultVisual (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vis,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vis)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4863, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_defaultVisual") < 0)) __PYX_ERR(4, 4863, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_vis = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_defaultVisual", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4863, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_defaultVisual", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vis), __pyx_ptype_9mujoco_py_4cymj_PyMjVisual, 1, "vis", 0))) __PYX_ERR(4, 4863, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_44_mj_defaultVisual(__pyx_self, __pyx_v_vis);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_44_mj_defaultVisual(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *__pyx_v_vis) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_defaultVisual", 1);

  /* "mujoco_py/generated/wrappers.pxi":4864
 * 
 * def _mj_defaultVisual(PyMjVisual vis):
 *     mj_defaultVisual(vis.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_copyModel(PyMjModel dest, PyMjModel src):
 */
  mj_defaultVisual(__pyx_v_vis->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4863
 *     mj_defaultOption(opt.ptr)
 * 
 * def _mj_defaultVisual(PyMjVisual vis):             # <<<<<<<<<<<<<<
 *     mj_defaultVisual(vis.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4866
 *     mj_defaultVisual(vis.ptr)
 * 
 * def _mj_copyModel(PyMjModel dest, PyMjModel src):             # <<<<<<<<<<<<<<
 *     return WrapMjModel(mj_copyModel(dest.ptr, src.ptr))
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_47_mj_copyModel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_47_mj_copyModel = {"_mj_copyModel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_47_mj_copyModel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_47_mj_copyModel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_dest = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_src = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_copyModel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dest,&__pyx_n_s_src,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dest)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4866, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_src)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4866, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_copyModel", 1, 2, 2, 1); __PYX_ERR(4, 4866, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_copyModel") < 0)) __PYX_ERR(4, 4866, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_dest = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_src = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_copyModel", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4866, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_copyModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dest), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "dest", 0))) __PYX_ERR(4, 4866, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_src), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "src", 0))) __PYX_ERR(4, 4866, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_46_mj_copyModel(__pyx_self, __pyx_v_dest, __pyx_v_src);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_46_mj_copyModel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_dest, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_src) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_copyModel", 1);

  /* "mujoco_py/generated/wrappers.pxi":4867
 * 
 * def _mj_copyModel(PyMjModel dest, PyMjModel src):
 *     return WrapMjModel(mj_copyModel(dest.ptr, src.ptr))             # <<<<<<<<<<<<<<
 * 
 * def _mj_loadModel(str filename, PyMjVFS vfs):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjModel(mj_copyModel(__pyx_v_dest->ptr, __pyx_v_src->ptr))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4866
 *     mj_defaultVisual(vis.ptr)
 * 
 * def _mj_copyModel(PyMjModel dest, PyMjModel src):             # <<<<<<<<<<<<<<
 *     return WrapMjModel(mj_copyModel(dest.ptr, src.ptr))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_copyModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4869
 *     return WrapMjModel(mj_copyModel(dest.ptr, src.ptr))
 * 
 * def _mj_loadModel(str filename, PyMjVFS vfs):             # <<<<<<<<<<<<<<
 *     return WrapMjModel(mj_loadModel(filename.encode(), vfs.ptr))
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_49_mj_loadModel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_49_mj_loadModel = {"_mj_loadModel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_49_mj_loadModel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_49_mj_loadModel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_filename = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_loadModel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_vfs,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_filename)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4869, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vfs)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4869, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_loadModel", 1, 2, 2, 1); __PYX_ERR(4, 4869, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_loadModel") < 0)) __PYX_ERR(4, 4869, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_filename = ((PyObject*)values[0]);
    __pyx_v_vfs = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_loadModel", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4869, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_loadModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_filename), (&PyUnicode_Type), 1, "filename", 1))) __PYX_ERR(4, 4869, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vfs), __pyx_ptype_9mujoco_py_4cymj_PyMjVFS, 1, "vfs", 0))) __PYX_ERR(4, 4869, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_48_mj_loadModel(__pyx_self, __pyx_v_filename, __pyx_v_vfs);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_48_mj_loadModel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_filename, struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *__pyx_v_vfs) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_loadModel", 1);

  /* "mujoco_py/generated/wrappers.pxi":4870
 * 
 * def _mj_loadModel(str filename, PyMjVFS vfs):
 *     return WrapMjModel(mj_loadModel(filename.encode(), vfs.ptr))             # <<<<<<<<<<<<<<
 * 
 * def _mj_deleteModel(PyMjModel m):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_filename == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4870, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_filename, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4870, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 4870, __pyx_L1_error)
  __pyx_t_3 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjModel(mj_loadModel(__pyx_t_2, __pyx_v_vfs->ptr))); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4870, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4869
 *     return WrapMjModel(mj_copyModel(dest.ptr, src.ptr))
 * 
 * def _mj_loadModel(str filename, PyMjVFS vfs):             # <<<<<<<<<<<<<<
 *     return WrapMjModel(mj_loadModel(filename.encode(), vfs.ptr))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_loadModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4872
 *     return WrapMjModel(mj_loadModel(filename.encode(), vfs.ptr))
 * 
 * def _mj_deleteModel(PyMjModel m):             # <<<<<<<<<<<<<<
 *     mj_deleteModel(m.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_51_mj_deleteModel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_51_mj_deleteModel = {"_mj_deleteModel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_51_mj_deleteModel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_51_mj_deleteModel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_deleteModel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4872, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_deleteModel") < 0)) __PYX_ERR(4, 4872, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_deleteModel", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4872, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_deleteModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4872, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_50_mj_deleteModel(__pyx_self, __pyx_v_m);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_50_mj_deleteModel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_deleteModel", 1);

  /* "mujoco_py/generated/wrappers.pxi":4873
 * 
 * def _mj_deleteModel(PyMjModel m):
 *     mj_deleteModel(m.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_sizeModel(PyMjModel m):
 */
  mj_deleteModel(__pyx_v_m->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4872
 *     return WrapMjModel(mj_loadModel(filename.encode(), vfs.ptr))
 * 
 * def _mj_deleteModel(PyMjModel m):             # <<<<<<<<<<<<<<
 *     mj_deleteModel(m.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4875
 *     mj_deleteModel(m.ptr)
 * 
 * def _mj_sizeModel(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_sizeModel(m.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_53_mj_sizeModel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_53_mj_sizeModel = {"_mj_sizeModel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_53_mj_sizeModel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_53_mj_sizeModel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_sizeModel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4875, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_sizeModel") < 0)) __PYX_ERR(4, 4875, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_sizeModel", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4875, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_sizeModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4875, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_52_mj_sizeModel(__pyx_self, __pyx_v_m);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_52_mj_sizeModel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_sizeModel", 1);

  /* "mujoco_py/generated/wrappers.pxi":4876
 * 
 * def _mj_sizeModel(PyMjModel m):
 *     return mj_sizeModel(m.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_resetData(PyMjModel m, PyMjData d):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(mj_sizeModel(__pyx_v_m->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4875
 *     mj_deleteModel(m.ptr)
 * 
 * def _mj_sizeModel(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_sizeModel(m.ptr)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_sizeModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4878
 *     return mj_sizeModel(m.ptr)
 * 
 * def _mj_resetData(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_resetData(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_55_mj_resetData(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_55_mj_resetData = {"_mj_resetData", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_55_mj_resetData, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_55_mj_resetData(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_resetData (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4878, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4878, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_resetData", 1, 2, 2, 1); __PYX_ERR(4, 4878, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_resetData") < 0)) __PYX_ERR(4, 4878, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_resetData", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4878, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_resetData", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4878, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4878, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_54_mj_resetData(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_54_mj_resetData(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_resetData", 1);

  /* "mujoco_py/generated/wrappers.pxi":4879
 * 
 * def _mj_resetData(PyMjModel m, PyMjData d):
 *     mj_resetData(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_resetDataKeyframe(PyMjModel m, PyMjData d, int key):
 */
  mj_resetData(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4878
 *     return mj_sizeModel(m.ptr)
 * 
 * def _mj_resetData(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_resetData(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4881
 *     mj_resetData(m.ptr, d.ptr)
 * 
 * def _mj_resetDataKeyframe(PyMjModel m, PyMjData d, int key):             # <<<<<<<<<<<<<<
 *     mj_resetDataKeyframe(m.ptr, d.ptr, key)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_57_mj_resetDataKeyframe(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_57_mj_resetDataKeyframe = {"_mj_resetDataKeyframe", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_57_mj_resetDataKeyframe, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_57_mj_resetDataKeyframe(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  int __pyx_v_key;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_resetDataKeyframe (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_key,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4881, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4881, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_resetDataKeyframe", 1, 3, 3, 1); __PYX_ERR(4, 4881, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_key)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4881, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_resetDataKeyframe", 1, 3, 3, 2); __PYX_ERR(4, 4881, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_resetDataKeyframe") < 0)) __PYX_ERR(4, 4881, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_key = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_key == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4881, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_resetDataKeyframe", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 4881, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_resetDataKeyframe", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4881, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4881, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_56_mj_resetDataKeyframe(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_key);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_56_mj_resetDataKeyframe(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_key) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_resetDataKeyframe", 1);

  /* "mujoco_py/generated/wrappers.pxi":4882
 * 
 * def _mj_resetDataKeyframe(PyMjModel m, PyMjData d, int key):
 *     mj_resetDataKeyframe(m.ptr, d.ptr, key)             # <<<<<<<<<<<<<<
 * 
 * def _mj_deleteData(PyMjData d):
 */
  mj_resetDataKeyframe(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_key);

  /* "mujoco_py/generated/wrappers.pxi":4881
 *     mj_resetData(m.ptr, d.ptr)
 * 
 * def _mj_resetDataKeyframe(PyMjModel m, PyMjData d, int key):             # <<<<<<<<<<<<<<
 *     mj_resetDataKeyframe(m.ptr, d.ptr, key)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4884
 *     mj_resetDataKeyframe(m.ptr, d.ptr, key)
 * 
 * def _mj_deleteData(PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_deleteData(d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_59_mj_deleteData(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_59_mj_deleteData = {"_mj_deleteData", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_59_mj_deleteData, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_59_mj_deleteData(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_deleteData (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4884, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_deleteData") < 0)) __PYX_ERR(4, 4884, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_deleteData", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4884, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_deleteData", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4884, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_58_mj_deleteData(__pyx_self, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_58_mj_deleteData(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_deleteData", 1);

  /* "mujoco_py/generated/wrappers.pxi":4885
 * 
 * def _mj_deleteData(PyMjData d):
 *     mj_deleteData(d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_resetCallbacks():
 */
  mj_deleteData(__pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4884
 *     mj_resetDataKeyframe(m.ptr, d.ptr, key)
 * 
 * def _mj_deleteData(PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_deleteData(d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4887
 *     mj_deleteData(d.ptr)
 * 
 * def _mj_resetCallbacks():             # <<<<<<<<<<<<<<
 *     mj_resetCallbacks()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_61_mj_resetCallbacks(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_61_mj_resetCallbacks = {"_mj_resetCallbacks", (PyCFunction)__pyx_pw_9mujoco_py_4cymj_61_mj_resetCallbacks, METH_NOARGS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_61_mj_resetCallbacks(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_resetCallbacks (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_60_mj_resetCallbacks(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_60_mj_resetCallbacks(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_resetCallbacks", 1);

  /* "mujoco_py/generated/wrappers.pxi":4888
 * 
 * def _mj_resetCallbacks():
 *     mj_resetCallbacks()             # <<<<<<<<<<<<<<
 * 
 * def _mj_setConst(PyMjModel m, PyMjData d):
 */
  mj_resetCallbacks();

  /* "mujoco_py/generated/wrappers.pxi":4887
 *     mj_deleteData(d.ptr)
 * 
 * def _mj_resetCallbacks():             # <<<<<<<<<<<<<<
 *     mj_resetCallbacks()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4890
 *     mj_resetCallbacks()
 * 
 * def _mj_setConst(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_setConst(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_63_mj_setConst(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_63_mj_setConst = {"_mj_setConst", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_63_mj_setConst, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_63_mj_setConst(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_setConst (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4890, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4890, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_setConst", 1, 2, 2, 1); __PYX_ERR(4, 4890, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_setConst") < 0)) __PYX_ERR(4, 4890, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_setConst", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4890, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_setConst", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4890, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4890, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_62_mj_setConst(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_62_mj_setConst(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_setConst", 1);

  /* "mujoco_py/generated/wrappers.pxi":4891
 * 
 * def _mj_setConst(PyMjModel m, PyMjData d):
 *     mj_setConst(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_setLengthRange(PyMjModel m, PyMjData d, int index, PyMjLROpt opt, str error, int error_sz):
 */
  mj_setConst(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4890
 *     mj_resetCallbacks()
 * 
 * def _mj_setConst(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_setConst(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4893
 *     mj_setConst(m.ptr, d.ptr)
 * 
 * def _mj_setLengthRange(PyMjModel m, PyMjData d, int index, PyMjLROpt opt, str error, int error_sz):             # <<<<<<<<<<<<<<
 *     return mj_setLengthRange(m.ptr, d.ptr, index, opt.ptr, error.encode(), error_sz)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_65_mj_setLengthRange(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_65_mj_setLengthRange = {"_mj_setLengthRange", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_65_mj_setLengthRange, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_65_mj_setLengthRange(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  int __pyx_v_index;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_opt = 0;
  PyObject *__pyx_v_error = 0;
  int __pyx_v_error_sz;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_setLengthRange (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_index,&__pyx_n_s_opt,&__pyx_n_s_error,&__pyx_n_s_error_sz,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4893, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4893, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_setLengthRange", 1, 6, 6, 1); __PYX_ERR(4, 4893, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_index)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4893, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_setLengthRange", 1, 6, 6, 2); __PYX_ERR(4, 4893, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_opt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4893, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_setLengthRange", 1, 6, 6, 3); __PYX_ERR(4, 4893, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_error)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4893, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_setLengthRange", 1, 6, 6, 4); __PYX_ERR(4, 4893, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_error_sz)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4893, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_setLengthRange", 1, 6, 6, 5); __PYX_ERR(4, 4893, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_setLengthRange") < 0)) __PYX_ERR(4, 4893, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_index = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_index == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4893, __pyx_L3_error)
    __pyx_v_opt = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)values[3]);
    __pyx_v_error = ((PyObject*)values[4]);
    __pyx_v_error_sz = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_error_sz == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4893, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_setLengthRange", 1, 6, 6, __pyx_nargs); __PYX_ERR(4, 4893, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_setLengthRange", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4893, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4893, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_opt), __pyx_ptype_9mujoco_py_4cymj_PyMjLROpt, 1, "opt", 0))) __PYX_ERR(4, 4893, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_error), (&PyUnicode_Type), 1, "error", 1))) __PYX_ERR(4, 4893, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_64_mj_setLengthRange(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_index, __pyx_v_opt, __pyx_v_error, __pyx_v_error_sz);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_64_mj_setLengthRange(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_index, struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *__pyx_v_opt, PyObject *__pyx_v_error, int __pyx_v_error_sz) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_setLengthRange", 1);

  /* "mujoco_py/generated/wrappers.pxi":4894
 * 
 * def _mj_setLengthRange(PyMjModel m, PyMjData d, int index, PyMjLROpt opt, str error, int error_sz):
 *     return mj_setLengthRange(m.ptr, d.ptr, index, opt.ptr, error.encode(), error_sz)             # <<<<<<<<<<<<<<
 * 
 * def _mj_printModel(PyMjModel m, str filename):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_error == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4894, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_error, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsWritableString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 4894, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyInt_From_int(mj_setLengthRange(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_index, __pyx_v_opt->ptr, __pyx_t_2, __pyx_v_error_sz)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":4893
 *     mj_setConst(m.ptr, d.ptr)
 * 
 * def _mj_setLengthRange(PyMjModel m, PyMjData d, int index, PyMjLROpt opt, str error, int error_sz):             # <<<<<<<<<<<<<<
 *     return mj_setLengthRange(m.ptr, d.ptr, index, opt.ptr, error.encode(), error_sz)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_setLengthRange", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4896
 *     return mj_setLengthRange(m.ptr, d.ptr, index, opt.ptr, error.encode(), error_sz)
 * 
 * def _mj_printModel(PyMjModel m, str filename):             # <<<<<<<<<<<<<<
 *     mj_printModel(m.ptr, filename.encode())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_67_mj_printModel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_67_mj_printModel = {"_mj_printModel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_67_mj_printModel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_67_mj_printModel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  PyObject *__pyx_v_filename = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_printModel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_filename,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4896, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_filename)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4896, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_printModel", 1, 2, 2, 1); __PYX_ERR(4, 4896, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_printModel") < 0)) __PYX_ERR(4, 4896, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_filename = ((PyObject*)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_printModel", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4896, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_printModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4896, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_filename), (&PyUnicode_Type), 1, "filename", 1))) __PYX_ERR(4, 4896, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_66_mj_printModel(__pyx_self, __pyx_v_m, __pyx_v_filename);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_66_mj_printModel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, PyObject *__pyx_v_filename) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_printModel", 1);

  /* "mujoco_py/generated/wrappers.pxi":4897
 * 
 * def _mj_printModel(PyMjModel m, str filename):
 *     mj_printModel(m.ptr, filename.encode())             # <<<<<<<<<<<<<<
 * 
 * def _mj_printData(PyMjModel m, PyMjData d, str filename):
 */
  if (unlikely(__pyx_v_filename == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4897, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_filename, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 4897, __pyx_L1_error)
  mj_printModel(__pyx_v_m->ptr, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4896
 *     return mj_setLengthRange(m.ptr, d.ptr, index, opt.ptr, error.encode(), error_sz)
 * 
 * def _mj_printModel(PyMjModel m, str filename):             # <<<<<<<<<<<<<<
 *     mj_printModel(m.ptr, filename.encode())
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_printModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4899
 *     mj_printModel(m.ptr, filename.encode())
 * 
 * def _mj_printData(PyMjModel m, PyMjData d, str filename):             # <<<<<<<<<<<<<<
 *     mj_printData(m.ptr, d.ptr, filename.encode())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_69_mj_printData(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_69_mj_printData = {"_mj_printData", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_69_mj_printData, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_69_mj_printData(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyObject *__pyx_v_filename = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_printData (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_filename,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4899, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4899, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_printData", 1, 3, 3, 1); __PYX_ERR(4, 4899, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_filename)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4899, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_printData", 1, 3, 3, 2); __PYX_ERR(4, 4899, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_printData") < 0)) __PYX_ERR(4, 4899, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_filename = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_printData", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 4899, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_printData", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4899, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4899, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_filename), (&PyUnicode_Type), 1, "filename", 1))) __PYX_ERR(4, 4899, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_68_mj_printData(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_filename);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_68_mj_printData(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyObject *__pyx_v_filename) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_printData", 1);

  /* "mujoco_py/generated/wrappers.pxi":4900
 * 
 * def _mj_printData(PyMjModel m, PyMjData d, str filename):
 *     mj_printData(m.ptr, d.ptr, filename.encode())             # <<<<<<<<<<<<<<
 * 
 * def _mju_printMat(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, int nc):
 */
  if (unlikely(__pyx_v_filename == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 4900, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_filename, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4900, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 4900, __pyx_L1_error)
  mj_printData(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4899
 *     mj_printModel(m.ptr, filename.encode())
 * 
 * def _mj_printData(PyMjModel m, PyMjData d, str filename):             # <<<<<<<<<<<<<<
 *     mj_printData(m.ptr, d.ptr, filename.encode())
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_printData", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4902
 *     mj_printData(m.ptr, d.ptr, filename.encode())
 * 
 * def _mju_printMat(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_printMat(&mat[0], nr, nc)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_71_mju_printMat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_71_mju_printMat = {"_mju_printMat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_71_mju_printMat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_71_mju_printMat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_mat = 0;
  int __pyx_v_nr;
  int __pyx_v_nc;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_printMat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,&__pyx_n_s_nr,&__pyx_n_s_nc,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4902, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nr)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4902, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_printMat", 1, 3, 3, 1); __PYX_ERR(4, 4902, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nc)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4902, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_printMat", 1, 3, 3, 2); __PYX_ERR(4, 4902, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_printMat") < 0)) __PYX_ERR(4, 4902, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_mat = ((PyArrayObject *)values[0]);
    __pyx_v_nr = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nr == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4902, __pyx_L3_error)
    __pyx_v_nc = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nc == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4902, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_printMat", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 4902, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_printMat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_5numpy_ndarray, 1, "mat", 0))) __PYX_ERR(4, 4902, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_70_mju_printMat(__pyx_self, __pyx_v_mat, __pyx_v_nr, __pyx_v_nc);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_70_mju_printMat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_mat, int __pyx_v_nr, int __pyx_v_nc) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat;
  __Pyx_Buffer __pyx_pybuffer_mat;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_printMat", 1);
  __pyx_pybuffer_mat.pybuffer.buf = NULL;
  __pyx_pybuffer_mat.refcount = 0;
  __pyx_pybuffernd_mat.data = NULL;
  __pyx_pybuffernd_mat.rcbuffer = &__pyx_pybuffer_mat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 4902, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat.diminfo[0].strides = __pyx_pybuffernd_mat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat.diminfo[0].shape = __pyx_pybuffernd_mat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":4903
 * 
 * def _mju_printMat(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, int nc):
 *     mju_printMat(&mat[0], nr, nc)             # <<<<<<<<<<<<<<
 * 
 * def _mju_printMatSparse(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, uintptr_t rownnz, uintptr_t rowadr, uintptr_t colind):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_mat.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_mat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 4903, __pyx_L1_error)
  }
  mju_printMat((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_mat.diminfo[0].strides))), __pyx_v_nr, __pyx_v_nc);

  /* "mujoco_py/generated/wrappers.pxi":4902
 *     mj_printData(m.ptr, d.ptr, filename.encode())
 * 
 * def _mju_printMat(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_printMat(&mat[0], nr, nc)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_printMat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4905
 *     mju_printMat(&mat[0], nr, nc)
 * 
 * def _mju_printMatSparse(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, uintptr_t rownnz, uintptr_t rowadr, uintptr_t colind):             # <<<<<<<<<<<<<<
 *     mju_printMatSparse(&mat[0], nr, <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_73_mju_printMatSparse(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_73_mju_printMatSparse = {"_mju_printMatSparse", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_73_mju_printMatSparse, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_73_mju_printMatSparse(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_mat = 0;
  int __pyx_v_nr;
  uintptr_t __pyx_v_rownnz;
  uintptr_t __pyx_v_rowadr;
  uintptr_t __pyx_v_colind;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_printMatSparse (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,&__pyx_n_s_nr,&__pyx_n_s_rownnz,&__pyx_n_s_rowadr,&__pyx_n_s_colind,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4905, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nr)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4905, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_printMatSparse", 1, 5, 5, 1); __PYX_ERR(4, 4905, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rownnz)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4905, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_printMatSparse", 1, 5, 5, 2); __PYX_ERR(4, 4905, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rowadr)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4905, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_printMatSparse", 1, 5, 5, 3); __PYX_ERR(4, 4905, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_colind)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4905, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_printMatSparse", 1, 5, 5, 4); __PYX_ERR(4, 4905, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_printMatSparse") < 0)) __PYX_ERR(4, 4905, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_mat = ((PyArrayObject *)values[0]);
    __pyx_v_nr = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nr == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4905, __pyx_L3_error)
    __pyx_v_rownnz = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_rownnz == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(4, 4905, __pyx_L3_error)
    __pyx_v_rowadr = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_rowadr == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(4, 4905, __pyx_L3_error)
    __pyx_v_colind = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_colind == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(4, 4905, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_printMatSparse", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 4905, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_printMatSparse", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_5numpy_ndarray, 1, "mat", 0))) __PYX_ERR(4, 4905, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_72_mju_printMatSparse(__pyx_self, __pyx_v_mat, __pyx_v_nr, __pyx_v_rownnz, __pyx_v_rowadr, __pyx_v_colind);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_72_mju_printMatSparse(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_mat, int __pyx_v_nr, uintptr_t __pyx_v_rownnz, uintptr_t __pyx_v_rowadr, uintptr_t __pyx_v_colind) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat;
  __Pyx_Buffer __pyx_pybuffer_mat;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_printMatSparse", 1);
  __pyx_pybuffer_mat.pybuffer.buf = NULL;
  __pyx_pybuffer_mat.refcount = 0;
  __pyx_pybuffernd_mat.data = NULL;
  __pyx_pybuffernd_mat.rcbuffer = &__pyx_pybuffer_mat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 4905, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat.diminfo[0].strides = __pyx_pybuffernd_mat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat.diminfo[0].shape = __pyx_pybuffernd_mat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":4906
 * 
 * def _mju_printMatSparse(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, uintptr_t rownnz, uintptr_t rowadr, uintptr_t colind):
 *     mju_printMatSparse(&mat[0], nr, <int*>rownnz, <int*>rowadr, <int*>colind)             # <<<<<<<<<<<<<<
 * 
 * def _mj_fwdPosition(PyMjModel m, PyMjData d):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_mat.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_mat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 4906, __pyx_L1_error)
  }
  mju_printMatSparse((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_mat.diminfo[0].strides))), __pyx_v_nr, ((int *)__pyx_v_rownnz), ((int *)__pyx_v_rowadr), ((int *)__pyx_v_colind));

  /* "mujoco_py/generated/wrappers.pxi":4905
 *     mju_printMat(&mat[0], nr, nc)
 * 
 * def _mju_printMatSparse(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, uintptr_t rownnz, uintptr_t rowadr, uintptr_t colind):             # <<<<<<<<<<<<<<
 *     mju_printMatSparse(&mat[0], nr, <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_printMatSparse", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4908
 *     mju_printMatSparse(&mat[0], nr, <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 * def _mj_fwdPosition(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdPosition(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_75_mj_fwdPosition(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_75_mj_fwdPosition = {"_mj_fwdPosition", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_75_mj_fwdPosition, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_75_mj_fwdPosition(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_fwdPosition (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4908, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4908, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_fwdPosition", 1, 2, 2, 1); __PYX_ERR(4, 4908, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_fwdPosition") < 0)) __PYX_ERR(4, 4908, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_fwdPosition", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4908, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_fwdPosition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4908, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4908, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_74_mj_fwdPosition(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_74_mj_fwdPosition(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_fwdPosition", 1);

  /* "mujoco_py/generated/wrappers.pxi":4909
 * 
 * def _mj_fwdPosition(PyMjModel m, PyMjData d):
 *     mj_fwdPosition(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_fwdVelocity(PyMjModel m, PyMjData d):
 */
  mj_fwdPosition(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4908
 *     mju_printMatSparse(&mat[0], nr, <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 * def _mj_fwdPosition(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdPosition(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4911
 *     mj_fwdPosition(m.ptr, d.ptr)
 * 
 * def _mj_fwdVelocity(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdVelocity(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_77_mj_fwdVelocity(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_77_mj_fwdVelocity = {"_mj_fwdVelocity", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_77_mj_fwdVelocity, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_77_mj_fwdVelocity(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_fwdVelocity (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4911, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4911, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_fwdVelocity", 1, 2, 2, 1); __PYX_ERR(4, 4911, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_fwdVelocity") < 0)) __PYX_ERR(4, 4911, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_fwdVelocity", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4911, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_fwdVelocity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4911, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4911, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_76_mj_fwdVelocity(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_76_mj_fwdVelocity(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_fwdVelocity", 1);

  /* "mujoco_py/generated/wrappers.pxi":4912
 * 
 * def _mj_fwdVelocity(PyMjModel m, PyMjData d):
 *     mj_fwdVelocity(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_fwdActuation(PyMjModel m, PyMjData d):
 */
  mj_fwdVelocity(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4911
 *     mj_fwdPosition(m.ptr, d.ptr)
 * 
 * def _mj_fwdVelocity(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdVelocity(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4914
 *     mj_fwdVelocity(m.ptr, d.ptr)
 * 
 * def _mj_fwdActuation(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdActuation(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_79_mj_fwdActuation(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_79_mj_fwdActuation = {"_mj_fwdActuation", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_79_mj_fwdActuation, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_79_mj_fwdActuation(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_fwdActuation (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4914, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4914, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_fwdActuation", 1, 2, 2, 1); __PYX_ERR(4, 4914, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_fwdActuation") < 0)) __PYX_ERR(4, 4914, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_fwdActuation", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4914, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_fwdActuation", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4914, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4914, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_78_mj_fwdActuation(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_78_mj_fwdActuation(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_fwdActuation", 1);

  /* "mujoco_py/generated/wrappers.pxi":4915
 * 
 * def _mj_fwdActuation(PyMjModel m, PyMjData d):
 *     mj_fwdActuation(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_fwdAcceleration(PyMjModel m, PyMjData d):
 */
  mj_fwdActuation(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4914
 *     mj_fwdVelocity(m.ptr, d.ptr)
 * 
 * def _mj_fwdActuation(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdActuation(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4917
 *     mj_fwdActuation(m.ptr, d.ptr)
 * 
 * def _mj_fwdAcceleration(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdAcceleration(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_81_mj_fwdAcceleration(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_81_mj_fwdAcceleration = {"_mj_fwdAcceleration", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_81_mj_fwdAcceleration, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_81_mj_fwdAcceleration(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_fwdAcceleration (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4917, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4917, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_fwdAcceleration", 1, 2, 2, 1); __PYX_ERR(4, 4917, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_fwdAcceleration") < 0)) __PYX_ERR(4, 4917, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_fwdAcceleration", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4917, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_fwdAcceleration", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4917, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4917, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_80_mj_fwdAcceleration(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_80_mj_fwdAcceleration(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_fwdAcceleration", 1);

  /* "mujoco_py/generated/wrappers.pxi":4918
 * 
 * def _mj_fwdAcceleration(PyMjModel m, PyMjData d):
 *     mj_fwdAcceleration(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_fwdConstraint(PyMjModel m, PyMjData d):
 */
  mj_fwdAcceleration(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4917
 *     mj_fwdActuation(m.ptr, d.ptr)
 * 
 * def _mj_fwdAcceleration(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdAcceleration(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4920
 *     mj_fwdAcceleration(m.ptr, d.ptr)
 * 
 * def _mj_fwdConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdConstraint(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_83_mj_fwdConstraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_83_mj_fwdConstraint = {"_mj_fwdConstraint", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_83_mj_fwdConstraint, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_83_mj_fwdConstraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_fwdConstraint (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4920, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4920, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_fwdConstraint", 1, 2, 2, 1); __PYX_ERR(4, 4920, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_fwdConstraint") < 0)) __PYX_ERR(4, 4920, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_fwdConstraint", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4920, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_fwdConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4920, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4920, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_82_mj_fwdConstraint(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_82_mj_fwdConstraint(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_fwdConstraint", 1);

  /* "mujoco_py/generated/wrappers.pxi":4921
 * 
 * def _mj_fwdConstraint(PyMjModel m, PyMjData d):
 *     mj_fwdConstraint(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_Euler(PyMjModel m, PyMjData d):
 */
  mj_fwdConstraint(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4920
 *     mj_fwdAcceleration(m.ptr, d.ptr)
 * 
 * def _mj_fwdConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdConstraint(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4923
 *     mj_fwdConstraint(m.ptr, d.ptr)
 * 
 * def _mj_Euler(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_Euler(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_85_mj_Euler(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_85_mj_Euler = {"_mj_Euler", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_85_mj_Euler, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_85_mj_Euler(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_Euler (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4923, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4923, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_Euler", 1, 2, 2, 1); __PYX_ERR(4, 4923, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_Euler") < 0)) __PYX_ERR(4, 4923, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_Euler", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4923, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_Euler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4923, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4923, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_84_mj_Euler(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_84_mj_Euler(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_Euler", 1);

  /* "mujoco_py/generated/wrappers.pxi":4924
 * 
 * def _mj_Euler(PyMjModel m, PyMjData d):
 *     mj_Euler(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_RungeKutta(PyMjModel m, PyMjData d, int N):
 */
  mj_Euler(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4923
 *     mj_fwdConstraint(m.ptr, d.ptr)
 * 
 * def _mj_Euler(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_Euler(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4926
 *     mj_Euler(m.ptr, d.ptr)
 * 
 * def _mj_RungeKutta(PyMjModel m, PyMjData d, int N):             # <<<<<<<<<<<<<<
 *     mj_RungeKutta(m.ptr, d.ptr, N)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_87_mj_RungeKutta(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_87_mj_RungeKutta = {"_mj_RungeKutta", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_87_mj_RungeKutta, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_87_mj_RungeKutta(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  int __pyx_v_N;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_RungeKutta (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_N,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4926, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4926, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_RungeKutta", 1, 3, 3, 1); __PYX_ERR(4, 4926, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4926, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_RungeKutta", 1, 3, 3, 2); __PYX_ERR(4, 4926, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_RungeKutta") < 0)) __PYX_ERR(4, 4926, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_N = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4926, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_RungeKutta", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 4926, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_RungeKutta", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4926, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4926, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_86_mj_RungeKutta(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_N);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_86_mj_RungeKutta(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_N) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_RungeKutta", 1);

  /* "mujoco_py/generated/wrappers.pxi":4927
 * 
 * def _mj_RungeKutta(PyMjModel m, PyMjData d, int N):
 *     mj_RungeKutta(m.ptr, d.ptr, N)             # <<<<<<<<<<<<<<
 * 
 * def _mj_invPosition(PyMjModel m, PyMjData d):
 */
  mj_RungeKutta(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_N);

  /* "mujoco_py/generated/wrappers.pxi":4926
 *     mj_Euler(m.ptr, d.ptr)
 * 
 * def _mj_RungeKutta(PyMjModel m, PyMjData d, int N):             # <<<<<<<<<<<<<<
 *     mj_RungeKutta(m.ptr, d.ptr, N)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4929
 *     mj_RungeKutta(m.ptr, d.ptr, N)
 * 
 * def _mj_invPosition(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_invPosition(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_89_mj_invPosition(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_89_mj_invPosition = {"_mj_invPosition", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_89_mj_invPosition, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_89_mj_invPosition(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_invPosition (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4929, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4929, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_invPosition", 1, 2, 2, 1); __PYX_ERR(4, 4929, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_invPosition") < 0)) __PYX_ERR(4, 4929, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_invPosition", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4929, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_invPosition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4929, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4929, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_88_mj_invPosition(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_88_mj_invPosition(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_invPosition", 1);

  /* "mujoco_py/generated/wrappers.pxi":4930
 * 
 * def _mj_invPosition(PyMjModel m, PyMjData d):
 *     mj_invPosition(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_invVelocity(PyMjModel m, PyMjData d):
 */
  mj_invPosition(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4929
 *     mj_RungeKutta(m.ptr, d.ptr, N)
 * 
 * def _mj_invPosition(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_invPosition(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4932
 *     mj_invPosition(m.ptr, d.ptr)
 * 
 * def _mj_invVelocity(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_invVelocity(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_91_mj_invVelocity(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_91_mj_invVelocity = {"_mj_invVelocity", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_91_mj_invVelocity, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_91_mj_invVelocity(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_invVelocity (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4932, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4932, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_invVelocity", 1, 2, 2, 1); __PYX_ERR(4, 4932, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_invVelocity") < 0)) __PYX_ERR(4, 4932, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_invVelocity", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4932, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_invVelocity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4932, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4932, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_90_mj_invVelocity(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_90_mj_invVelocity(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_invVelocity", 1);

  /* "mujoco_py/generated/wrappers.pxi":4933
 * 
 * def _mj_invVelocity(PyMjModel m, PyMjData d):
 *     mj_invVelocity(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_invConstraint(PyMjModel m, PyMjData d):
 */
  mj_invVelocity(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4932
 *     mj_invPosition(m.ptr, d.ptr)
 * 
 * def _mj_invVelocity(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_invVelocity(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4935
 *     mj_invVelocity(m.ptr, d.ptr)
 * 
 * def _mj_invConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_invConstraint(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_93_mj_invConstraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_93_mj_invConstraint = {"_mj_invConstraint", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_93_mj_invConstraint, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_93_mj_invConstraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_invConstraint (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4935, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4935, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_invConstraint", 1, 2, 2, 1); __PYX_ERR(4, 4935, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_invConstraint") < 0)) __PYX_ERR(4, 4935, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_invConstraint", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4935, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_invConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4935, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4935, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_92_mj_invConstraint(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_92_mj_invConstraint(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_invConstraint", 1);

  /* "mujoco_py/generated/wrappers.pxi":4936
 * 
 * def _mj_invConstraint(PyMjModel m, PyMjData d):
 *     mj_invConstraint(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_compareFwdInv(PyMjModel m, PyMjData d):
 */
  mj_invConstraint(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4935
 *     mj_invVelocity(m.ptr, d.ptr)
 * 
 * def _mj_invConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_invConstraint(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4938
 *     mj_invConstraint(m.ptr, d.ptr)
 * 
 * def _mj_compareFwdInv(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_compareFwdInv(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_95_mj_compareFwdInv(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_95_mj_compareFwdInv = {"_mj_compareFwdInv", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_95_mj_compareFwdInv, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_95_mj_compareFwdInv(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_compareFwdInv (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4938, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4938, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_compareFwdInv", 1, 2, 2, 1); __PYX_ERR(4, 4938, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_compareFwdInv") < 0)) __PYX_ERR(4, 4938, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_compareFwdInv", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4938, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_compareFwdInv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4938, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4938, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_94_mj_compareFwdInv(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_94_mj_compareFwdInv(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_compareFwdInv", 1);

  /* "mujoco_py/generated/wrappers.pxi":4939
 * 
 * def _mj_compareFwdInv(PyMjModel m, PyMjData d):
 *     mj_compareFwdInv(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_sensorPos(PyMjModel m, PyMjData d):
 */
  mj_compareFwdInv(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4938
 *     mj_invConstraint(m.ptr, d.ptr)
 * 
 * def _mj_compareFwdInv(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_compareFwdInv(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4941
 *     mj_compareFwdInv(m.ptr, d.ptr)
 * 
 * def _mj_sensorPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_sensorPos(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_97_mj_sensorPos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_97_mj_sensorPos = {"_mj_sensorPos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_97_mj_sensorPos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_97_mj_sensorPos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_sensorPos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4941, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4941, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_sensorPos", 1, 2, 2, 1); __PYX_ERR(4, 4941, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_sensorPos") < 0)) __PYX_ERR(4, 4941, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_sensorPos", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4941, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_sensorPos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4941, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4941, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_96_mj_sensorPos(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_96_mj_sensorPos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_sensorPos", 1);

  /* "mujoco_py/generated/wrappers.pxi":4942
 * 
 * def _mj_sensorPos(PyMjModel m, PyMjData d):
 *     mj_sensorPos(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_sensorVel(PyMjModel m, PyMjData d):
 */
  mj_sensorPos(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4941
 *     mj_compareFwdInv(m.ptr, d.ptr)
 * 
 * def _mj_sensorPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_sensorPos(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4944
 *     mj_sensorPos(m.ptr, d.ptr)
 * 
 * def _mj_sensorVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_sensorVel(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_99_mj_sensorVel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_99_mj_sensorVel = {"_mj_sensorVel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_99_mj_sensorVel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_99_mj_sensorVel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_sensorVel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4944, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4944, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_sensorVel", 1, 2, 2, 1); __PYX_ERR(4, 4944, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_sensorVel") < 0)) __PYX_ERR(4, 4944, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_sensorVel", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4944, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_sensorVel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4944, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4944, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_98_mj_sensorVel(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_98_mj_sensorVel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_sensorVel", 1);

  /* "mujoco_py/generated/wrappers.pxi":4945
 * 
 * def _mj_sensorVel(PyMjModel m, PyMjData d):
 *     mj_sensorVel(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_sensorAcc(PyMjModel m, PyMjData d):
 */
  mj_sensorVel(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4944
 *     mj_sensorPos(m.ptr, d.ptr)
 * 
 * def _mj_sensorVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_sensorVel(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4947
 *     mj_sensorVel(m.ptr, d.ptr)
 * 
 * def _mj_sensorAcc(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_sensorAcc(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_101_mj_sensorAcc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_101_mj_sensorAcc = {"_mj_sensorAcc", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_101_mj_sensorAcc, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_101_mj_sensorAcc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_sensorAcc (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4947, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4947, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_sensorAcc", 1, 2, 2, 1); __PYX_ERR(4, 4947, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_sensorAcc") < 0)) __PYX_ERR(4, 4947, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_sensorAcc", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4947, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_sensorAcc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4947, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4947, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_100_mj_sensorAcc(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_100_mj_sensorAcc(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_sensorAcc", 1);

  /* "mujoco_py/generated/wrappers.pxi":4948
 * 
 * def _mj_sensorAcc(PyMjModel m, PyMjData d):
 *     mj_sensorAcc(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_energyPos(PyMjModel m, PyMjData d):
 */
  mj_sensorAcc(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4947
 *     mj_sensorVel(m.ptr, d.ptr)
 * 
 * def _mj_sensorAcc(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_sensorAcc(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4950
 *     mj_sensorAcc(m.ptr, d.ptr)
 * 
 * def _mj_energyPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_energyPos(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_103_mj_energyPos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_103_mj_energyPos = {"_mj_energyPos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_103_mj_energyPos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_103_mj_energyPos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_energyPos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4950, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4950, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_energyPos", 1, 2, 2, 1); __PYX_ERR(4, 4950, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_energyPos") < 0)) __PYX_ERR(4, 4950, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_energyPos", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4950, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_energyPos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4950, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4950, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_102_mj_energyPos(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_102_mj_energyPos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_energyPos", 1);

  /* "mujoco_py/generated/wrappers.pxi":4951
 * 
 * def _mj_energyPos(PyMjModel m, PyMjData d):
 *     mj_energyPos(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_energyVel(PyMjModel m, PyMjData d):
 */
  mj_energyPos(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4950
 *     mj_sensorAcc(m.ptr, d.ptr)
 * 
 * def _mj_energyPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_energyPos(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4953
 *     mj_energyPos(m.ptr, d.ptr)
 * 
 * def _mj_energyVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_energyVel(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_105_mj_energyVel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_105_mj_energyVel = {"_mj_energyVel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_105_mj_energyVel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_105_mj_energyVel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_energyVel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4953, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4953, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_energyVel", 1, 2, 2, 1); __PYX_ERR(4, 4953, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_energyVel") < 0)) __PYX_ERR(4, 4953, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_energyVel", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4953, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_energyVel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4953, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4953, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_104_mj_energyVel(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_104_mj_energyVel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_energyVel", 1);

  /* "mujoco_py/generated/wrappers.pxi":4954
 * 
 * def _mj_energyVel(PyMjModel m, PyMjData d):
 *     mj_energyVel(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_checkPos(PyMjModel m, PyMjData d):
 */
  mj_energyVel(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4953
 *     mj_energyPos(m.ptr, d.ptr)
 * 
 * def _mj_energyVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_energyVel(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4956
 *     mj_energyVel(m.ptr, d.ptr)
 * 
 * def _mj_checkPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_checkPos(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_107_mj_checkPos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_107_mj_checkPos = {"_mj_checkPos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_107_mj_checkPos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_107_mj_checkPos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_checkPos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4956, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4956, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_checkPos", 1, 2, 2, 1); __PYX_ERR(4, 4956, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_checkPos") < 0)) __PYX_ERR(4, 4956, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_checkPos", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4956, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_checkPos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4956, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4956, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_106_mj_checkPos(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_106_mj_checkPos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_checkPos", 1);

  /* "mujoco_py/generated/wrappers.pxi":4957
 * 
 * def _mj_checkPos(PyMjModel m, PyMjData d):
 *     mj_checkPos(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_checkVel(PyMjModel m, PyMjData d):
 */
  mj_checkPos(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4956
 *     mj_energyVel(m.ptr, d.ptr)
 * 
 * def _mj_checkPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_checkPos(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4959
 *     mj_checkPos(m.ptr, d.ptr)
 * 
 * def _mj_checkVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_checkVel(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_109_mj_checkVel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_109_mj_checkVel = {"_mj_checkVel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_109_mj_checkVel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_109_mj_checkVel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_checkVel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4959, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4959, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_checkVel", 1, 2, 2, 1); __PYX_ERR(4, 4959, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_checkVel") < 0)) __PYX_ERR(4, 4959, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_checkVel", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4959, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_checkVel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4959, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4959, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_108_mj_checkVel(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_108_mj_checkVel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_checkVel", 1);

  /* "mujoco_py/generated/wrappers.pxi":4960
 * 
 * def _mj_checkVel(PyMjModel m, PyMjData d):
 *     mj_checkVel(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_checkAcc(PyMjModel m, PyMjData d):
 */
  mj_checkVel(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4959
 *     mj_checkPos(m.ptr, d.ptr)
 * 
 * def _mj_checkVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_checkVel(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4962
 *     mj_checkVel(m.ptr, d.ptr)
 * 
 * def _mj_checkAcc(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_checkAcc(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_111_mj_checkAcc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_111_mj_checkAcc = {"_mj_checkAcc", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_111_mj_checkAcc, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_111_mj_checkAcc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_checkAcc (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4962, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4962, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_checkAcc", 1, 2, 2, 1); __PYX_ERR(4, 4962, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_checkAcc") < 0)) __PYX_ERR(4, 4962, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_checkAcc", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4962, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_checkAcc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4962, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4962, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_110_mj_checkAcc(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_110_mj_checkAcc(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_checkAcc", 1);

  /* "mujoco_py/generated/wrappers.pxi":4963
 * 
 * def _mj_checkAcc(PyMjModel m, PyMjData d):
 *     mj_checkAcc(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_kinematics(PyMjModel m, PyMjData d):
 */
  mj_checkAcc(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4962
 *     mj_checkVel(m.ptr, d.ptr)
 * 
 * def _mj_checkAcc(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_checkAcc(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4965
 *     mj_checkAcc(m.ptr, d.ptr)
 * 
 * def _mj_kinematics(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_kinematics(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_113_mj_kinematics(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_113_mj_kinematics = {"_mj_kinematics", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_113_mj_kinematics, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_113_mj_kinematics(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_kinematics (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4965, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4965, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_kinematics", 1, 2, 2, 1); __PYX_ERR(4, 4965, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_kinematics") < 0)) __PYX_ERR(4, 4965, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_kinematics", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4965, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_kinematics", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4965, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4965, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_112_mj_kinematics(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_112_mj_kinematics(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_kinematics", 1);

  /* "mujoco_py/generated/wrappers.pxi":4966
 * 
 * def _mj_kinematics(PyMjModel m, PyMjData d):
 *     mj_kinematics(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_comPos(PyMjModel m, PyMjData d):
 */
  mj_kinematics(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4965
 *     mj_checkAcc(m.ptr, d.ptr)
 * 
 * def _mj_kinematics(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_kinematics(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4968
 *     mj_kinematics(m.ptr, d.ptr)
 * 
 * def _mj_comPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_comPos(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_115_mj_comPos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_115_mj_comPos = {"_mj_comPos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_115_mj_comPos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_115_mj_comPos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_comPos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4968, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4968, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_comPos", 1, 2, 2, 1); __PYX_ERR(4, 4968, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_comPos") < 0)) __PYX_ERR(4, 4968, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_comPos", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4968, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_comPos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4968, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4968, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_114_mj_comPos(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_114_mj_comPos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_comPos", 1);

  /* "mujoco_py/generated/wrappers.pxi":4969
 * 
 * def _mj_comPos(PyMjModel m, PyMjData d):
 *     mj_comPos(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_camlight(PyMjModel m, PyMjData d):
 */
  mj_comPos(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4968
 *     mj_kinematics(m.ptr, d.ptr)
 * 
 * def _mj_comPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_comPos(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4971
 *     mj_comPos(m.ptr, d.ptr)
 * 
 * def _mj_camlight(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_camlight(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_117_mj_camlight(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_117_mj_camlight = {"_mj_camlight", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_117_mj_camlight, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_117_mj_camlight(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_camlight (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4971, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4971, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_camlight", 1, 2, 2, 1); __PYX_ERR(4, 4971, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_camlight") < 0)) __PYX_ERR(4, 4971, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_camlight", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4971, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_camlight", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4971, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4971, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_116_mj_camlight(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_116_mj_camlight(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_camlight", 1);

  /* "mujoco_py/generated/wrappers.pxi":4972
 * 
 * def _mj_camlight(PyMjModel m, PyMjData d):
 *     mj_camlight(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_tendon(PyMjModel m, PyMjData d):
 */
  mj_camlight(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4971
 *     mj_comPos(m.ptr, d.ptr)
 * 
 * def _mj_camlight(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_camlight(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4974
 *     mj_camlight(m.ptr, d.ptr)
 * 
 * def _mj_tendon(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_tendon(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_119_mj_tendon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_119_mj_tendon = {"_mj_tendon", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_119_mj_tendon, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_119_mj_tendon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_tendon (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4974, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4974, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_tendon", 1, 2, 2, 1); __PYX_ERR(4, 4974, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_tendon") < 0)) __PYX_ERR(4, 4974, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_tendon", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4974, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_tendon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4974, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4974, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_118_mj_tendon(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_118_mj_tendon(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_tendon", 1);

  /* "mujoco_py/generated/wrappers.pxi":4975
 * 
 * def _mj_tendon(PyMjModel m, PyMjData d):
 *     mj_tendon(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_transmission(PyMjModel m, PyMjData d):
 */
  mj_tendon(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4974
 *     mj_camlight(m.ptr, d.ptr)
 * 
 * def _mj_tendon(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_tendon(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4977
 *     mj_tendon(m.ptr, d.ptr)
 * 
 * def _mj_transmission(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_transmission(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_121_mj_transmission(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_121_mj_transmission = {"_mj_transmission", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_121_mj_transmission, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_121_mj_transmission(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_transmission (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4977, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4977, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_transmission", 1, 2, 2, 1); __PYX_ERR(4, 4977, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_transmission") < 0)) __PYX_ERR(4, 4977, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_transmission", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4977, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_transmission", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4977, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4977, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_120_mj_transmission(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_120_mj_transmission(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_transmission", 1);

  /* "mujoco_py/generated/wrappers.pxi":4978
 * 
 * def _mj_transmission(PyMjModel m, PyMjData d):
 *     mj_transmission(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_crb(PyMjModel m, PyMjData d):
 */
  mj_transmission(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4977
 *     mj_tendon(m.ptr, d.ptr)
 * 
 * def _mj_transmission(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_transmission(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4980
 *     mj_transmission(m.ptr, d.ptr)
 * 
 * def _mj_crb(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_crb(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_123_mj_crb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_123_mj_crb = {"_mj_crb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_123_mj_crb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_123_mj_crb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_crb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4980, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4980, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_crb", 1, 2, 2, 1); __PYX_ERR(4, 4980, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_crb") < 0)) __PYX_ERR(4, 4980, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_crb", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4980, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_crb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4980, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4980, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_122_mj_crb(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_122_mj_crb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_crb", 1);

  /* "mujoco_py/generated/wrappers.pxi":4981
 * 
 * def _mj_crb(PyMjModel m, PyMjData d):
 *     mj_crb(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_factorM(PyMjModel m, PyMjData d):
 */
  mj_crb(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4980
 *     mj_transmission(m.ptr, d.ptr)
 * 
 * def _mj_crb(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_crb(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4983
 *     mj_crb(m.ptr, d.ptr)
 * 
 * def _mj_factorM(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_factorM(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_125_mj_factorM(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_125_mj_factorM = {"_mj_factorM", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_125_mj_factorM, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_125_mj_factorM(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_factorM (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4983, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4983, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_factorM", 1, 2, 2, 1); __PYX_ERR(4, 4983, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_factorM") < 0)) __PYX_ERR(4, 4983, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_factorM", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4983, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_factorM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4983, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4983, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_124_mj_factorM(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_124_mj_factorM(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_factorM", 1);

  /* "mujoco_py/generated/wrappers.pxi":4984
 * 
 * def _mj_factorM(PyMjModel m, PyMjData d):
 *     mj_factorM(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_solveM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] x, np.ndarray[np.float64_t, mode="c", ndim=1] y, int n):
 */
  mj_factorM(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4983
 *     mj_crb(m.ptr, d.ptr)
 * 
 * def _mj_factorM(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_factorM(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4986
 *     mj_factorM(m.ptr, d.ptr)
 * 
 * def _mj_solveM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] x, np.ndarray[np.float64_t, mode="c", ndim=1] y, int n):             # <<<<<<<<<<<<<<
 *     mj_solveM(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_127_mj_solveM(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_127_mj_solveM = {"_mj_solveM", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_127_mj_solveM, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_127_mj_solveM(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_x = 0;
  PyArrayObject *__pyx_v_y = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_solveM (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_x,&__pyx_n_s_y,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4986, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4986, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_solveM", 1, 5, 5, 1); __PYX_ERR(4, 4986, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4986, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_solveM", 1, 5, 5, 2); __PYX_ERR(4, 4986, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_y)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4986, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_solveM", 1, 5, 5, 3); __PYX_ERR(4, 4986, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4986, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_solveM", 1, 5, 5, 4); __PYX_ERR(4, 4986, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_solveM") < 0)) __PYX_ERR(4, 4986, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_x = ((PyArrayObject *)values[2]);
    __pyx_v_y = ((PyArrayObject *)values[3]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4986, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_solveM", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 4986, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_solveM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4986, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4986, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_5numpy_ndarray, 1, "x", 0))) __PYX_ERR(4, 4986, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_5numpy_ndarray, 1, "y", 0))) __PYX_ERR(4, 4986, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_126_mj_solveM(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_x, __pyx_v_y, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_126_mj_solveM(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_y, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_x;
  __Pyx_Buffer __pyx_pybuffer_x;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_y;
  __Pyx_Buffer __pyx_pybuffer_y;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_solveM", 1);
  __pyx_pybuffer_x.pybuffer.buf = NULL;
  __pyx_pybuffer_x.refcount = 0;
  __pyx_pybuffernd_x.data = NULL;
  __pyx_pybuffernd_x.rcbuffer = &__pyx_pybuffer_x;
  __pyx_pybuffer_y.pybuffer.buf = NULL;
  __pyx_pybuffer_y.refcount = 0;
  __pyx_pybuffernd_y.data = NULL;
  __pyx_pybuffernd_y.rcbuffer = &__pyx_pybuffer_y;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_x.rcbuffer->pybuffer, (PyObject*)__pyx_v_x, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 4986, __pyx_L1_error)
  }
  __pyx_pybuffernd_x.diminfo[0].strides = __pyx_pybuffernd_x.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_x.diminfo[0].shape = __pyx_pybuffernd_x.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_y.rcbuffer->pybuffer, (PyObject*)__pyx_v_y, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 4986, __pyx_L1_error)
  }
  __pyx_pybuffernd_y.diminfo[0].strides = __pyx_pybuffernd_y.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_y.diminfo[0].shape = __pyx_pybuffernd_y.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":4987
 * 
 * def _mj_solveM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] x, np.ndarray[np.float64_t, mode="c", ndim=1] y, int n):
 *     mj_solveM(m.ptr, d.ptr, &x[0], &y[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mj_solveM2(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] x, np.ndarray[np.float64_t, mode="c", ndim=1] y, int n):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_x.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_x.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 4987, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_y.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_y.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 4987, __pyx_L1_error)
  }
  mj_solveM(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_x.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_y.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_y.diminfo[0].strides))), __pyx_v_n);

  /* "mujoco_py/generated/wrappers.pxi":4986
 *     mj_factorM(m.ptr, d.ptr)
 * 
 * def _mj_solveM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] x, np.ndarray[np.float64_t, mode="c", ndim=1] y, int n):             # <<<<<<<<<<<<<<
 *     mj_solveM(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_y.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_solveM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_y.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4989
 *     mj_solveM(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 * def _mj_solveM2(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] x, np.ndarray[np.float64_t, mode="c", ndim=1] y, int n):             # <<<<<<<<<<<<<<
 *     mj_solveM2(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_129_mj_solveM2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_129_mj_solveM2 = {"_mj_solveM2", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_129_mj_solveM2, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_129_mj_solveM2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_x = 0;
  PyArrayObject *__pyx_v_y = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_solveM2 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_x,&__pyx_n_s_y,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4989, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4989, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_solveM2", 1, 5, 5, 1); __PYX_ERR(4, 4989, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4989, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_solveM2", 1, 5, 5, 2); __PYX_ERR(4, 4989, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_y)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4989, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_solveM2", 1, 5, 5, 3); __PYX_ERR(4, 4989, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4989, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_solveM2", 1, 5, 5, 4); __PYX_ERR(4, 4989, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_solveM2") < 0)) __PYX_ERR(4, 4989, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_x = ((PyArrayObject *)values[2]);
    __pyx_v_y = ((PyArrayObject *)values[3]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4989, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_solveM2", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 4989, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_solveM2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4989, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4989, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_5numpy_ndarray, 1, "x", 0))) __PYX_ERR(4, 4989, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_5numpy_ndarray, 1, "y", 0))) __PYX_ERR(4, 4989, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_128_mj_solveM2(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_x, __pyx_v_y, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_128_mj_solveM2(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_x, PyArrayObject *__pyx_v_y, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_x;
  __Pyx_Buffer __pyx_pybuffer_x;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_y;
  __Pyx_Buffer __pyx_pybuffer_y;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_solveM2", 1);
  __pyx_pybuffer_x.pybuffer.buf = NULL;
  __pyx_pybuffer_x.refcount = 0;
  __pyx_pybuffernd_x.data = NULL;
  __pyx_pybuffernd_x.rcbuffer = &__pyx_pybuffer_x;
  __pyx_pybuffer_y.pybuffer.buf = NULL;
  __pyx_pybuffer_y.refcount = 0;
  __pyx_pybuffernd_y.data = NULL;
  __pyx_pybuffernd_y.rcbuffer = &__pyx_pybuffer_y;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_x.rcbuffer->pybuffer, (PyObject*)__pyx_v_x, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 4989, __pyx_L1_error)
  }
  __pyx_pybuffernd_x.diminfo[0].strides = __pyx_pybuffernd_x.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_x.diminfo[0].shape = __pyx_pybuffernd_x.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_y.rcbuffer->pybuffer, (PyObject*)__pyx_v_y, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 4989, __pyx_L1_error)
  }
  __pyx_pybuffernd_y.diminfo[0].strides = __pyx_pybuffernd_y.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_y.diminfo[0].shape = __pyx_pybuffernd_y.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":4990
 * 
 * def _mj_solveM2(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] x, np.ndarray[np.float64_t, mode="c", ndim=1] y, int n):
 *     mj_solveM2(m.ptr, d.ptr, &x[0], &y[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mj_comVel(PyMjModel m, PyMjData d):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_x.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_x.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 4990, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_y.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_y.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 4990, __pyx_L1_error)
  }
  mj_solveM2(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_x.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_y.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_y.diminfo[0].strides))), __pyx_v_n);

  /* "mujoco_py/generated/wrappers.pxi":4989
 *     mj_solveM(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 * def _mj_solveM2(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] x, np.ndarray[np.float64_t, mode="c", ndim=1] y, int n):             # <<<<<<<<<<<<<<
 *     mj_solveM2(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_y.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_solveM2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_y.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4992
 *     mj_solveM2(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 * def _mj_comVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_comVel(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_131_mj_comVel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_131_mj_comVel = {"_mj_comVel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_131_mj_comVel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_131_mj_comVel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_comVel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4992, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4992, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_comVel", 1, 2, 2, 1); __PYX_ERR(4, 4992, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_comVel") < 0)) __PYX_ERR(4, 4992, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_comVel", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4992, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_comVel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4992, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4992, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_130_mj_comVel(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_130_mj_comVel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_comVel", 1);

  /* "mujoco_py/generated/wrappers.pxi":4993
 * 
 * def _mj_comVel(PyMjModel m, PyMjData d):
 *     mj_comVel(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_passive(PyMjModel m, PyMjData d):
 */
  mj_comVel(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4992
 *     mj_solveM2(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 * def _mj_comVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_comVel(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4995
 *     mj_comVel(m.ptr, d.ptr)
 * 
 * def _mj_passive(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_passive(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_133_mj_passive(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_133_mj_passive = {"_mj_passive", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_133_mj_passive, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_133_mj_passive(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_passive (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4995, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4995, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_passive", 1, 2, 2, 1); __PYX_ERR(4, 4995, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_passive") < 0)) __PYX_ERR(4, 4995, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_passive", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4995, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_passive", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4995, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4995, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_132_mj_passive(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_132_mj_passive(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_passive", 1);

  /* "mujoco_py/generated/wrappers.pxi":4996
 * 
 * def _mj_passive(PyMjModel m, PyMjData d):
 *     mj_passive(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_subtreeVel(PyMjModel m, PyMjData d):
 */
  mj_passive(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4995
 *     mj_comVel(m.ptr, d.ptr)
 * 
 * def _mj_passive(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_passive(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":4998
 *     mj_passive(m.ptr, d.ptr)
 * 
 * def _mj_subtreeVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_subtreeVel(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_135_mj_subtreeVel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_135_mj_subtreeVel = {"_mj_subtreeVel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_135_mj_subtreeVel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_135_mj_subtreeVel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_subtreeVel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4998, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4998, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_subtreeVel", 1, 2, 2, 1); __PYX_ERR(4, 4998, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_subtreeVel") < 0)) __PYX_ERR(4, 4998, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_subtreeVel", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4998, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_subtreeVel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 4998, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 4998, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_134_mj_subtreeVel(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_134_mj_subtreeVel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_subtreeVel", 1);

  /* "mujoco_py/generated/wrappers.pxi":4999
 * 
 * def _mj_subtreeVel(PyMjModel m, PyMjData d):
 *     mj_subtreeVel(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_rne(PyMjModel m, PyMjData d, int flg_acc, np.ndarray[np.float64_t, mode="c", ndim=1] result):
 */
  mj_subtreeVel(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":4998
 *     mj_passive(m.ptr, d.ptr)
 * 
 * def _mj_subtreeVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_subtreeVel(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5001
 *     mj_subtreeVel(m.ptr, d.ptr)
 * 
 * def _mj_rne(PyMjModel m, PyMjData d, int flg_acc, np.ndarray[np.float64_t, mode="c", ndim=1] result):             # <<<<<<<<<<<<<<
 *     mj_rne(m.ptr, d.ptr, flg_acc, &result[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_137_mj_rne(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_137_mj_rne = {"_mj_rne", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_137_mj_rne, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_137_mj_rne(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  int __pyx_v_flg_acc;
  PyArrayObject *__pyx_v_result = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_rne (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_flg_acc,&__pyx_n_s_result,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5001, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5001, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_rne", 1, 4, 4, 1); __PYX_ERR(4, 5001, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flg_acc)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5001, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_rne", 1, 4, 4, 2); __PYX_ERR(4, 5001, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_result)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5001, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_rne", 1, 4, 4, 3); __PYX_ERR(4, 5001, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_rne") < 0)) __PYX_ERR(4, 5001, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_flg_acc = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_flg_acc == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5001, __pyx_L3_error)
    __pyx_v_result = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_rne", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5001, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_rne", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5001, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5001, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result), __pyx_ptype_5numpy_ndarray, 1, "result", 0))) __PYX_ERR(4, 5001, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_136_mj_rne(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_flg_acc, __pyx_v_result);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_136_mj_rne(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_flg_acc, PyArrayObject *__pyx_v_result) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_rne", 1);
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5001, __pyx_L1_error)
  }
  __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5002
 * 
 * def _mj_rne(PyMjModel m, PyMjData d, int flg_acc, np.ndarray[np.float64_t, mode="c", ndim=1] result):
 *     mj_rne(m.ptr, d.ptr, flg_acc, &result[0])             # <<<<<<<<<<<<<<
 * 
 * def _mj_rnePostConstraint(PyMjModel m, PyMjData d):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_result.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_result.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5002, __pyx_L1_error)
  }
  mj_rne(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_flg_acc, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_result.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5001
 *     mj_subtreeVel(m.ptr, d.ptr)
 * 
 * def _mj_rne(PyMjModel m, PyMjData d, int flg_acc, np.ndarray[np.float64_t, mode="c", ndim=1] result):             # <<<<<<<<<<<<<<
 *     mj_rne(m.ptr, d.ptr, flg_acc, &result[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_rne", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5004
 *     mj_rne(m.ptr, d.ptr, flg_acc, &result[0])
 * 
 * def _mj_rnePostConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_rnePostConstraint(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_139_mj_rnePostConstraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_139_mj_rnePostConstraint = {"_mj_rnePostConstraint", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_139_mj_rnePostConstraint, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_139_mj_rnePostConstraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_rnePostConstraint (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5004, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5004, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_rnePostConstraint", 1, 2, 2, 1); __PYX_ERR(4, 5004, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_rnePostConstraint") < 0)) __PYX_ERR(4, 5004, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_rnePostConstraint", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5004, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_rnePostConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5004, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5004, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_138_mj_rnePostConstraint(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_138_mj_rnePostConstraint(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_rnePostConstraint", 1);

  /* "mujoco_py/generated/wrappers.pxi":5005
 * 
 * def _mj_rnePostConstraint(PyMjModel m, PyMjData d):
 *     mj_rnePostConstraint(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_collision(PyMjModel m, PyMjData d):
 */
  mj_rnePostConstraint(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5004
 *     mj_rne(m.ptr, d.ptr, flg_acc, &result[0])
 * 
 * def _mj_rnePostConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_rnePostConstraint(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5007
 *     mj_rnePostConstraint(m.ptr, d.ptr)
 * 
 * def _mj_collision(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_collision(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_141_mj_collision(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_141_mj_collision = {"_mj_collision", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_141_mj_collision, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_141_mj_collision(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_collision (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5007, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5007, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_collision", 1, 2, 2, 1); __PYX_ERR(4, 5007, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_collision") < 0)) __PYX_ERR(4, 5007, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_collision", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5007, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_collision", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5007, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5007, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_140_mj_collision(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_140_mj_collision(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_collision", 1);

  /* "mujoco_py/generated/wrappers.pxi":5008
 * 
 * def _mj_collision(PyMjModel m, PyMjData d):
 *     mj_collision(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_makeConstraint(PyMjModel m, PyMjData d):
 */
  mj_collision(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5007
 *     mj_rnePostConstraint(m.ptr, d.ptr)
 * 
 * def _mj_collision(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_collision(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5010
 *     mj_collision(m.ptr, d.ptr)
 * 
 * def _mj_makeConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_makeConstraint(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_143_mj_makeConstraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_143_mj_makeConstraint = {"_mj_makeConstraint", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_143_mj_makeConstraint, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_143_mj_makeConstraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_makeConstraint (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5010, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5010, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_makeConstraint", 1, 2, 2, 1); __PYX_ERR(4, 5010, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_makeConstraint") < 0)) __PYX_ERR(4, 5010, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_makeConstraint", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5010, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_makeConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5010, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5010, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_142_mj_makeConstraint(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_142_mj_makeConstraint(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_makeConstraint", 1);

  /* "mujoco_py/generated/wrappers.pxi":5011
 * 
 * def _mj_makeConstraint(PyMjModel m, PyMjData d):
 *     mj_makeConstraint(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_projectConstraint(PyMjModel m, PyMjData d):
 */
  mj_makeConstraint(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5010
 *     mj_collision(m.ptr, d.ptr)
 * 
 * def _mj_makeConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_makeConstraint(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5013
 *     mj_makeConstraint(m.ptr, d.ptr)
 * 
 * def _mj_projectConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_projectConstraint(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_145_mj_projectConstraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_145_mj_projectConstraint = {"_mj_projectConstraint", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_145_mj_projectConstraint, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_145_mj_projectConstraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_projectConstraint (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5013, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5013, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_projectConstraint", 1, 2, 2, 1); __PYX_ERR(4, 5013, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_projectConstraint") < 0)) __PYX_ERR(4, 5013, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_projectConstraint", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5013, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_projectConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5013, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5013, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_144_mj_projectConstraint(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_144_mj_projectConstraint(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_projectConstraint", 1);

  /* "mujoco_py/generated/wrappers.pxi":5014
 * 
 * def _mj_projectConstraint(PyMjModel m, PyMjData d):
 *     mj_projectConstraint(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_referenceConstraint(PyMjModel m, PyMjData d):
 */
  mj_projectConstraint(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5013
 *     mj_makeConstraint(m.ptr, d.ptr)
 * 
 * def _mj_projectConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_projectConstraint(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5016
 *     mj_projectConstraint(m.ptr, d.ptr)
 * 
 * def _mj_referenceConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_referenceConstraint(m.ptr, d.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_147_mj_referenceConstraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_147_mj_referenceConstraint = {"_mj_referenceConstraint", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_147_mj_referenceConstraint, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_147_mj_referenceConstraint(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_referenceConstraint (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5016, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5016, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_referenceConstraint", 1, 2, 2, 1); __PYX_ERR(4, 5016, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_referenceConstraint") < 0)) __PYX_ERR(4, 5016, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_referenceConstraint", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5016, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_referenceConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5016, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5016, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_146_mj_referenceConstraint(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_146_mj_referenceConstraint(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_referenceConstraint", 1);

  /* "mujoco_py/generated/wrappers.pxi":5017
 * 
 * def _mj_referenceConstraint(PyMjModel m, PyMjData d):
 *     mj_referenceConstraint(m.ptr, d.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_constraintUpdate(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jar, np.ndarray[np.float64_t, mode="c", ndim=1] cost, int flg_coneHessian):
 */
  mj_referenceConstraint(__pyx_v_m->ptr, __pyx_v_d->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5016
 *     mj_projectConstraint(m.ptr, d.ptr)
 * 
 * def _mj_referenceConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_referenceConstraint(m.ptr, d.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5019
 *     mj_referenceConstraint(m.ptr, d.ptr)
 * 
 * def _mj_constraintUpdate(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jar, np.ndarray[np.float64_t, mode="c", ndim=1] cost, int flg_coneHessian):             # <<<<<<<<<<<<<<
 *     mj_constraintUpdate(m.ptr, d.ptr, &jar[0], &cost[0], flg_coneHessian)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_149_mj_constraintUpdate(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_149_mj_constraintUpdate = {"_mj_constraintUpdate", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_149_mj_constraintUpdate, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_149_mj_constraintUpdate(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_jar = 0;
  PyArrayObject *__pyx_v_cost = 0;
  int __pyx_v_flg_coneHessian;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_constraintUpdate (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_jar,&__pyx_n_s_cost,&__pyx_n_s_flg_coneHessian,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5019, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5019, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_constraintUpdate", 1, 5, 5, 1); __PYX_ERR(4, 5019, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jar)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5019, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_constraintUpdate", 1, 5, 5, 2); __PYX_ERR(4, 5019, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_cost)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5019, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_constraintUpdate", 1, 5, 5, 3); __PYX_ERR(4, 5019, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flg_coneHessian)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5019, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_constraintUpdate", 1, 5, 5, 4); __PYX_ERR(4, 5019, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_constraintUpdate") < 0)) __PYX_ERR(4, 5019, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_jar = ((PyArrayObject *)values[2]);
    __pyx_v_cost = ((PyArrayObject *)values[3]);
    __pyx_v_flg_coneHessian = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_flg_coneHessian == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5019, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_constraintUpdate", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5019, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_constraintUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5019, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5019, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jar), __pyx_ptype_5numpy_ndarray, 1, "jar", 0))) __PYX_ERR(4, 5019, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cost), __pyx_ptype_5numpy_ndarray, 1, "cost", 0))) __PYX_ERR(4, 5019, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_148_mj_constraintUpdate(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_jar, __pyx_v_cost, __pyx_v_flg_coneHessian);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_148_mj_constraintUpdate(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_jar, PyArrayObject *__pyx_v_cost, int __pyx_v_flg_coneHessian) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_cost;
  __Pyx_Buffer __pyx_pybuffer_cost;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jar;
  __Pyx_Buffer __pyx_pybuffer_jar;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_constraintUpdate", 1);
  __pyx_pybuffer_jar.pybuffer.buf = NULL;
  __pyx_pybuffer_jar.refcount = 0;
  __pyx_pybuffernd_jar.data = NULL;
  __pyx_pybuffernd_jar.rcbuffer = &__pyx_pybuffer_jar;
  __pyx_pybuffer_cost.pybuffer.buf = NULL;
  __pyx_pybuffer_cost.refcount = 0;
  __pyx_pybuffernd_cost.data = NULL;
  __pyx_pybuffernd_cost.rcbuffer = &__pyx_pybuffer_cost;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jar.rcbuffer->pybuffer, (PyObject*)__pyx_v_jar, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5019, __pyx_L1_error)
  }
  __pyx_pybuffernd_jar.diminfo[0].strides = __pyx_pybuffernd_jar.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jar.diminfo[0].shape = __pyx_pybuffernd_jar.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cost.rcbuffer->pybuffer, (PyObject*)__pyx_v_cost, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5019, __pyx_L1_error)
  }
  __pyx_pybuffernd_cost.diminfo[0].strides = __pyx_pybuffernd_cost.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cost.diminfo[0].shape = __pyx_pybuffernd_cost.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5020
 * 
 * def _mj_constraintUpdate(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jar, np.ndarray[np.float64_t, mode="c", ndim=1] cost, int flg_coneHessian):
 *     mj_constraintUpdate(m.ptr, d.ptr, &jar[0], &cost[0], flg_coneHessian)             # <<<<<<<<<<<<<<
 * 
 * def _mj_addContact(PyMjModel m, PyMjData d, PyMjContact con):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_jar.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_jar.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5020, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_cost.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_cost.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5020, __pyx_L1_error)
  }
  mj_constraintUpdate(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_jar.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_jar.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cost.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_cost.diminfo[0].strides))), __pyx_v_flg_coneHessian);

  /* "mujoco_py/generated/wrappers.pxi":5019
 *     mj_referenceConstraint(m.ptr, d.ptr)
 * 
 * def _mj_constraintUpdate(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jar, np.ndarray[np.float64_t, mode="c", ndim=1] cost, int flg_coneHessian):             # <<<<<<<<<<<<<<
 *     mj_constraintUpdate(m.ptr, d.ptr, &jar[0], &cost[0], flg_coneHessian)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cost.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jar.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_constraintUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cost.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jar.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5022
 *     mj_constraintUpdate(m.ptr, d.ptr, &jar[0], &cost[0], flg_coneHessian)
 * 
 * def _mj_addContact(PyMjModel m, PyMjData d, PyMjContact con):             # <<<<<<<<<<<<<<
 *     return mj_addContact(m.ptr, d.ptr, con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_151_mj_addContact(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_151_mj_addContact = {"_mj_addContact", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_151_mj_addContact, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_151_mj_addContact(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_addContact (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5022, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5022, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_addContact", 1, 3, 3, 1); __PYX_ERR(4, 5022, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5022, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_addContact", 1, 3, 3, 2); __PYX_ERR(4, 5022, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_addContact") < 0)) __PYX_ERR(4, 5022, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_addContact", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5022, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_addContact", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5022, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5022, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjContact, 1, "con", 0))) __PYX_ERR(4, 5022, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_150_mj_addContact(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_150_mj_addContact(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_addContact", 1);

  /* "mujoco_py/generated/wrappers.pxi":5023
 * 
 * def _mj_addContact(PyMjModel m, PyMjData d, PyMjContact con):
 *     return mj_addContact(m.ptr, d.ptr, con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_isPyramidal(PyMjModel m):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(mj_addContact(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_con->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5022
 *     mj_constraintUpdate(m.ptr, d.ptr, &jar[0], &cost[0], flg_coneHessian)
 * 
 * def _mj_addContact(PyMjModel m, PyMjData d, PyMjContact con):             # <<<<<<<<<<<<<<
 *     return mj_addContact(m.ptr, d.ptr, con.ptr)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_addContact", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5025
 *     return mj_addContact(m.ptr, d.ptr, con.ptr)
 * 
 * def _mj_isPyramidal(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_isPyramidal(m.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_153_mj_isPyramidal(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_153_mj_isPyramidal = {"_mj_isPyramidal", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_153_mj_isPyramidal, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_153_mj_isPyramidal(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_isPyramidal (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5025, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_isPyramidal") < 0)) __PYX_ERR(4, 5025, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_isPyramidal", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5025, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_isPyramidal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5025, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_152_mj_isPyramidal(__pyx_self, __pyx_v_m);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_152_mj_isPyramidal(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_isPyramidal", 1);

  /* "mujoco_py/generated/wrappers.pxi":5026
 * 
 * def _mj_isPyramidal(PyMjModel m):
 *     return mj_isPyramidal(m.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_isSparse(PyMjModel m):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(mj_isPyramidal(__pyx_v_m->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5025
 *     return mj_addContact(m.ptr, d.ptr, con.ptr)
 * 
 * def _mj_isPyramidal(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_isPyramidal(m.ptr)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_isPyramidal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5028
 *     return mj_isPyramidal(m.ptr)
 * 
 * def _mj_isSparse(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_isSparse(m.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_155_mj_isSparse(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_155_mj_isSparse = {"_mj_isSparse", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_155_mj_isSparse, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_155_mj_isSparse(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_isSparse (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5028, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_isSparse") < 0)) __PYX_ERR(4, 5028, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_isSparse", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5028, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_isSparse", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5028, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_154_mj_isSparse(__pyx_self, __pyx_v_m);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_154_mj_isSparse(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_isSparse", 1);

  /* "mujoco_py/generated/wrappers.pxi":5029
 * 
 * def _mj_isSparse(PyMjModel m):
 *     return mj_isSparse(m.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_isDual(PyMjModel m):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(mj_isSparse(__pyx_v_m->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5028
 *     return mj_isPyramidal(m.ptr)
 * 
 * def _mj_isSparse(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_isSparse(m.ptr)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_isSparse", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5031
 *     return mj_isSparse(m.ptr)
 * 
 * def _mj_isDual(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_isDual(m.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_157_mj_isDual(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_157_mj_isDual = {"_mj_isDual", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_157_mj_isDual, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_157_mj_isDual(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_isDual (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5031, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_isDual") < 0)) __PYX_ERR(4, 5031, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_isDual", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5031, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_isDual", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5031, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_156_mj_isDual(__pyx_self, __pyx_v_m);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_156_mj_isDual(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_isDual", 1);

  /* "mujoco_py/generated/wrappers.pxi":5032
 * 
 * def _mj_isDual(PyMjModel m):
 *     return mj_isDual(m.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_mulJacVec(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(mj_isDual(__pyx_v_m->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5032, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5031
 *     return mj_isSparse(m.ptr)
 * 
 * def _mj_isDual(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_isDual(m.ptr)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_isDual", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5034
 *     return mj_isDual(m.ptr)
 * 
 * def _mj_mulJacVec(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulJacVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_159_mj_mulJacVec(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_159_mj_mulJacVec = {"_mj_mulJacVec", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_159_mj_mulJacVec, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_159_mj_mulJacVec(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_mulJacVec (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_res,&__pyx_n_s_vec,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5034, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5034, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_mulJacVec", 1, 4, 4, 1); __PYX_ERR(4, 5034, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5034, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_mulJacVec", 1, 4, 4, 2); __PYX_ERR(4, 5034, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5034, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_mulJacVec", 1, 4, 4, 3); __PYX_ERR(4, 5034, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_mulJacVec") < 0)) __PYX_ERR(4, 5034, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_res = ((PyArrayObject *)values[2]);
    __pyx_v_vec = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_mulJacVec", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5034, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_mulJacVec", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5034, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5034, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5034, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5034, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_158_mj_mulJacVec(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_res, __pyx_v_vec);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_158_mj_mulJacVec(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_mulJacVec", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5034, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5034, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5035
 * 
 * def _mj_mulJacVec(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 *     mj_mulJacVec(m.ptr, d.ptr, &res[0], &vec[0])             # <<<<<<<<<<<<<<
 * 
 * def _mj_mulJacTVec(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5035, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5035, __pyx_L1_error)
  }
  mj_mulJacVec(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5034
 *     return mj_isDual(m.ptr)
 * 
 * def _mj_mulJacVec(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulJacVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_mulJacVec", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5037
 *     mj_mulJacVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_mulJacTVec(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulJacTVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_161_mj_mulJacTVec(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_161_mj_mulJacTVec = {"_mj_mulJacTVec", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_161_mj_mulJacTVec, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_161_mj_mulJacTVec(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_mulJacTVec (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_res,&__pyx_n_s_vec,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5037, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5037, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_mulJacTVec", 1, 4, 4, 1); __PYX_ERR(4, 5037, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5037, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_mulJacTVec", 1, 4, 4, 2); __PYX_ERR(4, 5037, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5037, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_mulJacTVec", 1, 4, 4, 3); __PYX_ERR(4, 5037, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_mulJacTVec") < 0)) __PYX_ERR(4, 5037, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_res = ((PyArrayObject *)values[2]);
    __pyx_v_vec = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_mulJacTVec", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5037, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_mulJacTVec", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5037, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5037, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5037, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5037, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_160_mj_mulJacTVec(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_res, __pyx_v_vec);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_160_mj_mulJacTVec(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_mulJacTVec", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5037, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5037, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5038
 * 
 * def _mj_mulJacTVec(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 *     mj_mulJacTVec(m.ptr, d.ptr, &res[0], &vec[0])             # <<<<<<<<<<<<<<
 * 
 * def _mj_jac(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, np.ndarray[np.float64_t, mode="c", ndim=1] point, int body):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5038, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5038, __pyx_L1_error)
  }
  mj_mulJacTVec(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5037
 *     mj_mulJacVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_mulJacTVec(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulJacTVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_mulJacTVec", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5040
 *     mj_mulJacTVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_jac(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, np.ndarray[np.float64_t, mode="c", ndim=1] point, int body):             # <<<<<<<<<<<<<<
 *     mj_jac(m.ptr, d.ptr, &jacp[0], &jacr[0], &point[0], body)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_163_mj_jac(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_163_mj_jac = {"_mj_jac", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_163_mj_jac, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_163_mj_jac(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_jacp = 0;
  PyArrayObject *__pyx_v_jacr = 0;
  PyArrayObject *__pyx_v_point = 0;
  int __pyx_v_body;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_jac (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_jacp,&__pyx_n_s_jacr,&__pyx_n_s_point,&__pyx_n_s_body,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5040, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5040, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jac", 1, 6, 6, 1); __PYX_ERR(4, 5040, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacp)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5040, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jac", 1, 6, 6, 2); __PYX_ERR(4, 5040, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacr)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5040, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jac", 1, 6, 6, 3); __PYX_ERR(4, 5040, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_point)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5040, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jac", 1, 6, 6, 4); __PYX_ERR(4, 5040, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_body)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5040, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jac", 1, 6, 6, 5); __PYX_ERR(4, 5040, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_jac") < 0)) __PYX_ERR(4, 5040, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_jacp = ((PyArrayObject *)values[2]);
    __pyx_v_jacr = ((PyArrayObject *)values[3]);
    __pyx_v_point = ((PyArrayObject *)values[4]);
    __pyx_v_body = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_body == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5040, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_jac", 1, 6, 6, __pyx_nargs); __PYX_ERR(4, 5040, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_jac", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5040, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5040, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacp), __pyx_ptype_5numpy_ndarray, 1, "jacp", 0))) __PYX_ERR(4, 5040, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacr), __pyx_ptype_5numpy_ndarray, 1, "jacr", 0))) __PYX_ERR(4, 5040, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_point), __pyx_ptype_5numpy_ndarray, 1, "point", 0))) __PYX_ERR(4, 5040, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_162_mj_jac(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_jacp, __pyx_v_jacr, __pyx_v_point, __pyx_v_body);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_162_mj_jac(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_jacp, PyArrayObject *__pyx_v_jacr, PyArrayObject *__pyx_v_point, int __pyx_v_body) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacp;
  __Pyx_Buffer __pyx_pybuffer_jacp;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacr;
  __Pyx_Buffer __pyx_pybuffer_jacr;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_point;
  __Pyx_Buffer __pyx_pybuffer_point;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_jac", 1);
  __pyx_pybuffer_jacp.pybuffer.buf = NULL;
  __pyx_pybuffer_jacp.refcount = 0;
  __pyx_pybuffernd_jacp.data = NULL;
  __pyx_pybuffernd_jacp.rcbuffer = &__pyx_pybuffer_jacp;
  __pyx_pybuffer_jacr.pybuffer.buf = NULL;
  __pyx_pybuffer_jacr.refcount = 0;
  __pyx_pybuffernd_jacr.data = NULL;
  __pyx_pybuffernd_jacr.rcbuffer = &__pyx_pybuffer_jacr;
  __pyx_pybuffer_point.pybuffer.buf = NULL;
  __pyx_pybuffer_point.refcount = 0;
  __pyx_pybuffernd_point.data = NULL;
  __pyx_pybuffernd_point.rcbuffer = &__pyx_pybuffer_point;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacp, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5040, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacp.diminfo[0].strides = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacp.diminfo[0].shape = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacr, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5040, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacr.diminfo[0].strides = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacr.diminfo[0].shape = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_point.rcbuffer->pybuffer, (PyObject*)__pyx_v_point, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5040, __pyx_L1_error)
  }
  __pyx_pybuffernd_point.diminfo[0].strides = __pyx_pybuffernd_point.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_point.diminfo[0].shape = __pyx_pybuffernd_point.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5041
 * 
 * def _mj_jac(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, np.ndarray[np.float64_t, mode="c", ndim=1] point, int body):
 *     mj_jac(m.ptr, d.ptr, &jacp[0], &jacr[0], &point[0], body)             # <<<<<<<<<<<<<<
 * 
 * def _mj_jacBody(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int body):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_jacp.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_jacp.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5041, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_jacr.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_jacr.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5041, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_point.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_point.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5041, __pyx_L1_error)
  }
  mj_jac(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_jacp.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_jacp.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_jacr.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_jacr.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_point.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_point.diminfo[0].strides))), __pyx_v_body);

  /* "mujoco_py/generated/wrappers.pxi":5040
 *     mj_mulJacTVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_jac(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, np.ndarray[np.float64_t, mode="c", ndim=1] point, int body):             # <<<<<<<<<<<<<<
 *     mj_jac(m.ptr, d.ptr, &jacp[0], &jacr[0], &point[0], body)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_point.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_jac", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_point.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5043
 *     mj_jac(m.ptr, d.ptr, &jacp[0], &jacr[0], &point[0], body)
 * 
 * def _mj_jacBody(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int body):             # <<<<<<<<<<<<<<
 *     mj_jacBody(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_165_mj_jacBody(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_165_mj_jacBody = {"_mj_jacBody", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_165_mj_jacBody, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_165_mj_jacBody(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_jacp = 0;
  PyArrayObject *__pyx_v_jacr = 0;
  int __pyx_v_body;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_jacBody (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_jacp,&__pyx_n_s_jacr,&__pyx_n_s_body,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5043, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5043, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacBody", 1, 5, 5, 1); __PYX_ERR(4, 5043, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacp)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5043, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacBody", 1, 5, 5, 2); __PYX_ERR(4, 5043, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacr)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5043, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacBody", 1, 5, 5, 3); __PYX_ERR(4, 5043, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_body)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5043, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacBody", 1, 5, 5, 4); __PYX_ERR(4, 5043, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_jacBody") < 0)) __PYX_ERR(4, 5043, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_jacp = ((PyArrayObject *)values[2]);
    __pyx_v_jacr = ((PyArrayObject *)values[3]);
    __pyx_v_body = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_body == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5043, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_jacBody", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5043, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_jacBody", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5043, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5043, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacp), __pyx_ptype_5numpy_ndarray, 1, "jacp", 0))) __PYX_ERR(4, 5043, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacr), __pyx_ptype_5numpy_ndarray, 1, "jacr", 0))) __PYX_ERR(4, 5043, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_164_mj_jacBody(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_jacp, __pyx_v_jacr, __pyx_v_body);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_164_mj_jacBody(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_jacp, PyArrayObject *__pyx_v_jacr, int __pyx_v_body) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacp;
  __Pyx_Buffer __pyx_pybuffer_jacp;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacr;
  __Pyx_Buffer __pyx_pybuffer_jacr;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_jacBody", 1);
  __pyx_pybuffer_jacp.pybuffer.buf = NULL;
  __pyx_pybuffer_jacp.refcount = 0;
  __pyx_pybuffernd_jacp.data = NULL;
  __pyx_pybuffernd_jacp.rcbuffer = &__pyx_pybuffer_jacp;
  __pyx_pybuffer_jacr.pybuffer.buf = NULL;
  __pyx_pybuffer_jacr.refcount = 0;
  __pyx_pybuffernd_jacr.data = NULL;
  __pyx_pybuffernd_jacr.rcbuffer = &__pyx_pybuffer_jacr;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacp, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5043, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacp.diminfo[0].strides = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacp.diminfo[0].shape = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacr, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5043, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacr.diminfo[0].strides = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacr.diminfo[0].shape = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5044
 * 
 * def _mj_jacBody(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int body):
 *     mj_jacBody(m.ptr, d.ptr, &jacp[0], &jacr[0], body)             # <<<<<<<<<<<<<<
 * 
 * def _mj_jacBodyCom(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int body):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_jacp.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_jacp.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5044, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_jacr.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_jacr.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5044, __pyx_L1_error)
  }
  mj_jacBody(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_jacp.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_jacp.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_jacr.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_jacr.diminfo[0].strides))), __pyx_v_body);

  /* "mujoco_py/generated/wrappers.pxi":5043
 *     mj_jac(m.ptr, d.ptr, &jacp[0], &jacr[0], &point[0], body)
 * 
 * def _mj_jacBody(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int body):             # <<<<<<<<<<<<<<
 *     mj_jacBody(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_jacBody", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5046
 *     mj_jacBody(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 * def _mj_jacBodyCom(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int body):             # <<<<<<<<<<<<<<
 *     mj_jacBodyCom(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_167_mj_jacBodyCom(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_167_mj_jacBodyCom = {"_mj_jacBodyCom", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_167_mj_jacBodyCom, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_167_mj_jacBodyCom(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_jacp = 0;
  PyArrayObject *__pyx_v_jacr = 0;
  int __pyx_v_body;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_jacBodyCom (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_jacp,&__pyx_n_s_jacr,&__pyx_n_s_body,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5046, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5046, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacBodyCom", 1, 5, 5, 1); __PYX_ERR(4, 5046, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacp)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5046, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacBodyCom", 1, 5, 5, 2); __PYX_ERR(4, 5046, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacr)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5046, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacBodyCom", 1, 5, 5, 3); __PYX_ERR(4, 5046, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_body)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5046, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacBodyCom", 1, 5, 5, 4); __PYX_ERR(4, 5046, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_jacBodyCom") < 0)) __PYX_ERR(4, 5046, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_jacp = ((PyArrayObject *)values[2]);
    __pyx_v_jacr = ((PyArrayObject *)values[3]);
    __pyx_v_body = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_body == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5046, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_jacBodyCom", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5046, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_jacBodyCom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5046, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5046, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacp), __pyx_ptype_5numpy_ndarray, 1, "jacp", 0))) __PYX_ERR(4, 5046, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacr), __pyx_ptype_5numpy_ndarray, 1, "jacr", 0))) __PYX_ERR(4, 5046, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_166_mj_jacBodyCom(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_jacp, __pyx_v_jacr, __pyx_v_body);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_166_mj_jacBodyCom(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_jacp, PyArrayObject *__pyx_v_jacr, int __pyx_v_body) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacp;
  __Pyx_Buffer __pyx_pybuffer_jacp;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacr;
  __Pyx_Buffer __pyx_pybuffer_jacr;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_jacBodyCom", 1);
  __pyx_pybuffer_jacp.pybuffer.buf = NULL;
  __pyx_pybuffer_jacp.refcount = 0;
  __pyx_pybuffernd_jacp.data = NULL;
  __pyx_pybuffernd_jacp.rcbuffer = &__pyx_pybuffer_jacp;
  __pyx_pybuffer_jacr.pybuffer.buf = NULL;
  __pyx_pybuffer_jacr.refcount = 0;
  __pyx_pybuffernd_jacr.data = NULL;
  __pyx_pybuffernd_jacr.rcbuffer = &__pyx_pybuffer_jacr;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacp, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5046, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacp.diminfo[0].strides = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacp.diminfo[0].shape = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacr, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5046, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacr.diminfo[0].strides = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacr.diminfo[0].shape = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5047
 * 
 * def _mj_jacBodyCom(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int body):
 *     mj_jacBodyCom(m.ptr, d.ptr, &jacp[0], &jacr[0], body)             # <<<<<<<<<<<<<<
 * 
 * def _mj_jacGeom(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int geom):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_jacp.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_jacp.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5047, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_jacr.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_jacr.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5047, __pyx_L1_error)
  }
  mj_jacBodyCom(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_jacp.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_jacp.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_jacr.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_jacr.diminfo[0].strides))), __pyx_v_body);

  /* "mujoco_py/generated/wrappers.pxi":5046
 *     mj_jacBody(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 * def _mj_jacBodyCom(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int body):             # <<<<<<<<<<<<<<
 *     mj_jacBodyCom(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_jacBodyCom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5049
 *     mj_jacBodyCom(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 * def _mj_jacGeom(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int geom):             # <<<<<<<<<<<<<<
 *     mj_jacGeom(m.ptr, d.ptr, &jacp[0], &jacr[0], geom)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_169_mj_jacGeom(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_169_mj_jacGeom = {"_mj_jacGeom", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_169_mj_jacGeom, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_169_mj_jacGeom(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_jacp = 0;
  PyArrayObject *__pyx_v_jacr = 0;
  int __pyx_v_geom;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_jacGeom (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_jacp,&__pyx_n_s_jacr,&__pyx_n_s_geom,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5049, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5049, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacGeom", 1, 5, 5, 1); __PYX_ERR(4, 5049, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacp)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5049, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacGeom", 1, 5, 5, 2); __PYX_ERR(4, 5049, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacr)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5049, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacGeom", 1, 5, 5, 3); __PYX_ERR(4, 5049, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_geom)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5049, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacGeom", 1, 5, 5, 4); __PYX_ERR(4, 5049, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_jacGeom") < 0)) __PYX_ERR(4, 5049, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_jacp = ((PyArrayObject *)values[2]);
    __pyx_v_jacr = ((PyArrayObject *)values[3]);
    __pyx_v_geom = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_geom == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5049, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_jacGeom", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5049, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_jacGeom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5049, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5049, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacp), __pyx_ptype_5numpy_ndarray, 1, "jacp", 0))) __PYX_ERR(4, 5049, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacr), __pyx_ptype_5numpy_ndarray, 1, "jacr", 0))) __PYX_ERR(4, 5049, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_168_mj_jacGeom(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_jacp, __pyx_v_jacr, __pyx_v_geom);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_168_mj_jacGeom(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_jacp, PyArrayObject *__pyx_v_jacr, int __pyx_v_geom) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacp;
  __Pyx_Buffer __pyx_pybuffer_jacp;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacr;
  __Pyx_Buffer __pyx_pybuffer_jacr;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_jacGeom", 1);
  __pyx_pybuffer_jacp.pybuffer.buf = NULL;
  __pyx_pybuffer_jacp.refcount = 0;
  __pyx_pybuffernd_jacp.data = NULL;
  __pyx_pybuffernd_jacp.rcbuffer = &__pyx_pybuffer_jacp;
  __pyx_pybuffer_jacr.pybuffer.buf = NULL;
  __pyx_pybuffer_jacr.refcount = 0;
  __pyx_pybuffernd_jacr.data = NULL;
  __pyx_pybuffernd_jacr.rcbuffer = &__pyx_pybuffer_jacr;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacp, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5049, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacp.diminfo[0].strides = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacp.diminfo[0].shape = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacr, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5049, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacr.diminfo[0].strides = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacr.diminfo[0].shape = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5050
 * 
 * def _mj_jacGeom(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int geom):
 *     mj_jacGeom(m.ptr, d.ptr, &jacp[0], &jacr[0], geom)             # <<<<<<<<<<<<<<
 * 
 * def _mj_jacSite(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int site):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_jacp.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_jacp.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5050, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_jacr.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_jacr.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5050, __pyx_L1_error)
  }
  mj_jacGeom(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_jacp.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_jacp.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_jacr.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_jacr.diminfo[0].strides))), __pyx_v_geom);

  /* "mujoco_py/generated/wrappers.pxi":5049
 *     mj_jacBodyCom(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 * def _mj_jacGeom(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int geom):             # <<<<<<<<<<<<<<
 *     mj_jacGeom(m.ptr, d.ptr, &jacp[0], &jacr[0], geom)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_jacGeom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5052
 *     mj_jacGeom(m.ptr, d.ptr, &jacp[0], &jacr[0], geom)
 * 
 * def _mj_jacSite(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int site):             # <<<<<<<<<<<<<<
 *     mj_jacSite(m.ptr, d.ptr, &jacp[0], &jacr[0], site)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_171_mj_jacSite(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_171_mj_jacSite = {"_mj_jacSite", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_171_mj_jacSite, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_171_mj_jacSite(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_jacp = 0;
  PyArrayObject *__pyx_v_jacr = 0;
  int __pyx_v_site;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_jacSite (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_jacp,&__pyx_n_s_jacr,&__pyx_n_s_site,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5052, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5052, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacSite", 1, 5, 5, 1); __PYX_ERR(4, 5052, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacp)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5052, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacSite", 1, 5, 5, 2); __PYX_ERR(4, 5052, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacr)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5052, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacSite", 1, 5, 5, 3); __PYX_ERR(4, 5052, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_site)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5052, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacSite", 1, 5, 5, 4); __PYX_ERR(4, 5052, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_jacSite") < 0)) __PYX_ERR(4, 5052, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_jacp = ((PyArrayObject *)values[2]);
    __pyx_v_jacr = ((PyArrayObject *)values[3]);
    __pyx_v_site = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_site == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5052, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_jacSite", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5052, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_jacSite", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5052, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5052, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacp), __pyx_ptype_5numpy_ndarray, 1, "jacp", 0))) __PYX_ERR(4, 5052, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacr), __pyx_ptype_5numpy_ndarray, 1, "jacr", 0))) __PYX_ERR(4, 5052, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_170_mj_jacSite(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_jacp, __pyx_v_jacr, __pyx_v_site);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_170_mj_jacSite(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_jacp, PyArrayObject *__pyx_v_jacr, int __pyx_v_site) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacp;
  __Pyx_Buffer __pyx_pybuffer_jacp;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacr;
  __Pyx_Buffer __pyx_pybuffer_jacr;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_jacSite", 1);
  __pyx_pybuffer_jacp.pybuffer.buf = NULL;
  __pyx_pybuffer_jacp.refcount = 0;
  __pyx_pybuffernd_jacp.data = NULL;
  __pyx_pybuffernd_jacp.rcbuffer = &__pyx_pybuffer_jacp;
  __pyx_pybuffer_jacr.pybuffer.buf = NULL;
  __pyx_pybuffer_jacr.refcount = 0;
  __pyx_pybuffernd_jacr.data = NULL;
  __pyx_pybuffernd_jacr.rcbuffer = &__pyx_pybuffer_jacr;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacp, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5052, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacp.diminfo[0].strides = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacp.diminfo[0].shape = __pyx_pybuffernd_jacp.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacr, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5052, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacr.diminfo[0].strides = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacr.diminfo[0].shape = __pyx_pybuffernd_jacr.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5053
 * 
 * def _mj_jacSite(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int site):
 *     mj_jacSite(m.ptr, d.ptr, &jacp[0], &jacr[0], site)             # <<<<<<<<<<<<<<
 * 
 * def _mj_jacPointAxis(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacPoint, np.ndarray[np.float64_t, mode="c", ndim=1] jacAxis, np.ndarray[np.float64_t, mode="c", ndim=1] point, np.ndarray[np.float64_t, mode="c", ndim=1] axis, int body):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_jacp.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_jacp.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5053, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_jacr.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_jacr.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5053, __pyx_L1_error)
  }
  mj_jacSite(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_jacp.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_jacp.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_jacr.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_jacr.diminfo[0].strides))), __pyx_v_site);

  /* "mujoco_py/generated/wrappers.pxi":5052
 *     mj_jacGeom(m.ptr, d.ptr, &jacp[0], &jacr[0], geom)
 * 
 * def _mj_jacSite(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int site):             # <<<<<<<<<<<<<<
 *     mj_jacSite(m.ptr, d.ptr, &jacp[0], &jacr[0], site)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_jacSite", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacp.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacr.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5055
 *     mj_jacSite(m.ptr, d.ptr, &jacp[0], &jacr[0], site)
 * 
 * def _mj_jacPointAxis(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacPoint, np.ndarray[np.float64_t, mode="c", ndim=1] jacAxis, np.ndarray[np.float64_t, mode="c", ndim=1] point, np.ndarray[np.float64_t, mode="c", ndim=1] axis, int body):             # <<<<<<<<<<<<<<
 *     mj_jacPointAxis(m.ptr, d.ptr, &jacPoint[0], &jacAxis[0], &point[0], &axis[0], body)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_173_mj_jacPointAxis(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_173_mj_jacPointAxis = {"_mj_jacPointAxis", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_173_mj_jacPointAxis, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_173_mj_jacPointAxis(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_jacPoint = 0;
  PyArrayObject *__pyx_v_jacAxis = 0;
  PyArrayObject *__pyx_v_point = 0;
  PyArrayObject *__pyx_v_axis = 0;
  int __pyx_v_body;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[7] = {0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_jacPointAxis (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_jacPoint,&__pyx_n_s_jacAxis,&__pyx_n_s_point,&__pyx_n_s_axis,&__pyx_n_s_body,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5055, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5055, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacPointAxis", 1, 7, 7, 1); __PYX_ERR(4, 5055, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacPoint)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5055, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacPointAxis", 1, 7, 7, 2); __PYX_ERR(4, 5055, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_jacAxis)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5055, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacPointAxis", 1, 7, 7, 3); __PYX_ERR(4, 5055, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_point)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5055, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacPointAxis", 1, 7, 7, 4); __PYX_ERR(4, 5055, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_axis)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5055, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacPointAxis", 1, 7, 7, 5); __PYX_ERR(4, 5055, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_body)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5055, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_jacPointAxis", 1, 7, 7, 6); __PYX_ERR(4, 5055, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_jacPointAxis") < 0)) __PYX_ERR(4, 5055, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 7)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
      values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_jacPoint = ((PyArrayObject *)values[2]);
    __pyx_v_jacAxis = ((PyArrayObject *)values[3]);
    __pyx_v_point = ((PyArrayObject *)values[4]);
    __pyx_v_axis = ((PyArrayObject *)values[5]);
    __pyx_v_body = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_body == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5055, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_jacPointAxis", 1, 7, 7, __pyx_nargs); __PYX_ERR(4, 5055, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_jacPointAxis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5055, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5055, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacPoint), __pyx_ptype_5numpy_ndarray, 1, "jacPoint", 0))) __PYX_ERR(4, 5055, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_jacAxis), __pyx_ptype_5numpy_ndarray, 1, "jacAxis", 0))) __PYX_ERR(4, 5055, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_point), __pyx_ptype_5numpy_ndarray, 1, "point", 0))) __PYX_ERR(4, 5055, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_axis), __pyx_ptype_5numpy_ndarray, 1, "axis", 0))) __PYX_ERR(4, 5055, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_172_mj_jacPointAxis(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_jacPoint, __pyx_v_jacAxis, __pyx_v_point, __pyx_v_axis, __pyx_v_body);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_172_mj_jacPointAxis(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_jacPoint, PyArrayObject *__pyx_v_jacAxis, PyArrayObject *__pyx_v_point, PyArrayObject *__pyx_v_axis, int __pyx_v_body) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_axis;
  __Pyx_Buffer __pyx_pybuffer_axis;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacAxis;
  __Pyx_Buffer __pyx_pybuffer_jacAxis;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_jacPoint;
  __Pyx_Buffer __pyx_pybuffer_jacPoint;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_point;
  __Pyx_Buffer __pyx_pybuffer_point;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_jacPointAxis", 1);
  __pyx_pybuffer_jacPoint.pybuffer.buf = NULL;
  __pyx_pybuffer_jacPoint.refcount = 0;
  __pyx_pybuffernd_jacPoint.data = NULL;
  __pyx_pybuffernd_jacPoint.rcbuffer = &__pyx_pybuffer_jacPoint;
  __pyx_pybuffer_jacAxis.pybuffer.buf = NULL;
  __pyx_pybuffer_jacAxis.refcount = 0;
  __pyx_pybuffernd_jacAxis.data = NULL;
  __pyx_pybuffernd_jacAxis.rcbuffer = &__pyx_pybuffer_jacAxis;
  __pyx_pybuffer_point.pybuffer.buf = NULL;
  __pyx_pybuffer_point.refcount = 0;
  __pyx_pybuffernd_point.data = NULL;
  __pyx_pybuffernd_point.rcbuffer = &__pyx_pybuffer_point;
  __pyx_pybuffer_axis.pybuffer.buf = NULL;
  __pyx_pybuffer_axis.refcount = 0;
  __pyx_pybuffernd_axis.data = NULL;
  __pyx_pybuffernd_axis.rcbuffer = &__pyx_pybuffer_axis;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacPoint.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacPoint, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5055, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacPoint.diminfo[0].strides = __pyx_pybuffernd_jacPoint.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacPoint.diminfo[0].shape = __pyx_pybuffernd_jacPoint.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_jacAxis.rcbuffer->pybuffer, (PyObject*)__pyx_v_jacAxis, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5055, __pyx_L1_error)
  }
  __pyx_pybuffernd_jacAxis.diminfo[0].strides = __pyx_pybuffernd_jacAxis.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_jacAxis.diminfo[0].shape = __pyx_pybuffernd_jacAxis.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_point.rcbuffer->pybuffer, (PyObject*)__pyx_v_point, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5055, __pyx_L1_error)
  }
  __pyx_pybuffernd_point.diminfo[0].strides = __pyx_pybuffernd_point.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_point.diminfo[0].shape = __pyx_pybuffernd_point.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_axis.rcbuffer->pybuffer, (PyObject*)__pyx_v_axis, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5055, __pyx_L1_error)
  }
  __pyx_pybuffernd_axis.diminfo[0].strides = __pyx_pybuffernd_axis.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_axis.diminfo[0].shape = __pyx_pybuffernd_axis.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5056
 * 
 * def _mj_jacPointAxis(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacPoint, np.ndarray[np.float64_t, mode="c", ndim=1] jacAxis, np.ndarray[np.float64_t, mode="c", ndim=1] point, np.ndarray[np.float64_t, mode="c", ndim=1] axis, int body):
 *     mj_jacPointAxis(m.ptr, d.ptr, &jacPoint[0], &jacAxis[0], &point[0], &axis[0], body)             # <<<<<<<<<<<<<<
 * 
 * def _mj_name2id(PyMjModel m, int type, str name):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_jacPoint.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_jacPoint.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5056, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_jacAxis.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_jacAxis.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5056, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_point.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_point.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5056, __pyx_L1_error)
  }
  __pyx_t_5 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_5 < 0) {
    __pyx_t_5 += __pyx_pybuffernd_axis.diminfo[0].shape;
    if (unlikely(__pyx_t_5 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_5 >= __pyx_pybuffernd_axis.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5056, __pyx_L1_error)
  }
  mj_jacPointAxis(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_jacPoint.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_jacPoint.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_jacAxis.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_jacAxis.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_point.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_point.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_axis.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_axis.diminfo[0].strides))), __pyx_v_body);

  /* "mujoco_py/generated/wrappers.pxi":5055
 *     mj_jacSite(m.ptr, d.ptr, &jacp[0], &jacr[0], site)
 * 
 * def _mj_jacPointAxis(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacPoint, np.ndarray[np.float64_t, mode="c", ndim=1] jacAxis, np.ndarray[np.float64_t, mode="c", ndim=1] point, np.ndarray[np.float64_t, mode="c", ndim=1] axis, int body):             # <<<<<<<<<<<<<<
 *     mj_jacPointAxis(m.ptr, d.ptr, &jacPoint[0], &jacAxis[0], &point[0], &axis[0], body)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_axis.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacAxis.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacPoint.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_point.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_jacPointAxis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_axis.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacAxis.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_jacPoint.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_point.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5058
 *     mj_jacPointAxis(m.ptr, d.ptr, &jacPoint[0], &jacAxis[0], &point[0], &axis[0], body)
 * 
 * def _mj_name2id(PyMjModel m, int type, str name):             # <<<<<<<<<<<<<<
 *     return mj_name2id(m.ptr, type, name.encode())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_175_mj_name2id(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_175_mj_name2id = {"_mj_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_175_mj_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_175_mj_name2id(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  int __pyx_v_type;
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_name2id (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_type,&__pyx_n_s_name,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5058, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5058, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_name2id", 1, 3, 3, 1); __PYX_ERR(4, 5058, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5058, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_name2id", 1, 3, 3, 2); __PYX_ERR(4, 5058, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_name2id") < 0)) __PYX_ERR(4, 5058, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_type = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_type == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5058, __pyx_L3_error)
    __pyx_v_name = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_name2id", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5058, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5058, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyUnicode_Type), 1, "name", 1))) __PYX_ERR(4, 5058, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_174_mj_name2id(__pyx_self, __pyx_v_m, __pyx_v_type, __pyx_v_name);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_174_mj_name2id(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, int __pyx_v_type, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_name2id", 1);

  /* "mujoco_py/generated/wrappers.pxi":5059
 * 
 * def _mj_name2id(PyMjModel m, int type, str name):
 *     return mj_name2id(m.ptr, type, name.encode())             # <<<<<<<<<<<<<<
 * 
 * def _mj_fullM(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] dst, np.ndarray[np.float64_t, mode="c", ndim=1] M):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_name == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 5059, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_name, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 5059, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyInt_From_int(mj_name2id(__pyx_v_m->ptr, __pyx_v_type, __pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5058
 *     mj_jacPointAxis(m.ptr, d.ptr, &jacPoint[0], &jacAxis[0], &point[0], &axis[0], body)
 * 
 * def _mj_name2id(PyMjModel m, int type, str name):             # <<<<<<<<<<<<<<
 *     return mj_name2id(m.ptr, type, name.encode())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_name2id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5061
 *     return mj_name2id(m.ptr, type, name.encode())
 * 
 * def _mj_fullM(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] dst, np.ndarray[np.float64_t, mode="c", ndim=1] M):             # <<<<<<<<<<<<<<
 *     mj_fullM(m.ptr, &dst[0], &M[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_177_mj_fullM(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_177_mj_fullM = {"_mj_fullM", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_177_mj_fullM, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_177_mj_fullM(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  PyArrayObject *__pyx_v_dst = 0;
  PyArrayObject *__pyx_v_M = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_fullM (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_dst,&__pyx_n_s_M,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5061, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dst)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5061, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_fullM", 1, 3, 3, 1); __PYX_ERR(4, 5061, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5061, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_fullM", 1, 3, 3, 2); __PYX_ERR(4, 5061, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_fullM") < 0)) __PYX_ERR(4, 5061, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_dst = ((PyArrayObject *)values[1]);
    __pyx_v_M = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_fullM", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5061, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_fullM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5061, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dst), __pyx_ptype_5numpy_ndarray, 1, "dst", 0))) __PYX_ERR(4, 5061, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_M), __pyx_ptype_5numpy_ndarray, 1, "M", 0))) __PYX_ERR(4, 5061, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_176_mj_fullM(__pyx_self, __pyx_v_m, __pyx_v_dst, __pyx_v_M);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_176_mj_fullM(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, PyArrayObject *__pyx_v_dst, PyArrayObject *__pyx_v_M) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_M;
  __Pyx_Buffer __pyx_pybuffer_M;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_dst;
  __Pyx_Buffer __pyx_pybuffer_dst;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_fullM", 1);
  __pyx_pybuffer_dst.pybuffer.buf = NULL;
  __pyx_pybuffer_dst.refcount = 0;
  __pyx_pybuffernd_dst.data = NULL;
  __pyx_pybuffernd_dst.rcbuffer = &__pyx_pybuffer_dst;
  __pyx_pybuffer_M.pybuffer.buf = NULL;
  __pyx_pybuffer_M.refcount = 0;
  __pyx_pybuffernd_M.data = NULL;
  __pyx_pybuffernd_M.rcbuffer = &__pyx_pybuffer_M;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dst.rcbuffer->pybuffer, (PyObject*)__pyx_v_dst, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5061, __pyx_L1_error)
  }
  __pyx_pybuffernd_dst.diminfo[0].strides = __pyx_pybuffernd_dst.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dst.diminfo[0].shape = __pyx_pybuffernd_dst.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_M.rcbuffer->pybuffer, (PyObject*)__pyx_v_M, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5061, __pyx_L1_error)
  }
  __pyx_pybuffernd_M.diminfo[0].strides = __pyx_pybuffernd_M.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_M.diminfo[0].shape = __pyx_pybuffernd_M.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5062
 * 
 * def _mj_fullM(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] dst, np.ndarray[np.float64_t, mode="c", ndim=1] M):
 *     mj_fullM(m.ptr, &dst[0], &M[0])             # <<<<<<<<<<<<<<
 * 
 * def _mj_mulM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_dst.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_dst.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5062, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_M.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_M.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5062, __pyx_L1_error)
  }
  mj_fullM(__pyx_v_m->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_dst.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_dst.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_M.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_M.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5061
 *     return mj_name2id(m.ptr, type, name.encode())
 * 
 * def _mj_fullM(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] dst, np.ndarray[np.float64_t, mode="c", ndim=1] M):             # <<<<<<<<<<<<<<
 *     mj_fullM(m.ptr, &dst[0], &M[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_M.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dst.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_fullM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_M.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dst.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5064
 *     mj_fullM(m.ptr, &dst[0], &M[0])
 * 
 * def _mj_mulM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulM(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_179_mj_mulM(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_179_mj_mulM = {"_mj_mulM", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_179_mj_mulM, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_179_mj_mulM(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_mulM (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_res,&__pyx_n_s_vec,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5064, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5064, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_mulM", 1, 4, 4, 1); __PYX_ERR(4, 5064, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5064, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_mulM", 1, 4, 4, 2); __PYX_ERR(4, 5064, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5064, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_mulM", 1, 4, 4, 3); __PYX_ERR(4, 5064, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_mulM") < 0)) __PYX_ERR(4, 5064, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_res = ((PyArrayObject *)values[2]);
    __pyx_v_vec = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_mulM", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5064, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_mulM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5064, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5064, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5064, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5064, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_178_mj_mulM(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_res, __pyx_v_vec);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_178_mj_mulM(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_mulM", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5064, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5064, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5065
 * 
 * def _mj_mulM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 *     mj_mulM(m.ptr, d.ptr, &res[0], &vec[0])             # <<<<<<<<<<<<<<
 * 
 * def _mj_mulM2(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5065, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5065, __pyx_L1_error)
  }
  mj_mulM(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5064
 *     mj_fullM(m.ptr, &dst[0], &M[0])
 * 
 * def _mj_mulM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulM(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_mulM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5067
 *     mj_mulM(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_mulM2(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulM2(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_181_mj_mulM2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_181_mj_mulM2 = {"_mj_mulM2", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_181_mj_mulM2, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_181_mj_mulM2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_mulM2 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_res,&__pyx_n_s_vec,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5067, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5067, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_mulM2", 1, 4, 4, 1); __PYX_ERR(4, 5067, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5067, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_mulM2", 1, 4, 4, 2); __PYX_ERR(4, 5067, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5067, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_mulM2", 1, 4, 4, 3); __PYX_ERR(4, 5067, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_mulM2") < 0)) __PYX_ERR(4, 5067, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_res = ((PyArrayObject *)values[2]);
    __pyx_v_vec = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_mulM2", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5067, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_mulM2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5067, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5067, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5067, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5067, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_180_mj_mulM2(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_res, __pyx_v_vec);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_180_mj_mulM2(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_mulM2", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5067, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5067, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5068
 * 
 * def _mj_mulM2(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 *     mj_mulM2(m.ptr, d.ptr, &res[0], &vec[0])             # <<<<<<<<<<<<<<
 * 
 * def _mj_addM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] dst, uintptr_t rownnz, uintptr_t rowadr, uintptr_t colind):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5068, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5068, __pyx_L1_error)
  }
  mj_mulM2(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5067
 *     mj_mulM(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_mulM2(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulM2(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_mulM2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5070
 *     mj_mulM2(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_addM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] dst, uintptr_t rownnz, uintptr_t rowadr, uintptr_t colind):             # <<<<<<<<<<<<<<
 *     mj_addM(m.ptr, d.ptr, &dst[0], <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_183_mj_addM(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_183_mj_addM = {"_mj_addM", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_183_mj_addM, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_183_mj_addM(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_dst = 0;
  uintptr_t __pyx_v_rownnz;
  uintptr_t __pyx_v_rowadr;
  uintptr_t __pyx_v_colind;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_addM (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_dst,&__pyx_n_s_rownnz,&__pyx_n_s_rowadr,&__pyx_n_s_colind,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5070, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5070, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_addM", 1, 6, 6, 1); __PYX_ERR(4, 5070, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dst)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5070, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_addM", 1, 6, 6, 2); __PYX_ERR(4, 5070, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rownnz)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5070, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_addM", 1, 6, 6, 3); __PYX_ERR(4, 5070, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rowadr)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5070, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_addM", 1, 6, 6, 4); __PYX_ERR(4, 5070, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_colind)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5070, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_addM", 1, 6, 6, 5); __PYX_ERR(4, 5070, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_addM") < 0)) __PYX_ERR(4, 5070, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_dst = ((PyArrayObject *)values[2]);
    __pyx_v_rownnz = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_rownnz == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(4, 5070, __pyx_L3_error)
    __pyx_v_rowadr = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_rowadr == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(4, 5070, __pyx_L3_error)
    __pyx_v_colind = __Pyx_PyInt_As_size_t(values[5]); if (unlikely((__pyx_v_colind == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(4, 5070, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_addM", 1, 6, 6, __pyx_nargs); __PYX_ERR(4, 5070, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_addM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5070, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5070, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dst), __pyx_ptype_5numpy_ndarray, 1, "dst", 0))) __PYX_ERR(4, 5070, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_182_mj_addM(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_dst, __pyx_v_rownnz, __pyx_v_rowadr, __pyx_v_colind);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_182_mj_addM(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_dst, uintptr_t __pyx_v_rownnz, uintptr_t __pyx_v_rowadr, uintptr_t __pyx_v_colind) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_dst;
  __Pyx_Buffer __pyx_pybuffer_dst;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_addM", 1);
  __pyx_pybuffer_dst.pybuffer.buf = NULL;
  __pyx_pybuffer_dst.refcount = 0;
  __pyx_pybuffernd_dst.data = NULL;
  __pyx_pybuffernd_dst.rcbuffer = &__pyx_pybuffer_dst;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dst.rcbuffer->pybuffer, (PyObject*)__pyx_v_dst, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5070, __pyx_L1_error)
  }
  __pyx_pybuffernd_dst.diminfo[0].strides = __pyx_pybuffernd_dst.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dst.diminfo[0].shape = __pyx_pybuffernd_dst.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5071
 * 
 * def _mj_addM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] dst, uintptr_t rownnz, uintptr_t rowadr, uintptr_t colind):
 *     mj_addM(m.ptr, d.ptr, &dst[0], <int*>rownnz, <int*>rowadr, <int*>colind)             # <<<<<<<<<<<<<<
 * 
 * def _mj_applyFT(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] torque, np.ndarray[np.float64_t, mode="c", ndim=1] point, int body, np.ndarray[np.float64_t, mode="c", ndim=1] qfrc_target):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_dst.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_dst.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5071, __pyx_L1_error)
  }
  mj_addM(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_dst.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_dst.diminfo[0].strides))), ((int *)__pyx_v_rownnz), ((int *)__pyx_v_rowadr), ((int *)__pyx_v_colind));

  /* "mujoco_py/generated/wrappers.pxi":5070
 *     mj_mulM2(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_addM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] dst, uintptr_t rownnz, uintptr_t rowadr, uintptr_t colind):             # <<<<<<<<<<<<<<
 *     mj_addM(m.ptr, d.ptr, &dst[0], <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dst.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_addM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dst.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5073
 *     mj_addM(m.ptr, d.ptr, &dst[0], <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 * def _mj_applyFT(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] torque, np.ndarray[np.float64_t, mode="c", ndim=1] point, int body, np.ndarray[np.float64_t, mode="c", ndim=1] qfrc_target):             # <<<<<<<<<<<<<<
 *     mj_applyFT(m.ptr, d.ptr, &force[0], &torque[0], &point[0], body, &qfrc_target[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_185_mj_applyFT(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_185_mj_applyFT = {"_mj_applyFT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_185_mj_applyFT, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_185_mj_applyFT(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_force = 0;
  PyArrayObject *__pyx_v_torque = 0;
  PyArrayObject *__pyx_v_point = 0;
  int __pyx_v_body;
  PyArrayObject *__pyx_v_qfrc_target = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[7] = {0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_applyFT (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_force,&__pyx_n_s_torque,&__pyx_n_s_point,&__pyx_n_s_body,&__pyx_n_s_qfrc_target,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5073, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5073, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_applyFT", 1, 7, 7, 1); __PYX_ERR(4, 5073, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_force)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5073, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_applyFT", 1, 7, 7, 2); __PYX_ERR(4, 5073, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_torque)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5073, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_applyFT", 1, 7, 7, 3); __PYX_ERR(4, 5073, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_point)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5073, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_applyFT", 1, 7, 7, 4); __PYX_ERR(4, 5073, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_body)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5073, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_applyFT", 1, 7, 7, 5); __PYX_ERR(4, 5073, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_qfrc_target)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5073, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_applyFT", 1, 7, 7, 6); __PYX_ERR(4, 5073, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_applyFT") < 0)) __PYX_ERR(4, 5073, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 7)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
      values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_force = ((PyArrayObject *)values[2]);
    __pyx_v_torque = ((PyArrayObject *)values[3]);
    __pyx_v_point = ((PyArrayObject *)values[4]);
    __pyx_v_body = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_body == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5073, __pyx_L3_error)
    __pyx_v_qfrc_target = ((PyArrayObject *)values[6]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_applyFT", 1, 7, 7, __pyx_nargs); __PYX_ERR(4, 5073, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_applyFT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5073, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5073, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_force), __pyx_ptype_5numpy_ndarray, 1, "force", 0))) __PYX_ERR(4, 5073, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_torque), __pyx_ptype_5numpy_ndarray, 1, "torque", 0))) __PYX_ERR(4, 5073, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_point), __pyx_ptype_5numpy_ndarray, 1, "point", 0))) __PYX_ERR(4, 5073, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_qfrc_target), __pyx_ptype_5numpy_ndarray, 1, "qfrc_target", 0))) __PYX_ERR(4, 5073, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_184_mj_applyFT(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_force, __pyx_v_torque, __pyx_v_point, __pyx_v_body, __pyx_v_qfrc_target);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_184_mj_applyFT(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_force, PyArrayObject *__pyx_v_torque, PyArrayObject *__pyx_v_point, int __pyx_v_body, PyArrayObject *__pyx_v_qfrc_target) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_force;
  __Pyx_Buffer __pyx_pybuffer_force;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_point;
  __Pyx_Buffer __pyx_pybuffer_point;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_qfrc_target;
  __Pyx_Buffer __pyx_pybuffer_qfrc_target;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_torque;
  __Pyx_Buffer __pyx_pybuffer_torque;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_applyFT", 1);
  __pyx_pybuffer_force.pybuffer.buf = NULL;
  __pyx_pybuffer_force.refcount = 0;
  __pyx_pybuffernd_force.data = NULL;
  __pyx_pybuffernd_force.rcbuffer = &__pyx_pybuffer_force;
  __pyx_pybuffer_torque.pybuffer.buf = NULL;
  __pyx_pybuffer_torque.refcount = 0;
  __pyx_pybuffernd_torque.data = NULL;
  __pyx_pybuffernd_torque.rcbuffer = &__pyx_pybuffer_torque;
  __pyx_pybuffer_point.pybuffer.buf = NULL;
  __pyx_pybuffer_point.refcount = 0;
  __pyx_pybuffernd_point.data = NULL;
  __pyx_pybuffernd_point.rcbuffer = &__pyx_pybuffer_point;
  __pyx_pybuffer_qfrc_target.pybuffer.buf = NULL;
  __pyx_pybuffer_qfrc_target.refcount = 0;
  __pyx_pybuffernd_qfrc_target.data = NULL;
  __pyx_pybuffernd_qfrc_target.rcbuffer = &__pyx_pybuffer_qfrc_target;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_force.rcbuffer->pybuffer, (PyObject*)__pyx_v_force, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5073, __pyx_L1_error)
  }
  __pyx_pybuffernd_force.diminfo[0].strides = __pyx_pybuffernd_force.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_force.diminfo[0].shape = __pyx_pybuffernd_force.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_torque.rcbuffer->pybuffer, (PyObject*)__pyx_v_torque, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5073, __pyx_L1_error)
  }
  __pyx_pybuffernd_torque.diminfo[0].strides = __pyx_pybuffernd_torque.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_torque.diminfo[0].shape = __pyx_pybuffernd_torque.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_point.rcbuffer->pybuffer, (PyObject*)__pyx_v_point, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5073, __pyx_L1_error)
  }
  __pyx_pybuffernd_point.diminfo[0].strides = __pyx_pybuffernd_point.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_point.diminfo[0].shape = __pyx_pybuffernd_point.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_qfrc_target.rcbuffer->pybuffer, (PyObject*)__pyx_v_qfrc_target, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5073, __pyx_L1_error)
  }
  __pyx_pybuffernd_qfrc_target.diminfo[0].strides = __pyx_pybuffernd_qfrc_target.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_qfrc_target.diminfo[0].shape = __pyx_pybuffernd_qfrc_target.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5074
 * 
 * def _mj_applyFT(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] torque, np.ndarray[np.float64_t, mode="c", ndim=1] point, int body, np.ndarray[np.float64_t, mode="c", ndim=1] qfrc_target):
 *     mj_applyFT(m.ptr, d.ptr, &force[0], &torque[0], &point[0], body, &qfrc_target[0])             # <<<<<<<<<<<<<<
 * 
 * def _mj_objectVelocity(PyMjModel m, PyMjData d, int objtype, int objid, np.ndarray[np.float64_t, mode="c", ndim=1] res, int flg_local):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_force.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_force.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5074, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_torque.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_torque.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5074, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_point.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_point.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5074, __pyx_L1_error)
  }
  __pyx_t_5 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_5 < 0) {
    __pyx_t_5 += __pyx_pybuffernd_qfrc_target.diminfo[0].shape;
    if (unlikely(__pyx_t_5 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_5 >= __pyx_pybuffernd_qfrc_target.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5074, __pyx_L1_error)
  }
  mj_applyFT(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_force.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_force.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_torque.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_torque.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_point.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_point.diminfo[0].strides))), __pyx_v_body, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_qfrc_target.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_qfrc_target.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5073
 *     mj_addM(m.ptr, d.ptr, &dst[0], <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 * def _mj_applyFT(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] torque, np.ndarray[np.float64_t, mode="c", ndim=1] point, int body, np.ndarray[np.float64_t, mode="c", ndim=1] qfrc_target):             # <<<<<<<<<<<<<<
 *     mj_applyFT(m.ptr, d.ptr, &force[0], &torque[0], &point[0], body, &qfrc_target[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_force.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_point.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qfrc_target.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_torque.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_applyFT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_force.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_point.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qfrc_target.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_torque.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5076
 *     mj_applyFT(m.ptr, d.ptr, &force[0], &torque[0], &point[0], body, &qfrc_target[0])
 * 
 * def _mj_objectVelocity(PyMjModel m, PyMjData d, int objtype, int objid, np.ndarray[np.float64_t, mode="c", ndim=1] res, int flg_local):             # <<<<<<<<<<<<<<
 *     mj_objectVelocity(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_187_mj_objectVelocity(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_187_mj_objectVelocity = {"_mj_objectVelocity", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_187_mj_objectVelocity, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_187_mj_objectVelocity(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  int __pyx_v_objtype;
  int __pyx_v_objid;
  PyArrayObject *__pyx_v_res = 0;
  int __pyx_v_flg_local;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_objectVelocity (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_objtype,&__pyx_n_s_objid,&__pyx_n_s_res,&__pyx_n_s_flg_local,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5076, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5076, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_objectVelocity", 1, 6, 6, 1); __PYX_ERR(4, 5076, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_objtype)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5076, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_objectVelocity", 1, 6, 6, 2); __PYX_ERR(4, 5076, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_objid)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5076, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_objectVelocity", 1, 6, 6, 3); __PYX_ERR(4, 5076, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5076, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_objectVelocity", 1, 6, 6, 4); __PYX_ERR(4, 5076, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flg_local)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5076, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_objectVelocity", 1, 6, 6, 5); __PYX_ERR(4, 5076, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_objectVelocity") < 0)) __PYX_ERR(4, 5076, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_objtype = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_objtype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5076, __pyx_L3_error)
    __pyx_v_objid = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_objid == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5076, __pyx_L3_error)
    __pyx_v_res = ((PyArrayObject *)values[4]);
    __pyx_v_flg_local = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_flg_local == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5076, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_objectVelocity", 1, 6, 6, __pyx_nargs); __PYX_ERR(4, 5076, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_objectVelocity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5076, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5076, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5076, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_186_mj_objectVelocity(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_objtype, __pyx_v_objid, __pyx_v_res, __pyx_v_flg_local);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_186_mj_objectVelocity(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_objtype, int __pyx_v_objid, PyArrayObject *__pyx_v_res, int __pyx_v_flg_local) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_objectVelocity", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5076, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5077
 * 
 * def _mj_objectVelocity(PyMjModel m, PyMjData d, int objtype, int objid, np.ndarray[np.float64_t, mode="c", ndim=1] res, int flg_local):
 *     mj_objectVelocity(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)             # <<<<<<<<<<<<<<
 * 
 * def _mj_objectAcceleration(PyMjModel m, PyMjData d, int objtype, int objid, np.ndarray[np.float64_t, mode="c", ndim=1] res, int flg_local):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5077, __pyx_L1_error)
  }
  mj_objectVelocity(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_objtype, __pyx_v_objid, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), __pyx_v_flg_local);

  /* "mujoco_py/generated/wrappers.pxi":5076
 *     mj_applyFT(m.ptr, d.ptr, &force[0], &torque[0], &point[0], body, &qfrc_target[0])
 * 
 * def _mj_objectVelocity(PyMjModel m, PyMjData d, int objtype, int objid, np.ndarray[np.float64_t, mode="c", ndim=1] res, int flg_local):             # <<<<<<<<<<<<<<
 *     mj_objectVelocity(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_objectVelocity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5079
 *     mj_objectVelocity(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 * def _mj_objectAcceleration(PyMjModel m, PyMjData d, int objtype, int objid, np.ndarray[np.float64_t, mode="c", ndim=1] res, int flg_local):             # <<<<<<<<<<<<<<
 *     mj_objectAcceleration(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_189_mj_objectAcceleration(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_189_mj_objectAcceleration = {"_mj_objectAcceleration", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_189_mj_objectAcceleration, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_189_mj_objectAcceleration(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  int __pyx_v_objtype;
  int __pyx_v_objid;
  PyArrayObject *__pyx_v_res = 0;
  int __pyx_v_flg_local;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_objectAcceleration (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_objtype,&__pyx_n_s_objid,&__pyx_n_s_res,&__pyx_n_s_flg_local,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5079, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5079, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_objectAcceleration", 1, 6, 6, 1); __PYX_ERR(4, 5079, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_objtype)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5079, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_objectAcceleration", 1, 6, 6, 2); __PYX_ERR(4, 5079, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_objid)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5079, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_objectAcceleration", 1, 6, 6, 3); __PYX_ERR(4, 5079, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5079, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_objectAcceleration", 1, 6, 6, 4); __PYX_ERR(4, 5079, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flg_local)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5079, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_objectAcceleration", 1, 6, 6, 5); __PYX_ERR(4, 5079, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_objectAcceleration") < 0)) __PYX_ERR(4, 5079, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_objtype = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_objtype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5079, __pyx_L3_error)
    __pyx_v_objid = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_objid == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5079, __pyx_L3_error)
    __pyx_v_res = ((PyArrayObject *)values[4]);
    __pyx_v_flg_local = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_flg_local == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5079, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_objectAcceleration", 1, 6, 6, __pyx_nargs); __PYX_ERR(4, 5079, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_objectAcceleration", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5079, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5079, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5079, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_188_mj_objectAcceleration(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_objtype, __pyx_v_objid, __pyx_v_res, __pyx_v_flg_local);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_188_mj_objectAcceleration(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_objtype, int __pyx_v_objid, PyArrayObject *__pyx_v_res, int __pyx_v_flg_local) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_objectAcceleration", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5079, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5080
 * 
 * def _mj_objectAcceleration(PyMjModel m, PyMjData d, int objtype, int objid, np.ndarray[np.float64_t, mode="c", ndim=1] res, int flg_local):
 *     mj_objectAcceleration(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)             # <<<<<<<<<<<<<<
 * 
 * def _mj_contactForce(PyMjModel m, PyMjData d, int id, np.ndarray[np.float64_t, mode="c", ndim=1] result):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5080, __pyx_L1_error)
  }
  mj_objectAcceleration(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_objtype, __pyx_v_objid, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), __pyx_v_flg_local);

  /* "mujoco_py/generated/wrappers.pxi":5079
 *     mj_objectVelocity(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 * def _mj_objectAcceleration(PyMjModel m, PyMjData d, int objtype, int objid, np.ndarray[np.float64_t, mode="c", ndim=1] res, int flg_local):             # <<<<<<<<<<<<<<
 *     mj_objectAcceleration(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_objectAcceleration", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5082
 *     mj_objectAcceleration(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 * def _mj_contactForce(PyMjModel m, PyMjData d, int id, np.ndarray[np.float64_t, mode="c", ndim=1] result):             # <<<<<<<<<<<<<<
 *     mj_contactForce(m.ptr, d.ptr, id, &result[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_191_mj_contactForce(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_191_mj_contactForce = {"_mj_contactForce", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_191_mj_contactForce, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_191_mj_contactForce(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  int __pyx_v_id;
  PyArrayObject *__pyx_v_result = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_contactForce (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_id,&__pyx_n_s_result,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5082, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5082, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_contactForce", 1, 4, 4, 1); __PYX_ERR(4, 5082, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5082, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_contactForce", 1, 4, 4, 2); __PYX_ERR(4, 5082, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_result)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5082, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_contactForce", 1, 4, 4, 3); __PYX_ERR(4, 5082, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_contactForce") < 0)) __PYX_ERR(4, 5082, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_id = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_id == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5082, __pyx_L3_error)
    __pyx_v_result = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_contactForce", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5082, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_contactForce", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5082, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5082, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result), __pyx_ptype_5numpy_ndarray, 1, "result", 0))) __PYX_ERR(4, 5082, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_190_mj_contactForce(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_id, __pyx_v_result);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_190_mj_contactForce(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_id, PyArrayObject *__pyx_v_result) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_contactForce", 1);
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5082, __pyx_L1_error)
  }
  __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5083
 * 
 * def _mj_contactForce(PyMjModel m, PyMjData d, int id, np.ndarray[np.float64_t, mode="c", ndim=1] result):
 *     mj_contactForce(m.ptr, d.ptr, id, &result[0])             # <<<<<<<<<<<<<<
 * 
 * def _mj_differentiatePos(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qvel, float dt, np.ndarray[np.float64_t, mode="c", ndim=1] qpos1, np.ndarray[np.float64_t, mode="c", ndim=1] qpos2):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_result.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_result.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5083, __pyx_L1_error)
  }
  mj_contactForce(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_id, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_result.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5082
 *     mj_objectAcceleration(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 * def _mj_contactForce(PyMjModel m, PyMjData d, int id, np.ndarray[np.float64_t, mode="c", ndim=1] result):             # <<<<<<<<<<<<<<
 *     mj_contactForce(m.ptr, d.ptr, id, &result[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_contactForce", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5085
 *     mj_contactForce(m.ptr, d.ptr, id, &result[0])
 * 
 * def _mj_differentiatePos(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qvel, float dt, np.ndarray[np.float64_t, mode="c", ndim=1] qpos1, np.ndarray[np.float64_t, mode="c", ndim=1] qpos2):             # <<<<<<<<<<<<<<
 *     mj_differentiatePos(m.ptr, &qvel[0], dt, &qpos1[0], &qpos2[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_193_mj_differentiatePos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_193_mj_differentiatePos = {"_mj_differentiatePos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_193_mj_differentiatePos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_193_mj_differentiatePos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  PyArrayObject *__pyx_v_qvel = 0;
  float __pyx_v_dt;
  PyArrayObject *__pyx_v_qpos1 = 0;
  PyArrayObject *__pyx_v_qpos2 = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_differentiatePos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_qvel,&__pyx_n_s_dt,&__pyx_n_s_qpos1,&__pyx_n_s_qpos2,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_qvel)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_differentiatePos", 1, 5, 5, 1); __PYX_ERR(4, 5085, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_differentiatePos", 1, 5, 5, 2); __PYX_ERR(4, 5085, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_qpos1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_differentiatePos", 1, 5, 5, 3); __PYX_ERR(4, 5085, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_qpos2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_differentiatePos", 1, 5, 5, 4); __PYX_ERR(4, 5085, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_differentiatePos") < 0)) __PYX_ERR(4, 5085, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_qvel = ((PyArrayObject *)values[1]);
    __pyx_v_dt = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_dt == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error)
    __pyx_v_qpos1 = ((PyArrayObject *)values[3]);
    __pyx_v_qpos2 = ((PyArrayObject *)values[4]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_differentiatePos", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5085, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_differentiatePos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5085, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_qvel), __pyx_ptype_5numpy_ndarray, 1, "qvel", 0))) __PYX_ERR(4, 5085, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_qpos1), __pyx_ptype_5numpy_ndarray, 1, "qpos1", 0))) __PYX_ERR(4, 5085, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_qpos2), __pyx_ptype_5numpy_ndarray, 1, "qpos2", 0))) __PYX_ERR(4, 5085, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_192_mj_differentiatePos(__pyx_self, __pyx_v_m, __pyx_v_qvel, __pyx_v_dt, __pyx_v_qpos1, __pyx_v_qpos2);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_192_mj_differentiatePos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, PyArrayObject *__pyx_v_qvel, float __pyx_v_dt, PyArrayObject *__pyx_v_qpos1, PyArrayObject *__pyx_v_qpos2) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_qpos1;
  __Pyx_Buffer __pyx_pybuffer_qpos1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_qpos2;
  __Pyx_Buffer __pyx_pybuffer_qpos2;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_qvel;
  __Pyx_Buffer __pyx_pybuffer_qvel;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_differentiatePos", 1);
  __pyx_pybuffer_qvel.pybuffer.buf = NULL;
  __pyx_pybuffer_qvel.refcount = 0;
  __pyx_pybuffernd_qvel.data = NULL;
  __pyx_pybuffernd_qvel.rcbuffer = &__pyx_pybuffer_qvel;
  __pyx_pybuffer_qpos1.pybuffer.buf = NULL;
  __pyx_pybuffer_qpos1.refcount = 0;
  __pyx_pybuffernd_qpos1.data = NULL;
  __pyx_pybuffernd_qpos1.rcbuffer = &__pyx_pybuffer_qpos1;
  __pyx_pybuffer_qpos2.pybuffer.buf = NULL;
  __pyx_pybuffer_qpos2.refcount = 0;
  __pyx_pybuffernd_qpos2.data = NULL;
  __pyx_pybuffernd_qpos2.rcbuffer = &__pyx_pybuffer_qpos2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_qvel.rcbuffer->pybuffer, (PyObject*)__pyx_v_qvel, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5085, __pyx_L1_error)
  }
  __pyx_pybuffernd_qvel.diminfo[0].strides = __pyx_pybuffernd_qvel.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_qvel.diminfo[0].shape = __pyx_pybuffernd_qvel.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_qpos1.rcbuffer->pybuffer, (PyObject*)__pyx_v_qpos1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5085, __pyx_L1_error)
  }
  __pyx_pybuffernd_qpos1.diminfo[0].strides = __pyx_pybuffernd_qpos1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_qpos1.diminfo[0].shape = __pyx_pybuffernd_qpos1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_qpos2.rcbuffer->pybuffer, (PyObject*)__pyx_v_qpos2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5085, __pyx_L1_error)
  }
  __pyx_pybuffernd_qpos2.diminfo[0].strides = __pyx_pybuffernd_qpos2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_qpos2.diminfo[0].shape = __pyx_pybuffernd_qpos2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5086
 * 
 * def _mj_differentiatePos(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qvel, float dt, np.ndarray[np.float64_t, mode="c", ndim=1] qpos1, np.ndarray[np.float64_t, mode="c", ndim=1] qpos2):
 *     mj_differentiatePos(m.ptr, &qvel[0], dt, &qpos1[0], &qpos2[0])             # <<<<<<<<<<<<<<
 * 
 * def _mj_integratePos(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qpos, np.ndarray[np.float64_t, mode="c", ndim=1] qvel, float dt):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_qvel.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_qvel.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5086, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_qpos1.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_qpos1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5086, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_qpos2.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_qpos2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5086, __pyx_L1_error)
  }
  mj_differentiatePos(__pyx_v_m->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_qvel.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_qvel.diminfo[0].strides))), __pyx_v_dt, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_qpos1.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_qpos1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_qpos2.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_qpos2.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5085
 *     mj_contactForce(m.ptr, d.ptr, id, &result[0])
 * 
 * def _mj_differentiatePos(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qvel, float dt, np.ndarray[np.float64_t, mode="c", ndim=1] qpos1, np.ndarray[np.float64_t, mode="c", ndim=1] qpos2):             # <<<<<<<<<<<<<<
 *     mj_differentiatePos(m.ptr, &qvel[0], dt, &qpos1[0], &qpos2[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qpos1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qpos2.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qvel.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_differentiatePos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qpos1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qpos2.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qvel.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5088
 *     mj_differentiatePos(m.ptr, &qvel[0], dt, &qpos1[0], &qpos2[0])
 * 
 * def _mj_integratePos(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qpos, np.ndarray[np.float64_t, mode="c", ndim=1] qvel, float dt):             # <<<<<<<<<<<<<<
 *     mj_integratePos(m.ptr, &qpos[0], &qvel[0], dt)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_195_mj_integratePos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_195_mj_integratePos = {"_mj_integratePos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_195_mj_integratePos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_195_mj_integratePos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  PyArrayObject *__pyx_v_qpos = 0;
  PyArrayObject *__pyx_v_qvel = 0;
  float __pyx_v_dt;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_integratePos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_qpos,&__pyx_n_s_qvel,&__pyx_n_s_dt,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5088, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_qpos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5088, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_integratePos", 1, 4, 4, 1); __PYX_ERR(4, 5088, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_qvel)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5088, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_integratePos", 1, 4, 4, 2); __PYX_ERR(4, 5088, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5088, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_integratePos", 1, 4, 4, 3); __PYX_ERR(4, 5088, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_integratePos") < 0)) __PYX_ERR(4, 5088, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_qpos = ((PyArrayObject *)values[1]);
    __pyx_v_qvel = ((PyArrayObject *)values[2]);
    __pyx_v_dt = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_dt == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5088, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_integratePos", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5088, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_integratePos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5088, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_qpos), __pyx_ptype_5numpy_ndarray, 1, "qpos", 0))) __PYX_ERR(4, 5088, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_qvel), __pyx_ptype_5numpy_ndarray, 1, "qvel", 0))) __PYX_ERR(4, 5088, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_194_mj_integratePos(__pyx_self, __pyx_v_m, __pyx_v_qpos, __pyx_v_qvel, __pyx_v_dt);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_194_mj_integratePos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, PyArrayObject *__pyx_v_qpos, PyArrayObject *__pyx_v_qvel, float __pyx_v_dt) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_qpos;
  __Pyx_Buffer __pyx_pybuffer_qpos;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_qvel;
  __Pyx_Buffer __pyx_pybuffer_qvel;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_integratePos", 1);
  __pyx_pybuffer_qpos.pybuffer.buf = NULL;
  __pyx_pybuffer_qpos.refcount = 0;
  __pyx_pybuffernd_qpos.data = NULL;
  __pyx_pybuffernd_qpos.rcbuffer = &__pyx_pybuffer_qpos;
  __pyx_pybuffer_qvel.pybuffer.buf = NULL;
  __pyx_pybuffer_qvel.refcount = 0;
  __pyx_pybuffernd_qvel.data = NULL;
  __pyx_pybuffernd_qvel.rcbuffer = &__pyx_pybuffer_qvel;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_qpos.rcbuffer->pybuffer, (PyObject*)__pyx_v_qpos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5088, __pyx_L1_error)
  }
  __pyx_pybuffernd_qpos.diminfo[0].strides = __pyx_pybuffernd_qpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_qpos.diminfo[0].shape = __pyx_pybuffernd_qpos.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_qvel.rcbuffer->pybuffer, (PyObject*)__pyx_v_qvel, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5088, __pyx_L1_error)
  }
  __pyx_pybuffernd_qvel.diminfo[0].strides = __pyx_pybuffernd_qvel.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_qvel.diminfo[0].shape = __pyx_pybuffernd_qvel.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5089
 * 
 * def _mj_integratePos(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qpos, np.ndarray[np.float64_t, mode="c", ndim=1] qvel, float dt):
 *     mj_integratePos(m.ptr, &qpos[0], &qvel[0], dt)             # <<<<<<<<<<<<<<
 * 
 * def _mj_normalizeQuat(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qpos):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_qpos.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_qpos.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5089, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_qvel.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_qvel.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5089, __pyx_L1_error)
  }
  mj_integratePos(__pyx_v_m->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_qpos.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_qpos.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_qvel.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_qvel.diminfo[0].strides))), __pyx_v_dt);

  /* "mujoco_py/generated/wrappers.pxi":5088
 *     mj_differentiatePos(m.ptr, &qvel[0], dt, &qpos1[0], &qpos2[0])
 * 
 * def _mj_integratePos(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qpos, np.ndarray[np.float64_t, mode="c", ndim=1] qvel, float dt):             # <<<<<<<<<<<<<<
 *     mj_integratePos(m.ptr, &qpos[0], &qvel[0], dt)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qpos.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qvel.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_integratePos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qpos.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qvel.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5091
 *     mj_integratePos(m.ptr, &qpos[0], &qvel[0], dt)
 * 
 * def _mj_normalizeQuat(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qpos):             # <<<<<<<<<<<<<<
 *     mj_normalizeQuat(m.ptr, &qpos[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_197_mj_normalizeQuat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_197_mj_normalizeQuat = {"_mj_normalizeQuat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_197_mj_normalizeQuat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_197_mj_normalizeQuat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  PyArrayObject *__pyx_v_qpos = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_normalizeQuat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_qpos,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5091, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_qpos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5091, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_normalizeQuat", 1, 2, 2, 1); __PYX_ERR(4, 5091, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_normalizeQuat") < 0)) __PYX_ERR(4, 5091, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_qpos = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_normalizeQuat", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5091, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_normalizeQuat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5091, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_qpos), __pyx_ptype_5numpy_ndarray, 1, "qpos", 0))) __PYX_ERR(4, 5091, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_196_mj_normalizeQuat(__pyx_self, __pyx_v_m, __pyx_v_qpos);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_196_mj_normalizeQuat(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, PyArrayObject *__pyx_v_qpos) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_qpos;
  __Pyx_Buffer __pyx_pybuffer_qpos;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_normalizeQuat", 1);
  __pyx_pybuffer_qpos.pybuffer.buf = NULL;
  __pyx_pybuffer_qpos.refcount = 0;
  __pyx_pybuffernd_qpos.data = NULL;
  __pyx_pybuffernd_qpos.rcbuffer = &__pyx_pybuffer_qpos;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_qpos.rcbuffer->pybuffer, (PyObject*)__pyx_v_qpos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5091, __pyx_L1_error)
  }
  __pyx_pybuffernd_qpos.diminfo[0].strides = __pyx_pybuffernd_qpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_qpos.diminfo[0].shape = __pyx_pybuffernd_qpos.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5092
 * 
 * def _mj_normalizeQuat(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qpos):
 *     mj_normalizeQuat(m.ptr, &qpos[0])             # <<<<<<<<<<<<<<
 * 
 * def _mj_local2Global(PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] xpos, np.ndarray[np.float64_t, mode="c", ndim=1] xmat, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat, int body, int sameframe):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_qpos.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_qpos.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5092, __pyx_L1_error)
  }
  mj_normalizeQuat(__pyx_v_m->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_qpos.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_qpos.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5091
 *     mj_integratePos(m.ptr, &qpos[0], &qvel[0], dt)
 * 
 * def _mj_normalizeQuat(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qpos):             # <<<<<<<<<<<<<<
 *     mj_normalizeQuat(m.ptr, &qpos[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qpos.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_normalizeQuat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qpos.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5094
 *     mj_normalizeQuat(m.ptr, &qpos[0])
 * 
 * def _mj_local2Global(PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] xpos, np.ndarray[np.float64_t, mode="c", ndim=1] xmat, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat, int body, int sameframe):             # <<<<<<<<<<<<<<
 *     mj_local2Global(d.ptr, &xpos[0], &xmat[0], &pos[0], &quat[0], body, sameframe)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_199_mj_local2Global(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_199_mj_local2Global = {"_mj_local2Global", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_199_mj_local2Global, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_199_mj_local2Global(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_xpos = 0;
  PyArrayObject *__pyx_v_xmat = 0;
  PyArrayObject *__pyx_v_pos = 0;
  PyArrayObject *__pyx_v_quat = 0;
  int __pyx_v_body;
  int __pyx_v_sameframe;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[7] = {0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_local2Global (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_d,&__pyx_n_s_xpos,&__pyx_n_s_xmat,&__pyx_n_s_pos,&__pyx_n_s_quat,&__pyx_n_s_body,&__pyx_n_s_sameframe,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5094, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_xpos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5094, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_local2Global", 1, 7, 7, 1); __PYX_ERR(4, 5094, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_xmat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5094, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_local2Global", 1, 7, 7, 2); __PYX_ERR(4, 5094, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5094, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_local2Global", 1, 7, 7, 3); __PYX_ERR(4, 5094, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5094, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_local2Global", 1, 7, 7, 4); __PYX_ERR(4, 5094, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_body)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5094, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_local2Global", 1, 7, 7, 5); __PYX_ERR(4, 5094, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sameframe)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5094, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_local2Global", 1, 7, 7, 6); __PYX_ERR(4, 5094, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_local2Global") < 0)) __PYX_ERR(4, 5094, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 7)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
      values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
    }
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[0]);
    __pyx_v_xpos = ((PyArrayObject *)values[1]);
    __pyx_v_xmat = ((PyArrayObject *)values[2]);
    __pyx_v_pos = ((PyArrayObject *)values[3]);
    __pyx_v_quat = ((PyArrayObject *)values[4]);
    __pyx_v_body = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_body == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5094, __pyx_L3_error)
    __pyx_v_sameframe = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_sameframe == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5094, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_local2Global", 1, 7, 7, __pyx_nargs); __PYX_ERR(4, 5094, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_local2Global", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5094, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xpos), __pyx_ptype_5numpy_ndarray, 1, "xpos", 0))) __PYX_ERR(4, 5094, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xmat), __pyx_ptype_5numpy_ndarray, 1, "xmat", 0))) __PYX_ERR(4, 5094, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pos), __pyx_ptype_5numpy_ndarray, 1, "pos", 0))) __PYX_ERR(4, 5094, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat), __pyx_ptype_5numpy_ndarray, 1, "quat", 0))) __PYX_ERR(4, 5094, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_198_mj_local2Global(__pyx_self, __pyx_v_d, __pyx_v_xpos, __pyx_v_xmat, __pyx_v_pos, __pyx_v_quat, __pyx_v_body, __pyx_v_sameframe);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_198_mj_local2Global(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_xpos, PyArrayObject *__pyx_v_xmat, PyArrayObject *__pyx_v_pos, PyArrayObject *__pyx_v_quat, int __pyx_v_body, int __pyx_v_sameframe) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pos;
  __Pyx_Buffer __pyx_pybuffer_pos;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat;
  __Pyx_Buffer __pyx_pybuffer_quat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_xmat;
  __Pyx_Buffer __pyx_pybuffer_xmat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_xpos;
  __Pyx_Buffer __pyx_pybuffer_xpos;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_local2Global", 1);
  __pyx_pybuffer_xpos.pybuffer.buf = NULL;
  __pyx_pybuffer_xpos.refcount = 0;
  __pyx_pybuffernd_xpos.data = NULL;
  __pyx_pybuffernd_xpos.rcbuffer = &__pyx_pybuffer_xpos;
  __pyx_pybuffer_xmat.pybuffer.buf = NULL;
  __pyx_pybuffer_xmat.refcount = 0;
  __pyx_pybuffernd_xmat.data = NULL;
  __pyx_pybuffernd_xmat.rcbuffer = &__pyx_pybuffer_xmat;
  __pyx_pybuffer_pos.pybuffer.buf = NULL;
  __pyx_pybuffer_pos.refcount = 0;
  __pyx_pybuffernd_pos.data = NULL;
  __pyx_pybuffernd_pos.rcbuffer = &__pyx_pybuffer_pos;
  __pyx_pybuffer_quat.pybuffer.buf = NULL;
  __pyx_pybuffer_quat.refcount = 0;
  __pyx_pybuffernd_quat.data = NULL;
  __pyx_pybuffernd_quat.rcbuffer = &__pyx_pybuffer_quat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xpos.rcbuffer->pybuffer, (PyObject*)__pyx_v_xpos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5094, __pyx_L1_error)
  }
  __pyx_pybuffernd_xpos.diminfo[0].strides = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xpos.diminfo[0].shape = __pyx_pybuffernd_xpos.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_xmat.rcbuffer->pybuffer, (PyObject*)__pyx_v_xmat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5094, __pyx_L1_error)
  }
  __pyx_pybuffernd_xmat.diminfo[0].strides = __pyx_pybuffernd_xmat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_xmat.diminfo[0].shape = __pyx_pybuffernd_xmat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pos.rcbuffer->pybuffer, (PyObject*)__pyx_v_pos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5094, __pyx_L1_error)
  }
  __pyx_pybuffernd_pos.diminfo[0].strides = __pyx_pybuffernd_pos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pos.diminfo[0].shape = __pyx_pybuffernd_pos.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5094, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat.diminfo[0].strides = __pyx_pybuffernd_quat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat.diminfo[0].shape = __pyx_pybuffernd_quat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5095
 * 
 * def _mj_local2Global(PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] xpos, np.ndarray[np.float64_t, mode="c", ndim=1] xmat, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat, int body, int sameframe):
 *     mj_local2Global(d.ptr, &xpos[0], &xmat[0], &pos[0], &quat[0], body, sameframe)             # <<<<<<<<<<<<<<
 * 
 * def _mj_getTotalmass(PyMjModel m):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_xpos.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_xpos.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5095, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_xmat.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_xmat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5095, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_pos.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_pos.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5095, __pyx_L1_error)
  }
  __pyx_t_5 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_5 < 0) {
    __pyx_t_5 += __pyx_pybuffernd_quat.diminfo[0].shape;
    if (unlikely(__pyx_t_5 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_5 >= __pyx_pybuffernd_quat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5095, __pyx_L1_error)
  }
  mj_local2Global(__pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_xpos.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_xpos.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_xmat.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_xmat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_pos.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_pos.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_quat.diminfo[0].strides))), __pyx_v_body, __pyx_v_sameframe);

  /* "mujoco_py/generated/wrappers.pxi":5094
 *     mj_normalizeQuat(m.ptr, &qpos[0])
 * 
 * def _mj_local2Global(PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] xpos, np.ndarray[np.float64_t, mode="c", ndim=1] xmat, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat, int body, int sameframe):             # <<<<<<<<<<<<<<
 *     mj_local2Global(d.ptr, &xpos[0], &xmat[0], &pos[0], &quat[0], body, sameframe)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_xmat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_xpos.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_local2Global", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_xmat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_xpos.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5097
 *     mj_local2Global(d.ptr, &xpos[0], &xmat[0], &pos[0], &quat[0], body, sameframe)
 * 
 * def _mj_getTotalmass(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_getTotalmass(m.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_201_mj_getTotalmass(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_201_mj_getTotalmass = {"_mj_getTotalmass", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_201_mj_getTotalmass, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_201_mj_getTotalmass(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_getTotalmass (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5097, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_getTotalmass") < 0)) __PYX_ERR(4, 5097, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_getTotalmass", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5097, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_getTotalmass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5097, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_200_mj_getTotalmass(__pyx_self, __pyx_v_m);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_200_mj_getTotalmass(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_getTotalmass", 1);

  /* "mujoco_py/generated/wrappers.pxi":5098
 * 
 * def _mj_getTotalmass(PyMjModel m):
 *     return mj_getTotalmass(m.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mj_setTotalmass(PyMjModel m, float newmass):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(mj_getTotalmass(__pyx_v_m->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5097
 *     mj_local2Global(d.ptr, &xpos[0], &xmat[0], &pos[0], &quat[0], body, sameframe)
 * 
 * def _mj_getTotalmass(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_getTotalmass(m.ptr)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_getTotalmass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5100
 *     return mj_getTotalmass(m.ptr)
 * 
 * def _mj_setTotalmass(PyMjModel m, float newmass):             # <<<<<<<<<<<<<<
 *     mj_setTotalmass(m.ptr, newmass)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_203_mj_setTotalmass(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_203_mj_setTotalmass = {"_mj_setTotalmass", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_203_mj_setTotalmass, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_203_mj_setTotalmass(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  float __pyx_v_newmass;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_setTotalmass (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_newmass,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5100, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_newmass)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5100, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_setTotalmass", 1, 2, 2, 1); __PYX_ERR(4, 5100, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_setTotalmass") < 0)) __PYX_ERR(4, 5100, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_newmass = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_newmass == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5100, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_setTotalmass", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5100, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_setTotalmass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5100, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_202_mj_setTotalmass(__pyx_self, __pyx_v_m, __pyx_v_newmass);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_202_mj_setTotalmass(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, float __pyx_v_newmass) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_setTotalmass", 1);

  /* "mujoco_py/generated/wrappers.pxi":5101
 * 
 * def _mj_setTotalmass(PyMjModel m, float newmass):
 *     mj_setTotalmass(m.ptr, newmass)             # <<<<<<<<<<<<<<
 * 
 * def _mj_version():
 */
  mj_setTotalmass(__pyx_v_m->ptr, __pyx_v_newmass);

  /* "mujoco_py/generated/wrappers.pxi":5100
 *     return mj_getTotalmass(m.ptr)
 * 
 * def _mj_setTotalmass(PyMjModel m, float newmass):             # <<<<<<<<<<<<<<
 *     mj_setTotalmass(m.ptr, newmass)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5103
 *     mj_setTotalmass(m.ptr, newmass)
 * 
 * def _mj_version():             # <<<<<<<<<<<<<<
 *     return mj_version()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_205_mj_version(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_205_mj_version = {"_mj_version", (PyCFunction)__pyx_pw_9mujoco_py_4cymj_205_mj_version, METH_NOARGS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_205_mj_version(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_version (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_204_mj_version(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_204_mj_version(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_version", 1);

  /* "mujoco_py/generated/wrappers.pxi":5104
 * 
 * def _mj_version():
 *     return mj_version()             # <<<<<<<<<<<<<<
 * 
 * def _mj_ray(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.uint8_t, mode="c", ndim=1] geomgroup, int flg_static, int bodyexclude, uintptr_t geomid):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(mj_version()); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5103
 *     mj_setTotalmass(m.ptr, newmass)
 * 
 * def _mj_version():             # <<<<<<<<<<<<<<
 *     return mj_version()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mj_version", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5106
 *     return mj_version()
 * 
 * def _mj_ray(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.uint8_t, mode="c", ndim=1] geomgroup, int flg_static, int bodyexclude, uintptr_t geomid):             # <<<<<<<<<<<<<<
 *     return mj_ray(m.ptr, d.ptr, &pnt[0], &vec[0], &geomgroup[0], flg_static, bodyexclude, <int*>geomid)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_207_mj_ray(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_207_mj_ray = {"_mj_ray", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_207_mj_ray, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_207_mj_ray(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  PyArrayObject *__pyx_v_pnt = 0;
  PyArrayObject *__pyx_v_vec = 0;
  PyArrayObject *__pyx_v_geomgroup = 0;
  int __pyx_v_flg_static;
  int __pyx_v_bodyexclude;
  uintptr_t __pyx_v_geomid;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[8] = {0,0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_ray (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_pnt,&__pyx_n_s_vec,&__pyx_n_s_geomgroup,&__pyx_n_s_flg_static,&__pyx_n_s_bodyexclude,&__pyx_n_s_geomid,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5106, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5106, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_ray", 1, 8, 8, 1); __PYX_ERR(4, 5106, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pnt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5106, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_ray", 1, 8, 8, 2); __PYX_ERR(4, 5106, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5106, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_ray", 1, 8, 8, 3); __PYX_ERR(4, 5106, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_geomgroup)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5106, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_ray", 1, 8, 8, 4); __PYX_ERR(4, 5106, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flg_static)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5106, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_ray", 1, 8, 8, 5); __PYX_ERR(4, 5106, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_bodyexclude)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5106, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_ray", 1, 8, 8, 6); __PYX_ERR(4, 5106, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_geomid)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[7]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5106, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_ray", 1, 8, 8, 7); __PYX_ERR(4, 5106, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_ray") < 0)) __PYX_ERR(4, 5106, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 8)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
      values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
      values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_pnt = ((PyArrayObject *)values[2]);
    __pyx_v_vec = ((PyArrayObject *)values[3]);
    __pyx_v_geomgroup = ((PyArrayObject *)values[4]);
    __pyx_v_flg_static = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_flg_static == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5106, __pyx_L3_error)
    __pyx_v_bodyexclude = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_bodyexclude == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5106, __pyx_L3_error)
    __pyx_v_geomid = __Pyx_PyInt_As_size_t(values[7]); if (unlikely((__pyx_v_geomid == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(4, 5106, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_ray", 1, 8, 8, __pyx_nargs); __PYX_ERR(4, 5106, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_ray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5106, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5106, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pnt), __pyx_ptype_5numpy_ndarray, 1, "pnt", 0))) __PYX_ERR(4, 5106, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5106, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_geomgroup), __pyx_ptype_5numpy_ndarray, 1, "geomgroup", 0))) __PYX_ERR(4, 5106, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_206_mj_ray(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_pnt, __pyx_v_vec, __pyx_v_geomgroup, __pyx_v_flg_static, __pyx_v_bodyexclude, __pyx_v_geomid);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_206_mj_ray(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, PyArrayObject *__pyx_v_pnt, PyArrayObject *__pyx_v_vec, PyArrayObject *__pyx_v_geomgroup, int __pyx_v_flg_static, int __pyx_v_bodyexclude, uintptr_t __pyx_v_geomid) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_geomgroup;
  __Pyx_Buffer __pyx_pybuffer_geomgroup;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pnt;
  __Pyx_Buffer __pyx_pybuffer_pnt;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_ray", 1);
  __pyx_pybuffer_pnt.pybuffer.buf = NULL;
  __pyx_pybuffer_pnt.refcount = 0;
  __pyx_pybuffernd_pnt.data = NULL;
  __pyx_pybuffernd_pnt.rcbuffer = &__pyx_pybuffer_pnt;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  __pyx_pybuffer_geomgroup.pybuffer.buf = NULL;
  __pyx_pybuffer_geomgroup.refcount = 0;
  __pyx_pybuffernd_geomgroup.data = NULL;
  __pyx_pybuffernd_geomgroup.rcbuffer = &__pyx_pybuffer_geomgroup;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer, (PyObject*)__pyx_v_pnt, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5106, __pyx_L1_error)
  }
  __pyx_pybuffernd_pnt.diminfo[0].strides = __pyx_pybuffernd_pnt.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pnt.diminfo[0].shape = __pyx_pybuffernd_pnt.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5106, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_geomgroup.rcbuffer->pybuffer, (PyObject*)__pyx_v_geomgroup, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5106, __pyx_L1_error)
  }
  __pyx_pybuffernd_geomgroup.diminfo[0].strides = __pyx_pybuffernd_geomgroup.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_geomgroup.diminfo[0].shape = __pyx_pybuffernd_geomgroup.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5107
 * 
 * def _mj_ray(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.uint8_t, mode="c", ndim=1] geomgroup, int flg_static, int bodyexclude, uintptr_t geomid):
 *     return mj_ray(m.ptr, d.ptr, &pnt[0], &vec[0], &geomgroup[0], flg_static, bodyexclude, <int*>geomid)             # <<<<<<<<<<<<<<
 * 
 * def _mj_rayHfield(PyMjModel m, PyMjData d, int geomid, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_pnt.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_pnt.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5107, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5107, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_geomgroup.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_geomgroup.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5107, __pyx_L1_error)
  }
  __pyx_t_5 = PyFloat_FromDouble(mj_ray(__pyx_v_m->ptr, __pyx_v_d->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_pnt.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_pnt.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_geomgroup.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_geomgroup.diminfo[0].strides))), __pyx_v_flg_static, __pyx_v_bodyexclude, ((int *)__pyx_v_geomid))); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5106
 *     return mj_version()
 * 
 * def _mj_ray(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.uint8_t, mode="c", ndim=1] geomgroup, int flg_static, int bodyexclude, uintptr_t geomid):             # <<<<<<<<<<<<<<
 *     return mj_ray(m.ptr, d.ptr, &pnt[0], &vec[0], &geomgroup[0], flg_static, bodyexclude, <int*>geomid)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_geomgroup.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_ray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_geomgroup.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5109
 *     return mj_ray(m.ptr, d.ptr, &pnt[0], &vec[0], &geomgroup[0], flg_static, bodyexclude, <int*>geomid)
 * 
 * def _mj_rayHfield(PyMjModel m, PyMjData d, int geomid, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     return mj_rayHfield(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_209_mj_rayHfield(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_209_mj_rayHfield = {"_mj_rayHfield", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_209_mj_rayHfield, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_209_mj_rayHfield(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  int __pyx_v_geomid;
  PyArrayObject *__pyx_v_pnt = 0;
  PyArrayObject *__pyx_v_vec = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_rayHfield (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_geomid,&__pyx_n_s_pnt,&__pyx_n_s_vec,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5109, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5109, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_rayHfield", 1, 5, 5, 1); __PYX_ERR(4, 5109, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_geomid)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5109, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_rayHfield", 1, 5, 5, 2); __PYX_ERR(4, 5109, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pnt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5109, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_rayHfield", 1, 5, 5, 3); __PYX_ERR(4, 5109, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5109, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_rayHfield", 1, 5, 5, 4); __PYX_ERR(4, 5109, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_rayHfield") < 0)) __PYX_ERR(4, 5109, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_geomid = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_geomid == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5109, __pyx_L3_error)
    __pyx_v_pnt = ((PyArrayObject *)values[3]);
    __pyx_v_vec = ((PyArrayObject *)values[4]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_rayHfield", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5109, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_rayHfield", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5109, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5109, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pnt), __pyx_ptype_5numpy_ndarray, 1, "pnt", 0))) __PYX_ERR(4, 5109, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5109, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_208_mj_rayHfield(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_geomid, __pyx_v_pnt, __pyx_v_vec);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_208_mj_rayHfield(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_geomid, PyArrayObject *__pyx_v_pnt, PyArrayObject *__pyx_v_vec) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pnt;
  __Pyx_Buffer __pyx_pybuffer_pnt;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_rayHfield", 1);
  __pyx_pybuffer_pnt.pybuffer.buf = NULL;
  __pyx_pybuffer_pnt.refcount = 0;
  __pyx_pybuffernd_pnt.data = NULL;
  __pyx_pybuffernd_pnt.rcbuffer = &__pyx_pybuffer_pnt;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer, (PyObject*)__pyx_v_pnt, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5109, __pyx_L1_error)
  }
  __pyx_pybuffernd_pnt.diminfo[0].strides = __pyx_pybuffernd_pnt.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pnt.diminfo[0].shape = __pyx_pybuffernd_pnt.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5109, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5110
 * 
 * def _mj_rayHfield(PyMjModel m, PyMjData d, int geomid, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 *     return mj_rayHfield(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])             # <<<<<<<<<<<<<<
 * 
 * def _mj_rayMesh(PyMjModel m, PyMjData d, int geomid, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_pnt.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_pnt.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5110, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5110, __pyx_L1_error)
  }
  __pyx_t_4 = PyFloat_FromDouble(mj_rayHfield(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_geomid, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_pnt.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_pnt.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))))); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5109
 *     return mj_ray(m.ptr, d.ptr, &pnt[0], &vec[0], &geomgroup[0], flg_static, bodyexclude, <int*>geomid)
 * 
 * def _mj_rayHfield(PyMjModel m, PyMjData d, int geomid, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     return mj_rayHfield(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_rayHfield", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5112
 *     return mj_rayHfield(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 * def _mj_rayMesh(PyMjModel m, PyMjData d, int geomid, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     return mj_rayMesh(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_211_mj_rayMesh(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_211_mj_rayMesh = {"_mj_rayMesh", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_211_mj_rayMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_211_mj_rayMesh(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  int __pyx_v_geomid;
  PyArrayObject *__pyx_v_pnt = 0;
  PyArrayObject *__pyx_v_vec = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_rayMesh (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_geomid,&__pyx_n_s_pnt,&__pyx_n_s_vec,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5112, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5112, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_rayMesh", 1, 5, 5, 1); __PYX_ERR(4, 5112, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_geomid)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5112, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_rayMesh", 1, 5, 5, 2); __PYX_ERR(4, 5112, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pnt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5112, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_rayMesh", 1, 5, 5, 3); __PYX_ERR(4, 5112, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5112, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_rayMesh", 1, 5, 5, 4); __PYX_ERR(4, 5112, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_rayMesh") < 0)) __PYX_ERR(4, 5112, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_geomid = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_geomid == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5112, __pyx_L3_error)
    __pyx_v_pnt = ((PyArrayObject *)values[3]);
    __pyx_v_vec = ((PyArrayObject *)values[4]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_rayMesh", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5112, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_rayMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5112, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5112, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pnt), __pyx_ptype_5numpy_ndarray, 1, "pnt", 0))) __PYX_ERR(4, 5112, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5112, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_210_mj_rayMesh(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_geomid, __pyx_v_pnt, __pyx_v_vec);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_210_mj_rayMesh(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_geomid, PyArrayObject *__pyx_v_pnt, PyArrayObject *__pyx_v_vec) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pnt;
  __Pyx_Buffer __pyx_pybuffer_pnt;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mj_rayMesh", 1);
  __pyx_pybuffer_pnt.pybuffer.buf = NULL;
  __pyx_pybuffer_pnt.refcount = 0;
  __pyx_pybuffernd_pnt.data = NULL;
  __pyx_pybuffernd_pnt.rcbuffer = &__pyx_pybuffer_pnt;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer, (PyObject*)__pyx_v_pnt, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5112, __pyx_L1_error)
  }
  __pyx_pybuffernd_pnt.diminfo[0].strides = __pyx_pybuffernd_pnt.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pnt.diminfo[0].shape = __pyx_pybuffernd_pnt.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5112, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5113
 * 
 * def _mj_rayMesh(PyMjModel m, PyMjData d, int geomid, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 *     return mj_rayMesh(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_rayGeom(np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] size, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int geomtype):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_pnt.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_pnt.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5113, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5113, __pyx_L1_error)
  }
  __pyx_t_4 = PyFloat_FromDouble(mj_rayMesh(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_geomid, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_pnt.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_pnt.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))))); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5112
 *     return mj_rayHfield(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 * def _mj_rayMesh(PyMjModel m, PyMjData d, int geomid, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     return mj_rayMesh(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mj_rayMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5115
 *     return mj_rayMesh(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 * def _mju_rayGeom(np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] size, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int geomtype):             # <<<<<<<<<<<<<<
 *     return mju_rayGeom(&pos[0], &mat[0], &size[0], &pnt[0], &vec[0], geomtype)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_213_mju_rayGeom(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_213_mju_rayGeom = {"_mju_rayGeom", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_213_mju_rayGeom, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_213_mju_rayGeom(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_pos = 0;
  PyArrayObject *__pyx_v_mat = 0;
  PyArrayObject *__pyx_v_size = 0;
  PyArrayObject *__pyx_v_pnt = 0;
  PyArrayObject *__pyx_v_vec = 0;
  int __pyx_v_geomtype;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_rayGeom (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pos,&__pyx_n_s_mat,&__pyx_n_s_size,&__pyx_n_s_pnt,&__pyx_n_s_vec,&__pyx_n_s_geomtype,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5115, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5115, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_rayGeom", 1, 6, 6, 1); __PYX_ERR(4, 5115, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_size)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5115, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_rayGeom", 1, 6, 6, 2); __PYX_ERR(4, 5115, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pnt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5115, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_rayGeom", 1, 6, 6, 3); __PYX_ERR(4, 5115, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5115, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_rayGeom", 1, 6, 6, 4); __PYX_ERR(4, 5115, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_geomtype)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5115, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_rayGeom", 1, 6, 6, 5); __PYX_ERR(4, 5115, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_rayGeom") < 0)) __PYX_ERR(4, 5115, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_pos = ((PyArrayObject *)values[0]);
    __pyx_v_mat = ((PyArrayObject *)values[1]);
    __pyx_v_size = ((PyArrayObject *)values[2]);
    __pyx_v_pnt = ((PyArrayObject *)values[3]);
    __pyx_v_vec = ((PyArrayObject *)values[4]);
    __pyx_v_geomtype = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_geomtype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5115, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_rayGeom", 1, 6, 6, __pyx_nargs); __PYX_ERR(4, 5115, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_rayGeom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pos), __pyx_ptype_5numpy_ndarray, 1, "pos", 0))) __PYX_ERR(4, 5115, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_5numpy_ndarray, 1, "mat", 0))) __PYX_ERR(4, 5115, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_size), __pyx_ptype_5numpy_ndarray, 1, "size", 0))) __PYX_ERR(4, 5115, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pnt), __pyx_ptype_5numpy_ndarray, 1, "pnt", 0))) __PYX_ERR(4, 5115, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5115, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_212_mju_rayGeom(__pyx_self, __pyx_v_pos, __pyx_v_mat, __pyx_v_size, __pyx_v_pnt, __pyx_v_vec, __pyx_v_geomtype);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_212_mju_rayGeom(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_pos, PyArrayObject *__pyx_v_mat, PyArrayObject *__pyx_v_size, PyArrayObject *__pyx_v_pnt, PyArrayObject *__pyx_v_vec, int __pyx_v_geomtype) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat;
  __Pyx_Buffer __pyx_pybuffer_mat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pnt;
  __Pyx_Buffer __pyx_pybuffer_pnt;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pos;
  __Pyx_Buffer __pyx_pybuffer_pos;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_size;
  __Pyx_Buffer __pyx_pybuffer_size;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_rayGeom", 1);
  __pyx_pybuffer_pos.pybuffer.buf = NULL;
  __pyx_pybuffer_pos.refcount = 0;
  __pyx_pybuffernd_pos.data = NULL;
  __pyx_pybuffernd_pos.rcbuffer = &__pyx_pybuffer_pos;
  __pyx_pybuffer_mat.pybuffer.buf = NULL;
  __pyx_pybuffer_mat.refcount = 0;
  __pyx_pybuffernd_mat.data = NULL;
  __pyx_pybuffernd_mat.rcbuffer = &__pyx_pybuffer_mat;
  __pyx_pybuffer_size.pybuffer.buf = NULL;
  __pyx_pybuffer_size.refcount = 0;
  __pyx_pybuffernd_size.data = NULL;
  __pyx_pybuffernd_size.rcbuffer = &__pyx_pybuffer_size;
  __pyx_pybuffer_pnt.pybuffer.buf = NULL;
  __pyx_pybuffer_pnt.refcount = 0;
  __pyx_pybuffernd_pnt.data = NULL;
  __pyx_pybuffernd_pnt.rcbuffer = &__pyx_pybuffer_pnt;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pos.rcbuffer->pybuffer, (PyObject*)__pyx_v_pos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5115, __pyx_L1_error)
  }
  __pyx_pybuffernd_pos.diminfo[0].strides = __pyx_pybuffernd_pos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pos.diminfo[0].shape = __pyx_pybuffernd_pos.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5115, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat.diminfo[0].strides = __pyx_pybuffernd_mat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat.diminfo[0].shape = __pyx_pybuffernd_mat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_size.rcbuffer->pybuffer, (PyObject*)__pyx_v_size, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5115, __pyx_L1_error)
  }
  __pyx_pybuffernd_size.diminfo[0].strides = __pyx_pybuffernd_size.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_size.diminfo[0].shape = __pyx_pybuffernd_size.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer, (PyObject*)__pyx_v_pnt, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5115, __pyx_L1_error)
  }
  __pyx_pybuffernd_pnt.diminfo[0].strides = __pyx_pybuffernd_pnt.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pnt.diminfo[0].shape = __pyx_pybuffernd_pnt.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5115, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5116
 * 
 * def _mju_rayGeom(np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] size, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int geomtype):
 *     return mju_rayGeom(&pos[0], &mat[0], &size[0], &pnt[0], &vec[0], geomtype)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_defaultCamera(PyMjvCamera cam):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_pos.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_pos.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5116, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_mat.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_mat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5116, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_size.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_size.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5116, __pyx_L1_error)
  }
  __pyx_t_5 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_5 < 0) {
    __pyx_t_5 += __pyx_pybuffernd_pnt.diminfo[0].shape;
    if (unlikely(__pyx_t_5 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_5 >= __pyx_pybuffernd_pnt.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5116, __pyx_L1_error)
  }
  __pyx_t_6 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_6 < 0) {
    __pyx_t_6 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_6 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_6 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5116, __pyx_L1_error)
  }
  __pyx_t_7 = PyFloat_FromDouble(mju_rayGeom((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_pos.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_pos.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_mat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_size.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_size.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_pnt.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_pnt.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_vec.diminfo[0].strides))), __pyx_v_geomtype)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5115
 *     return mj_rayMesh(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 * def _mju_rayGeom(np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] size, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int geomtype):             # <<<<<<<<<<<<<<
 *     return mju_rayGeom(&pos[0], &mat[0], &size[0], &pnt[0], &vec[0], geomtype)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_7);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_size.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_rayGeom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_size.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5118
 *     return mju_rayGeom(&pos[0], &mat[0], &size[0], &pnt[0], &vec[0], geomtype)
 * 
 * def _mjv_defaultCamera(PyMjvCamera cam):             # <<<<<<<<<<<<<<
 *     mjv_defaultCamera(cam.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_215_mjv_defaultCamera(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_215_mjv_defaultCamera = {"_mjv_defaultCamera", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_215_mjv_defaultCamera, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_215_mjv_defaultCamera(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_cam = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_defaultCamera (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cam,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_cam)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5118, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_defaultCamera") < 0)) __PYX_ERR(4, 5118, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_cam = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_defaultCamera", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5118, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_defaultCamera", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cam), __pyx_ptype_9mujoco_py_4cymj_PyMjvCamera, 1, "cam", 0))) __PYX_ERR(4, 5118, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_214_mjv_defaultCamera(__pyx_self, __pyx_v_cam);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_214_mjv_defaultCamera(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_cam) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_defaultCamera", 1);

  /* "mujoco_py/generated/wrappers.pxi":5119
 * 
 * def _mjv_defaultCamera(PyMjvCamera cam):
 *     mjv_defaultCamera(cam.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_defaultPerturb(PyMjvPerturb pert):
 */
  mjv_defaultCamera(__pyx_v_cam->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5118
 *     return mju_rayGeom(&pos[0], &mat[0], &size[0], &pnt[0], &vec[0], geomtype)
 * 
 * def _mjv_defaultCamera(PyMjvCamera cam):             # <<<<<<<<<<<<<<
 *     mjv_defaultCamera(cam.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5121
 *     mjv_defaultCamera(cam.ptr)
 * 
 * def _mjv_defaultPerturb(PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_defaultPerturb(pert.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_217_mjv_defaultPerturb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_217_mjv_defaultPerturb = {"_mjv_defaultPerturb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_217_mjv_defaultPerturb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_217_mjv_defaultPerturb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_defaultPerturb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pert,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pert)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5121, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_defaultPerturb") < 0)) __PYX_ERR(4, 5121, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_pert = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_defaultPerturb", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5121, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_defaultPerturb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pert), __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb, 1, "pert", 0))) __PYX_ERR(4, 5121, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_216_mjv_defaultPerturb(__pyx_self, __pyx_v_pert);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_216_mjv_defaultPerturb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_defaultPerturb", 1);

  /* "mujoco_py/generated/wrappers.pxi":5122
 * 
 * def _mjv_defaultPerturb(PyMjvPerturb pert):
 *     mjv_defaultPerturb(pert.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_room2model(np.ndarray[np.float64_t, mode="c", ndim=1] modelpos, np.ndarray[np.float64_t, mode="c", ndim=1] modelquat, np.ndarray[np.float64_t, mode="c", ndim=1] roompos, np.ndarray[np.float64_t, mode="c", ndim=1] roomquat, PyMjvScene scn):
 */
  mjv_defaultPerturb(__pyx_v_pert->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5121
 *     mjv_defaultCamera(cam.ptr)
 * 
 * def _mjv_defaultPerturb(PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_defaultPerturb(pert.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5124
 *     mjv_defaultPerturb(pert.ptr)
 * 
 * def _mjv_room2model(np.ndarray[np.float64_t, mode="c", ndim=1] modelpos, np.ndarray[np.float64_t, mode="c", ndim=1] modelquat, np.ndarray[np.float64_t, mode="c", ndim=1] roompos, np.ndarray[np.float64_t, mode="c", ndim=1] roomquat, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_room2model(&modelpos[0], &modelquat[0], &roompos[0], &roomquat[0], scn.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_219_mjv_room2model(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_219_mjv_room2model = {"_mjv_room2model", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_219_mjv_room2model, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_219_mjv_room2model(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_modelpos = 0;
  PyArrayObject *__pyx_v_modelquat = 0;
  PyArrayObject *__pyx_v_roompos = 0;
  PyArrayObject *__pyx_v_roomquat = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_room2model (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_modelpos,&__pyx_n_s_modelquat,&__pyx_n_s_roompos,&__pyx_n_s_roomquat,&__pyx_n_s_scn,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_modelpos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5124, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_modelquat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5124, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_room2model", 1, 5, 5, 1); __PYX_ERR(4, 5124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_roompos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5124, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_room2model", 1, 5, 5, 2); __PYX_ERR(4, 5124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_roomquat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5124, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_room2model", 1, 5, 5, 3); __PYX_ERR(4, 5124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5124, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_room2model", 1, 5, 5, 4); __PYX_ERR(4, 5124, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_room2model") < 0)) __PYX_ERR(4, 5124, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_modelpos = ((PyArrayObject *)values[0]);
    __pyx_v_modelquat = ((PyArrayObject *)values[1]);
    __pyx_v_roompos = ((PyArrayObject *)values[2]);
    __pyx_v_roomquat = ((PyArrayObject *)values[3]);
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[4]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_room2model", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5124, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_room2model", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_modelpos), __pyx_ptype_5numpy_ndarray, 1, "modelpos", 0))) __PYX_ERR(4, 5124, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_modelquat), __pyx_ptype_5numpy_ndarray, 1, "modelquat", 0))) __PYX_ERR(4, 5124, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_roompos), __pyx_ptype_5numpy_ndarray, 1, "roompos", 0))) __PYX_ERR(4, 5124, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_roomquat), __pyx_ptype_5numpy_ndarray, 1, "roomquat", 0))) __PYX_ERR(4, 5124, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5124, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_218_mjv_room2model(__pyx_self, __pyx_v_modelpos, __pyx_v_modelquat, __pyx_v_roompos, __pyx_v_roomquat, __pyx_v_scn);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_218_mjv_room2model(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_modelpos, PyArrayObject *__pyx_v_modelquat, PyArrayObject *__pyx_v_roompos, PyArrayObject *__pyx_v_roomquat, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_modelpos;
  __Pyx_Buffer __pyx_pybuffer_modelpos;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_modelquat;
  __Pyx_Buffer __pyx_pybuffer_modelquat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_roompos;
  __Pyx_Buffer __pyx_pybuffer_roompos;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_roomquat;
  __Pyx_Buffer __pyx_pybuffer_roomquat;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mjv_room2model", 1);
  __pyx_pybuffer_modelpos.pybuffer.buf = NULL;
  __pyx_pybuffer_modelpos.refcount = 0;
  __pyx_pybuffernd_modelpos.data = NULL;
  __pyx_pybuffernd_modelpos.rcbuffer = &__pyx_pybuffer_modelpos;
  __pyx_pybuffer_modelquat.pybuffer.buf = NULL;
  __pyx_pybuffer_modelquat.refcount = 0;
  __pyx_pybuffernd_modelquat.data = NULL;
  __pyx_pybuffernd_modelquat.rcbuffer = &__pyx_pybuffer_modelquat;
  __pyx_pybuffer_roompos.pybuffer.buf = NULL;
  __pyx_pybuffer_roompos.refcount = 0;
  __pyx_pybuffernd_roompos.data = NULL;
  __pyx_pybuffernd_roompos.rcbuffer = &__pyx_pybuffer_roompos;
  __pyx_pybuffer_roomquat.pybuffer.buf = NULL;
  __pyx_pybuffer_roomquat.refcount = 0;
  __pyx_pybuffernd_roomquat.data = NULL;
  __pyx_pybuffernd_roomquat.rcbuffer = &__pyx_pybuffer_roomquat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_modelpos.rcbuffer->pybuffer, (PyObject*)__pyx_v_modelpos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5124, __pyx_L1_error)
  }
  __pyx_pybuffernd_modelpos.diminfo[0].strides = __pyx_pybuffernd_modelpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_modelpos.diminfo[0].shape = __pyx_pybuffernd_modelpos.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_modelquat.rcbuffer->pybuffer, (PyObject*)__pyx_v_modelquat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5124, __pyx_L1_error)
  }
  __pyx_pybuffernd_modelquat.diminfo[0].strides = __pyx_pybuffernd_modelquat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_modelquat.diminfo[0].shape = __pyx_pybuffernd_modelquat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_roompos.rcbuffer->pybuffer, (PyObject*)__pyx_v_roompos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5124, __pyx_L1_error)
  }
  __pyx_pybuffernd_roompos.diminfo[0].strides = __pyx_pybuffernd_roompos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_roompos.diminfo[0].shape = __pyx_pybuffernd_roompos.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_roomquat.rcbuffer->pybuffer, (PyObject*)__pyx_v_roomquat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5124, __pyx_L1_error)
  }
  __pyx_pybuffernd_roomquat.diminfo[0].strides = __pyx_pybuffernd_roomquat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_roomquat.diminfo[0].shape = __pyx_pybuffernd_roomquat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5125
 * 
 * def _mjv_room2model(np.ndarray[np.float64_t, mode="c", ndim=1] modelpos, np.ndarray[np.float64_t, mode="c", ndim=1] modelquat, np.ndarray[np.float64_t, mode="c", ndim=1] roompos, np.ndarray[np.float64_t, mode="c", ndim=1] roomquat, PyMjvScene scn):
 *     mjv_room2model(&modelpos[0], &modelquat[0], &roompos[0], &roomquat[0], scn.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_model2room(np.ndarray[np.float64_t, mode="c", ndim=1] roompos, np.ndarray[np.float64_t, mode="c", ndim=1] roomquat, np.ndarray[np.float64_t, mode="c", ndim=1] modelpos, np.ndarray[np.float64_t, mode="c", ndim=1] modelquat, PyMjvScene scn):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_modelpos.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_modelpos.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5125, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_modelquat.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_modelquat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5125, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_roompos.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_roompos.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5125, __pyx_L1_error)
  }
  __pyx_t_5 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_5 < 0) {
    __pyx_t_5 += __pyx_pybuffernd_roomquat.diminfo[0].shape;
    if (unlikely(__pyx_t_5 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_5 >= __pyx_pybuffernd_roomquat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5125, __pyx_L1_error)
  }
  mjv_room2model((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_modelpos.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_modelpos.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_modelquat.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_modelquat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_roompos.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_roompos.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_roomquat.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_roomquat.diminfo[0].strides))), __pyx_v_scn->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5124
 *     mjv_defaultPerturb(pert.ptr)
 * 
 * def _mjv_room2model(np.ndarray[np.float64_t, mode="c", ndim=1] modelpos, np.ndarray[np.float64_t, mode="c", ndim=1] modelquat, np.ndarray[np.float64_t, mode="c", ndim=1] roompos, np.ndarray[np.float64_t, mode="c", ndim=1] roomquat, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_room2model(&modelpos[0], &modelquat[0], &roompos[0], &roomquat[0], scn.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_modelpos.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_modelquat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_roompos.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_roomquat.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_room2model", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_modelpos.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_modelquat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_roompos.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_roomquat.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5127
 *     mjv_room2model(&modelpos[0], &modelquat[0], &roompos[0], &roomquat[0], scn.ptr)
 * 
 * def _mjv_model2room(np.ndarray[np.float64_t, mode="c", ndim=1] roompos, np.ndarray[np.float64_t, mode="c", ndim=1] roomquat, np.ndarray[np.float64_t, mode="c", ndim=1] modelpos, np.ndarray[np.float64_t, mode="c", ndim=1] modelquat, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_model2room(&roompos[0], &roomquat[0], &modelpos[0], &modelquat[0], scn.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_221_mjv_model2room(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_221_mjv_model2room = {"_mjv_model2room", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_221_mjv_model2room, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_221_mjv_model2room(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_roompos = 0;
  PyArrayObject *__pyx_v_roomquat = 0;
  PyArrayObject *__pyx_v_modelpos = 0;
  PyArrayObject *__pyx_v_modelquat = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_model2room (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_roompos,&__pyx_n_s_roomquat,&__pyx_n_s_modelpos,&__pyx_n_s_modelquat,&__pyx_n_s_scn,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_roompos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5127, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_roomquat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5127, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_model2room", 1, 5, 5, 1); __PYX_ERR(4, 5127, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_modelpos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5127, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_model2room", 1, 5, 5, 2); __PYX_ERR(4, 5127, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_modelquat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5127, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_model2room", 1, 5, 5, 3); __PYX_ERR(4, 5127, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5127, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_model2room", 1, 5, 5, 4); __PYX_ERR(4, 5127, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_model2room") < 0)) __PYX_ERR(4, 5127, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_roompos = ((PyArrayObject *)values[0]);
    __pyx_v_roomquat = ((PyArrayObject *)values[1]);
    __pyx_v_modelpos = ((PyArrayObject *)values[2]);
    __pyx_v_modelquat = ((PyArrayObject *)values[3]);
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[4]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_model2room", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5127, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_model2room", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_roompos), __pyx_ptype_5numpy_ndarray, 1, "roompos", 0))) __PYX_ERR(4, 5127, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_roomquat), __pyx_ptype_5numpy_ndarray, 1, "roomquat", 0))) __PYX_ERR(4, 5127, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_modelpos), __pyx_ptype_5numpy_ndarray, 1, "modelpos", 0))) __PYX_ERR(4, 5127, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_modelquat), __pyx_ptype_5numpy_ndarray, 1, "modelquat", 0))) __PYX_ERR(4, 5127, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5127, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_220_mjv_model2room(__pyx_self, __pyx_v_roompos, __pyx_v_roomquat, __pyx_v_modelpos, __pyx_v_modelquat, __pyx_v_scn);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_220_mjv_model2room(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_roompos, PyArrayObject *__pyx_v_roomquat, PyArrayObject *__pyx_v_modelpos, PyArrayObject *__pyx_v_modelquat, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_modelpos;
  __Pyx_Buffer __pyx_pybuffer_modelpos;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_modelquat;
  __Pyx_Buffer __pyx_pybuffer_modelquat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_roompos;
  __Pyx_Buffer __pyx_pybuffer_roompos;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_roomquat;
  __Pyx_Buffer __pyx_pybuffer_roomquat;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mjv_model2room", 1);
  __pyx_pybuffer_roompos.pybuffer.buf = NULL;
  __pyx_pybuffer_roompos.refcount = 0;
  __pyx_pybuffernd_roompos.data = NULL;
  __pyx_pybuffernd_roompos.rcbuffer = &__pyx_pybuffer_roompos;
  __pyx_pybuffer_roomquat.pybuffer.buf = NULL;
  __pyx_pybuffer_roomquat.refcount = 0;
  __pyx_pybuffernd_roomquat.data = NULL;
  __pyx_pybuffernd_roomquat.rcbuffer = &__pyx_pybuffer_roomquat;
  __pyx_pybuffer_modelpos.pybuffer.buf = NULL;
  __pyx_pybuffer_modelpos.refcount = 0;
  __pyx_pybuffernd_modelpos.data = NULL;
  __pyx_pybuffernd_modelpos.rcbuffer = &__pyx_pybuffer_modelpos;
  __pyx_pybuffer_modelquat.pybuffer.buf = NULL;
  __pyx_pybuffer_modelquat.refcount = 0;
  __pyx_pybuffernd_modelquat.data = NULL;
  __pyx_pybuffernd_modelquat.rcbuffer = &__pyx_pybuffer_modelquat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_roompos.rcbuffer->pybuffer, (PyObject*)__pyx_v_roompos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5127, __pyx_L1_error)
  }
  __pyx_pybuffernd_roompos.diminfo[0].strides = __pyx_pybuffernd_roompos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_roompos.diminfo[0].shape = __pyx_pybuffernd_roompos.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_roomquat.rcbuffer->pybuffer, (PyObject*)__pyx_v_roomquat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5127, __pyx_L1_error)
  }
  __pyx_pybuffernd_roomquat.diminfo[0].strides = __pyx_pybuffernd_roomquat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_roomquat.diminfo[0].shape = __pyx_pybuffernd_roomquat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_modelpos.rcbuffer->pybuffer, (PyObject*)__pyx_v_modelpos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5127, __pyx_L1_error)
  }
  __pyx_pybuffernd_modelpos.diminfo[0].strides = __pyx_pybuffernd_modelpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_modelpos.diminfo[0].shape = __pyx_pybuffernd_modelpos.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_modelquat.rcbuffer->pybuffer, (PyObject*)__pyx_v_modelquat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5127, __pyx_L1_error)
  }
  __pyx_pybuffernd_modelquat.diminfo[0].strides = __pyx_pybuffernd_modelquat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_modelquat.diminfo[0].shape = __pyx_pybuffernd_modelquat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5128
 * 
 * def _mjv_model2room(np.ndarray[np.float64_t, mode="c", ndim=1] roompos, np.ndarray[np.float64_t, mode="c", ndim=1] roomquat, np.ndarray[np.float64_t, mode="c", ndim=1] modelpos, np.ndarray[np.float64_t, mode="c", ndim=1] modelquat, PyMjvScene scn):
 *     mjv_model2room(&roompos[0], &roomquat[0], &modelpos[0], &modelquat[0], scn.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_cameraInModel(np.ndarray[np.float64_t, mode="c", ndim=1] headpos, np.ndarray[np.float64_t, mode="c", ndim=1] forward, np.ndarray[np.float64_t, mode="c", ndim=1] up, PyMjvScene scn):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_roompos.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_roompos.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5128, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_roomquat.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_roomquat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5128, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_modelpos.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_modelpos.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5128, __pyx_L1_error)
  }
  __pyx_t_5 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_5 < 0) {
    __pyx_t_5 += __pyx_pybuffernd_modelquat.diminfo[0].shape;
    if (unlikely(__pyx_t_5 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_5 >= __pyx_pybuffernd_modelquat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5128, __pyx_L1_error)
  }
  mjv_model2room((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_roompos.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_roompos.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_roomquat.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_roomquat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_modelpos.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_modelpos.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_modelquat.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_modelquat.diminfo[0].strides))), __pyx_v_scn->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5127
 *     mjv_room2model(&modelpos[0], &modelquat[0], &roompos[0], &roomquat[0], scn.ptr)
 * 
 * def _mjv_model2room(np.ndarray[np.float64_t, mode="c", ndim=1] roompos, np.ndarray[np.float64_t, mode="c", ndim=1] roomquat, np.ndarray[np.float64_t, mode="c", ndim=1] modelpos, np.ndarray[np.float64_t, mode="c", ndim=1] modelquat, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_model2room(&roompos[0], &roomquat[0], &modelpos[0], &modelquat[0], scn.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_modelpos.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_modelquat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_roompos.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_roomquat.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_model2room", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_modelpos.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_modelquat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_roompos.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_roomquat.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5130
 *     mjv_model2room(&roompos[0], &roomquat[0], &modelpos[0], &modelquat[0], scn.ptr)
 * 
 * def _mjv_cameraInModel(np.ndarray[np.float64_t, mode="c", ndim=1] headpos, np.ndarray[np.float64_t, mode="c", ndim=1] forward, np.ndarray[np.float64_t, mode="c", ndim=1] up, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_cameraInModel(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_223_mjv_cameraInModel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_223_mjv_cameraInModel = {"_mjv_cameraInModel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_223_mjv_cameraInModel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_223_mjv_cameraInModel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_headpos = 0;
  PyArrayObject *__pyx_v_forward = 0;
  PyArrayObject *__pyx_v_up = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_cameraInModel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_headpos,&__pyx_n_s_forward,&__pyx_n_s_up,&__pyx_n_s_scn,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_headpos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5130, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_forward)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5130, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_cameraInModel", 1, 4, 4, 1); __PYX_ERR(4, 5130, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_up)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5130, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_cameraInModel", 1, 4, 4, 2); __PYX_ERR(4, 5130, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5130, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_cameraInModel", 1, 4, 4, 3); __PYX_ERR(4, 5130, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_cameraInModel") < 0)) __PYX_ERR(4, 5130, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_headpos = ((PyArrayObject *)values[0]);
    __pyx_v_forward = ((PyArrayObject *)values[1]);
    __pyx_v_up = ((PyArrayObject *)values[2]);
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_cameraInModel", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5130, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_cameraInModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_headpos), __pyx_ptype_5numpy_ndarray, 1, "headpos", 0))) __PYX_ERR(4, 5130, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_forward), __pyx_ptype_5numpy_ndarray, 1, "forward", 0))) __PYX_ERR(4, 5130, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_up), __pyx_ptype_5numpy_ndarray, 1, "up", 0))) __PYX_ERR(4, 5130, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5130, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_222_mjv_cameraInModel(__pyx_self, __pyx_v_headpos, __pyx_v_forward, __pyx_v_up, __pyx_v_scn);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_222_mjv_cameraInModel(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_headpos, PyArrayObject *__pyx_v_forward, PyArrayObject *__pyx_v_up, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_forward;
  __Pyx_Buffer __pyx_pybuffer_forward;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_headpos;
  __Pyx_Buffer __pyx_pybuffer_headpos;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_up;
  __Pyx_Buffer __pyx_pybuffer_up;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mjv_cameraInModel", 1);
  __pyx_pybuffer_headpos.pybuffer.buf = NULL;
  __pyx_pybuffer_headpos.refcount = 0;
  __pyx_pybuffernd_headpos.data = NULL;
  __pyx_pybuffernd_headpos.rcbuffer = &__pyx_pybuffer_headpos;
  __pyx_pybuffer_forward.pybuffer.buf = NULL;
  __pyx_pybuffer_forward.refcount = 0;
  __pyx_pybuffernd_forward.data = NULL;
  __pyx_pybuffernd_forward.rcbuffer = &__pyx_pybuffer_forward;
  __pyx_pybuffer_up.pybuffer.buf = NULL;
  __pyx_pybuffer_up.refcount = 0;
  __pyx_pybuffernd_up.data = NULL;
  __pyx_pybuffernd_up.rcbuffer = &__pyx_pybuffer_up;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_headpos.rcbuffer->pybuffer, (PyObject*)__pyx_v_headpos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5130, __pyx_L1_error)
  }
  __pyx_pybuffernd_headpos.diminfo[0].strides = __pyx_pybuffernd_headpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_headpos.diminfo[0].shape = __pyx_pybuffernd_headpos.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_forward.rcbuffer->pybuffer, (PyObject*)__pyx_v_forward, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5130, __pyx_L1_error)
  }
  __pyx_pybuffernd_forward.diminfo[0].strides = __pyx_pybuffernd_forward.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_forward.diminfo[0].shape = __pyx_pybuffernd_forward.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_up.rcbuffer->pybuffer, (PyObject*)__pyx_v_up, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5130, __pyx_L1_error)
  }
  __pyx_pybuffernd_up.diminfo[0].strides = __pyx_pybuffernd_up.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_up.diminfo[0].shape = __pyx_pybuffernd_up.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5131
 * 
 * def _mjv_cameraInModel(np.ndarray[np.float64_t, mode="c", ndim=1] headpos, np.ndarray[np.float64_t, mode="c", ndim=1] forward, np.ndarray[np.float64_t, mode="c", ndim=1] up, PyMjvScene scn):
 *     mjv_cameraInModel(&headpos[0], &forward[0], &up[0], scn.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_cameraInRoom(np.ndarray[np.float64_t, mode="c", ndim=1] headpos, np.ndarray[np.float64_t, mode="c", ndim=1] forward, np.ndarray[np.float64_t, mode="c", ndim=1] up, PyMjvScene scn):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_headpos.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_headpos.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5131, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_forward.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_forward.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5131, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_up.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_up.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5131, __pyx_L1_error)
  }
  mjv_cameraInModel((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_headpos.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_headpos.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_forward.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_forward.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_up.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_up.diminfo[0].strides))), __pyx_v_scn->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5130
 *     mjv_model2room(&roompos[0], &roomquat[0], &modelpos[0], &modelquat[0], scn.ptr)
 * 
 * def _mjv_cameraInModel(np.ndarray[np.float64_t, mode="c", ndim=1] headpos, np.ndarray[np.float64_t, mode="c", ndim=1] forward, np.ndarray[np.float64_t, mode="c", ndim=1] up, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_cameraInModel(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_forward.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_headpos.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_up.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_cameraInModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_forward.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_headpos.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_up.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5133
 *     mjv_cameraInModel(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 * def _mjv_cameraInRoom(np.ndarray[np.float64_t, mode="c", ndim=1] headpos, np.ndarray[np.float64_t, mode="c", ndim=1] forward, np.ndarray[np.float64_t, mode="c", ndim=1] up, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_cameraInRoom(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_225_mjv_cameraInRoom(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_225_mjv_cameraInRoom = {"_mjv_cameraInRoom", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_225_mjv_cameraInRoom, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_225_mjv_cameraInRoom(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_headpos = 0;
  PyArrayObject *__pyx_v_forward = 0;
  PyArrayObject *__pyx_v_up = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_cameraInRoom (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_headpos,&__pyx_n_s_forward,&__pyx_n_s_up,&__pyx_n_s_scn,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_headpos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5133, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_forward)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5133, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_cameraInRoom", 1, 4, 4, 1); __PYX_ERR(4, 5133, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_up)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5133, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_cameraInRoom", 1, 4, 4, 2); __PYX_ERR(4, 5133, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5133, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_cameraInRoom", 1, 4, 4, 3); __PYX_ERR(4, 5133, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_cameraInRoom") < 0)) __PYX_ERR(4, 5133, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_headpos = ((PyArrayObject *)values[0]);
    __pyx_v_forward = ((PyArrayObject *)values[1]);
    __pyx_v_up = ((PyArrayObject *)values[2]);
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_cameraInRoom", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5133, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_cameraInRoom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_headpos), __pyx_ptype_5numpy_ndarray, 1, "headpos", 0))) __PYX_ERR(4, 5133, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_forward), __pyx_ptype_5numpy_ndarray, 1, "forward", 0))) __PYX_ERR(4, 5133, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_up), __pyx_ptype_5numpy_ndarray, 1, "up", 0))) __PYX_ERR(4, 5133, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5133, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_224_mjv_cameraInRoom(__pyx_self, __pyx_v_headpos, __pyx_v_forward, __pyx_v_up, __pyx_v_scn);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_224_mjv_cameraInRoom(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_headpos, PyArrayObject *__pyx_v_forward, PyArrayObject *__pyx_v_up, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_forward;
  __Pyx_Buffer __pyx_pybuffer_forward;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_headpos;
  __Pyx_Buffer __pyx_pybuffer_headpos;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_up;
  __Pyx_Buffer __pyx_pybuffer_up;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mjv_cameraInRoom", 1);
  __pyx_pybuffer_headpos.pybuffer.buf = NULL;
  __pyx_pybuffer_headpos.refcount = 0;
  __pyx_pybuffernd_headpos.data = NULL;
  __pyx_pybuffernd_headpos.rcbuffer = &__pyx_pybuffer_headpos;
  __pyx_pybuffer_forward.pybuffer.buf = NULL;
  __pyx_pybuffer_forward.refcount = 0;
  __pyx_pybuffernd_forward.data = NULL;
  __pyx_pybuffernd_forward.rcbuffer = &__pyx_pybuffer_forward;
  __pyx_pybuffer_up.pybuffer.buf = NULL;
  __pyx_pybuffer_up.refcount = 0;
  __pyx_pybuffernd_up.data = NULL;
  __pyx_pybuffernd_up.rcbuffer = &__pyx_pybuffer_up;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_headpos.rcbuffer->pybuffer, (PyObject*)__pyx_v_headpos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5133, __pyx_L1_error)
  }
  __pyx_pybuffernd_headpos.diminfo[0].strides = __pyx_pybuffernd_headpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_headpos.diminfo[0].shape = __pyx_pybuffernd_headpos.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_forward.rcbuffer->pybuffer, (PyObject*)__pyx_v_forward, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5133, __pyx_L1_error)
  }
  __pyx_pybuffernd_forward.diminfo[0].strides = __pyx_pybuffernd_forward.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_forward.diminfo[0].shape = __pyx_pybuffernd_forward.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_up.rcbuffer->pybuffer, (PyObject*)__pyx_v_up, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5133, __pyx_L1_error)
  }
  __pyx_pybuffernd_up.diminfo[0].strides = __pyx_pybuffernd_up.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_up.diminfo[0].shape = __pyx_pybuffernd_up.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5134
 * 
 * def _mjv_cameraInRoom(np.ndarray[np.float64_t, mode="c", ndim=1] headpos, np.ndarray[np.float64_t, mode="c", ndim=1] forward, np.ndarray[np.float64_t, mode="c", ndim=1] up, PyMjvScene scn):
 *     mjv_cameraInRoom(&headpos[0], &forward[0], &up[0], scn.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_frustumHeight(PyMjvScene scn):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_headpos.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_headpos.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5134, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_forward.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_forward.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5134, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_up.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_up.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5134, __pyx_L1_error)
  }
  mjv_cameraInRoom((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_headpos.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_headpos.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_forward.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_forward.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_up.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_up.diminfo[0].strides))), __pyx_v_scn->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5133
 *     mjv_cameraInModel(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 * def _mjv_cameraInRoom(np.ndarray[np.float64_t, mode="c", ndim=1] headpos, np.ndarray[np.float64_t, mode="c", ndim=1] forward, np.ndarray[np.float64_t, mode="c", ndim=1] up, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_cameraInRoom(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_forward.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_headpos.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_up.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_cameraInRoom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_forward.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_headpos.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_up.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5136
 *     mjv_cameraInRoom(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 * def _mjv_frustumHeight(PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     return mjv_frustumHeight(scn.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_227_mjv_frustumHeight(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_227_mjv_frustumHeight = {"_mjv_frustumHeight", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_227_mjv_frustumHeight, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_227_mjv_frustumHeight(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_frustumHeight (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scn,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5136, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_frustumHeight") < 0)) __PYX_ERR(4, 5136, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_frustumHeight", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5136, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_frustumHeight", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5136, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_226_mjv_frustumHeight(__pyx_self, __pyx_v_scn);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_226_mjv_frustumHeight(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mjv_frustumHeight", 1);

  /* "mujoco_py/generated/wrappers.pxi":5137
 * 
 * def _mjv_frustumHeight(PyMjvScene scn):
 *     return mjv_frustumHeight(scn.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_alignToCamera(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] forward):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(mjv_frustumHeight(__pyx_v_scn->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5136
 *     mjv_cameraInRoom(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 * def _mjv_frustumHeight(PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     return mjv_frustumHeight(scn.ptr)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_frustumHeight", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5139
 *     return mjv_frustumHeight(scn.ptr)
 * 
 * def _mjv_alignToCamera(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] forward):             # <<<<<<<<<<<<<<
 *     mjv_alignToCamera(&res[0], &vec[0], &forward[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_229_mjv_alignToCamera(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_229_mjv_alignToCamera = {"_mjv_alignToCamera", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_229_mjv_alignToCamera, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_229_mjv_alignToCamera(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  PyArrayObject *__pyx_v_forward = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_alignToCamera (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec,&__pyx_n_s_forward,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5139, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5139, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_alignToCamera", 1, 3, 3, 1); __PYX_ERR(4, 5139, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_forward)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5139, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_alignToCamera", 1, 3, 3, 2); __PYX_ERR(4, 5139, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_alignToCamera") < 0)) __PYX_ERR(4, 5139, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
    __pyx_v_forward = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_alignToCamera", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5139, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_alignToCamera", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5139, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5139, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_forward), __pyx_ptype_5numpy_ndarray, 1, "forward", 0))) __PYX_ERR(4, 5139, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_228_mjv_alignToCamera(__pyx_self, __pyx_v_res, __pyx_v_vec, __pyx_v_forward);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_228_mjv_alignToCamera(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, PyArrayObject *__pyx_v_forward) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_forward;
  __Pyx_Buffer __pyx_pybuffer_forward;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mjv_alignToCamera", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  __pyx_pybuffer_forward.pybuffer.buf = NULL;
  __pyx_pybuffer_forward.refcount = 0;
  __pyx_pybuffernd_forward.data = NULL;
  __pyx_pybuffernd_forward.rcbuffer = &__pyx_pybuffer_forward;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5139, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5139, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_forward.rcbuffer->pybuffer, (PyObject*)__pyx_v_forward, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5139, __pyx_L1_error)
  }
  __pyx_pybuffernd_forward.diminfo[0].strides = __pyx_pybuffernd_forward.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_forward.diminfo[0].shape = __pyx_pybuffernd_forward.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5140
 * 
 * def _mjv_alignToCamera(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] forward):
 *     mjv_alignToCamera(&res[0], &vec[0], &forward[0])             # <<<<<<<<<<<<<<
 * 
 * def _mjv_moveCamera(PyMjModel m, int action, float reldx, float reldy, PyMjvScene scn, PyMjvCamera cam):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5140, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5140, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_forward.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_forward.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5140, __pyx_L1_error)
  }
  mjv_alignToCamera((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_forward.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_forward.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5139
 *     return mjv_frustumHeight(scn.ptr)
 * 
 * def _mjv_alignToCamera(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] forward):             # <<<<<<<<<<<<<<
 *     mjv_alignToCamera(&res[0], &vec[0], &forward[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_forward.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_alignToCamera", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_forward.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5142
 *     mjv_alignToCamera(&res[0], &vec[0], &forward[0])
 * 
 * def _mjv_moveCamera(PyMjModel m, int action, float reldx, float reldy, PyMjvScene scn, PyMjvCamera cam):             # <<<<<<<<<<<<<<
 *     mjv_moveCamera(m.ptr, action, reldx, reldy, scn.ptr, cam.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_231_mjv_moveCamera(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_231_mjv_moveCamera = {"_mjv_moveCamera", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_231_mjv_moveCamera, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_231_mjv_moveCamera(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  int __pyx_v_action;
  float __pyx_v_reldx;
  float __pyx_v_reldy;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_cam = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_moveCamera (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_action,&__pyx_n_s_reldx,&__pyx_n_s_reldy,&__pyx_n_s_scn,&__pyx_n_s_cam,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5142, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_action)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5142, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_moveCamera", 1, 6, 6, 1); __PYX_ERR(4, 5142, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_reldx)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5142, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_moveCamera", 1, 6, 6, 2); __PYX_ERR(4, 5142, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_reldy)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5142, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_moveCamera", 1, 6, 6, 3); __PYX_ERR(4, 5142, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5142, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_moveCamera", 1, 6, 6, 4); __PYX_ERR(4, 5142, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_cam)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5142, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_moveCamera", 1, 6, 6, 5); __PYX_ERR(4, 5142, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_moveCamera") < 0)) __PYX_ERR(4, 5142, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_action = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_action == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5142, __pyx_L3_error)
    __pyx_v_reldx = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_reldx == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5142, __pyx_L3_error)
    __pyx_v_reldy = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_reldy == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5142, __pyx_L3_error)
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[4]);
    __pyx_v_cam = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)values[5]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_moveCamera", 1, 6, 6, __pyx_nargs); __PYX_ERR(4, 5142, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_moveCamera", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5142, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5142, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cam), __pyx_ptype_9mujoco_py_4cymj_PyMjvCamera, 1, "cam", 0))) __PYX_ERR(4, 5142, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_230_mjv_moveCamera(__pyx_self, __pyx_v_m, __pyx_v_action, __pyx_v_reldx, __pyx_v_reldy, __pyx_v_scn, __pyx_v_cam);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_230_mjv_moveCamera(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, int __pyx_v_action, float __pyx_v_reldx, float __pyx_v_reldy, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn, struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_cam) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_moveCamera", 1);

  /* "mujoco_py/generated/wrappers.pxi":5143
 * 
 * def _mjv_moveCamera(PyMjModel m, int action, float reldx, float reldy, PyMjvScene scn, PyMjvCamera cam):
 *     mjv_moveCamera(m.ptr, action, reldx, reldy, scn.ptr, cam.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_movePerturb(PyMjModel m, PyMjData d, int action, float reldx, float reldy, PyMjvScene scn, PyMjvPerturb pert):
 */
  mjv_moveCamera(__pyx_v_m->ptr, __pyx_v_action, __pyx_v_reldx, __pyx_v_reldy, __pyx_v_scn->ptr, __pyx_v_cam->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5142
 *     mjv_alignToCamera(&res[0], &vec[0], &forward[0])
 * 
 * def _mjv_moveCamera(PyMjModel m, int action, float reldx, float reldy, PyMjvScene scn, PyMjvCamera cam):             # <<<<<<<<<<<<<<
 *     mjv_moveCamera(m.ptr, action, reldx, reldy, scn.ptr, cam.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5145
 *     mjv_moveCamera(m.ptr, action, reldx, reldy, scn.ptr, cam.ptr)
 * 
 * def _mjv_movePerturb(PyMjModel m, PyMjData d, int action, float reldx, float reldy, PyMjvScene scn, PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_movePerturb(m.ptr, d.ptr, action, reldx, reldy, scn.ptr, pert.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_233_mjv_movePerturb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_233_mjv_movePerturb = {"_mjv_movePerturb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_233_mjv_movePerturb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_233_mjv_movePerturb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  int __pyx_v_action;
  float __pyx_v_reldx;
  float __pyx_v_reldy;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[7] = {0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_movePerturb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_action,&__pyx_n_s_reldx,&__pyx_n_s_reldy,&__pyx_n_s_scn,&__pyx_n_s_pert,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5145, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5145, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_movePerturb", 1, 7, 7, 1); __PYX_ERR(4, 5145, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_action)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5145, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_movePerturb", 1, 7, 7, 2); __PYX_ERR(4, 5145, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_reldx)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5145, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_movePerturb", 1, 7, 7, 3); __PYX_ERR(4, 5145, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_reldy)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5145, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_movePerturb", 1, 7, 7, 4); __PYX_ERR(4, 5145, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5145, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_movePerturb", 1, 7, 7, 5); __PYX_ERR(4, 5145, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pert)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5145, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_movePerturb", 1, 7, 7, 6); __PYX_ERR(4, 5145, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_movePerturb") < 0)) __PYX_ERR(4, 5145, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 7)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
      values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_action = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_action == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5145, __pyx_L3_error)
    __pyx_v_reldx = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_reldx == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5145, __pyx_L3_error)
    __pyx_v_reldy = __pyx_PyFloat_AsFloat(values[4]); if (unlikely((__pyx_v_reldy == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5145, __pyx_L3_error)
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[5]);
    __pyx_v_pert = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)values[6]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_movePerturb", 1, 7, 7, __pyx_nargs); __PYX_ERR(4, 5145, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_movePerturb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5145, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5145, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5145, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pert), __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb, 1, "pert", 0))) __PYX_ERR(4, 5145, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_232_mjv_movePerturb(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_action, __pyx_v_reldx, __pyx_v_reldy, __pyx_v_scn, __pyx_v_pert);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_232_mjv_movePerturb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_action, float __pyx_v_reldx, float __pyx_v_reldy, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn, struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_movePerturb", 1);

  /* "mujoco_py/generated/wrappers.pxi":5146
 * 
 * def _mjv_movePerturb(PyMjModel m, PyMjData d, int action, float reldx, float reldy, PyMjvScene scn, PyMjvPerturb pert):
 *     mjv_movePerturb(m.ptr, d.ptr, action, reldx, reldy, scn.ptr, pert.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_moveModel(PyMjModel m, int action, float reldx, float reldy, np.ndarray[np.float64_t, mode="c", ndim=1] roomup, PyMjvScene scn):
 */
  mjv_movePerturb(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_action, __pyx_v_reldx, __pyx_v_reldy, __pyx_v_scn->ptr, __pyx_v_pert->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5145
 *     mjv_moveCamera(m.ptr, action, reldx, reldy, scn.ptr, cam.ptr)
 * 
 * def _mjv_movePerturb(PyMjModel m, PyMjData d, int action, float reldx, float reldy, PyMjvScene scn, PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_movePerturb(m.ptr, d.ptr, action, reldx, reldy, scn.ptr, pert.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5148
 *     mjv_movePerturb(m.ptr, d.ptr, action, reldx, reldy, scn.ptr, pert.ptr)
 * 
 * def _mjv_moveModel(PyMjModel m, int action, float reldx, float reldy, np.ndarray[np.float64_t, mode="c", ndim=1] roomup, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_moveModel(m.ptr, action, reldx, reldy, &roomup[0], scn.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_235_mjv_moveModel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_235_mjv_moveModel = {"_mjv_moveModel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_235_mjv_moveModel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_235_mjv_moveModel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  int __pyx_v_action;
  float __pyx_v_reldx;
  float __pyx_v_reldy;
  PyArrayObject *__pyx_v_roomup = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_moveModel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_action,&__pyx_n_s_reldx,&__pyx_n_s_reldy,&__pyx_n_s_roomup,&__pyx_n_s_scn,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5148, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_action)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5148, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_moveModel", 1, 6, 6, 1); __PYX_ERR(4, 5148, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_reldx)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5148, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_moveModel", 1, 6, 6, 2); __PYX_ERR(4, 5148, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_reldy)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5148, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_moveModel", 1, 6, 6, 3); __PYX_ERR(4, 5148, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_roomup)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5148, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_moveModel", 1, 6, 6, 4); __PYX_ERR(4, 5148, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5148, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_moveModel", 1, 6, 6, 5); __PYX_ERR(4, 5148, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_moveModel") < 0)) __PYX_ERR(4, 5148, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_action = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_action == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5148, __pyx_L3_error)
    __pyx_v_reldx = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_reldx == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5148, __pyx_L3_error)
    __pyx_v_reldy = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_reldy == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5148, __pyx_L3_error)
    __pyx_v_roomup = ((PyArrayObject *)values[4]);
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[5]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_moveModel", 1, 6, 6, __pyx_nargs); __PYX_ERR(4, 5148, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_moveModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5148, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_roomup), __pyx_ptype_5numpy_ndarray, 1, "roomup", 0))) __PYX_ERR(4, 5148, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5148, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_234_mjv_moveModel(__pyx_self, __pyx_v_m, __pyx_v_action, __pyx_v_reldx, __pyx_v_reldy, __pyx_v_roomup, __pyx_v_scn);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_234_mjv_moveModel(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, int __pyx_v_action, float __pyx_v_reldx, float __pyx_v_reldy, PyArrayObject *__pyx_v_roomup, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_roomup;
  __Pyx_Buffer __pyx_pybuffer_roomup;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mjv_moveModel", 1);
  __pyx_pybuffer_roomup.pybuffer.buf = NULL;
  __pyx_pybuffer_roomup.refcount = 0;
  __pyx_pybuffernd_roomup.data = NULL;
  __pyx_pybuffernd_roomup.rcbuffer = &__pyx_pybuffer_roomup;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_roomup.rcbuffer->pybuffer, (PyObject*)__pyx_v_roomup, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5148, __pyx_L1_error)
  }
  __pyx_pybuffernd_roomup.diminfo[0].strides = __pyx_pybuffernd_roomup.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_roomup.diminfo[0].shape = __pyx_pybuffernd_roomup.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5149
 * 
 * def _mjv_moveModel(PyMjModel m, int action, float reldx, float reldy, np.ndarray[np.float64_t, mode="c", ndim=1] roomup, PyMjvScene scn):
 *     mjv_moveModel(m.ptr, action, reldx, reldy, &roomup[0], scn.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_initPerturb(PyMjModel m, PyMjData d, PyMjvScene scn, PyMjvPerturb pert):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_roomup.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_roomup.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5149, __pyx_L1_error)
  }
  mjv_moveModel(__pyx_v_m->ptr, __pyx_v_action, __pyx_v_reldx, __pyx_v_reldy, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_roomup.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_roomup.diminfo[0].strides))), __pyx_v_scn->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5148
 *     mjv_movePerturb(m.ptr, d.ptr, action, reldx, reldy, scn.ptr, pert.ptr)
 * 
 * def _mjv_moveModel(PyMjModel m, int action, float reldx, float reldy, np.ndarray[np.float64_t, mode="c", ndim=1] roomup, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_moveModel(m.ptr, action, reldx, reldy, &roomup[0], scn.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_roomup.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_moveModel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_roomup.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5151
 *     mjv_moveModel(m.ptr, action, reldx, reldy, &roomup[0], scn.ptr)
 * 
 * def _mjv_initPerturb(PyMjModel m, PyMjData d, PyMjvScene scn, PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_initPerturb(m.ptr, d.ptr, scn.ptr, pert.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_237_mjv_initPerturb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_237_mjv_initPerturb = {"_mjv_initPerturb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_237_mjv_initPerturb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_237_mjv_initPerturb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_initPerturb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_scn,&__pyx_n_s_pert,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5151, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5151, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_initPerturb", 1, 4, 4, 1); __PYX_ERR(4, 5151, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5151, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_initPerturb", 1, 4, 4, 2); __PYX_ERR(4, 5151, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pert)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5151, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_initPerturb", 1, 4, 4, 3); __PYX_ERR(4, 5151, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_initPerturb") < 0)) __PYX_ERR(4, 5151, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[2]);
    __pyx_v_pert = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_initPerturb", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5151, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_initPerturb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5151, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5151, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5151, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pert), __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb, 1, "pert", 0))) __PYX_ERR(4, 5151, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_236_mjv_initPerturb(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_scn, __pyx_v_pert);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_236_mjv_initPerturb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn, struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_initPerturb", 1);

  /* "mujoco_py/generated/wrappers.pxi":5152
 * 
 * def _mjv_initPerturb(PyMjModel m, PyMjData d, PyMjvScene scn, PyMjvPerturb pert):
 *     mjv_initPerturb(m.ptr, d.ptr, scn.ptr, pert.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_applyPerturbPose(PyMjModel m, PyMjData d, PyMjvPerturb pert, int flg_paused):
 */
  mjv_initPerturb(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_scn->ptr, __pyx_v_pert->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5151
 *     mjv_moveModel(m.ptr, action, reldx, reldy, &roomup[0], scn.ptr)
 * 
 * def _mjv_initPerturb(PyMjModel m, PyMjData d, PyMjvScene scn, PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_initPerturb(m.ptr, d.ptr, scn.ptr, pert.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5154
 *     mjv_initPerturb(m.ptr, d.ptr, scn.ptr, pert.ptr)
 * 
 * def _mjv_applyPerturbPose(PyMjModel m, PyMjData d, PyMjvPerturb pert, int flg_paused):             # <<<<<<<<<<<<<<
 *     mjv_applyPerturbPose(m.ptr, d.ptr, pert.ptr, flg_paused)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_239_mjv_applyPerturbPose(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_239_mjv_applyPerturbPose = {"_mjv_applyPerturbPose", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_239_mjv_applyPerturbPose, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_239_mjv_applyPerturbPose(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert = 0;
  int __pyx_v_flg_paused;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_applyPerturbPose (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_pert,&__pyx_n_s_flg_paused,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5154, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5154, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_applyPerturbPose", 1, 4, 4, 1); __PYX_ERR(4, 5154, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pert)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5154, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_applyPerturbPose", 1, 4, 4, 2); __PYX_ERR(4, 5154, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flg_paused)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5154, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_applyPerturbPose", 1, 4, 4, 3); __PYX_ERR(4, 5154, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_applyPerturbPose") < 0)) __PYX_ERR(4, 5154, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_pert = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)values[2]);
    __pyx_v_flg_paused = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_flg_paused == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5154, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_applyPerturbPose", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5154, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_applyPerturbPose", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5154, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5154, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pert), __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb, 1, "pert", 0))) __PYX_ERR(4, 5154, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_238_mjv_applyPerturbPose(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_pert, __pyx_v_flg_paused);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_238_mjv_applyPerturbPose(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert, int __pyx_v_flg_paused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_applyPerturbPose", 1);

  /* "mujoco_py/generated/wrappers.pxi":5155
 * 
 * def _mjv_applyPerturbPose(PyMjModel m, PyMjData d, PyMjvPerturb pert, int flg_paused):
 *     mjv_applyPerturbPose(m.ptr, d.ptr, pert.ptr, flg_paused)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_applyPerturbForce(PyMjModel m, PyMjData d, PyMjvPerturb pert):
 */
  mjv_applyPerturbPose(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_pert->ptr, __pyx_v_flg_paused);

  /* "mujoco_py/generated/wrappers.pxi":5154
 *     mjv_initPerturb(m.ptr, d.ptr, scn.ptr, pert.ptr)
 * 
 * def _mjv_applyPerturbPose(PyMjModel m, PyMjData d, PyMjvPerturb pert, int flg_paused):             # <<<<<<<<<<<<<<
 *     mjv_applyPerturbPose(m.ptr, d.ptr, pert.ptr, flg_paused)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5157
 *     mjv_applyPerturbPose(m.ptr, d.ptr, pert.ptr, flg_paused)
 * 
 * def _mjv_applyPerturbForce(PyMjModel m, PyMjData d, PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_applyPerturbForce(m.ptr, d.ptr, pert.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_241_mjv_applyPerturbForce(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_241_mjv_applyPerturbForce = {"_mjv_applyPerturbForce", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_241_mjv_applyPerturbForce, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_241_mjv_applyPerturbForce(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_applyPerturbForce (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_pert,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5157, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5157, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_applyPerturbForce", 1, 3, 3, 1); __PYX_ERR(4, 5157, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pert)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5157, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_applyPerturbForce", 1, 3, 3, 2); __PYX_ERR(4, 5157, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_applyPerturbForce") < 0)) __PYX_ERR(4, 5157, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_pert = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_applyPerturbForce", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5157, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_applyPerturbForce", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5157, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5157, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pert), __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb, 1, "pert", 0))) __PYX_ERR(4, 5157, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_240_mjv_applyPerturbForce(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_pert);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_240_mjv_applyPerturbForce(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_applyPerturbForce", 1);

  /* "mujoco_py/generated/wrappers.pxi":5158
 * 
 * def _mjv_applyPerturbForce(PyMjModel m, PyMjData d, PyMjvPerturb pert):
 *     mjv_applyPerturbForce(m.ptr, d.ptr, pert.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_select(PyMjModel m, PyMjData d, PyMjvOption vopt, float aspectratio, float relx, float rely, PyMjvScene scn, np.ndarray[np.float64_t, mode="c", ndim=1] selpnt, uintptr_t geomid, uintptr_t skinid):
 */
  mjv_applyPerturbForce(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_pert->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5157
 *     mjv_applyPerturbPose(m.ptr, d.ptr, pert.ptr, flg_paused)
 * 
 * def _mjv_applyPerturbForce(PyMjModel m, PyMjData d, PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_applyPerturbForce(m.ptr, d.ptr, pert.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5160
 *     mjv_applyPerturbForce(m.ptr, d.ptr, pert.ptr)
 * 
 * def _mjv_select(PyMjModel m, PyMjData d, PyMjvOption vopt, float aspectratio, float relx, float rely, PyMjvScene scn, np.ndarray[np.float64_t, mode="c", ndim=1] selpnt, uintptr_t geomid, uintptr_t skinid):             # <<<<<<<<<<<<<<
 *     return mjv_select(m.ptr, d.ptr, vopt.ptr, aspectratio, relx, rely, scn.ptr, &selpnt[0], <int*>geomid, <int*>skinid)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_243_mjv_select(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_243_mjv_select = {"_mjv_select", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_243_mjv_select, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_243_mjv_select(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_vopt = 0;
  float __pyx_v_aspectratio;
  float __pyx_v_relx;
  float __pyx_v_rely;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  PyArrayObject *__pyx_v_selpnt = 0;
  uintptr_t __pyx_v_geomid;
  uintptr_t __pyx_v_skinid;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_select (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_vopt,&__pyx_n_s_aspectratio,&__pyx_n_s_relx,&__pyx_n_s_rely,&__pyx_n_s_scn,&__pyx_n_s_selpnt,&__pyx_n_s_geomid,&__pyx_n_s_skinid,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case 10: values[9] = __Pyx_Arg_FASTCALL(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5160, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5160, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_select", 1, 10, 10, 1); __PYX_ERR(4, 5160, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vopt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5160, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_select", 1, 10, 10, 2); __PYX_ERR(4, 5160, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_aspectratio)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5160, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_select", 1, 10, 10, 3); __PYX_ERR(4, 5160, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_relx)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5160, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_select", 1, 10, 10, 4); __PYX_ERR(4, 5160, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rely)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5160, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_select", 1, 10, 10, 5); __PYX_ERR(4, 5160, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5160, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_select", 1, 10, 10, 6); __PYX_ERR(4, 5160, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_selpnt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[7]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5160, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_select", 1, 10, 10, 7); __PYX_ERR(4, 5160, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (likely((values[8] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_geomid)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[8]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5160, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_select", 1, 10, 10, 8); __PYX_ERR(4, 5160, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  9:
        if (likely((values[9] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_skinid)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[9]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5160, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_select", 1, 10, 10, 9); __PYX_ERR(4, 5160, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_select") < 0)) __PYX_ERR(4, 5160, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 10)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
      values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
      values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
      values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8);
      values[9] = __Pyx_Arg_FASTCALL(__pyx_args, 9);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_vopt = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)values[2]);
    __pyx_v_aspectratio = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_aspectratio == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5160, __pyx_L3_error)
    __pyx_v_relx = __pyx_PyFloat_AsFloat(values[4]); if (unlikely((__pyx_v_relx == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5160, __pyx_L3_error)
    __pyx_v_rely = __pyx_PyFloat_AsFloat(values[5]); if (unlikely((__pyx_v_rely == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5160, __pyx_L3_error)
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[6]);
    __pyx_v_selpnt = ((PyArrayObject *)values[7]);
    __pyx_v_geomid = __Pyx_PyInt_As_size_t(values[8]); if (unlikely((__pyx_v_geomid == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(4, 5160, __pyx_L3_error)
    __pyx_v_skinid = __Pyx_PyInt_As_size_t(values[9]); if (unlikely((__pyx_v_skinid == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(4, 5160, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_select", 1, 10, 10, __pyx_nargs); __PYX_ERR(4, 5160, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_select", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5160, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5160, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vopt), __pyx_ptype_9mujoco_py_4cymj_PyMjvOption, 1, "vopt", 0))) __PYX_ERR(4, 5160, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5160, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_selpnt), __pyx_ptype_5numpy_ndarray, 1, "selpnt", 0))) __PYX_ERR(4, 5160, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_242_mjv_select(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_vopt, __pyx_v_aspectratio, __pyx_v_relx, __pyx_v_rely, __pyx_v_scn, __pyx_v_selpnt, __pyx_v_geomid, __pyx_v_skinid);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_242_mjv_select(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_vopt, float __pyx_v_aspectratio, float __pyx_v_relx, float __pyx_v_rely, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn, PyArrayObject *__pyx_v_selpnt, uintptr_t __pyx_v_geomid, uintptr_t __pyx_v_skinid) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_selpnt;
  __Pyx_Buffer __pyx_pybuffer_selpnt;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mjv_select", 1);
  __pyx_pybuffer_selpnt.pybuffer.buf = NULL;
  __pyx_pybuffer_selpnt.refcount = 0;
  __pyx_pybuffernd_selpnt.data = NULL;
  __pyx_pybuffernd_selpnt.rcbuffer = &__pyx_pybuffer_selpnt;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_selpnt.rcbuffer->pybuffer, (PyObject*)__pyx_v_selpnt, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5160, __pyx_L1_error)
  }
  __pyx_pybuffernd_selpnt.diminfo[0].strides = __pyx_pybuffernd_selpnt.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_selpnt.diminfo[0].shape = __pyx_pybuffernd_selpnt.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5161
 * 
 * def _mjv_select(PyMjModel m, PyMjData d, PyMjvOption vopt, float aspectratio, float relx, float rely, PyMjvScene scn, np.ndarray[np.float64_t, mode="c", ndim=1] selpnt, uintptr_t geomid, uintptr_t skinid):
 *     return mjv_select(m.ptr, d.ptr, vopt.ptr, aspectratio, relx, rely, scn.ptr, &selpnt[0], <int*>geomid, <int*>skinid)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_defaultOption(PyMjvOption opt):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_selpnt.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_selpnt.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5161, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyInt_From_int(mjv_select(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_vopt->ptr, __pyx_v_aspectratio, __pyx_v_relx, __pyx_v_rely, __pyx_v_scn->ptr, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_selpnt.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_selpnt.diminfo[0].strides))), ((int *)__pyx_v_geomid), ((int *)__pyx_v_skinid))); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5160
 *     mjv_applyPerturbForce(m.ptr, d.ptr, pert.ptr)
 * 
 * def _mjv_select(PyMjModel m, PyMjData d, PyMjvOption vopt, float aspectratio, float relx, float rely, PyMjvScene scn, np.ndarray[np.float64_t, mode="c", ndim=1] selpnt, uintptr_t geomid, uintptr_t skinid):             # <<<<<<<<<<<<<<
 *     return mjv_select(m.ptr, d.ptr, vopt.ptr, aspectratio, relx, rely, scn.ptr, &selpnt[0], <int*>geomid, <int*>skinid)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_selpnt.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_select", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_selpnt.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5163
 *     return mjv_select(m.ptr, d.ptr, vopt.ptr, aspectratio, relx, rely, scn.ptr, &selpnt[0], <int*>geomid, <int*>skinid)
 * 
 * def _mjv_defaultOption(PyMjvOption opt):             # <<<<<<<<<<<<<<
 *     mjv_defaultOption(opt.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_245_mjv_defaultOption(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_245_mjv_defaultOption = {"_mjv_defaultOption", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_245_mjv_defaultOption, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_245_mjv_defaultOption(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_opt = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_defaultOption (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_opt,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_opt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5163, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_defaultOption") < 0)) __PYX_ERR(4, 5163, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_opt = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_defaultOption", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5163, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_defaultOption", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_opt), __pyx_ptype_9mujoco_py_4cymj_PyMjvOption, 1, "opt", 0))) __PYX_ERR(4, 5163, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_244_mjv_defaultOption(__pyx_self, __pyx_v_opt);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_244_mjv_defaultOption(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_opt) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_defaultOption", 1);

  /* "mujoco_py/generated/wrappers.pxi":5164
 * 
 * def _mjv_defaultOption(PyMjvOption opt):
 *     mjv_defaultOption(opt.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_defaultFigure(PyMjvFigure fig):
 */
  mjv_defaultOption(__pyx_v_opt->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5163
 *     return mjv_select(m.ptr, d.ptr, vopt.ptr, aspectratio, relx, rely, scn.ptr, &selpnt[0], <int*>geomid, <int*>skinid)
 * 
 * def _mjv_defaultOption(PyMjvOption opt):             # <<<<<<<<<<<<<<
 *     mjv_defaultOption(opt.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5166
 *     mjv_defaultOption(opt.ptr)
 * 
 * def _mjv_defaultFigure(PyMjvFigure fig):             # <<<<<<<<<<<<<<
 *     mjv_defaultFigure(fig.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_247_mjv_defaultFigure(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_247_mjv_defaultFigure = {"_mjv_defaultFigure", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_247_mjv_defaultFigure, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_247_mjv_defaultFigure(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_fig = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_defaultFigure (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fig)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5166, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_defaultFigure") < 0)) __PYX_ERR(4, 5166, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_fig = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_defaultFigure", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5166, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_defaultFigure", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fig), __pyx_ptype_9mujoco_py_4cymj_PyMjvFigure, 1, "fig", 0))) __PYX_ERR(4, 5166, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_246_mjv_defaultFigure(__pyx_self, __pyx_v_fig);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_246_mjv_defaultFigure(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_fig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_defaultFigure", 1);

  /* "mujoco_py/generated/wrappers.pxi":5167
 * 
 * def _mjv_defaultFigure(PyMjvFigure fig):
 *     mjv_defaultFigure(fig.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_makeConnector(PyMjvGeom geom, int type, float width, float a0, float a1, float a2, float b0, float b1, float b2):
 */
  mjv_defaultFigure(__pyx_v_fig->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5166
 *     mjv_defaultOption(opt.ptr)
 * 
 * def _mjv_defaultFigure(PyMjvFigure fig):             # <<<<<<<<<<<<<<
 *     mjv_defaultFigure(fig.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5169
 *     mjv_defaultFigure(fig.ptr)
 * 
 * def _mjv_makeConnector(PyMjvGeom geom, int type, float width, float a0, float a1, float a2, float b0, float b1, float b2):             # <<<<<<<<<<<<<<
 *     mjv_makeConnector(geom.ptr, type, width, a0, a1, a2, b0, b1, b2)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_249_mjv_makeConnector(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_249_mjv_makeConnector = {"_mjv_makeConnector", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_249_mjv_makeConnector, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_249_mjv_makeConnector(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_geom = 0;
  int __pyx_v_type;
  float __pyx_v_width;
  float __pyx_v_a0;
  float __pyx_v_a1;
  float __pyx_v_a2;
  float __pyx_v_b0;
  float __pyx_v_b1;
  float __pyx_v_b2;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_makeConnector (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_geom,&__pyx_n_s_type,&__pyx_n_s_width,&__pyx_n_s_a0,&__pyx_n_s_a1,&__pyx_n_s_a2,&__pyx_n_s_b0,&__pyx_n_s_b1,&__pyx_n_s_b2,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  9: values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_geom)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_makeConnector", 1, 9, 9, 1); __PYX_ERR(4, 5169, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_width)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_makeConnector", 1, 9, 9, 2); __PYX_ERR(4, 5169, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a0)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_makeConnector", 1, 9, 9, 3); __PYX_ERR(4, 5169, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_makeConnector", 1, 9, 9, 4); __PYX_ERR(4, 5169, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_makeConnector", 1, 9, 9, 5); __PYX_ERR(4, 5169, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_b0)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_makeConnector", 1, 9, 9, 6); __PYX_ERR(4, 5169, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_b1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[7]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_makeConnector", 1, 9, 9, 7); __PYX_ERR(4, 5169, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (likely((values[8] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_b2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[8]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_makeConnector", 1, 9, 9, 8); __PYX_ERR(4, 5169, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_makeConnector") < 0)) __PYX_ERR(4, 5169, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 9)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
      values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
      values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
      values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8);
    }
    __pyx_v_geom = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)values[0]);
    __pyx_v_type = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_type == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
    __pyx_v_width = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_width == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
    __pyx_v_a0 = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_a0 == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
    __pyx_v_a1 = __pyx_PyFloat_AsFloat(values[4]); if (unlikely((__pyx_v_a1 == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
    __pyx_v_a2 = __pyx_PyFloat_AsFloat(values[5]); if (unlikely((__pyx_v_a2 == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
    __pyx_v_b0 = __pyx_PyFloat_AsFloat(values[6]); if (unlikely((__pyx_v_b0 == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
    __pyx_v_b1 = __pyx_PyFloat_AsFloat(values[7]); if (unlikely((__pyx_v_b1 == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
    __pyx_v_b2 = __pyx_PyFloat_AsFloat(values[8]); if (unlikely((__pyx_v_b2 == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5169, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_makeConnector", 1, 9, 9, __pyx_nargs); __PYX_ERR(4, 5169, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_makeConnector", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_geom), __pyx_ptype_9mujoco_py_4cymj_PyMjvGeom, 1, "geom", 0))) __PYX_ERR(4, 5169, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_248_mjv_makeConnector(__pyx_self, __pyx_v_geom, __pyx_v_type, __pyx_v_width, __pyx_v_a0, __pyx_v_a1, __pyx_v_a2, __pyx_v_b0, __pyx_v_b1, __pyx_v_b2);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_248_mjv_makeConnector(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_geom, int __pyx_v_type, float __pyx_v_width, float __pyx_v_a0, float __pyx_v_a1, float __pyx_v_a2, float __pyx_v_b0, float __pyx_v_b1, float __pyx_v_b2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_makeConnector", 1);

  /* "mujoco_py/generated/wrappers.pxi":5170
 * 
 * def _mjv_makeConnector(PyMjvGeom geom, int type, float width, float a0, float a1, float a2, float b0, float b1, float b2):
 *     mjv_makeConnector(geom.ptr, type, width, a0, a1, a2, b0, b1, b2)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_defaultScene(PyMjvScene scn):
 */
  mjv_makeConnector(__pyx_v_geom->ptr, __pyx_v_type, __pyx_v_width, __pyx_v_a0, __pyx_v_a1, __pyx_v_a2, __pyx_v_b0, __pyx_v_b1, __pyx_v_b2);

  /* "mujoco_py/generated/wrappers.pxi":5169
 *     mjv_defaultFigure(fig.ptr)
 * 
 * def _mjv_makeConnector(PyMjvGeom geom, int type, float width, float a0, float a1, float a2, float b0, float b1, float b2):             # <<<<<<<<<<<<<<
 *     mjv_makeConnector(geom.ptr, type, width, a0, a1, a2, b0, b1, b2)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5172
 *     mjv_makeConnector(geom.ptr, type, width, a0, a1, a2, b0, b1, b2)
 * 
 * def _mjv_defaultScene(PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_defaultScene(scn.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_251_mjv_defaultScene(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_251_mjv_defaultScene = {"_mjv_defaultScene", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_251_mjv_defaultScene, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_251_mjv_defaultScene(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_defaultScene (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scn,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5172, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_defaultScene") < 0)) __PYX_ERR(4, 5172, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_defaultScene", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5172, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_defaultScene", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5172, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_250_mjv_defaultScene(__pyx_self, __pyx_v_scn);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_250_mjv_defaultScene(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_defaultScene", 1);

  /* "mujoco_py/generated/wrappers.pxi":5173
 * 
 * def _mjv_defaultScene(PyMjvScene scn):
 *     mjv_defaultScene(scn.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_makeScene(PyMjModel m, PyMjvScene scn, int maxgeom):
 */
  mjv_defaultScene(__pyx_v_scn->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5172
 *     mjv_makeConnector(geom.ptr, type, width, a0, a1, a2, b0, b1, b2)
 * 
 * def _mjv_defaultScene(PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_defaultScene(scn.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5175
 *     mjv_defaultScene(scn.ptr)
 * 
 * def _mjv_makeScene(PyMjModel m, PyMjvScene scn, int maxgeom):             # <<<<<<<<<<<<<<
 *     mjv_makeScene(m.ptr, scn.ptr, maxgeom)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_253_mjv_makeScene(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_253_mjv_makeScene = {"_mjv_makeScene", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_253_mjv_makeScene, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_253_mjv_makeScene(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  int __pyx_v_maxgeom;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_makeScene (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_scn,&__pyx_n_s_maxgeom,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5175, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5175, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_makeScene", 1, 3, 3, 1); __PYX_ERR(4, 5175, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_maxgeom)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5175, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_makeScene", 1, 3, 3, 2); __PYX_ERR(4, 5175, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_makeScene") < 0)) __PYX_ERR(4, 5175, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[1]);
    __pyx_v_maxgeom = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_maxgeom == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5175, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_makeScene", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5175, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_makeScene", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5175, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5175, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_252_mjv_makeScene(__pyx_self, __pyx_v_m, __pyx_v_scn, __pyx_v_maxgeom);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_252_mjv_makeScene(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn, int __pyx_v_maxgeom) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_makeScene", 1);

  /* "mujoco_py/generated/wrappers.pxi":5176
 * 
 * def _mjv_makeScene(PyMjModel m, PyMjvScene scn, int maxgeom):
 *     mjv_makeScene(m.ptr, scn.ptr, maxgeom)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_freeScene(PyMjvScene scn):
 */
  mjv_makeScene(__pyx_v_m->ptr, __pyx_v_scn->ptr, __pyx_v_maxgeom);

  /* "mujoco_py/generated/wrappers.pxi":5175
 *     mjv_defaultScene(scn.ptr)
 * 
 * def _mjv_makeScene(PyMjModel m, PyMjvScene scn, int maxgeom):             # <<<<<<<<<<<<<<
 *     mjv_makeScene(m.ptr, scn.ptr, maxgeom)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5178
 *     mjv_makeScene(m.ptr, scn.ptr, maxgeom)
 * 
 * def _mjv_freeScene(PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_freeScene(scn.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_255_mjv_freeScene(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_255_mjv_freeScene = {"_mjv_freeScene", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_255_mjv_freeScene, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_255_mjv_freeScene(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_freeScene (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scn,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5178, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_freeScene") < 0)) __PYX_ERR(4, 5178, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_freeScene", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5178, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_freeScene", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5178, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_254_mjv_freeScene(__pyx_self, __pyx_v_scn);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_254_mjv_freeScene(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_freeScene", 1);

  /* "mujoco_py/generated/wrappers.pxi":5179
 * 
 * def _mjv_freeScene(PyMjvScene scn):
 *     mjv_freeScene(scn.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_updateScene(PyMjModel m, PyMjData d, PyMjvOption opt, PyMjvPerturb pert, PyMjvCamera cam, int catmask, PyMjvScene scn):
 */
  mjv_freeScene(__pyx_v_scn->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5178
 *     mjv_makeScene(m.ptr, scn.ptr, maxgeom)
 * 
 * def _mjv_freeScene(PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_freeScene(scn.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5181
 *     mjv_freeScene(scn.ptr)
 * 
 * def _mjv_updateScene(PyMjModel m, PyMjData d, PyMjvOption opt, PyMjvPerturb pert, PyMjvCamera cam, int catmask, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_updateScene(m.ptr, d.ptr, opt.ptr, pert.ptr, cam.ptr, catmask, scn.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_257_mjv_updateScene(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_257_mjv_updateScene = {"_mjv_updateScene", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_257_mjv_updateScene, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_257_mjv_updateScene(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_opt = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_cam = 0;
  int __pyx_v_catmask;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[7] = {0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_updateScene (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_opt,&__pyx_n_s_pert,&__pyx_n_s_cam,&__pyx_n_s_catmask,&__pyx_n_s_scn,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5181, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5181, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_updateScene", 1, 7, 7, 1); __PYX_ERR(4, 5181, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_opt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5181, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_updateScene", 1, 7, 7, 2); __PYX_ERR(4, 5181, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pert)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5181, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_updateScene", 1, 7, 7, 3); __PYX_ERR(4, 5181, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_cam)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5181, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_updateScene", 1, 7, 7, 4); __PYX_ERR(4, 5181, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_catmask)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5181, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_updateScene", 1, 7, 7, 5); __PYX_ERR(4, 5181, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5181, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_updateScene", 1, 7, 7, 6); __PYX_ERR(4, 5181, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_updateScene") < 0)) __PYX_ERR(4, 5181, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 7)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
      values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_opt = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)values[2]);
    __pyx_v_pert = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)values[3]);
    __pyx_v_cam = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)values[4]);
    __pyx_v_catmask = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_catmask == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5181, __pyx_L3_error)
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[6]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_updateScene", 1, 7, 7, __pyx_nargs); __PYX_ERR(4, 5181, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_updateScene", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5181, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5181, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_opt), __pyx_ptype_9mujoco_py_4cymj_PyMjvOption, 1, "opt", 0))) __PYX_ERR(4, 5181, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pert), __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb, 1, "pert", 0))) __PYX_ERR(4, 5181, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cam), __pyx_ptype_9mujoco_py_4cymj_PyMjvCamera, 1, "cam", 0))) __PYX_ERR(4, 5181, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5181, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_256_mjv_updateScene(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_opt, __pyx_v_pert, __pyx_v_cam, __pyx_v_catmask, __pyx_v_scn);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_256_mjv_updateScene(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_opt, struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert, struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_cam, int __pyx_v_catmask, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_updateScene", 1);

  /* "mujoco_py/generated/wrappers.pxi":5182
 * 
 * def _mjv_updateScene(PyMjModel m, PyMjData d, PyMjvOption opt, PyMjvPerturb pert, PyMjvCamera cam, int catmask, PyMjvScene scn):
 *     mjv_updateScene(m.ptr, d.ptr, opt.ptr, pert.ptr, cam.ptr, catmask, scn.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_addGeoms(PyMjModel m, PyMjData d, PyMjvOption opt, PyMjvPerturb pert, int catmask, PyMjvScene scn):
 */
  mjv_updateScene(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_opt->ptr, __pyx_v_pert->ptr, __pyx_v_cam->ptr, __pyx_v_catmask, __pyx_v_scn->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5181
 *     mjv_freeScene(scn.ptr)
 * 
 * def _mjv_updateScene(PyMjModel m, PyMjData d, PyMjvOption opt, PyMjvPerturb pert, PyMjvCamera cam, int catmask, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_updateScene(m.ptr, d.ptr, opt.ptr, pert.ptr, cam.ptr, catmask, scn.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5184
 *     mjv_updateScene(m.ptr, d.ptr, opt.ptr, pert.ptr, cam.ptr, catmask, scn.ptr)
 * 
 * def _mjv_addGeoms(PyMjModel m, PyMjData d, PyMjvOption opt, PyMjvPerturb pert, int catmask, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_addGeoms(m.ptr, d.ptr, opt.ptr, pert.ptr, catmask, scn.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_259_mjv_addGeoms(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_259_mjv_addGeoms = {"_mjv_addGeoms", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_259_mjv_addGeoms, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_259_mjv_addGeoms(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_opt = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert = 0;
  int __pyx_v_catmask;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_addGeoms (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_opt,&__pyx_n_s_pert,&__pyx_n_s_catmask,&__pyx_n_s_scn,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5184, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5184, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_addGeoms", 1, 6, 6, 1); __PYX_ERR(4, 5184, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_opt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5184, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_addGeoms", 1, 6, 6, 2); __PYX_ERR(4, 5184, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pert)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5184, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_addGeoms", 1, 6, 6, 3); __PYX_ERR(4, 5184, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_catmask)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5184, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_addGeoms", 1, 6, 6, 4); __PYX_ERR(4, 5184, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5184, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_addGeoms", 1, 6, 6, 5); __PYX_ERR(4, 5184, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_addGeoms") < 0)) __PYX_ERR(4, 5184, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_opt = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)values[2]);
    __pyx_v_pert = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)values[3]);
    __pyx_v_catmask = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_catmask == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5184, __pyx_L3_error)
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[5]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_addGeoms", 1, 6, 6, __pyx_nargs); __PYX_ERR(4, 5184, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_addGeoms", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5184, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5184, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_opt), __pyx_ptype_9mujoco_py_4cymj_PyMjvOption, 1, "opt", 0))) __PYX_ERR(4, 5184, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pert), __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb, 1, "pert", 0))) __PYX_ERR(4, 5184, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5184, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_258_mjv_addGeoms(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_opt, __pyx_v_pert, __pyx_v_catmask, __pyx_v_scn);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_258_mjv_addGeoms(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *__pyx_v_opt, struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *__pyx_v_pert, int __pyx_v_catmask, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_addGeoms", 1);

  /* "mujoco_py/generated/wrappers.pxi":5185
 * 
 * def _mjv_addGeoms(PyMjModel m, PyMjData d, PyMjvOption opt, PyMjvPerturb pert, int catmask, PyMjvScene scn):
 *     mjv_addGeoms(m.ptr, d.ptr, opt.ptr, pert.ptr, catmask, scn.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_makeLights(PyMjModel m, PyMjData d, PyMjvScene scn):
 */
  mjv_addGeoms(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_opt->ptr, __pyx_v_pert->ptr, __pyx_v_catmask, __pyx_v_scn->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5184
 *     mjv_updateScene(m.ptr, d.ptr, opt.ptr, pert.ptr, cam.ptr, catmask, scn.ptr)
 * 
 * def _mjv_addGeoms(PyMjModel m, PyMjData d, PyMjvOption opt, PyMjvPerturb pert, int catmask, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_addGeoms(m.ptr, d.ptr, opt.ptr, pert.ptr, catmask, scn.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5187
 *     mjv_addGeoms(m.ptr, d.ptr, opt.ptr, pert.ptr, catmask, scn.ptr)
 * 
 * def _mjv_makeLights(PyMjModel m, PyMjData d, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_makeLights(m.ptr, d.ptr, scn.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_261_mjv_makeLights(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_261_mjv_makeLights = {"_mjv_makeLights", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_261_mjv_makeLights, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_261_mjv_makeLights(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_makeLights (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_scn,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5187, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5187, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_makeLights", 1, 3, 3, 1); __PYX_ERR(4, 5187, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5187, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_makeLights", 1, 3, 3, 2); __PYX_ERR(4, 5187, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_makeLights") < 0)) __PYX_ERR(4, 5187, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_makeLights", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5187, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_makeLights", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5187, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5187, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5187, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_260_mjv_makeLights(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_scn);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_260_mjv_makeLights(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_makeLights", 1);

  /* "mujoco_py/generated/wrappers.pxi":5188
 * 
 * def _mjv_makeLights(PyMjModel m, PyMjData d, PyMjvScene scn):
 *     mjv_makeLights(m.ptr, d.ptr, scn.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_updateCamera(PyMjModel m, PyMjData d, PyMjvCamera cam, PyMjvScene scn):
 */
  mjv_makeLights(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_scn->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5187
 *     mjv_addGeoms(m.ptr, d.ptr, opt.ptr, pert.ptr, catmask, scn.ptr)
 * 
 * def _mjv_makeLights(PyMjModel m, PyMjData d, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_makeLights(m.ptr, d.ptr, scn.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5190
 *     mjv_makeLights(m.ptr, d.ptr, scn.ptr)
 * 
 * def _mjv_updateCamera(PyMjModel m, PyMjData d, PyMjvCamera cam, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_updateCamera(m.ptr, d.ptr, cam.ptr, scn.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_263_mjv_updateCamera(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_263_mjv_updateCamera = {"_mjv_updateCamera", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_263_mjv_updateCamera, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_263_mjv_updateCamera(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_cam = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_updateCamera (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_cam,&__pyx_n_s_scn,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5190, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5190, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_updateCamera", 1, 4, 4, 1); __PYX_ERR(4, 5190, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_cam)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5190, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_updateCamera", 1, 4, 4, 2); __PYX_ERR(4, 5190, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5190, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_updateCamera", 1, 4, 4, 3); __PYX_ERR(4, 5190, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_updateCamera") < 0)) __PYX_ERR(4, 5190, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_cam = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)values[2]);
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_updateCamera", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5190, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_updateCamera", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5190, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5190, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cam), __pyx_ptype_9mujoco_py_4cymj_PyMjvCamera, 1, "cam", 0))) __PYX_ERR(4, 5190, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5190, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_262_mjv_updateCamera(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_cam, __pyx_v_scn);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_262_mjv_updateCamera(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *__pyx_v_cam, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_updateCamera", 1);

  /* "mujoco_py/generated/wrappers.pxi":5191
 * 
 * def _mjv_updateCamera(PyMjModel m, PyMjData d, PyMjvCamera cam, PyMjvScene scn):
 *     mjv_updateCamera(m.ptr, d.ptr, cam.ptr, scn.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjv_updateSkin(PyMjModel m, PyMjData d, PyMjvScene scn):
 */
  mjv_updateCamera(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_cam->ptr, __pyx_v_scn->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5190
 *     mjv_makeLights(m.ptr, d.ptr, scn.ptr)
 * 
 * def _mjv_updateCamera(PyMjModel m, PyMjData d, PyMjvCamera cam, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_updateCamera(m.ptr, d.ptr, cam.ptr, scn.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5193
 *     mjv_updateCamera(m.ptr, d.ptr, cam.ptr, scn.ptr)
 * 
 * def _mjv_updateSkin(PyMjModel m, PyMjData d, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_updateSkin(m.ptr, d.ptr, scn.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_265_mjv_updateSkin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_265_mjv_updateSkin = {"_mjv_updateSkin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_265_mjv_updateSkin, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_265_mjv_updateSkin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_updateSkin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,&__pyx_n_s_scn,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5193, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5193, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_updateSkin", 1, 3, 3, 1); __PYX_ERR(4, 5193, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5193, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjv_updateSkin", 1, 3, 3, 2); __PYX_ERR(4, 5193, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjv_updateSkin") < 0)) __PYX_ERR(4, 5193, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjv_updateSkin", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5193, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjv_updateSkin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5193, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5193, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5193, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_264_mjv_updateSkin(__pyx_self, __pyx_v_m, __pyx_v_d, __pyx_v_scn);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_264_mjv_updateSkin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjv_updateSkin", 1);

  /* "mujoco_py/generated/wrappers.pxi":5194
 * 
 * def _mjv_updateSkin(PyMjModel m, PyMjData d, PyMjvScene scn):
 *     mjv_updateSkin(m.ptr, d.ptr, scn.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_defaultContext(PyMjrContext con):
 */
  mjv_updateSkin(__pyx_v_m->ptr, __pyx_v_d->ptr, __pyx_v_scn->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5193
 *     mjv_updateCamera(m.ptr, d.ptr, cam.ptr, scn.ptr)
 * 
 * def _mjv_updateSkin(PyMjModel m, PyMjData d, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_updateSkin(m.ptr, d.ptr, scn.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5196
 *     mjv_updateSkin(m.ptr, d.ptr, scn.ptr)
 * 
 * def _mjr_defaultContext(PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_defaultContext(con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_267_mjr_defaultContext(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_267_mjr_defaultContext = {"_mjr_defaultContext", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_267_mjr_defaultContext, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_267_mjr_defaultContext(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_defaultContext (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5196, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_defaultContext") < 0)) __PYX_ERR(4, 5196, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_defaultContext", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5196, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_defaultContext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5196, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_266_mjr_defaultContext(__pyx_self, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_266_mjr_defaultContext(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_defaultContext", 1);

  /* "mujoco_py/generated/wrappers.pxi":5197
 * 
 * def _mjr_defaultContext(PyMjrContext con):
 *     mjr_defaultContext(con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_makeContext(PyMjModel m, PyMjrContext con, int fontscale):
 */
  mjr_defaultContext(__pyx_v_con->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5196
 *     mjv_updateSkin(m.ptr, d.ptr, scn.ptr)
 * 
 * def _mjr_defaultContext(PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_defaultContext(con.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5199
 *     mjr_defaultContext(con.ptr)
 * 
 * def _mjr_makeContext(PyMjModel m, PyMjrContext con, int fontscale):             # <<<<<<<<<<<<<<
 *     mjr_makeContext(m.ptr, con.ptr, fontscale)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_269_mjr_makeContext(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_269_mjr_makeContext = {"_mjr_makeContext", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_269_mjr_makeContext, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_269_mjr_makeContext(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  int __pyx_v_fontscale;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_makeContext (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_con,&__pyx_n_s_fontscale,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5199, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5199, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_makeContext", 1, 3, 3, 1); __PYX_ERR(4, 5199, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fontscale)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5199, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_makeContext", 1, 3, 3, 2); __PYX_ERR(4, 5199, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_makeContext") < 0)) __PYX_ERR(4, 5199, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[1]);
    __pyx_v_fontscale = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_fontscale == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5199, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_makeContext", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5199, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_makeContext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5199, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5199, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_268_mjr_makeContext(__pyx_self, __pyx_v_m, __pyx_v_con, __pyx_v_fontscale);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_268_mjr_makeContext(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con, int __pyx_v_fontscale) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_makeContext", 1);

  /* "mujoco_py/generated/wrappers.pxi":5200
 * 
 * def _mjr_makeContext(PyMjModel m, PyMjrContext con, int fontscale):
 *     mjr_makeContext(m.ptr, con.ptr, fontscale)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_changeFont(int fontscale, PyMjrContext con):
 */
  mjr_makeContext(__pyx_v_m->ptr, __pyx_v_con->ptr, __pyx_v_fontscale);

  /* "mujoco_py/generated/wrappers.pxi":5199
 *     mjr_defaultContext(con.ptr)
 * 
 * def _mjr_makeContext(PyMjModel m, PyMjrContext con, int fontscale):             # <<<<<<<<<<<<<<
 *     mjr_makeContext(m.ptr, con.ptr, fontscale)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5202
 *     mjr_makeContext(m.ptr, con.ptr, fontscale)
 * 
 * def _mjr_changeFont(int fontscale, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_changeFont(fontscale, con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_271_mjr_changeFont(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_271_mjr_changeFont = {"_mjr_changeFont", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_271_mjr_changeFont, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_271_mjr_changeFont(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_fontscale;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_changeFont (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fontscale,&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fontscale)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5202, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5202, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_changeFont", 1, 2, 2, 1); __PYX_ERR(4, 5202, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_changeFont") < 0)) __PYX_ERR(4, 5202, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_fontscale = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_fontscale == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5202, __pyx_L3_error)
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_changeFont", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5202, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_changeFont", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5202, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_270_mjr_changeFont(__pyx_self, __pyx_v_fontscale, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_270_mjr_changeFont(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_fontscale, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_changeFont", 1);

  /* "mujoco_py/generated/wrappers.pxi":5203
 * 
 * def _mjr_changeFont(int fontscale, PyMjrContext con):
 *     mjr_changeFont(fontscale, con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_addAux(int index, int width, int height, int samples, PyMjrContext con):
 */
  mjr_changeFont(__pyx_v_fontscale, __pyx_v_con->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5202
 *     mjr_makeContext(m.ptr, con.ptr, fontscale)
 * 
 * def _mjr_changeFont(int fontscale, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_changeFont(fontscale, con.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5205
 *     mjr_changeFont(fontscale, con.ptr)
 * 
 * def _mjr_addAux(int index, int width, int height, int samples, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_addAux(index, width, height, samples, con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_273_mjr_addAux(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_273_mjr_addAux = {"_mjr_addAux", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_273_mjr_addAux, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_273_mjr_addAux(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_index;
  int __pyx_v_width;
  int __pyx_v_height;
  int __pyx_v_samples;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_addAux (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_index,&__pyx_n_s_width,&__pyx_n_s_height,&__pyx_n_s_samples,&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_index)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5205, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_width)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5205, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_addAux", 1, 5, 5, 1); __PYX_ERR(4, 5205, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_height)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5205, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_addAux", 1, 5, 5, 2); __PYX_ERR(4, 5205, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_samples)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5205, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_addAux", 1, 5, 5, 3); __PYX_ERR(4, 5205, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5205, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_addAux", 1, 5, 5, 4); __PYX_ERR(4, 5205, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_addAux") < 0)) __PYX_ERR(4, 5205, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_index = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_index == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5205, __pyx_L3_error)
    __pyx_v_width = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_width == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5205, __pyx_L3_error)
    __pyx_v_height = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_height == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5205, __pyx_L3_error)
    __pyx_v_samples = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_samples == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5205, __pyx_L3_error)
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[4]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_addAux", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5205, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_addAux", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5205, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_272_mjr_addAux(__pyx_self, __pyx_v_index, __pyx_v_width, __pyx_v_height, __pyx_v_samples, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_272_mjr_addAux(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_index, int __pyx_v_width, int __pyx_v_height, int __pyx_v_samples, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_addAux", 1);

  /* "mujoco_py/generated/wrappers.pxi":5206
 * 
 * def _mjr_addAux(int index, int width, int height, int samples, PyMjrContext con):
 *     mjr_addAux(index, width, height, samples, con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_freeContext(PyMjrContext con):
 */
  mjr_addAux(__pyx_v_index, __pyx_v_width, __pyx_v_height, __pyx_v_samples, __pyx_v_con->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5205
 *     mjr_changeFont(fontscale, con.ptr)
 * 
 * def _mjr_addAux(int index, int width, int height, int samples, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_addAux(index, width, height, samples, con.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5208
 *     mjr_addAux(index, width, height, samples, con.ptr)
 * 
 * def _mjr_freeContext(PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_freeContext(con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_275_mjr_freeContext(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_275_mjr_freeContext = {"_mjr_freeContext", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_275_mjr_freeContext, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_275_mjr_freeContext(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_freeContext (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5208, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_freeContext") < 0)) __PYX_ERR(4, 5208, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_freeContext", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5208, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_freeContext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5208, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_274_mjr_freeContext(__pyx_self, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_274_mjr_freeContext(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_freeContext", 1);

  /* "mujoco_py/generated/wrappers.pxi":5209
 * 
 * def _mjr_freeContext(PyMjrContext con):
 *     mjr_freeContext(con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_uploadTexture(PyMjModel m, PyMjrContext con, int texid):
 */
  mjr_freeContext(__pyx_v_con->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5208
 *     mjr_addAux(index, width, height, samples, con.ptr)
 * 
 * def _mjr_freeContext(PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_freeContext(con.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5211
 *     mjr_freeContext(con.ptr)
 * 
 * def _mjr_uploadTexture(PyMjModel m, PyMjrContext con, int texid):             # <<<<<<<<<<<<<<
 *     mjr_uploadTexture(m.ptr, con.ptr, texid)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_277_mjr_uploadTexture(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_277_mjr_uploadTexture = {"_mjr_uploadTexture", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_277_mjr_uploadTexture, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_277_mjr_uploadTexture(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  int __pyx_v_texid;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_uploadTexture (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_con,&__pyx_n_s_texid,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5211, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5211, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_uploadTexture", 1, 3, 3, 1); __PYX_ERR(4, 5211, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_texid)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5211, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_uploadTexture", 1, 3, 3, 2); __PYX_ERR(4, 5211, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_uploadTexture") < 0)) __PYX_ERR(4, 5211, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[1]);
    __pyx_v_texid = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_texid == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5211, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_uploadTexture", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5211, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_uploadTexture", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5211, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5211, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_276_mjr_uploadTexture(__pyx_self, __pyx_v_m, __pyx_v_con, __pyx_v_texid);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_276_mjr_uploadTexture(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con, int __pyx_v_texid) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_uploadTexture", 1);

  /* "mujoco_py/generated/wrappers.pxi":5212
 * 
 * def _mjr_uploadTexture(PyMjModel m, PyMjrContext con, int texid):
 *     mjr_uploadTexture(m.ptr, con.ptr, texid)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_uploadMesh(PyMjModel m, PyMjrContext con, int meshid):
 */
  mjr_uploadTexture(__pyx_v_m->ptr, __pyx_v_con->ptr, __pyx_v_texid);

  /* "mujoco_py/generated/wrappers.pxi":5211
 *     mjr_freeContext(con.ptr)
 * 
 * def _mjr_uploadTexture(PyMjModel m, PyMjrContext con, int texid):             # <<<<<<<<<<<<<<
 *     mjr_uploadTexture(m.ptr, con.ptr, texid)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5214
 *     mjr_uploadTexture(m.ptr, con.ptr, texid)
 * 
 * def _mjr_uploadMesh(PyMjModel m, PyMjrContext con, int meshid):             # <<<<<<<<<<<<<<
 *     mjr_uploadMesh(m.ptr, con.ptr, meshid)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_279_mjr_uploadMesh(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_279_mjr_uploadMesh = {"_mjr_uploadMesh", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_279_mjr_uploadMesh, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_279_mjr_uploadMesh(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  int __pyx_v_meshid;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_uploadMesh (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_con,&__pyx_n_s_meshid,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5214, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5214, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_uploadMesh", 1, 3, 3, 1); __PYX_ERR(4, 5214, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_meshid)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5214, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_uploadMesh", 1, 3, 3, 2); __PYX_ERR(4, 5214, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_uploadMesh") < 0)) __PYX_ERR(4, 5214, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[1]);
    __pyx_v_meshid = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_meshid == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5214, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_uploadMesh", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5214, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_uploadMesh", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5214, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5214, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_278_mjr_uploadMesh(__pyx_self, __pyx_v_m, __pyx_v_con, __pyx_v_meshid);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_278_mjr_uploadMesh(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con, int __pyx_v_meshid) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_uploadMesh", 1);

  /* "mujoco_py/generated/wrappers.pxi":5215
 * 
 * def _mjr_uploadMesh(PyMjModel m, PyMjrContext con, int meshid):
 *     mjr_uploadMesh(m.ptr, con.ptr, meshid)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_uploadHField(PyMjModel m, PyMjrContext con, int hfieldid):
 */
  mjr_uploadMesh(__pyx_v_m->ptr, __pyx_v_con->ptr, __pyx_v_meshid);

  /* "mujoco_py/generated/wrappers.pxi":5214
 *     mjr_uploadTexture(m.ptr, con.ptr, texid)
 * 
 * def _mjr_uploadMesh(PyMjModel m, PyMjrContext con, int meshid):             # <<<<<<<<<<<<<<
 *     mjr_uploadMesh(m.ptr, con.ptr, meshid)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5217
 *     mjr_uploadMesh(m.ptr, con.ptr, meshid)
 * 
 * def _mjr_uploadHField(PyMjModel m, PyMjrContext con, int hfieldid):             # <<<<<<<<<<<<<<
 *     mjr_uploadHField(m.ptr, con.ptr, hfieldid)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_281_mjr_uploadHField(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_281_mjr_uploadHField = {"_mjr_uploadHField", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_281_mjr_uploadHField, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_281_mjr_uploadHField(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  int __pyx_v_hfieldid;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_uploadHField (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_con,&__pyx_n_s_hfieldid,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5217, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5217, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_uploadHField", 1, 3, 3, 1); __PYX_ERR(4, 5217, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_hfieldid)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5217, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_uploadHField", 1, 3, 3, 2); __PYX_ERR(4, 5217, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_uploadHField") < 0)) __PYX_ERR(4, 5217, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_m = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[1]);
    __pyx_v_hfieldid = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_hfieldid == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5217, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_uploadHField", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5217, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_uploadHField", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "m", 0))) __PYX_ERR(4, 5217, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5217, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_280_mjr_uploadHField(__pyx_self, __pyx_v_m, __pyx_v_con, __pyx_v_hfieldid);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_280_mjr_uploadHField(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_m, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con, int __pyx_v_hfieldid) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_uploadHField", 1);

  /* "mujoco_py/generated/wrappers.pxi":5218
 * 
 * def _mjr_uploadHField(PyMjModel m, PyMjrContext con, int hfieldid):
 *     mjr_uploadHField(m.ptr, con.ptr, hfieldid)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_restoreBuffer(PyMjrContext con):
 */
  mjr_uploadHField(__pyx_v_m->ptr, __pyx_v_con->ptr, __pyx_v_hfieldid);

  /* "mujoco_py/generated/wrappers.pxi":5217
 *     mjr_uploadMesh(m.ptr, con.ptr, meshid)
 * 
 * def _mjr_uploadHField(PyMjModel m, PyMjrContext con, int hfieldid):             # <<<<<<<<<<<<<<
 *     mjr_uploadHField(m.ptr, con.ptr, hfieldid)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5220
 *     mjr_uploadHField(m.ptr, con.ptr, hfieldid)
 * 
 * def _mjr_restoreBuffer(PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_restoreBuffer(con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_283_mjr_restoreBuffer(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_283_mjr_restoreBuffer = {"_mjr_restoreBuffer", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_283_mjr_restoreBuffer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_283_mjr_restoreBuffer(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_restoreBuffer (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5220, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_restoreBuffer") < 0)) __PYX_ERR(4, 5220, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_restoreBuffer", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5220, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_restoreBuffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5220, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_282_mjr_restoreBuffer(__pyx_self, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_282_mjr_restoreBuffer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_restoreBuffer", 1);

  /* "mujoco_py/generated/wrappers.pxi":5221
 * 
 * def _mjr_restoreBuffer(PyMjrContext con):
 *     mjr_restoreBuffer(con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_setBuffer(int framebuffer, PyMjrContext con):
 */
  mjr_restoreBuffer(__pyx_v_con->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5220
 *     mjr_uploadHField(m.ptr, con.ptr, hfieldid)
 * 
 * def _mjr_restoreBuffer(PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_restoreBuffer(con.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5223
 *     mjr_restoreBuffer(con.ptr)
 * 
 * def _mjr_setBuffer(int framebuffer, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_setBuffer(framebuffer, con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_285_mjr_setBuffer(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_285_mjr_setBuffer = {"_mjr_setBuffer", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_285_mjr_setBuffer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_285_mjr_setBuffer(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_framebuffer;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_setBuffer (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_framebuffer,&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_framebuffer)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5223, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5223, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_setBuffer", 1, 2, 2, 1); __PYX_ERR(4, 5223, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_setBuffer") < 0)) __PYX_ERR(4, 5223, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_framebuffer = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_framebuffer == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5223, __pyx_L3_error)
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_setBuffer", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5223, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_setBuffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5223, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_284_mjr_setBuffer(__pyx_self, __pyx_v_framebuffer, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_284_mjr_setBuffer(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_framebuffer, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_setBuffer", 1);

  /* "mujoco_py/generated/wrappers.pxi":5224
 * 
 * def _mjr_setBuffer(int framebuffer, PyMjrContext con):
 *     mjr_setBuffer(framebuffer, con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_blitBuffer(PyMjrRect src, PyMjrRect dst, int flg_color, int flg_depth, PyMjrContext con):
 */
  mjr_setBuffer(__pyx_v_framebuffer, __pyx_v_con->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5223
 *     mjr_restoreBuffer(con.ptr)
 * 
 * def _mjr_setBuffer(int framebuffer, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_setBuffer(framebuffer, con.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5226
 *     mjr_setBuffer(framebuffer, con.ptr)
 * 
 * def _mjr_blitBuffer(PyMjrRect src, PyMjrRect dst, int flg_color, int flg_depth, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_blitBuffer(src.ptr[0], dst.ptr[0], flg_color, flg_depth, con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_287_mjr_blitBuffer(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_287_mjr_blitBuffer = {"_mjr_blitBuffer", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_287_mjr_blitBuffer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_287_mjr_blitBuffer(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_src = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_dst = 0;
  int __pyx_v_flg_color;
  int __pyx_v_flg_depth;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_blitBuffer (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_src,&__pyx_n_s_dst,&__pyx_n_s_flg_color,&__pyx_n_s_flg_depth,&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_src)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5226, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dst)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5226, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_blitBuffer", 1, 5, 5, 1); __PYX_ERR(4, 5226, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flg_color)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5226, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_blitBuffer", 1, 5, 5, 2); __PYX_ERR(4, 5226, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flg_depth)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5226, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_blitBuffer", 1, 5, 5, 3); __PYX_ERR(4, 5226, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5226, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_blitBuffer", 1, 5, 5, 4); __PYX_ERR(4, 5226, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_blitBuffer") < 0)) __PYX_ERR(4, 5226, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_src = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)values[0]);
    __pyx_v_dst = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)values[1]);
    __pyx_v_flg_color = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_flg_color == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5226, __pyx_L3_error)
    __pyx_v_flg_depth = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_flg_depth == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5226, __pyx_L3_error)
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[4]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_blitBuffer", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5226, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_blitBuffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_src), __pyx_ptype_9mujoco_py_4cymj_PyMjrRect, 1, "src", 0))) __PYX_ERR(4, 5226, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dst), __pyx_ptype_9mujoco_py_4cymj_PyMjrRect, 1, "dst", 0))) __PYX_ERR(4, 5226, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5226, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_286_mjr_blitBuffer(__pyx_self, __pyx_v_src, __pyx_v_dst, __pyx_v_flg_color, __pyx_v_flg_depth, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_286_mjr_blitBuffer(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_src, struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_dst, int __pyx_v_flg_color, int __pyx_v_flg_depth, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_blitBuffer", 1);

  /* "mujoco_py/generated/wrappers.pxi":5227
 * 
 * def _mjr_blitBuffer(PyMjrRect src, PyMjrRect dst, int flg_color, int flg_depth, PyMjrContext con):
 *     mjr_blitBuffer(src.ptr[0], dst.ptr[0], flg_color, flg_depth, con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_setAux(int index, PyMjrContext con):
 */
  mjr_blitBuffer((__pyx_v_src->ptr[0]), (__pyx_v_dst->ptr[0]), __pyx_v_flg_color, __pyx_v_flg_depth, __pyx_v_con->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5226
 *     mjr_setBuffer(framebuffer, con.ptr)
 * 
 * def _mjr_blitBuffer(PyMjrRect src, PyMjrRect dst, int flg_color, int flg_depth, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_blitBuffer(src.ptr[0], dst.ptr[0], flg_color, flg_depth, con.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5229
 *     mjr_blitBuffer(src.ptr[0], dst.ptr[0], flg_color, flg_depth, con.ptr)
 * 
 * def _mjr_setAux(int index, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_setAux(index, con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_289_mjr_setAux(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_289_mjr_setAux = {"_mjr_setAux", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_289_mjr_setAux, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_289_mjr_setAux(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_index;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_setAux (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_index,&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_index)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5229, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5229, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_setAux", 1, 2, 2, 1); __PYX_ERR(4, 5229, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_setAux") < 0)) __PYX_ERR(4, 5229, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_index = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_index == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5229, __pyx_L3_error)
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_setAux", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5229, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_setAux", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5229, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_288_mjr_setAux(__pyx_self, __pyx_v_index, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_288_mjr_setAux(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_index, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_setAux", 1);

  /* "mujoco_py/generated/wrappers.pxi":5230
 * 
 * def _mjr_setAux(int index, PyMjrContext con):
 *     mjr_setAux(index, con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_blitAux(int index, PyMjrRect src, int left, int bottom, PyMjrContext con):
 */
  mjr_setAux(__pyx_v_index, __pyx_v_con->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5229
 *     mjr_blitBuffer(src.ptr[0], dst.ptr[0], flg_color, flg_depth, con.ptr)
 * 
 * def _mjr_setAux(int index, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_setAux(index, con.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5232
 *     mjr_setAux(index, con.ptr)
 * 
 * def _mjr_blitAux(int index, PyMjrRect src, int left, int bottom, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_blitAux(index, src.ptr[0], left, bottom, con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_291_mjr_blitAux(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_291_mjr_blitAux = {"_mjr_blitAux", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_291_mjr_blitAux, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_291_mjr_blitAux(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_index;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_src = 0;
  int __pyx_v_left;
  int __pyx_v_bottom;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_blitAux (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_index,&__pyx_n_s_src,&__pyx_n_s_left,&__pyx_n_s_bottom,&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_index)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5232, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_src)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5232, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_blitAux", 1, 5, 5, 1); __PYX_ERR(4, 5232, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5232, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_blitAux", 1, 5, 5, 2); __PYX_ERR(4, 5232, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_bottom)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5232, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_blitAux", 1, 5, 5, 3); __PYX_ERR(4, 5232, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5232, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_blitAux", 1, 5, 5, 4); __PYX_ERR(4, 5232, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_blitAux") < 0)) __PYX_ERR(4, 5232, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_index = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_index == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5232, __pyx_L3_error)
    __pyx_v_src = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)values[1]);
    __pyx_v_left = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_left == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5232, __pyx_L3_error)
    __pyx_v_bottom = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_bottom == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5232, __pyx_L3_error)
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[4]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_blitAux", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5232, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_blitAux", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_src), __pyx_ptype_9mujoco_py_4cymj_PyMjrRect, 1, "src", 0))) __PYX_ERR(4, 5232, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5232, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_290_mjr_blitAux(__pyx_self, __pyx_v_index, __pyx_v_src, __pyx_v_left, __pyx_v_bottom, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_290_mjr_blitAux(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_index, struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_src, int __pyx_v_left, int __pyx_v_bottom, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_blitAux", 1);

  /* "mujoco_py/generated/wrappers.pxi":5233
 * 
 * def _mjr_blitAux(int index, PyMjrRect src, int left, int bottom, PyMjrContext con):
 *     mjr_blitAux(index, src.ptr[0], left, bottom, con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_overlay(int font, int gridpos, PyMjrRect viewport, str overlay, str overlay2, PyMjrContext con):
 */
  mjr_blitAux(__pyx_v_index, (__pyx_v_src->ptr[0]), __pyx_v_left, __pyx_v_bottom, __pyx_v_con->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5232
 *     mjr_setAux(index, con.ptr)
 * 
 * def _mjr_blitAux(int index, PyMjrRect src, int left, int bottom, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_blitAux(index, src.ptr[0], left, bottom, con.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5235
 *     mjr_blitAux(index, src.ptr[0], left, bottom, con.ptr)
 * 
 * def _mjr_overlay(int font, int gridpos, PyMjrRect viewport, str overlay, str overlay2, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_overlay(font, gridpos, viewport.ptr[0], overlay.encode(), overlay2.encode(), con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_293_mjr_overlay(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_293_mjr_overlay = {"_mjr_overlay", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_293_mjr_overlay, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_293_mjr_overlay(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_font;
  int __pyx_v_gridpos;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_viewport = 0;
  PyObject *__pyx_v_overlay = 0;
  PyObject *__pyx_v_overlay2 = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_overlay (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_font,&__pyx_n_s_gridpos,&__pyx_n_s_viewport,&__pyx_n_s_overlay,&__pyx_n_s_overlay2,&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_font)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5235, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gridpos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5235, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_overlay", 1, 6, 6, 1); __PYX_ERR(4, 5235, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_viewport)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5235, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_overlay", 1, 6, 6, 2); __PYX_ERR(4, 5235, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_overlay)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5235, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_overlay", 1, 6, 6, 3); __PYX_ERR(4, 5235, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_overlay2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5235, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_overlay", 1, 6, 6, 4); __PYX_ERR(4, 5235, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5235, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_overlay", 1, 6, 6, 5); __PYX_ERR(4, 5235, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_overlay") < 0)) __PYX_ERR(4, 5235, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_font = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_font == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5235, __pyx_L3_error)
    __pyx_v_gridpos = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_gridpos == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5235, __pyx_L3_error)
    __pyx_v_viewport = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)values[2]);
    __pyx_v_overlay = ((PyObject*)values[3]);
    __pyx_v_overlay2 = ((PyObject*)values[4]);
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[5]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_overlay", 1, 6, 6, __pyx_nargs); __PYX_ERR(4, 5235, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_overlay", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewport), __pyx_ptype_9mujoco_py_4cymj_PyMjrRect, 1, "viewport", 0))) __PYX_ERR(4, 5235, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_overlay), (&PyUnicode_Type), 1, "overlay", 1))) __PYX_ERR(4, 5235, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_overlay2), (&PyUnicode_Type), 1, "overlay2", 1))) __PYX_ERR(4, 5235, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5235, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_292_mjr_overlay(__pyx_self, __pyx_v_font, __pyx_v_gridpos, __pyx_v_viewport, __pyx_v_overlay, __pyx_v_overlay2, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_292_mjr_overlay(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_font, int __pyx_v_gridpos, struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_viewport, PyObject *__pyx_v_overlay, PyObject *__pyx_v_overlay2, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  char const *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mjr_overlay", 1);

  /* "mujoco_py/generated/wrappers.pxi":5236
 * 
 * def _mjr_overlay(int font, int gridpos, PyMjrRect viewport, str overlay, str overlay2, PyMjrContext con):
 *     mjr_overlay(font, gridpos, viewport.ptr[0], overlay.encode(), overlay2.encode(), con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_figure(PyMjrRect viewport, PyMjvFigure fig, PyMjrContext con):
 */
  if (unlikely(__pyx_v_overlay == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 5236, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_overlay, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 5236, __pyx_L1_error)
  if (unlikely(__pyx_v_overlay2 == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 5236, __pyx_L1_error)
  }
  __pyx_t_3 = PyUnicode_AsEncodedString(__pyx_v_overlay2, NULL, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_t_3); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(4, 5236, __pyx_L1_error)
  mjr_overlay(__pyx_v_font, __pyx_v_gridpos, (__pyx_v_viewport->ptr[0]), __pyx_t_2, __pyx_t_4, __pyx_v_con->ptr);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5235
 *     mjr_blitAux(index, src.ptr[0], left, bottom, con.ptr)
 * 
 * def _mjr_overlay(int font, int gridpos, PyMjrRect viewport, str overlay, str overlay2, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_overlay(font, gridpos, viewport.ptr[0], overlay.encode(), overlay2.encode(), con.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_overlay", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5238
 *     mjr_overlay(font, gridpos, viewport.ptr[0], overlay.encode(), overlay2.encode(), con.ptr)
 * 
 * def _mjr_figure(PyMjrRect viewport, PyMjvFigure fig, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_figure(viewport.ptr[0], fig.ptr, con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_295_mjr_figure(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_295_mjr_figure = {"_mjr_figure", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_295_mjr_figure, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_295_mjr_figure(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_viewport = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_fig = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_figure (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewport,&__pyx_n_s_fig,&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_viewport)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5238, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fig)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5238, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_figure", 1, 3, 3, 1); __PYX_ERR(4, 5238, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5238, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_figure", 1, 3, 3, 2); __PYX_ERR(4, 5238, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_figure") < 0)) __PYX_ERR(4, 5238, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_viewport = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)values[0]);
    __pyx_v_fig = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)values[1]);
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_figure", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5238, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_figure", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewport), __pyx_ptype_9mujoco_py_4cymj_PyMjrRect, 1, "viewport", 0))) __PYX_ERR(4, 5238, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fig), __pyx_ptype_9mujoco_py_4cymj_PyMjvFigure, 1, "fig", 0))) __PYX_ERR(4, 5238, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5238, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_294_mjr_figure(__pyx_self, __pyx_v_viewport, __pyx_v_fig, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_294_mjr_figure(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_viewport, struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *__pyx_v_fig, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_figure", 1);

  /* "mujoco_py/generated/wrappers.pxi":5239
 * 
 * def _mjr_figure(PyMjrRect viewport, PyMjvFigure fig, PyMjrContext con):
 *     mjr_figure(viewport.ptr[0], fig.ptr, con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_render(PyMjrRect viewport, PyMjvScene scn, PyMjrContext con):
 */
  mjr_figure((__pyx_v_viewport->ptr[0]), __pyx_v_fig->ptr, __pyx_v_con->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5238
 *     mjr_overlay(font, gridpos, viewport.ptr[0], overlay.encode(), overlay2.encode(), con.ptr)
 * 
 * def _mjr_figure(PyMjrRect viewport, PyMjvFigure fig, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_figure(viewport.ptr[0], fig.ptr, con.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5241
 *     mjr_figure(viewport.ptr[0], fig.ptr, con.ptr)
 * 
 * def _mjr_render(PyMjrRect viewport, PyMjvScene scn, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_render(viewport.ptr[0], scn.ptr, con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_297_mjr_render(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_297_mjr_render = {"_mjr_render", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_297_mjr_render, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_297_mjr_render(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_viewport = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_render (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewport,&__pyx_n_s_scn,&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_viewport)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5241, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5241, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_render", 1, 3, 3, 1); __PYX_ERR(4, 5241, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5241, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_render", 1, 3, 3, 2); __PYX_ERR(4, 5241, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_render") < 0)) __PYX_ERR(4, 5241, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_viewport = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)values[0]);
    __pyx_v_scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)values[1]);
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_render", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5241, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewport), __pyx_ptype_9mujoco_py_4cymj_PyMjrRect, 1, "viewport", 0))) __PYX_ERR(4, 5241, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scn), __pyx_ptype_9mujoco_py_4cymj_PyMjvScene, 1, "scn", 0))) __PYX_ERR(4, 5241, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5241, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_296_mjr_render(__pyx_self, __pyx_v_viewport, __pyx_v_scn, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_296_mjr_render(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_viewport, struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *__pyx_v_scn, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_render", 1);

  /* "mujoco_py/generated/wrappers.pxi":5242
 * 
 * def _mjr_render(PyMjrRect viewport, PyMjvScene scn, PyMjrContext con):
 *     mjr_render(viewport.ptr[0], scn.ptr, con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjr_finish():
 */
  mjr_render((__pyx_v_viewport->ptr[0]), __pyx_v_scn->ptr, __pyx_v_con->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5241
 *     mjr_figure(viewport.ptr[0], fig.ptr, con.ptr)
 * 
 * def _mjr_render(PyMjrRect viewport, PyMjvScene scn, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_render(viewport.ptr[0], scn.ptr, con.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5244
 *     mjr_render(viewport.ptr[0], scn.ptr, con.ptr)
 * 
 * def _mjr_finish():             # <<<<<<<<<<<<<<
 *     mjr_finish()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_299_mjr_finish(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_299_mjr_finish = {"_mjr_finish", (PyCFunction)__pyx_pw_9mujoco_py_4cymj_299_mjr_finish, METH_NOARGS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_299_mjr_finish(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_finish (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_298_mjr_finish(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_298_mjr_finish(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_finish", 1);

  /* "mujoco_py/generated/wrappers.pxi":5245
 * 
 * def _mjr_finish():
 *     mjr_finish()             # <<<<<<<<<<<<<<
 * 
 * def _mjr_getError():
 */
  mjr_finish();

  /* "mujoco_py/generated/wrappers.pxi":5244
 *     mjr_render(viewport.ptr[0], scn.ptr, con.ptr)
 * 
 * def _mjr_finish():             # <<<<<<<<<<<<<<
 *     mjr_finish()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5247
 *     mjr_finish()
 * 
 * def _mjr_getError():             # <<<<<<<<<<<<<<
 *     return mjr_getError()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_301_mjr_getError(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_301_mjr_getError = {"_mjr_getError", (PyCFunction)__pyx_pw_9mujoco_py_4cymj_301_mjr_getError, METH_NOARGS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_301_mjr_getError(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_getError (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_300_mjr_getError(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_300_mjr_getError(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mjr_getError", 1);

  /* "mujoco_py/generated/wrappers.pxi":5248
 * 
 * def _mjr_getError():
 *     return mjr_getError()             # <<<<<<<<<<<<<<
 * 
 * def _mjr_findRect(int x, int y, int nrect, PyMjrRect rect):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(mjr_getError()); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5247
 *     mjr_finish()
 * 
 * def _mjr_getError():             # <<<<<<<<<<<<<<
 *     return mjr_getError()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_getError", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5250
 *     return mjr_getError()
 * 
 * def _mjr_findRect(int x, int y, int nrect, PyMjrRect rect):             # <<<<<<<<<<<<<<
 *     return mjr_findRect(x, y, nrect, rect.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_303_mjr_findRect(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_303_mjr_findRect = {"_mjr_findRect", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_303_mjr_findRect, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_303_mjr_findRect(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_x;
  int __pyx_v_y;
  int __pyx_v_nrect;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_rect = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjr_findRect (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,&__pyx_n_s_nrect,&__pyx_n_s_rect,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5250, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_y)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5250, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_findRect", 1, 4, 4, 1); __PYX_ERR(4, 5250, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nrect)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5250, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_findRect", 1, 4, 4, 2); __PYX_ERR(4, 5250, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rect)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5250, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjr_findRect", 1, 4, 4, 3); __PYX_ERR(4, 5250, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjr_findRect") < 0)) __PYX_ERR(4, 5250, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_x = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5250, __pyx_L3_error)
    __pyx_v_y = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_y == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5250, __pyx_L3_error)
    __pyx_v_nrect = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nrect == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5250, __pyx_L3_error)
    __pyx_v_rect = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjr_findRect", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5250, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_findRect", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rect), __pyx_ptype_9mujoco_py_4cymj_PyMjrRect, 1, "rect", 0))) __PYX_ERR(4, 5250, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_302_mjr_findRect(__pyx_self, __pyx_v_x, __pyx_v_y, __pyx_v_nrect, __pyx_v_rect);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_302_mjr_findRect(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_x, int __pyx_v_y, int __pyx_v_nrect, struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *__pyx_v_rect) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mjr_findRect", 1);

  /* "mujoco_py/generated/wrappers.pxi":5251
 * 
 * def _mjr_findRect(int x, int y, int nrect, PyMjrRect rect):
 *     return mjr_findRect(x, y, nrect, rect.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjui_add(PyMjUI ui, PyMjuiDef _def):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(mjr_findRect(__pyx_v_x, __pyx_v_y, __pyx_v_nrect, __pyx_v_rect->ptr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5250
 *     return mjr_getError()
 * 
 * def _mjr_findRect(int x, int y, int nrect, PyMjrRect rect):             # <<<<<<<<<<<<<<
 *     return mjr_findRect(x, y, nrect, rect.ptr)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mjr_findRect", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5253
 *     return mjr_findRect(x, y, nrect, rect.ptr)
 * 
 * def _mjui_add(PyMjUI ui, PyMjuiDef _def):             # <<<<<<<<<<<<<<
 *     mjui_add(ui.ptr, _def.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_305_mjui_add(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_305_mjui_add = {"_mjui_add", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_305_mjui_add, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_305_mjui_add(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v__def = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjui_add (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ui,&__pyx_n_s_def,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ui)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5253, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_def)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5253, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjui_add", 1, 2, 2, 1); __PYX_ERR(4, 5253, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjui_add") < 0)) __PYX_ERR(4, 5253, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_ui = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)values[0]);
    __pyx_v__def = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjui_add", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5253, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjui_add", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ui), __pyx_ptype_9mujoco_py_4cymj_PyMjUI, 1, "ui", 0))) __PYX_ERR(4, 5253, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v__def), __pyx_ptype_9mujoco_py_4cymj_PyMjuiDef, 1, "_def", 0))) __PYX_ERR(4, 5253, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_304_mjui_add(__pyx_self, __pyx_v_ui, __pyx_v__def);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_304_mjui_add(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui, struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v__def) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjui_add", 1);

  /* "mujoco_py/generated/wrappers.pxi":5254
 * 
 * def _mjui_add(PyMjUI ui, PyMjuiDef _def):
 *     mjui_add(ui.ptr, _def.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjui_addToSection(PyMjUI ui, int sect, PyMjuiDef _def):
 */
  mjui_add(__pyx_v_ui->ptr, __pyx_v__def->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5253
 *     return mjr_findRect(x, y, nrect, rect.ptr)
 * 
 * def _mjui_add(PyMjUI ui, PyMjuiDef _def):             # <<<<<<<<<<<<<<
 *     mjui_add(ui.ptr, _def.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5256
 *     mjui_add(ui.ptr, _def.ptr)
 * 
 * def _mjui_addToSection(PyMjUI ui, int sect, PyMjuiDef _def):             # <<<<<<<<<<<<<<
 *     mjui_addToSection(ui.ptr, sect, _def.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_307_mjui_addToSection(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_307_mjui_addToSection = {"_mjui_addToSection", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_307_mjui_addToSection, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_307_mjui_addToSection(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui = 0;
  int __pyx_v_sect;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v__def = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjui_addToSection (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ui,&__pyx_n_s_sect,&__pyx_n_s_def,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ui)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5256, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sect)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5256, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjui_addToSection", 1, 3, 3, 1); __PYX_ERR(4, 5256, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_def)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5256, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjui_addToSection", 1, 3, 3, 2); __PYX_ERR(4, 5256, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjui_addToSection") < 0)) __PYX_ERR(4, 5256, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_ui = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)values[0]);
    __pyx_v_sect = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_sect == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5256, __pyx_L3_error)
    __pyx_v__def = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjui_addToSection", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5256, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjui_addToSection", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ui), __pyx_ptype_9mujoco_py_4cymj_PyMjUI, 1, "ui", 0))) __PYX_ERR(4, 5256, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v__def), __pyx_ptype_9mujoco_py_4cymj_PyMjuiDef, 1, "_def", 0))) __PYX_ERR(4, 5256, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_306_mjui_addToSection(__pyx_self, __pyx_v_ui, __pyx_v_sect, __pyx_v__def);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_306_mjui_addToSection(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui, int __pyx_v_sect, struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *__pyx_v__def) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjui_addToSection", 1);

  /* "mujoco_py/generated/wrappers.pxi":5257
 * 
 * def _mjui_addToSection(PyMjUI ui, int sect, PyMjuiDef _def):
 *     mjui_addToSection(ui.ptr, sect, _def.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjui_resize(PyMjUI ui, PyMjrContext con):
 */
  mjui_addToSection(__pyx_v_ui->ptr, __pyx_v_sect, __pyx_v__def->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5256
 *     mjui_add(ui.ptr, _def.ptr)
 * 
 * def _mjui_addToSection(PyMjUI ui, int sect, PyMjuiDef _def):             # <<<<<<<<<<<<<<
 *     mjui_addToSection(ui.ptr, sect, _def.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5259
 *     mjui_addToSection(ui.ptr, sect, _def.ptr)
 * 
 * def _mjui_resize(PyMjUI ui, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjui_resize(ui.ptr, con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_309_mjui_resize(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_309_mjui_resize = {"_mjui_resize", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_309_mjui_resize, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_309_mjui_resize(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjui_resize (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ui,&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ui)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5259, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5259, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjui_resize", 1, 2, 2, 1); __PYX_ERR(4, 5259, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjui_resize") < 0)) __PYX_ERR(4, 5259, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_ui = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)values[0]);
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjui_resize", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5259, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjui_resize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ui), __pyx_ptype_9mujoco_py_4cymj_PyMjUI, 1, "ui", 0))) __PYX_ERR(4, 5259, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5259, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_308_mjui_resize(__pyx_self, __pyx_v_ui, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_308_mjui_resize(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjui_resize", 1);

  /* "mujoco_py/generated/wrappers.pxi":5260
 * 
 * def _mjui_resize(PyMjUI ui, PyMjrContext con):
 *     mjui_resize(ui.ptr, con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjui_update(int section, int item, PyMjUI ui, PyMjuiState state, PyMjrContext con):
 */
  mjui_resize(__pyx_v_ui->ptr, __pyx_v_con->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5259
 *     mjui_addToSection(ui.ptr, sect, _def.ptr)
 * 
 * def _mjui_resize(PyMjUI ui, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjui_resize(ui.ptr, con.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5262
 *     mjui_resize(ui.ptr, con.ptr)
 * 
 * def _mjui_update(int section, int item, PyMjUI ui, PyMjuiState state, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjui_update(section, item, ui.ptr, state.ptr, con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_311_mjui_update(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_311_mjui_update = {"_mjui_update", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_311_mjui_update, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_311_mjui_update(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_section;
  int __pyx_v_item;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_state = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjui_update (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_section,&__pyx_n_s_item,&__pyx_n_s_ui,&__pyx_n_s_state,&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_section)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5262, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_item)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5262, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjui_update", 1, 5, 5, 1); __PYX_ERR(4, 5262, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ui)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5262, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjui_update", 1, 5, 5, 2); __PYX_ERR(4, 5262, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5262, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjui_update", 1, 5, 5, 3); __PYX_ERR(4, 5262, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5262, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjui_update", 1, 5, 5, 4); __PYX_ERR(4, 5262, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjui_update") < 0)) __PYX_ERR(4, 5262, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_section = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_section == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5262, __pyx_L3_error)
    __pyx_v_item = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_item == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5262, __pyx_L3_error)
    __pyx_v_ui = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)values[2]);
    __pyx_v_state = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)values[3]);
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[4]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjui_update", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5262, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjui_update", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ui), __pyx_ptype_9mujoco_py_4cymj_PyMjUI, 1, "ui", 0))) __PYX_ERR(4, 5262, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_state), __pyx_ptype_9mujoco_py_4cymj_PyMjuiState, 1, "state", 0))) __PYX_ERR(4, 5262, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5262, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_310_mjui_update(__pyx_self, __pyx_v_section, __pyx_v_item, __pyx_v_ui, __pyx_v_state, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_310_mjui_update(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_section, int __pyx_v_item, struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui, struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_state, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjui_update", 1);

  /* "mujoco_py/generated/wrappers.pxi":5263
 * 
 * def _mjui_update(int section, int item, PyMjUI ui, PyMjuiState state, PyMjrContext con):
 *     mjui_update(section, item, ui.ptr, state.ptr, con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mjui_event(PyMjUI ui, PyMjuiState state, PyMjrContext con):
 */
  mjui_update(__pyx_v_section, __pyx_v_item, __pyx_v_ui->ptr, __pyx_v_state->ptr, __pyx_v_con->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5262
 *     mjui_resize(ui.ptr, con.ptr)
 * 
 * def _mjui_update(int section, int item, PyMjUI ui, PyMjuiState state, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjui_update(section, item, ui.ptr, state.ptr, con.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5265
 *     mjui_update(section, item, ui.ptr, state.ptr, con.ptr)
 * 
 * def _mjui_event(PyMjUI ui, PyMjuiState state, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     return WrapMjuiItem(mjui_event(ui.ptr, state.ptr, con.ptr))
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_313_mjui_event(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_313_mjui_event = {"_mjui_event", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_313_mjui_event, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_313_mjui_event(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_state = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjui_event (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ui,&__pyx_n_s_state,&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ui)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5265, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5265, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjui_event", 1, 3, 3, 1); __PYX_ERR(4, 5265, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5265, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjui_event", 1, 3, 3, 2); __PYX_ERR(4, 5265, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjui_event") < 0)) __PYX_ERR(4, 5265, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_ui = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)values[0]);
    __pyx_v_state = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)values[1]);
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjui_event", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5265, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjui_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ui), __pyx_ptype_9mujoco_py_4cymj_PyMjUI, 1, "ui", 0))) __PYX_ERR(4, 5265, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_state), __pyx_ptype_9mujoco_py_4cymj_PyMjuiState, 1, "state", 0))) __PYX_ERR(4, 5265, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5265, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_312_mjui_event(__pyx_self, __pyx_v_ui, __pyx_v_state, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_312_mjui_event(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui, struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_state, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mjui_event", 1);

  /* "mujoco_py/generated/wrappers.pxi":5266
 * 
 * def _mjui_event(PyMjUI ui, PyMjuiState state, PyMjrContext con):
 *     return WrapMjuiItem(mjui_event(ui.ptr, state.ptr, con.ptr))             # <<<<<<<<<<<<<<
 * 
 * def _mjui_render(PyMjUI ui, PyMjuiState state, PyMjrContext con):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjuiItem(mjui_event(__pyx_v_ui->ptr, __pyx_v_state->ptr, __pyx_v_con->ptr))); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5265
 *     mjui_update(section, item, ui.ptr, state.ptr, con.ptr)
 * 
 * def _mjui_event(PyMjUI ui, PyMjuiState state, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     return WrapMjuiItem(mjui_event(ui.ptr, state.ptr, con.ptr))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mjui_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5268
 *     return WrapMjuiItem(mjui_event(ui.ptr, state.ptr, con.ptr))
 * 
 * def _mjui_render(PyMjUI ui, PyMjuiState state, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjui_render(ui.ptr, state.ptr, con.ptr)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_315_mjui_render(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_315_mjui_render = {"_mjui_render", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_315_mjui_render, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_315_mjui_render(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_state = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjui_render (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ui,&__pyx_n_s_state,&__pyx_n_s_con,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ui)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5268, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5268, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjui_render", 1, 3, 3, 1); __PYX_ERR(4, 5268, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_con)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5268, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mjui_render", 1, 3, 3, 2); __PYX_ERR(4, 5268, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mjui_render") < 0)) __PYX_ERR(4, 5268, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_ui = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)values[0]);
    __pyx_v_state = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)values[1]);
    __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mjui_render", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5268, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mjui_render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ui), __pyx_ptype_9mujoco_py_4cymj_PyMjUI, 1, "ui", 0))) __PYX_ERR(4, 5268, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_state), __pyx_ptype_9mujoco_py_4cymj_PyMjuiState, 1, "state", 0))) __PYX_ERR(4, 5268, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_con), __pyx_ptype_9mujoco_py_4cymj_PyMjrContext, 1, "con", 0))) __PYX_ERR(4, 5268, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_314_mjui_render(__pyx_self, __pyx_v_ui, __pyx_v_state, __pyx_v_con);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_314_mjui_render(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *__pyx_v_ui, struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *__pyx_v_state, struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mjui_render", 1);

  /* "mujoco_py/generated/wrappers.pxi":5269
 * 
 * def _mjui_render(PyMjUI ui, PyMjuiState state, PyMjrContext con):
 *     mjui_render(ui.ptr, state.ptr, con.ptr)             # <<<<<<<<<<<<<<
 * 
 * def _mju_error(str msg):
 */
  mjui_render(__pyx_v_ui->ptr, __pyx_v_state->ptr, __pyx_v_con->ptr);

  /* "mujoco_py/generated/wrappers.pxi":5268
 *     return WrapMjuiItem(mjui_event(ui.ptr, state.ptr, con.ptr))
 * 
 * def _mjui_render(PyMjUI ui, PyMjuiState state, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjui_render(ui.ptr, state.ptr, con.ptr)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5271
 *     mjui_render(ui.ptr, state.ptr, con.ptr)
 * 
 * def _mju_error(str msg):             # <<<<<<<<<<<<<<
 *     mju_error(msg.encode())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_317_mju_error(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_317_mju_error = {"_mju_error", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_317_mju_error, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_317_mju_error(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_msg = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_error (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_msg,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_msg)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5271, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_error") < 0)) __PYX_ERR(4, 5271, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_msg = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_error", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5271, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_msg), (&PyUnicode_Type), 1, "msg", 1))) __PYX_ERR(4, 5271, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_316_mju_error(__pyx_self, __pyx_v_msg);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_316_mju_error(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_msg) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_error", 1);

  /* "mujoco_py/generated/wrappers.pxi":5272
 * 
 * def _mju_error(str msg):
 *     mju_error(msg.encode())             # <<<<<<<<<<<<<<
 * 
 * def _mju_error_i(str msg, int i):
 */
  if (unlikely(__pyx_v_msg == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 5272, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_msg, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 5272, __pyx_L1_error)
  mju_error(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5271
 *     mjui_render(ui.ptr, state.ptr, con.ptr)
 * 
 * def _mju_error(str msg):             # <<<<<<<<<<<<<<
 *     mju_error(msg.encode())
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5274
 *     mju_error(msg.encode())
 * 
 * def _mju_error_i(str msg, int i):             # <<<<<<<<<<<<<<
 *     mju_error_i(msg.encode(), i)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_319_mju_error_i(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_319_mju_error_i = {"_mju_error_i", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_319_mju_error_i, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_319_mju_error_i(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_msg = 0;
  int __pyx_v_i;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_error_i (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_msg,&__pyx_n_s_i,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_msg)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5274, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5274, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_error_i", 1, 2, 2, 1); __PYX_ERR(4, 5274, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_error_i") < 0)) __PYX_ERR(4, 5274, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_msg = ((PyObject*)values[0]);
    __pyx_v_i = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_i == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5274, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_error_i", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5274, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_error_i", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_msg), (&PyUnicode_Type), 1, "msg", 1))) __PYX_ERR(4, 5274, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_318_mju_error_i(__pyx_self, __pyx_v_msg, __pyx_v_i);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_318_mju_error_i(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_msg, int __pyx_v_i) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_error_i", 1);

  /* "mujoco_py/generated/wrappers.pxi":5275
 * 
 * def _mju_error_i(str msg, int i):
 *     mju_error_i(msg.encode(), i)             # <<<<<<<<<<<<<<
 * 
 * def _mju_error_s(str msg, str text):
 */
  if (unlikely(__pyx_v_msg == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 5275, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_msg, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 5275, __pyx_L1_error)
  mju_error_i(__pyx_t_2, __pyx_v_i);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5274
 *     mju_error(msg.encode())
 * 
 * def _mju_error_i(str msg, int i):             # <<<<<<<<<<<<<<
 *     mju_error_i(msg.encode(), i)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_error_i", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5277
 *     mju_error_i(msg.encode(), i)
 * 
 * def _mju_error_s(str msg, str text):             # <<<<<<<<<<<<<<
 *     mju_error_s(msg.encode(), text.encode())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_321_mju_error_s(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_321_mju_error_s = {"_mju_error_s", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_321_mju_error_s, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_321_mju_error_s(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_msg = 0;
  PyObject *__pyx_v_text = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_error_s (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_msg,&__pyx_n_s_text,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_msg)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5277, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_text)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5277, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_error_s", 1, 2, 2, 1); __PYX_ERR(4, 5277, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_error_s") < 0)) __PYX_ERR(4, 5277, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_msg = ((PyObject*)values[0]);
    __pyx_v_text = ((PyObject*)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_error_s", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5277, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_error_s", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_msg), (&PyUnicode_Type), 1, "msg", 1))) __PYX_ERR(4, 5277, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_text), (&PyUnicode_Type), 1, "text", 1))) __PYX_ERR(4, 5277, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_320_mju_error_s(__pyx_self, __pyx_v_msg, __pyx_v_text);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_320_mju_error_s(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_msg, PyObject *__pyx_v_text) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  char const *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_error_s", 1);

  /* "mujoco_py/generated/wrappers.pxi":5278
 * 
 * def _mju_error_s(str msg, str text):
 *     mju_error_s(msg.encode(), text.encode())             # <<<<<<<<<<<<<<
 * 
 * def _mju_warning(str msg):
 */
  if (unlikely(__pyx_v_msg == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 5278, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_msg, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 5278, __pyx_L1_error)
  if (unlikely(__pyx_v_text == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 5278, __pyx_L1_error)
  }
  __pyx_t_3 = PyUnicode_AsEncodedString(__pyx_v_text, NULL, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_t_3); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(4, 5278, __pyx_L1_error)
  mju_error_s(__pyx_t_2, __pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5277
 *     mju_error_i(msg.encode(), i)
 * 
 * def _mju_error_s(str msg, str text):             # <<<<<<<<<<<<<<
 *     mju_error_s(msg.encode(), text.encode())
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_error_s", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5280
 *     mju_error_s(msg.encode(), text.encode())
 * 
 * def _mju_warning(str msg):             # <<<<<<<<<<<<<<
 *     mju_warning(msg.encode())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_323_mju_warning(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_323_mju_warning = {"_mju_warning", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_323_mju_warning, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_323_mju_warning(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_msg = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_warning (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_msg,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_msg)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5280, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_warning") < 0)) __PYX_ERR(4, 5280, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_msg = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_warning", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5280, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_warning", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_msg), (&PyUnicode_Type), 1, "msg", 1))) __PYX_ERR(4, 5280, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_322_mju_warning(__pyx_self, __pyx_v_msg);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_322_mju_warning(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_msg) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_warning", 1);

  /* "mujoco_py/generated/wrappers.pxi":5281
 * 
 * def _mju_warning(str msg):
 *     mju_warning(msg.encode())             # <<<<<<<<<<<<<<
 * 
 * def _mju_warning_i(str msg, int i):
 */
  if (unlikely(__pyx_v_msg == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 5281, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_msg, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 5281, __pyx_L1_error)
  mju_warning(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5280
 *     mju_error_s(msg.encode(), text.encode())
 * 
 * def _mju_warning(str msg):             # <<<<<<<<<<<<<<
 *     mju_warning(msg.encode())
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_warning", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5283
 *     mju_warning(msg.encode())
 * 
 * def _mju_warning_i(str msg, int i):             # <<<<<<<<<<<<<<
 *     mju_warning_i(msg.encode(), i)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_325_mju_warning_i(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_325_mju_warning_i = {"_mju_warning_i", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_325_mju_warning_i, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_325_mju_warning_i(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_msg = 0;
  int __pyx_v_i;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_warning_i (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_msg,&__pyx_n_s_i,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_msg)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5283, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5283, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_warning_i", 1, 2, 2, 1); __PYX_ERR(4, 5283, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_warning_i") < 0)) __PYX_ERR(4, 5283, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_msg = ((PyObject*)values[0]);
    __pyx_v_i = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_i == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5283, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_warning_i", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5283, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_warning_i", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_msg), (&PyUnicode_Type), 1, "msg", 1))) __PYX_ERR(4, 5283, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_324_mju_warning_i(__pyx_self, __pyx_v_msg, __pyx_v_i);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_324_mju_warning_i(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_msg, int __pyx_v_i) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_warning_i", 1);

  /* "mujoco_py/generated/wrappers.pxi":5284
 * 
 * def _mju_warning_i(str msg, int i):
 *     mju_warning_i(msg.encode(), i)             # <<<<<<<<<<<<<<
 * 
 * def _mju_warning_s(str msg, str text):
 */
  if (unlikely(__pyx_v_msg == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 5284, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_msg, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 5284, __pyx_L1_error)
  mju_warning_i(__pyx_t_2, __pyx_v_i);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5283
 *     mju_warning(msg.encode())
 * 
 * def _mju_warning_i(str msg, int i):             # <<<<<<<<<<<<<<
 *     mju_warning_i(msg.encode(), i)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_warning_i", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5286
 *     mju_warning_i(msg.encode(), i)
 * 
 * def _mju_warning_s(str msg, str text):             # <<<<<<<<<<<<<<
 *     mju_warning_s(msg.encode(), text.encode())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_327_mju_warning_s(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_327_mju_warning_s = {"_mju_warning_s", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_327_mju_warning_s, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_327_mju_warning_s(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_msg = 0;
  PyObject *__pyx_v_text = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_warning_s (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_msg,&__pyx_n_s_text,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_msg)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5286, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_text)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5286, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_warning_s", 1, 2, 2, 1); __PYX_ERR(4, 5286, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_warning_s") < 0)) __PYX_ERR(4, 5286, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_msg = ((PyObject*)values[0]);
    __pyx_v_text = ((PyObject*)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_warning_s", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5286, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_warning_s", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_msg), (&PyUnicode_Type), 1, "msg", 1))) __PYX_ERR(4, 5286, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_text), (&PyUnicode_Type), 1, "text", 1))) __PYX_ERR(4, 5286, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_326_mju_warning_s(__pyx_self, __pyx_v_msg, __pyx_v_text);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_326_mju_warning_s(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_msg, PyObject *__pyx_v_text) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  char const *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_warning_s", 1);

  /* "mujoco_py/generated/wrappers.pxi":5287
 * 
 * def _mju_warning_s(str msg, str text):
 *     mju_warning_s(msg.encode(), text.encode())             # <<<<<<<<<<<<<<
 * 
 * def _mju_clearHandlers():
 */
  if (unlikely(__pyx_v_msg == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 5287, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_msg, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 5287, __pyx_L1_error)
  if (unlikely(__pyx_v_text == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 5287, __pyx_L1_error)
  }
  __pyx_t_3 = PyUnicode_AsEncodedString(__pyx_v_text, NULL, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_t_3); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(4, 5287, __pyx_L1_error)
  mju_warning_s(__pyx_t_2, __pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5286
 *     mju_warning_i(msg.encode(), i)
 * 
 * def _mju_warning_s(str msg, str text):             # <<<<<<<<<<<<<<
 *     mju_warning_s(msg.encode(), text.encode())
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_warning_s", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5289
 *     mju_warning_s(msg.encode(), text.encode())
 * 
 * def _mju_clearHandlers():             # <<<<<<<<<<<<<<
 *     mju_clearHandlers()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_329_mju_clearHandlers(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_329_mju_clearHandlers = {"_mju_clearHandlers", (PyCFunction)__pyx_pw_9mujoco_py_4cymj_329_mju_clearHandlers, METH_NOARGS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_329_mju_clearHandlers(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_clearHandlers (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_328_mju_clearHandlers(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_328_mju_clearHandlers(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_clearHandlers", 1);

  /* "mujoco_py/generated/wrappers.pxi":5290
 * 
 * def _mju_clearHandlers():
 *     mju_clearHandlers()             # <<<<<<<<<<<<<<
 * 
 * def _mj_warning(PyMjData d, int warning, int info):
 */
  mju_clearHandlers();

  /* "mujoco_py/generated/wrappers.pxi":5289
 *     mju_warning_s(msg.encode(), text.encode())
 * 
 * def _mju_clearHandlers():             # <<<<<<<<<<<<<<
 *     mju_clearHandlers()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5292
 *     mju_clearHandlers()
 * 
 * def _mj_warning(PyMjData d, int warning, int info):             # <<<<<<<<<<<<<<
 *     mj_warning(d.ptr, warning, info)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_331_mj_warning(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_331_mj_warning = {"_mj_warning", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_331_mj_warning, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_331_mj_warning(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d = 0;
  int __pyx_v_warning;
  int __pyx_v_info;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_warning (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_d,&__pyx_n_s_warning,&__pyx_n_s_info,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5292, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_warning)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5292, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_warning", 1, 3, 3, 1); __PYX_ERR(4, 5292, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_info)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5292, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mj_warning", 1, 3, 3, 2); __PYX_ERR(4, 5292, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mj_warning") < 0)) __PYX_ERR(4, 5292, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_d = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[0]);
    __pyx_v_warning = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_warning == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5292, __pyx_L3_error)
    __pyx_v_info = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_info == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5292, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mj_warning", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5292, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mj_warning", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_d), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "d", 0))) __PYX_ERR(4, 5292, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_330_mj_warning(__pyx_self, __pyx_v_d, __pyx_v_warning, __pyx_v_info);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_330_mj_warning(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_d, int __pyx_v_warning, int __pyx_v_info) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mj_warning", 1);

  /* "mujoco_py/generated/wrappers.pxi":5293
 * 
 * def _mj_warning(PyMjData d, int warning, int info):
 *     mj_warning(d.ptr, warning, info)             # <<<<<<<<<<<<<<
 * 
 * def _mju_writeLog(str type, str msg):
 */
  mj_warning(__pyx_v_d->ptr, __pyx_v_warning, __pyx_v_info);

  /* "mujoco_py/generated/wrappers.pxi":5292
 *     mju_clearHandlers()
 * 
 * def _mj_warning(PyMjData d, int warning, int info):             # <<<<<<<<<<<<<<
 *     mj_warning(d.ptr, warning, info)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5295
 *     mj_warning(d.ptr, warning, info)
 * 
 * def _mju_writeLog(str type, str msg):             # <<<<<<<<<<<<<<
 *     mju_writeLog(type.encode(), msg.encode())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_333_mju_writeLog(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_333_mju_writeLog = {"_mju_writeLog", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_333_mju_writeLog, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_333_mju_writeLog(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_type = 0;
  PyObject *__pyx_v_msg = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_writeLog (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_type,&__pyx_n_s_msg,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5295, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_msg)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5295, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_writeLog", 1, 2, 2, 1); __PYX_ERR(4, 5295, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_writeLog") < 0)) __PYX_ERR(4, 5295, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_type = ((PyObject*)values[0]);
    __pyx_v_msg = ((PyObject*)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_writeLog", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5295, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_writeLog", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_type), (&PyUnicode_Type), 1, "type", 1))) __PYX_ERR(4, 5295, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_msg), (&PyUnicode_Type), 1, "msg", 1))) __PYX_ERR(4, 5295, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_332_mju_writeLog(__pyx_self, __pyx_v_type, __pyx_v_msg);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_332_mju_writeLog(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_type, PyObject *__pyx_v_msg) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  char const *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_writeLog", 1);

  /* "mujoco_py/generated/wrappers.pxi":5296
 * 
 * def _mju_writeLog(str type, str msg):
 *     mju_writeLog(type.encode(), msg.encode())             # <<<<<<<<<<<<<<
 * 
 * def _mju_zero3(np.ndarray[np.float64_t, mode="c", ndim=1] res):
 */
  if (unlikely(__pyx_v_type == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 5296, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_type, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 5296, __pyx_L1_error)
  if (unlikely(__pyx_v_msg == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 5296, __pyx_L1_error)
  }
  __pyx_t_3 = PyUnicode_AsEncodedString(__pyx_v_msg, NULL, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_t_3); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(4, 5296, __pyx_L1_error)
  mju_writeLog(__pyx_t_2, __pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5295
 *     mj_warning(d.ptr, warning, info)
 * 
 * def _mju_writeLog(str type, str msg):             # <<<<<<<<<<<<<<
 *     mju_writeLog(type.encode(), msg.encode())
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_writeLog", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5298
 *     mju_writeLog(type.encode(), msg.encode())
 * 
 * def _mju_zero3(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     mju_zero3(&res[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_335_mju_zero3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_335_mju_zero3 = {"_mju_zero3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_335_mju_zero3, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_335_mju_zero3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_zero3 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5298, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_zero3") < 0)) __PYX_ERR(4, 5298, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_zero3", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5298, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_zero3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5298, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_334_mju_zero3(__pyx_self, __pyx_v_res);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_334_mju_zero3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_zero3", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5298, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5299
 * 
 * def _mju_zero3(np.ndarray[np.float64_t, mode="c", ndim=1] res):
 *     mju_zero3(&res[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_copy3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5299, __pyx_L1_error)
  }
  mju_zero3((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5298
 *     mju_writeLog(type.encode(), msg.encode())
 * 
 * def _mju_zero3(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     mju_zero3(&res[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_zero3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5301
 *     mju_zero3(&res[0])
 * 
 * def _mju_copy3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data):             # <<<<<<<<<<<<<<
 *     mju_copy3(&res[0], &data[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_337_mju_copy3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_337_mju_copy3 = {"_mju_copy3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_337_mju_copy3, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_337_mju_copy3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_data = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_copy3 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_data,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5301, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5301, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_copy3", 1, 2, 2, 1); __PYX_ERR(4, 5301, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_copy3") < 0)) __PYX_ERR(4, 5301, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_data = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_copy3", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5301, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_copy3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5301, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_data), __pyx_ptype_5numpy_ndarray, 1, "data", 0))) __PYX_ERR(4, 5301, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_336_mju_copy3(__pyx_self, __pyx_v_res, __pyx_v_data);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_336_mju_copy3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_data) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_data;
  __Pyx_Buffer __pyx_pybuffer_data;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_copy3", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_data.pybuffer.buf = NULL;
  __pyx_pybuffer_data.refcount = 0;
  __pyx_pybuffernd_data.data = NULL;
  __pyx_pybuffernd_data.rcbuffer = &__pyx_pybuffer_data;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5301, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_data.rcbuffer->pybuffer, (PyObject*)__pyx_v_data, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5301, __pyx_L1_error)
  }
  __pyx_pybuffernd_data.diminfo[0].strides = __pyx_pybuffernd_data.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_data.diminfo[0].shape = __pyx_pybuffernd_data.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5302
 * 
 * def _mju_copy3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data):
 *     mju_copy3(&res[0], &data[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_scl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5302, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_data.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_data.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5302, __pyx_L1_error)
  }
  mju_copy3((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_data.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_data.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5301
 *     mju_zero3(&res[0])
 * 
 * def _mju_copy3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data):             # <<<<<<<<<<<<<<
 *     mju_copy3(&res[0], &data[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_data.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_copy3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_data.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5304
 *     mju_copy3(&res[0], &data[0])
 * 
 * def _mju_scl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl):             # <<<<<<<<<<<<<<
 *     mju_scl3(&res[0], &vec[0], scl)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_339_mju_scl3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_339_mju_scl3 = {"_mju_scl3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_339_mju_scl3, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_339_mju_scl3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  float __pyx_v_scl;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_scl3 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec,&__pyx_n_s_scl,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5304, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5304, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_scl3", 1, 3, 3, 1); __PYX_ERR(4, 5304, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scl)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5304, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_scl3", 1, 3, 3, 2); __PYX_ERR(4, 5304, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_scl3") < 0)) __PYX_ERR(4, 5304, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
    __pyx_v_scl = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_scl == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5304, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_scl3", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5304, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_scl3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5304, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5304, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_338_mju_scl3(__pyx_self, __pyx_v_res, __pyx_v_vec, __pyx_v_scl);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_338_mju_scl3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, float __pyx_v_scl) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_scl3", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5304, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5304, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5305
 * 
 * def _mju_scl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl):
 *     mju_scl3(&res[0], &vec[0], scl)             # <<<<<<<<<<<<<<
 * 
 * def _mju_add3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5305, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5305, __pyx_L1_error)
  }
  mju_scl3((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))), __pyx_v_scl);

  /* "mujoco_py/generated/wrappers.pxi":5304
 *     mju_copy3(&res[0], &data[0])
 * 
 * def _mju_scl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl):             # <<<<<<<<<<<<<<
 *     mju_scl3(&res[0], &vec[0], scl)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_scl3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5307
 *     mju_scl3(&res[0], &vec[0], scl)
 * 
 * def _mju_add3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):             # <<<<<<<<<<<<<<
 *     mju_add3(&res[0], &vec1[0], &vec2[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_341_mju_add3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_341_mju_add3 = {"_mju_add3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_341_mju_add3, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_341_mju_add3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec1 = 0;
  PyArrayObject *__pyx_v_vec2 = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_add3 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec1,&__pyx_n_s_vec2,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5307, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5307, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_add3", 1, 3, 3, 1); __PYX_ERR(4, 5307, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5307, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_add3", 1, 3, 3, 2); __PYX_ERR(4, 5307, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_add3") < 0)) __PYX_ERR(4, 5307, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec1 = ((PyArrayObject *)values[1]);
    __pyx_v_vec2 = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_add3", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5307, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_add3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5307, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec1), __pyx_ptype_5numpy_ndarray, 1, "vec1", 0))) __PYX_ERR(4, 5307, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec2), __pyx_ptype_5numpy_ndarray, 1, "vec2", 0))) __PYX_ERR(4, 5307, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_340_mju_add3(__pyx_self, __pyx_v_res, __pyx_v_vec1, __pyx_v_vec2);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_340_mju_add3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec1;
  __Pyx_Buffer __pyx_pybuffer_vec1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec2;
  __Pyx_Buffer __pyx_pybuffer_vec2;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_add3", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec1.pybuffer.buf = NULL;
  __pyx_pybuffer_vec1.refcount = 0;
  __pyx_pybuffernd_vec1.data = NULL;
  __pyx_pybuffernd_vec1.rcbuffer = &__pyx_pybuffer_vec1;
  __pyx_pybuffer_vec2.pybuffer.buf = NULL;
  __pyx_pybuffer_vec2.refcount = 0;
  __pyx_pybuffernd_vec2.data = NULL;
  __pyx_pybuffernd_vec2.rcbuffer = &__pyx_pybuffer_vec2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5307, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5307, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec1.diminfo[0].strides = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec1.diminfo[0].shape = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5307, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec2.diminfo[0].strides = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec2.diminfo[0].shape = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5308
 * 
 * def _mju_add3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):
 *     mju_add3(&res[0], &vec1[0], &vec2[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_sub3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5308, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec1.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5308, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_vec2.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_vec2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5308, __pyx_L1_error)
  }
  mju_add3((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec1.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec2.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_vec2.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5307
 *     mju_scl3(&res[0], &vec[0], scl)
 * 
 * def _mju_add3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):             # <<<<<<<<<<<<<<
 *     mju_add3(&res[0], &vec1[0], &vec2[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_add3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5310
 *     mju_add3(&res[0], &vec1[0], &vec2[0])
 * 
 * def _mju_sub3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):             # <<<<<<<<<<<<<<
 *     mju_sub3(&res[0], &vec1[0], &vec2[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_343_mju_sub3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_343_mju_sub3 = {"_mju_sub3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_343_mju_sub3, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_343_mju_sub3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec1 = 0;
  PyArrayObject *__pyx_v_vec2 = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_sub3 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec1,&__pyx_n_s_vec2,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5310, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5310, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_sub3", 1, 3, 3, 1); __PYX_ERR(4, 5310, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5310, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_sub3", 1, 3, 3, 2); __PYX_ERR(4, 5310, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_sub3") < 0)) __PYX_ERR(4, 5310, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec1 = ((PyArrayObject *)values[1]);
    __pyx_v_vec2 = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_sub3", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5310, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_sub3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5310, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec1), __pyx_ptype_5numpy_ndarray, 1, "vec1", 0))) __PYX_ERR(4, 5310, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec2), __pyx_ptype_5numpy_ndarray, 1, "vec2", 0))) __PYX_ERR(4, 5310, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_342_mju_sub3(__pyx_self, __pyx_v_res, __pyx_v_vec1, __pyx_v_vec2);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_342_mju_sub3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec1;
  __Pyx_Buffer __pyx_pybuffer_vec1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec2;
  __Pyx_Buffer __pyx_pybuffer_vec2;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_sub3", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec1.pybuffer.buf = NULL;
  __pyx_pybuffer_vec1.refcount = 0;
  __pyx_pybuffernd_vec1.data = NULL;
  __pyx_pybuffernd_vec1.rcbuffer = &__pyx_pybuffer_vec1;
  __pyx_pybuffer_vec2.pybuffer.buf = NULL;
  __pyx_pybuffer_vec2.refcount = 0;
  __pyx_pybuffernd_vec2.data = NULL;
  __pyx_pybuffernd_vec2.rcbuffer = &__pyx_pybuffer_vec2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5310, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5310, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec1.diminfo[0].strides = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec1.diminfo[0].shape = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5310, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec2.diminfo[0].strides = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec2.diminfo[0].shape = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5311
 * 
 * def _mju_sub3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):
 *     mju_sub3(&res[0], &vec1[0], &vec2[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_addTo3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5311, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec1.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5311, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_vec2.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_vec2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5311, __pyx_L1_error)
  }
  mju_sub3((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec1.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec2.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_vec2.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5310
 *     mju_add3(&res[0], &vec1[0], &vec2[0])
 * 
 * def _mju_sub3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):             # <<<<<<<<<<<<<<
 *     mju_sub3(&res[0], &vec1[0], &vec2[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_sub3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5313
 *     mju_sub3(&res[0], &vec1[0], &vec2[0])
 * 
 * def _mju_addTo3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_addTo3(&res[0], &vec[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_345_mju_addTo3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_345_mju_addTo3 = {"_mju_addTo3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_345_mju_addTo3, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_345_mju_addTo3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_addTo3 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5313, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5313, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_addTo3", 1, 2, 2, 1); __PYX_ERR(4, 5313, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_addTo3") < 0)) __PYX_ERR(4, 5313, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_addTo3", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5313, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_addTo3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5313, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5313, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_344_mju_addTo3(__pyx_self, __pyx_v_res, __pyx_v_vec);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_344_mju_addTo3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_addTo3", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5313, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5313, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5314
 * 
 * def _mju_addTo3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 *     mju_addTo3(&res[0], &vec[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_subFrom3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5314, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5314, __pyx_L1_error)
  }
  mju_addTo3((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5313
 *     mju_sub3(&res[0], &vec1[0], &vec2[0])
 * 
 * def _mju_addTo3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_addTo3(&res[0], &vec[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_addTo3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5316
 *     mju_addTo3(&res[0], &vec[0])
 * 
 * def _mju_subFrom3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_subFrom3(&res[0], &vec[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_347_mju_subFrom3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_347_mju_subFrom3 = {"_mju_subFrom3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_347_mju_subFrom3, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_347_mju_subFrom3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_subFrom3 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5316, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5316, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_subFrom3", 1, 2, 2, 1); __PYX_ERR(4, 5316, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_subFrom3") < 0)) __PYX_ERR(4, 5316, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_subFrom3", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5316, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_subFrom3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5316, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5316, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_346_mju_subFrom3(__pyx_self, __pyx_v_res, __pyx_v_vec);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_346_mju_subFrom3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_subFrom3", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5316, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5316, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5317
 * 
 * def _mju_subFrom3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 *     mju_subFrom3(&res[0], &vec[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_addToScl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5317, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5317, __pyx_L1_error)
  }
  mju_subFrom3((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5316
 *     mju_addTo3(&res[0], &vec[0])
 * 
 * def _mju_subFrom3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_subFrom3(&res[0], &vec[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_subFrom3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5319
 *     mju_subFrom3(&res[0], &vec[0])
 * 
 * def _mju_addToScl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl):             # <<<<<<<<<<<<<<
 *     mju_addToScl3(&res[0], &vec[0], scl)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_349_mju_addToScl3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_349_mju_addToScl3 = {"_mju_addToScl3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_349_mju_addToScl3, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_349_mju_addToScl3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  float __pyx_v_scl;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_addToScl3 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec,&__pyx_n_s_scl,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5319, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5319, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_addToScl3", 1, 3, 3, 1); __PYX_ERR(4, 5319, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scl)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5319, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_addToScl3", 1, 3, 3, 2); __PYX_ERR(4, 5319, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_addToScl3") < 0)) __PYX_ERR(4, 5319, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
    __pyx_v_scl = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_scl == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5319, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_addToScl3", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5319, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_addToScl3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5319, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5319, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_348_mju_addToScl3(__pyx_self, __pyx_v_res, __pyx_v_vec, __pyx_v_scl);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_348_mju_addToScl3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, float __pyx_v_scl) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_addToScl3", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5319, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5319, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5320
 * 
 * def _mju_addToScl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl):
 *     mju_addToScl3(&res[0], &vec[0], scl)             # <<<<<<<<<<<<<<
 * 
 * def _mju_addScl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, float scl):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5320, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5320, __pyx_L1_error)
  }
  mju_addToScl3((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))), __pyx_v_scl);

  /* "mujoco_py/generated/wrappers.pxi":5319
 *     mju_subFrom3(&res[0], &vec[0])
 * 
 * def _mju_addToScl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl):             # <<<<<<<<<<<<<<
 *     mju_addToScl3(&res[0], &vec[0], scl)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_addToScl3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5322
 *     mju_addToScl3(&res[0], &vec[0], scl)
 * 
 * def _mju_addScl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, float scl):             # <<<<<<<<<<<<<<
 *     mju_addScl3(&res[0], &vec1[0], &vec2[0], scl)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_351_mju_addScl3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_351_mju_addScl3 = {"_mju_addScl3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_351_mju_addScl3, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_351_mju_addScl3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec1 = 0;
  PyArrayObject *__pyx_v_vec2 = 0;
  float __pyx_v_scl;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_addScl3 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec1,&__pyx_n_s_vec2,&__pyx_n_s_scl,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5322, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5322, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_addScl3", 1, 4, 4, 1); __PYX_ERR(4, 5322, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5322, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_addScl3", 1, 4, 4, 2); __PYX_ERR(4, 5322, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scl)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5322, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_addScl3", 1, 4, 4, 3); __PYX_ERR(4, 5322, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_addScl3") < 0)) __PYX_ERR(4, 5322, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec1 = ((PyArrayObject *)values[1]);
    __pyx_v_vec2 = ((PyArrayObject *)values[2]);
    __pyx_v_scl = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_scl == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5322, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_addScl3", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5322, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_addScl3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5322, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec1), __pyx_ptype_5numpy_ndarray, 1, "vec1", 0))) __PYX_ERR(4, 5322, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec2), __pyx_ptype_5numpy_ndarray, 1, "vec2", 0))) __PYX_ERR(4, 5322, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_350_mju_addScl3(__pyx_self, __pyx_v_res, __pyx_v_vec1, __pyx_v_vec2, __pyx_v_scl);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_350_mju_addScl3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2, float __pyx_v_scl) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec1;
  __Pyx_Buffer __pyx_pybuffer_vec1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec2;
  __Pyx_Buffer __pyx_pybuffer_vec2;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_addScl3", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec1.pybuffer.buf = NULL;
  __pyx_pybuffer_vec1.refcount = 0;
  __pyx_pybuffernd_vec1.data = NULL;
  __pyx_pybuffernd_vec1.rcbuffer = &__pyx_pybuffer_vec1;
  __pyx_pybuffer_vec2.pybuffer.buf = NULL;
  __pyx_pybuffer_vec2.refcount = 0;
  __pyx_pybuffernd_vec2.data = NULL;
  __pyx_pybuffernd_vec2.rcbuffer = &__pyx_pybuffer_vec2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5322, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5322, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec1.diminfo[0].strides = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec1.diminfo[0].shape = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5322, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec2.diminfo[0].strides = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec2.diminfo[0].shape = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5323
 * 
 * def _mju_addScl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, float scl):
 *     mju_addScl3(&res[0], &vec1[0], &vec2[0], scl)             # <<<<<<<<<<<<<<
 * 
 * def _mju_normalize3(np.ndarray[np.float64_t, mode="c", ndim=1] res):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5323, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec1.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5323, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_vec2.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_vec2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5323, __pyx_L1_error)
  }
  mju_addScl3((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec1.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec2.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_vec2.diminfo[0].strides))), __pyx_v_scl);

  /* "mujoco_py/generated/wrappers.pxi":5322
 *     mju_addToScl3(&res[0], &vec[0], scl)
 * 
 * def _mju_addScl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, float scl):             # <<<<<<<<<<<<<<
 *     mju_addScl3(&res[0], &vec1[0], &vec2[0], scl)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_addScl3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5325
 *     mju_addScl3(&res[0], &vec1[0], &vec2[0], scl)
 * 
 * def _mju_normalize3(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     return mju_normalize3(&res[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_353_mju_normalize3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_353_mju_normalize3 = {"_mju_normalize3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_353_mju_normalize3, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_353_mju_normalize3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_normalize3 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5325, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_normalize3") < 0)) __PYX_ERR(4, 5325, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_normalize3", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5325, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_normalize3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5325, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_352_mju_normalize3(__pyx_self, __pyx_v_res);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_352_mju_normalize3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_normalize3", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5325, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5326
 * 
 * def _mju_normalize3(np.ndarray[np.float64_t, mode="c", ndim=1] res):
 *     return mju_normalize3(&res[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_norm3(np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5326, __pyx_L1_error)
  }
  __pyx_t_3 = PyFloat_FromDouble(mju_normalize3((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))))); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5325
 *     mju_addScl3(&res[0], &vec1[0], &vec2[0], scl)
 * 
 * def _mju_normalize3(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     return mju_normalize3(&res[0])
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_normalize3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5328
 *     return mju_normalize3(&res[0])
 * 
 * def _mju_norm3(np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     return mju_norm3(&vec[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_355_mju_norm3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_355_mju_norm3 = {"_mju_norm3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_355_mju_norm3, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_355_mju_norm3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_vec = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_norm3 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5328, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_norm3") < 0)) __PYX_ERR(4, 5328, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_vec = ((PyArrayObject *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_norm3", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5328, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_norm3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5328, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_354_mju_norm3(__pyx_self, __pyx_v_vec);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_354_mju_norm3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_vec) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_norm3", 1);
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5328, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5329
 * 
 * def _mju_norm3(np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 *     return mju_norm3(&vec[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_dot3(np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5329, __pyx_L1_error)
  }
  __pyx_t_3 = PyFloat_FromDouble(mju_norm3((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_vec.diminfo[0].strides))))); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5328
 *     return mju_normalize3(&res[0])
 * 
 * def _mju_norm3(np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     return mju_norm3(&vec[0])
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_norm3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5331
 *     return mju_norm3(&vec[0])
 * 
 * def _mju_dot3(np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):             # <<<<<<<<<<<<<<
 *     return mju_dot3(&vec1[0], &vec2[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_357_mju_dot3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_357_mju_dot3 = {"_mju_dot3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_357_mju_dot3, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_357_mju_dot3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_vec1 = 0;
  PyArrayObject *__pyx_v_vec2 = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_dot3 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec1,&__pyx_n_s_vec2,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5331, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5331, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_dot3", 1, 2, 2, 1); __PYX_ERR(4, 5331, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_dot3") < 0)) __PYX_ERR(4, 5331, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_vec1 = ((PyArrayObject *)values[0]);
    __pyx_v_vec2 = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_dot3", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5331, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_dot3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec1), __pyx_ptype_5numpy_ndarray, 1, "vec1", 0))) __PYX_ERR(4, 5331, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec2), __pyx_ptype_5numpy_ndarray, 1, "vec2", 0))) __PYX_ERR(4, 5331, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_356_mju_dot3(__pyx_self, __pyx_v_vec1, __pyx_v_vec2);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_356_mju_dot3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec1;
  __Pyx_Buffer __pyx_pybuffer_vec1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec2;
  __Pyx_Buffer __pyx_pybuffer_vec2;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_dot3", 1);
  __pyx_pybuffer_vec1.pybuffer.buf = NULL;
  __pyx_pybuffer_vec1.refcount = 0;
  __pyx_pybuffernd_vec1.data = NULL;
  __pyx_pybuffernd_vec1.rcbuffer = &__pyx_pybuffer_vec1;
  __pyx_pybuffer_vec2.pybuffer.buf = NULL;
  __pyx_pybuffer_vec2.refcount = 0;
  __pyx_pybuffernd_vec2.data = NULL;
  __pyx_pybuffernd_vec2.rcbuffer = &__pyx_pybuffer_vec2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5331, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec1.diminfo[0].strides = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec1.diminfo[0].shape = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5331, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec2.diminfo[0].strides = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec2.diminfo[0].shape = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5332
 * 
 * def _mju_dot3(np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):
 *     return mju_dot3(&vec1[0], &vec2[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_dist3(np.ndarray[np.float64_t, mode="c", ndim=1] pos1, np.ndarray[np.float64_t, mode="c", ndim=1] pos2):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_vec1.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_vec1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5332, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec2.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5332, __pyx_L1_error)
  }
  __pyx_t_4 = PyFloat_FromDouble(mju_dot3((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec1.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_vec1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec2.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec2.diminfo[0].strides))))); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5331
 *     return mju_norm3(&vec[0])
 * 
 * def _mju_dot3(np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):             # <<<<<<<<<<<<<<
 *     return mju_dot3(&vec1[0], &vec2[0])
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_dot3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5334
 *     return mju_dot3(&vec1[0], &vec2[0])
 * 
 * def _mju_dist3(np.ndarray[np.float64_t, mode="c", ndim=1] pos1, np.ndarray[np.float64_t, mode="c", ndim=1] pos2):             # <<<<<<<<<<<<<<
 *     return mju_dist3(&pos1[0], &pos2[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_359_mju_dist3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_359_mju_dist3 = {"_mju_dist3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_359_mju_dist3, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_359_mju_dist3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_pos1 = 0;
  PyArrayObject *__pyx_v_pos2 = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_dist3 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pos1,&__pyx_n_s_pos2,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pos1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5334, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pos2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5334, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_dist3", 1, 2, 2, 1); __PYX_ERR(4, 5334, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_dist3") < 0)) __PYX_ERR(4, 5334, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_pos1 = ((PyArrayObject *)values[0]);
    __pyx_v_pos2 = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_dist3", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5334, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_dist3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pos1), __pyx_ptype_5numpy_ndarray, 1, "pos1", 0))) __PYX_ERR(4, 5334, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pos2), __pyx_ptype_5numpy_ndarray, 1, "pos2", 0))) __PYX_ERR(4, 5334, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_358_mju_dist3(__pyx_self, __pyx_v_pos1, __pyx_v_pos2);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_358_mju_dist3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_pos1, PyArrayObject *__pyx_v_pos2) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pos1;
  __Pyx_Buffer __pyx_pybuffer_pos1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pos2;
  __Pyx_Buffer __pyx_pybuffer_pos2;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_dist3", 1);
  __pyx_pybuffer_pos1.pybuffer.buf = NULL;
  __pyx_pybuffer_pos1.refcount = 0;
  __pyx_pybuffernd_pos1.data = NULL;
  __pyx_pybuffernd_pos1.rcbuffer = &__pyx_pybuffer_pos1;
  __pyx_pybuffer_pos2.pybuffer.buf = NULL;
  __pyx_pybuffer_pos2.refcount = 0;
  __pyx_pybuffernd_pos2.data = NULL;
  __pyx_pybuffernd_pos2.rcbuffer = &__pyx_pybuffer_pos2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pos1.rcbuffer->pybuffer, (PyObject*)__pyx_v_pos1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5334, __pyx_L1_error)
  }
  __pyx_pybuffernd_pos1.diminfo[0].strides = __pyx_pybuffernd_pos1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pos1.diminfo[0].shape = __pyx_pybuffernd_pos1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pos2.rcbuffer->pybuffer, (PyObject*)__pyx_v_pos2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5334, __pyx_L1_error)
  }
  __pyx_pybuffernd_pos2.diminfo[0].strides = __pyx_pybuffernd_pos2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pos2.diminfo[0].shape = __pyx_pybuffernd_pos2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5335
 * 
 * def _mju_dist3(np.ndarray[np.float64_t, mode="c", ndim=1] pos1, np.ndarray[np.float64_t, mode="c", ndim=1] pos2):
 *     return mju_dist3(&pos1[0], &pos2[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_rotVecMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] mat):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_pos1.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_pos1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5335, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_pos2.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_pos2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5335, __pyx_L1_error)
  }
  __pyx_t_4 = PyFloat_FromDouble(mju_dist3((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_pos1.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_pos1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_pos2.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_pos2.diminfo[0].strides))))); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5334
 *     return mju_dot3(&vec1[0], &vec2[0])
 * 
 * def _mju_dist3(np.ndarray[np.float64_t, mode="c", ndim=1] pos1, np.ndarray[np.float64_t, mode="c", ndim=1] pos2):             # <<<<<<<<<<<<<<
 *     return mju_dist3(&pos1[0], &pos2[0])
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos2.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_dist3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos2.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5337
 *     return mju_dist3(&pos1[0], &pos2[0])
 * 
 * def _mju_rotVecMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     mju_rotVecMat(&res[0], &vec[0], &mat[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_361_mju_rotVecMat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_361_mju_rotVecMat = {"_mju_rotVecMat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_361_mju_rotVecMat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_361_mju_rotVecMat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  PyArrayObject *__pyx_v_mat = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_rotVecMat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec,&__pyx_n_s_mat,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5337, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5337, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_rotVecMat", 1, 3, 3, 1); __PYX_ERR(4, 5337, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5337, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_rotVecMat", 1, 3, 3, 2); __PYX_ERR(4, 5337, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_rotVecMat") < 0)) __PYX_ERR(4, 5337, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
    __pyx_v_mat = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_rotVecMat", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5337, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_rotVecMat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5337, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5337, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_5numpy_ndarray, 1, "mat", 0))) __PYX_ERR(4, 5337, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_360_mju_rotVecMat(__pyx_self, __pyx_v_res, __pyx_v_vec, __pyx_v_mat);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_360_mju_rotVecMat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, PyArrayObject *__pyx_v_mat) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat;
  __Pyx_Buffer __pyx_pybuffer_mat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_rotVecMat", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  __pyx_pybuffer_mat.pybuffer.buf = NULL;
  __pyx_pybuffer_mat.refcount = 0;
  __pyx_pybuffernd_mat.data = NULL;
  __pyx_pybuffernd_mat.rcbuffer = &__pyx_pybuffer_mat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5337, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5337, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5337, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat.diminfo[0].strides = __pyx_pybuffernd_mat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat.diminfo[0].shape = __pyx_pybuffernd_mat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5338
 * 
 * def _mju_rotVecMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] mat):
 *     mju_rotVecMat(&res[0], &vec[0], &mat[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_rotVecMatT(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] mat):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5338, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5338, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_mat.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_mat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5338, __pyx_L1_error)
  }
  mju_rotVecMat((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_mat.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5337
 *     return mju_dist3(&pos1[0], &pos2[0])
 * 
 * def _mju_rotVecMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     mju_rotVecMat(&res[0], &vec[0], &mat[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_rotVecMat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5340
 *     mju_rotVecMat(&res[0], &vec[0], &mat[0])
 * 
 * def _mju_rotVecMatT(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     mju_rotVecMatT(&res[0], &vec[0], &mat[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_363_mju_rotVecMatT(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_363_mju_rotVecMatT = {"_mju_rotVecMatT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_363_mju_rotVecMatT, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_363_mju_rotVecMatT(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  PyArrayObject *__pyx_v_mat = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_rotVecMatT (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec,&__pyx_n_s_mat,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5340, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5340, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_rotVecMatT", 1, 3, 3, 1); __PYX_ERR(4, 5340, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5340, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_rotVecMatT", 1, 3, 3, 2); __PYX_ERR(4, 5340, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_rotVecMatT") < 0)) __PYX_ERR(4, 5340, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
    __pyx_v_mat = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_rotVecMatT", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5340, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_rotVecMatT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5340, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5340, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_5numpy_ndarray, 1, "mat", 0))) __PYX_ERR(4, 5340, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_362_mju_rotVecMatT(__pyx_self, __pyx_v_res, __pyx_v_vec, __pyx_v_mat);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_362_mju_rotVecMatT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, PyArrayObject *__pyx_v_mat) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat;
  __Pyx_Buffer __pyx_pybuffer_mat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_rotVecMatT", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  __pyx_pybuffer_mat.pybuffer.buf = NULL;
  __pyx_pybuffer_mat.refcount = 0;
  __pyx_pybuffernd_mat.data = NULL;
  __pyx_pybuffernd_mat.rcbuffer = &__pyx_pybuffer_mat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5340, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5340, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5340, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat.diminfo[0].strides = __pyx_pybuffernd_mat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat.diminfo[0].shape = __pyx_pybuffernd_mat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5341
 * 
 * def _mju_rotVecMatT(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] mat):
 *     mju_rotVecMatT(&res[0], &vec[0], &mat[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_cross(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] a, np.ndarray[np.float64_t, mode="c", ndim=1] b):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5341, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5341, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_mat.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_mat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5341, __pyx_L1_error)
  }
  mju_rotVecMatT((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_mat.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5340
 *     mju_rotVecMat(&res[0], &vec[0], &mat[0])
 * 
 * def _mju_rotVecMatT(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     mju_rotVecMatT(&res[0], &vec[0], &mat[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_rotVecMatT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5343
 *     mju_rotVecMatT(&res[0], &vec[0], &mat[0])
 * 
 * def _mju_cross(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] a, np.ndarray[np.float64_t, mode="c", ndim=1] b):             # <<<<<<<<<<<<<<
 *     mju_cross(&res[0], &a[0], &b[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_365_mju_cross(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_365_mju_cross = {"_mju_cross", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_365_mju_cross, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_365_mju_cross(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_a = 0;
  PyArrayObject *__pyx_v_b = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_cross (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_a,&__pyx_n_s_b,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5343, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5343, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_cross", 1, 3, 3, 1); __PYX_ERR(4, 5343, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_b)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5343, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_cross", 1, 3, 3, 2); __PYX_ERR(4, 5343, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_cross") < 0)) __PYX_ERR(4, 5343, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_a = ((PyArrayObject *)values[1]);
    __pyx_v_b = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_cross", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5343, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_cross", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5343, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), __pyx_ptype_5numpy_ndarray, 1, "a", 0))) __PYX_ERR(4, 5343, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_5numpy_ndarray, 1, "b", 0))) __PYX_ERR(4, 5343, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_364_mju_cross(__pyx_self, __pyx_v_res, __pyx_v_a, __pyx_v_b);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_364_mju_cross(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_a, PyArrayObject *__pyx_v_b) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_a;
  __Pyx_Buffer __pyx_pybuffer_a;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_b;
  __Pyx_Buffer __pyx_pybuffer_b;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_cross", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_a.pybuffer.buf = NULL;
  __pyx_pybuffer_a.refcount = 0;
  __pyx_pybuffernd_a.data = NULL;
  __pyx_pybuffernd_a.rcbuffer = &__pyx_pybuffer_a;
  __pyx_pybuffer_b.pybuffer.buf = NULL;
  __pyx_pybuffer_b.refcount = 0;
  __pyx_pybuffernd_b.data = NULL;
  __pyx_pybuffernd_b.rcbuffer = &__pyx_pybuffer_b;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5343, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_a.rcbuffer->pybuffer, (PyObject*)__pyx_v_a, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5343, __pyx_L1_error)
  }
  __pyx_pybuffernd_a.diminfo[0].strides = __pyx_pybuffernd_a.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_a.diminfo[0].shape = __pyx_pybuffernd_a.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_b.rcbuffer->pybuffer, (PyObject*)__pyx_v_b, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5343, __pyx_L1_error)
  }
  __pyx_pybuffernd_b.diminfo[0].strides = __pyx_pybuffernd_b.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_b.diminfo[0].shape = __pyx_pybuffernd_b.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5344
 * 
 * def _mju_cross(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] a, np.ndarray[np.float64_t, mode="c", ndim=1] b):
 *     mju_cross(&res[0], &a[0], &b[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_zero4(np.ndarray[np.float64_t, mode="c", ndim=1] res):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5344, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_a.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_a.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5344, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_b.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_b.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5344, __pyx_L1_error)
  }
  mju_cross((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_a.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_a.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_b.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_b.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5343
 *     mju_rotVecMatT(&res[0], &vec[0], &mat[0])
 * 
 * def _mju_cross(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] a, np.ndarray[np.float64_t, mode="c", ndim=1] b):             # <<<<<<<<<<<<<<
 *     mju_cross(&res[0], &a[0], &b[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_a.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_b.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_cross", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_a.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_b.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5346
 *     mju_cross(&res[0], &a[0], &b[0])
 * 
 * def _mju_zero4(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     mju_zero4(&res[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_367_mju_zero4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_367_mju_zero4 = {"_mju_zero4", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_367_mju_zero4, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_367_mju_zero4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_zero4 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5346, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_zero4") < 0)) __PYX_ERR(4, 5346, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_zero4", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5346, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_zero4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5346, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_366_mju_zero4(__pyx_self, __pyx_v_res);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_366_mju_zero4(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_zero4", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5346, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5347
 * 
 * def _mju_zero4(np.ndarray[np.float64_t, mode="c", ndim=1] res):
 *     mju_zero4(&res[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_unit4(np.ndarray[np.float64_t, mode="c", ndim=1] res):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5347, __pyx_L1_error)
  }
  mju_zero4((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5346
 *     mju_cross(&res[0], &a[0], &b[0])
 * 
 * def _mju_zero4(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     mju_zero4(&res[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_zero4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5349
 *     mju_zero4(&res[0])
 * 
 * def _mju_unit4(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     mju_unit4(&res[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_369_mju_unit4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_369_mju_unit4 = {"_mju_unit4", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_369_mju_unit4, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_369_mju_unit4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_unit4 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5349, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_unit4") < 0)) __PYX_ERR(4, 5349, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_unit4", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5349, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_unit4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5349, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_368_mju_unit4(__pyx_self, __pyx_v_res);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_368_mju_unit4(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_unit4", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5349, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5350
 * 
 * def _mju_unit4(np.ndarray[np.float64_t, mode="c", ndim=1] res):
 *     mju_unit4(&res[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_copy4(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5350, __pyx_L1_error)
  }
  mju_unit4((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5349
 *     mju_zero4(&res[0])
 * 
 * def _mju_unit4(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     mju_unit4(&res[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_unit4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5352
 *     mju_unit4(&res[0])
 * 
 * def _mju_copy4(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data):             # <<<<<<<<<<<<<<
 *     mju_copy4(&res[0], &data[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_371_mju_copy4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_371_mju_copy4 = {"_mju_copy4", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_371_mju_copy4, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_371_mju_copy4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_data = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_copy4 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_data,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5352, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5352, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_copy4", 1, 2, 2, 1); __PYX_ERR(4, 5352, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_copy4") < 0)) __PYX_ERR(4, 5352, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_data = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_copy4", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5352, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_copy4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5352, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_data), __pyx_ptype_5numpy_ndarray, 1, "data", 0))) __PYX_ERR(4, 5352, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_370_mju_copy4(__pyx_self, __pyx_v_res, __pyx_v_data);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_370_mju_copy4(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_data) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_data;
  __Pyx_Buffer __pyx_pybuffer_data;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_copy4", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_data.pybuffer.buf = NULL;
  __pyx_pybuffer_data.refcount = 0;
  __pyx_pybuffernd_data.data = NULL;
  __pyx_pybuffernd_data.rcbuffer = &__pyx_pybuffer_data;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5352, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_data.rcbuffer->pybuffer, (PyObject*)__pyx_v_data, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5352, __pyx_L1_error)
  }
  __pyx_pybuffernd_data.diminfo[0].strides = __pyx_pybuffernd_data.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_data.diminfo[0].shape = __pyx_pybuffernd_data.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5353
 * 
 * def _mju_copy4(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data):
 *     mju_copy4(&res[0], &data[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_normalize4(np.ndarray[np.float64_t, mode="c", ndim=1] res):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5353, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_data.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_data.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5353, __pyx_L1_error)
  }
  mju_copy4((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_data.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_data.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5352
 *     mju_unit4(&res[0])
 * 
 * def _mju_copy4(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data):             # <<<<<<<<<<<<<<
 *     mju_copy4(&res[0], &data[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_data.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_copy4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_data.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5355
 *     mju_copy4(&res[0], &data[0])
 * 
 * def _mju_normalize4(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     return mju_normalize4(&res[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_373_mju_normalize4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_373_mju_normalize4 = {"_mju_normalize4", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_373_mju_normalize4, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_373_mju_normalize4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_normalize4 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5355, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_normalize4") < 0)) __PYX_ERR(4, 5355, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_normalize4", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5355, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_normalize4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5355, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_372_mju_normalize4(__pyx_self, __pyx_v_res);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_372_mju_normalize4(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_normalize4", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5355, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5356
 * 
 * def _mju_normalize4(np.ndarray[np.float64_t, mode="c", ndim=1] res):
 *     return mju_normalize4(&res[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_zero(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5356, __pyx_L1_error)
  }
  __pyx_t_3 = PyFloat_FromDouble(mju_normalize4((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))))); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5355
 *     mju_copy4(&res[0], &data[0])
 * 
 * def _mju_normalize4(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     return mju_normalize4(&res[0])
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_normalize4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5358
 *     return mju_normalize4(&res[0])
 * 
 * def _mju_zero(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):             # <<<<<<<<<<<<<<
 *     mju_zero(&res[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_375_mju_zero(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_375_mju_zero = {"_mju_zero", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_375_mju_zero, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_375_mju_zero(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_zero (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5358, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5358, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_zero", 1, 2, 2, 1); __PYX_ERR(4, 5358, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_zero") < 0)) __PYX_ERR(4, 5358, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5358, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_zero", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5358, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_zero", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5358, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_374_mju_zero(__pyx_self, __pyx_v_res, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_374_mju_zero(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_zero", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5358, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5359
 * 
 * def _mju_zero(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):
 *     mju_zero(&res[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_copy(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data, int n):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5359, __pyx_L1_error)
  }
  mju_zero((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), __pyx_v_n);

  /* "mujoco_py/generated/wrappers.pxi":5358
 *     return mju_normalize4(&res[0])
 * 
 * def _mju_zero(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):             # <<<<<<<<<<<<<<
 *     mju_zero(&res[0], n)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_zero", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5361
 *     mju_zero(&res[0], n)
 * 
 * def _mju_copy(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data, int n):             # <<<<<<<<<<<<<<
 *     mju_copy(&res[0], &data[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_377_mju_copy(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_377_mju_copy = {"_mju_copy", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_377_mju_copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_377_mju_copy(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_data = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_copy (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_data,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5361, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5361, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_copy", 1, 3, 3, 1); __PYX_ERR(4, 5361, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5361, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_copy", 1, 3, 3, 2); __PYX_ERR(4, 5361, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_copy") < 0)) __PYX_ERR(4, 5361, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_data = ((PyArrayObject *)values[1]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5361, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_copy", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5361, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5361, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_data), __pyx_ptype_5numpy_ndarray, 1, "data", 0))) __PYX_ERR(4, 5361, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_376_mju_copy(__pyx_self, __pyx_v_res, __pyx_v_data, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_376_mju_copy(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_data, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_data;
  __Pyx_Buffer __pyx_pybuffer_data;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_copy", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_data.pybuffer.buf = NULL;
  __pyx_pybuffer_data.refcount = 0;
  __pyx_pybuffernd_data.data = NULL;
  __pyx_pybuffernd_data.rcbuffer = &__pyx_pybuffer_data;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5361, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_data.rcbuffer->pybuffer, (PyObject*)__pyx_v_data, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5361, __pyx_L1_error)
  }
  __pyx_pybuffernd_data.diminfo[0].strides = __pyx_pybuffernd_data.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_data.diminfo[0].shape = __pyx_pybuffernd_data.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5362
 * 
 * def _mju_copy(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data, int n):
 *     mju_copy(&res[0], &data[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_sum(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5362, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_data.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_data.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5362, __pyx_L1_error)
  }
  mju_copy((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_data.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_data.diminfo[0].strides))), __pyx_v_n);

  /* "mujoco_py/generated/wrappers.pxi":5361
 *     mju_zero(&res[0], n)
 * 
 * def _mju_copy(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data, int n):             # <<<<<<<<<<<<<<
 *     mju_copy(&res[0], &data[0], n)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_data.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_data.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5364
 *     mju_copy(&res[0], &data[0], n)
 * 
 * def _mju_sum(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     return mju_sum(&vec[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_379_mju_sum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_379_mju_sum = {"_mju_sum", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_379_mju_sum, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_379_mju_sum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_vec = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_sum (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5364, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5364, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_sum", 1, 2, 2, 1); __PYX_ERR(4, 5364, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_sum") < 0)) __PYX_ERR(4, 5364, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_vec = ((PyArrayObject *)values[0]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5364, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_sum", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5364, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_sum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5364, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_378_mju_sum(__pyx_self, __pyx_v_vec, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_378_mju_sum(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_vec, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_sum", 1);
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5364, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5365
 * 
 * def _mju_sum(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):
 *     return mju_sum(&vec[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_L1(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5365, __pyx_L1_error)
  }
  __pyx_t_3 = PyFloat_FromDouble(mju_sum((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_vec.diminfo[0].strides))), __pyx_v_n)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5364
 *     mju_copy(&res[0], &data[0], n)
 * 
 * def _mju_sum(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     return mju_sum(&vec[0], n)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_sum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5367
 *     return mju_sum(&vec[0], n)
 * 
 * def _mju_L1(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     return mju_L1(&vec[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_381_mju_L1(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_381_mju_L1 = {"_mju_L1", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_381_mju_L1, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_381_mju_L1(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_vec = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_L1 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5367, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5367, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_L1", 1, 2, 2, 1); __PYX_ERR(4, 5367, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_L1") < 0)) __PYX_ERR(4, 5367, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_vec = ((PyArrayObject *)values[0]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5367, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_L1", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5367, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_L1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5367, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_380_mju_L1(__pyx_self, __pyx_v_vec, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_380_mju_L1(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_vec, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_L1", 1);
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5367, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5368
 * 
 * def _mju_L1(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):
 *     return mju_L1(&vec[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_scl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl, int n):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5368, __pyx_L1_error)
  }
  __pyx_t_3 = PyFloat_FromDouble(mju_L1((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_vec.diminfo[0].strides))), __pyx_v_n)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5367
 *     return mju_sum(&vec[0], n)
 * 
 * def _mju_L1(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     return mju_L1(&vec[0], n)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_L1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5370
 *     return mju_L1(&vec[0], n)
 * 
 * def _mju_scl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl, int n):             # <<<<<<<<<<<<<<
 *     mju_scl(&res[0], &vec[0], scl, n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_383_mju_scl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_383_mju_scl = {"_mju_scl", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_383_mju_scl, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_383_mju_scl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  float __pyx_v_scl;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_scl (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec,&__pyx_n_s_scl,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5370, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5370, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_scl", 1, 4, 4, 1); __PYX_ERR(4, 5370, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scl)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5370, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_scl", 1, 4, 4, 2); __PYX_ERR(4, 5370, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5370, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_scl", 1, 4, 4, 3); __PYX_ERR(4, 5370, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_scl") < 0)) __PYX_ERR(4, 5370, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
    __pyx_v_scl = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_scl == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5370, __pyx_L3_error)
    __pyx_v_n = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5370, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_scl", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5370, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_scl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5370, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5370, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_382_mju_scl(__pyx_self, __pyx_v_res, __pyx_v_vec, __pyx_v_scl, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_382_mju_scl(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, float __pyx_v_scl, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_scl", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5370, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5370, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5371
 * 
 * def _mju_scl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl, int n):
 *     mju_scl(&res[0], &vec[0], scl, n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_add(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5371, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5371, __pyx_L1_error)
  }
  mju_scl((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))), __pyx_v_scl, __pyx_v_n);

  /* "mujoco_py/generated/wrappers.pxi":5370
 *     return mju_L1(&vec[0], n)
 * 
 * def _mju_scl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl, int n):             # <<<<<<<<<<<<<<
 *     mju_scl(&res[0], &vec[0], scl, n)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_scl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5373
 *     mju_scl(&res[0], &vec[0], scl, n)
 * 
 * def _mju_add(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):             # <<<<<<<<<<<<<<
 *     mju_add(&res[0], &vec1[0], &vec2[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_385_mju_add(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_385_mju_add = {"_mju_add", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_385_mju_add, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_385_mju_add(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec1 = 0;
  PyArrayObject *__pyx_v_vec2 = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_add (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec1,&__pyx_n_s_vec2,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5373, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5373, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_add", 1, 4, 4, 1); __PYX_ERR(4, 5373, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5373, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_add", 1, 4, 4, 2); __PYX_ERR(4, 5373, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5373, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_add", 1, 4, 4, 3); __PYX_ERR(4, 5373, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_add") < 0)) __PYX_ERR(4, 5373, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec1 = ((PyArrayObject *)values[1]);
    __pyx_v_vec2 = ((PyArrayObject *)values[2]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5373, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_add", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5373, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_add", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5373, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec1), __pyx_ptype_5numpy_ndarray, 1, "vec1", 0))) __PYX_ERR(4, 5373, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec2), __pyx_ptype_5numpy_ndarray, 1, "vec2", 0))) __PYX_ERR(4, 5373, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_384_mju_add(__pyx_self, __pyx_v_res, __pyx_v_vec1, __pyx_v_vec2, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_384_mju_add(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec1;
  __Pyx_Buffer __pyx_pybuffer_vec1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec2;
  __Pyx_Buffer __pyx_pybuffer_vec2;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_add", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec1.pybuffer.buf = NULL;
  __pyx_pybuffer_vec1.refcount = 0;
  __pyx_pybuffernd_vec1.data = NULL;
  __pyx_pybuffernd_vec1.rcbuffer = &__pyx_pybuffer_vec1;
  __pyx_pybuffer_vec2.pybuffer.buf = NULL;
  __pyx_pybuffer_vec2.refcount = 0;
  __pyx_pybuffernd_vec2.data = NULL;
  __pyx_pybuffernd_vec2.rcbuffer = &__pyx_pybuffer_vec2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5373, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5373, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec1.diminfo[0].strides = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec1.diminfo[0].shape = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5373, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec2.diminfo[0].strides = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec2.diminfo[0].shape = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5374
 * 
 * def _mju_add(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):
 *     mju_add(&res[0], &vec1[0], &vec2[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_sub(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5374, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec1.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5374, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_vec2.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_vec2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5374, __pyx_L1_error)
  }
  mju_add((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec1.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec2.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_vec2.diminfo[0].strides))), __pyx_v_n);

  /* "mujoco_py/generated/wrappers.pxi":5373
 *     mju_scl(&res[0], &vec[0], scl, n)
 * 
 * def _mju_add(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):             # <<<<<<<<<<<<<<
 *     mju_add(&res[0], &vec1[0], &vec2[0], n)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_add", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5376
 *     mju_add(&res[0], &vec1[0], &vec2[0], n)
 * 
 * def _mju_sub(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):             # <<<<<<<<<<<<<<
 *     mju_sub(&res[0], &vec1[0], &vec2[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_387_mju_sub(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_387_mju_sub = {"_mju_sub", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_387_mju_sub, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_387_mju_sub(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec1 = 0;
  PyArrayObject *__pyx_v_vec2 = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_sub (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec1,&__pyx_n_s_vec2,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5376, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5376, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_sub", 1, 4, 4, 1); __PYX_ERR(4, 5376, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5376, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_sub", 1, 4, 4, 2); __PYX_ERR(4, 5376, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5376, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_sub", 1, 4, 4, 3); __PYX_ERR(4, 5376, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_sub") < 0)) __PYX_ERR(4, 5376, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec1 = ((PyArrayObject *)values[1]);
    __pyx_v_vec2 = ((PyArrayObject *)values[2]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5376, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_sub", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5376, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_sub", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5376, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec1), __pyx_ptype_5numpy_ndarray, 1, "vec1", 0))) __PYX_ERR(4, 5376, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec2), __pyx_ptype_5numpy_ndarray, 1, "vec2", 0))) __PYX_ERR(4, 5376, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_386_mju_sub(__pyx_self, __pyx_v_res, __pyx_v_vec1, __pyx_v_vec2, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_386_mju_sub(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec1;
  __Pyx_Buffer __pyx_pybuffer_vec1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec2;
  __Pyx_Buffer __pyx_pybuffer_vec2;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_sub", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec1.pybuffer.buf = NULL;
  __pyx_pybuffer_vec1.refcount = 0;
  __pyx_pybuffernd_vec1.data = NULL;
  __pyx_pybuffernd_vec1.rcbuffer = &__pyx_pybuffer_vec1;
  __pyx_pybuffer_vec2.pybuffer.buf = NULL;
  __pyx_pybuffer_vec2.refcount = 0;
  __pyx_pybuffernd_vec2.data = NULL;
  __pyx_pybuffernd_vec2.rcbuffer = &__pyx_pybuffer_vec2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5376, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5376, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec1.diminfo[0].strides = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec1.diminfo[0].shape = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5376, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec2.diminfo[0].strides = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec2.diminfo[0].shape = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5377
 * 
 * def _mju_sub(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):
 *     mju_sub(&res[0], &vec1[0], &vec2[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_addTo(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5377, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec1.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5377, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_vec2.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_vec2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5377, __pyx_L1_error)
  }
  mju_sub((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec1.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec2.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_vec2.diminfo[0].strides))), __pyx_v_n);

  /* "mujoco_py/generated/wrappers.pxi":5376
 *     mju_add(&res[0], &vec1[0], &vec2[0], n)
 * 
 * def _mju_sub(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):             # <<<<<<<<<<<<<<
 *     mju_sub(&res[0], &vec1[0], &vec2[0], n)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_sub", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5379
 *     mju_sub(&res[0], &vec1[0], &vec2[0], n)
 * 
 * def _mju_addTo(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     mju_addTo(&res[0], &vec[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_389_mju_addTo(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_389_mju_addTo = {"_mju_addTo", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_389_mju_addTo, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_389_mju_addTo(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_addTo (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5379, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5379, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_addTo", 1, 3, 3, 1); __PYX_ERR(4, 5379, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5379, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_addTo", 1, 3, 3, 2); __PYX_ERR(4, 5379, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_addTo") < 0)) __PYX_ERR(4, 5379, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5379, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_addTo", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5379, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_addTo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5379, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5379, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_388_mju_addTo(__pyx_self, __pyx_v_res, __pyx_v_vec, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_388_mju_addTo(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_addTo", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5379, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5379, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5380
 * 
 * def _mju_addTo(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):
 *     mju_addTo(&res[0], &vec[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_subFrom(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5380, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5380, __pyx_L1_error)
  }
  mju_addTo((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))), __pyx_v_n);

  /* "mujoco_py/generated/wrappers.pxi":5379
 *     mju_sub(&res[0], &vec1[0], &vec2[0], n)
 * 
 * def _mju_addTo(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     mju_addTo(&res[0], &vec[0], n)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_addTo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5382
 *     mju_addTo(&res[0], &vec[0], n)
 * 
 * def _mju_subFrom(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     mju_subFrom(&res[0], &vec[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_391_mju_subFrom(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_391_mju_subFrom = {"_mju_subFrom", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_391_mju_subFrom, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_391_mju_subFrom(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_subFrom (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5382, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5382, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_subFrom", 1, 3, 3, 1); __PYX_ERR(4, 5382, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5382, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_subFrom", 1, 3, 3, 2); __PYX_ERR(4, 5382, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_subFrom") < 0)) __PYX_ERR(4, 5382, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5382, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_subFrom", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5382, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_subFrom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5382, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5382, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_390_mju_subFrom(__pyx_self, __pyx_v_res, __pyx_v_vec, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_390_mju_subFrom(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_subFrom", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5382, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5382, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5383
 * 
 * def _mju_subFrom(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):
 *     mju_subFrom(&res[0], &vec[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_addToScl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl, int n):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5383, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5383, __pyx_L1_error)
  }
  mju_subFrom((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))), __pyx_v_n);

  /* "mujoco_py/generated/wrappers.pxi":5382
 *     mju_addTo(&res[0], &vec[0], n)
 * 
 * def _mju_subFrom(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     mju_subFrom(&res[0], &vec[0], n)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_subFrom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5385
 *     mju_subFrom(&res[0], &vec[0], n)
 * 
 * def _mju_addToScl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl, int n):             # <<<<<<<<<<<<<<
 *     mju_addToScl(&res[0], &vec[0], scl, n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_393_mju_addToScl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_393_mju_addToScl = {"_mju_addToScl", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_393_mju_addToScl, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_393_mju_addToScl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  float __pyx_v_scl;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_addToScl (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec,&__pyx_n_s_scl,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5385, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5385, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_addToScl", 1, 4, 4, 1); __PYX_ERR(4, 5385, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scl)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5385, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_addToScl", 1, 4, 4, 2); __PYX_ERR(4, 5385, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5385, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_addToScl", 1, 4, 4, 3); __PYX_ERR(4, 5385, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_addToScl") < 0)) __PYX_ERR(4, 5385, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
    __pyx_v_scl = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_scl == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5385, __pyx_L3_error)
    __pyx_v_n = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5385, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_addToScl", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5385, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_addToScl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5385, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5385, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_392_mju_addToScl(__pyx_self, __pyx_v_res, __pyx_v_vec, __pyx_v_scl, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_392_mju_addToScl(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, float __pyx_v_scl, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_addToScl", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5385, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5385, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5386
 * 
 * def _mju_addToScl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl, int n):
 *     mju_addToScl(&res[0], &vec[0], scl, n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_addScl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, float scl, int n):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5386, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5386, __pyx_L1_error)
  }
  mju_addToScl((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))), __pyx_v_scl, __pyx_v_n);

  /* "mujoco_py/generated/wrappers.pxi":5385
 *     mju_subFrom(&res[0], &vec[0], n)
 * 
 * def _mju_addToScl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl, int n):             # <<<<<<<<<<<<<<
 *     mju_addToScl(&res[0], &vec[0], scl, n)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_addToScl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5388
 *     mju_addToScl(&res[0], &vec[0], scl, n)
 * 
 * def _mju_addScl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, float scl, int n):             # <<<<<<<<<<<<<<
 *     mju_addScl(&res[0], &vec1[0], &vec2[0], scl, n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_395_mju_addScl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_395_mju_addScl = {"_mju_addScl", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_395_mju_addScl, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_395_mju_addScl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec1 = 0;
  PyArrayObject *__pyx_v_vec2 = 0;
  float __pyx_v_scl;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_addScl (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec1,&__pyx_n_s_vec2,&__pyx_n_s_scl,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5388, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5388, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_addScl", 1, 5, 5, 1); __PYX_ERR(4, 5388, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5388, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_addScl", 1, 5, 5, 2); __PYX_ERR(4, 5388, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scl)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5388, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_addScl", 1, 5, 5, 3); __PYX_ERR(4, 5388, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5388, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_addScl", 1, 5, 5, 4); __PYX_ERR(4, 5388, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_addScl") < 0)) __PYX_ERR(4, 5388, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec1 = ((PyArrayObject *)values[1]);
    __pyx_v_vec2 = ((PyArrayObject *)values[2]);
    __pyx_v_scl = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_scl == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5388, __pyx_L3_error)
    __pyx_v_n = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5388, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_addScl", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5388, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_addScl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5388, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec1), __pyx_ptype_5numpy_ndarray, 1, "vec1", 0))) __PYX_ERR(4, 5388, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec2), __pyx_ptype_5numpy_ndarray, 1, "vec2", 0))) __PYX_ERR(4, 5388, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_394_mju_addScl(__pyx_self, __pyx_v_res, __pyx_v_vec1, __pyx_v_vec2, __pyx_v_scl, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_394_mju_addScl(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2, float __pyx_v_scl, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec1;
  __Pyx_Buffer __pyx_pybuffer_vec1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec2;
  __Pyx_Buffer __pyx_pybuffer_vec2;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_addScl", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec1.pybuffer.buf = NULL;
  __pyx_pybuffer_vec1.refcount = 0;
  __pyx_pybuffernd_vec1.data = NULL;
  __pyx_pybuffernd_vec1.rcbuffer = &__pyx_pybuffer_vec1;
  __pyx_pybuffer_vec2.pybuffer.buf = NULL;
  __pyx_pybuffer_vec2.refcount = 0;
  __pyx_pybuffernd_vec2.data = NULL;
  __pyx_pybuffernd_vec2.rcbuffer = &__pyx_pybuffer_vec2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5388, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5388, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec1.diminfo[0].strides = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec1.diminfo[0].shape = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5388, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec2.diminfo[0].strides = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec2.diminfo[0].shape = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5389
 * 
 * def _mju_addScl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, float scl, int n):
 *     mju_addScl(&res[0], &vec1[0], &vec2[0], scl, n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_normalize(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5389, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec1.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5389, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_vec2.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_vec2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5389, __pyx_L1_error)
  }
  mju_addScl((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec1.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec2.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_vec2.diminfo[0].strides))), __pyx_v_scl, __pyx_v_n);

  /* "mujoco_py/generated/wrappers.pxi":5388
 *     mju_addToScl(&res[0], &vec[0], scl, n)
 * 
 * def _mju_addScl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, float scl, int n):             # <<<<<<<<<<<<<<
 *     mju_addScl(&res[0], &vec1[0], &vec2[0], scl, n)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_addScl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5391
 *     mju_addScl(&res[0], &vec1[0], &vec2[0], scl, n)
 * 
 * def _mju_normalize(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):             # <<<<<<<<<<<<<<
 *     return mju_normalize(&res[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_397_mju_normalize(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_397_mju_normalize = {"_mju_normalize", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_397_mju_normalize, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_397_mju_normalize(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_normalize (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5391, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5391, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_normalize", 1, 2, 2, 1); __PYX_ERR(4, 5391, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_normalize") < 0)) __PYX_ERR(4, 5391, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5391, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_normalize", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5391, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_normalize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5391, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_396_mju_normalize(__pyx_self, __pyx_v_res, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_396_mju_normalize(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_normalize", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5391, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5392
 * 
 * def _mju_normalize(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):
 *     return mju_normalize(&res[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_norm(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5392, __pyx_L1_error)
  }
  __pyx_t_3 = PyFloat_FromDouble(mju_normalize((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), __pyx_v_n)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5391
 *     mju_addScl(&res[0], &vec1[0], &vec2[0], scl, n)
 * 
 * def _mju_normalize(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):             # <<<<<<<<<<<<<<
 *     return mju_normalize(&res[0], n)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_normalize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5394
 *     return mju_normalize(&res[0], n)
 * 
 * def _mju_norm(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):             # <<<<<<<<<<<<<<
 *     return mju_norm(&res[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_399_mju_norm(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_399_mju_norm = {"_mju_norm", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_399_mju_norm, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_399_mju_norm(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_norm (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5394, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5394, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_norm", 1, 2, 2, 1); __PYX_ERR(4, 5394, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_norm") < 0)) __PYX_ERR(4, 5394, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5394, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_norm", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5394, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_norm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5394, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_398_mju_norm(__pyx_self, __pyx_v_res, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_398_mju_norm(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_norm", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5394, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5395
 * 
 * def _mju_norm(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):
 *     return mju_norm(&res[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_dot(np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5395, __pyx_L1_error)
  }
  __pyx_t_3 = PyFloat_FromDouble(mju_norm((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), __pyx_v_n)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5394
 *     return mju_normalize(&res[0], n)
 * 
 * def _mju_norm(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):             # <<<<<<<<<<<<<<
 *     return mju_norm(&res[0], n)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_norm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5397
 *     return mju_norm(&res[0], n)
 * 
 * def _mju_dot(np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):             # <<<<<<<<<<<<<<
 *     return mju_dot(&vec1[0], &vec2[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_401_mju_dot(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_401_mju_dot = {"_mju_dot", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_401_mju_dot, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_401_mju_dot(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_vec1 = 0;
  PyArrayObject *__pyx_v_vec2 = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_dot (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec1,&__pyx_n_s_vec2,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5397, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5397, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_dot", 1, 3, 3, 1); __PYX_ERR(4, 5397, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5397, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_dot", 1, 3, 3, 2); __PYX_ERR(4, 5397, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_dot") < 0)) __PYX_ERR(4, 5397, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_vec1 = ((PyArrayObject *)values[0]);
    __pyx_v_vec2 = ((PyArrayObject *)values[1]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5397, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_dot", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5397, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_dot", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec1), __pyx_ptype_5numpy_ndarray, 1, "vec1", 0))) __PYX_ERR(4, 5397, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec2), __pyx_ptype_5numpy_ndarray, 1, "vec2", 0))) __PYX_ERR(4, 5397, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_400_mju_dot(__pyx_self, __pyx_v_vec1, __pyx_v_vec2, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_400_mju_dot(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_vec1, PyArrayObject *__pyx_v_vec2, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec1;
  __Pyx_Buffer __pyx_pybuffer_vec1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec2;
  __Pyx_Buffer __pyx_pybuffer_vec2;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_dot", 1);
  __pyx_pybuffer_vec1.pybuffer.buf = NULL;
  __pyx_pybuffer_vec1.refcount = 0;
  __pyx_pybuffernd_vec1.data = NULL;
  __pyx_pybuffernd_vec1.rcbuffer = &__pyx_pybuffer_vec1;
  __pyx_pybuffer_vec2.pybuffer.buf = NULL;
  __pyx_pybuffer_vec2.refcount = 0;
  __pyx_pybuffernd_vec2.data = NULL;
  __pyx_pybuffernd_vec2.rcbuffer = &__pyx_pybuffer_vec2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5397, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec1.diminfo[0].strides = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec1.diminfo[0].shape = __pyx_pybuffernd_vec1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5397, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec2.diminfo[0].strides = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec2.diminfo[0].shape = __pyx_pybuffernd_vec2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5398
 * 
 * def _mju_dot(np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):
 *     return mju_dot(&vec1[0], &vec2[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_mulMatVec(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int nr, int nc):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_vec1.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_vec1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5398, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec2.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5398, __pyx_L1_error)
  }
  __pyx_t_4 = PyFloat_FromDouble(mju_dot((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec1.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_vec1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec2.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec2.diminfo[0].strides))), __pyx_v_n)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5397
 *     return mju_norm(&res[0], n)
 * 
 * def _mju_dot(np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):             # <<<<<<<<<<<<<<
 *     return mju_dot(&vec1[0], &vec2[0], n)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_dot", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec2.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5400
 *     return mju_dot(&vec1[0], &vec2[0], n)
 * 
 * def _mju_mulMatVec(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_mulMatVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_403_mju_mulMatVec(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_403_mju_mulMatVec = {"_mju_mulMatVec", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_403_mju_mulMatVec, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_403_mju_mulMatVec(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_mat = 0;
  PyArrayObject *__pyx_v_vec = 0;
  int __pyx_v_nr;
  int __pyx_v_nc;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_mulMatVec (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_mat,&__pyx_n_s_vec,&__pyx_n_s_nr,&__pyx_n_s_nc,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5400, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5400, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatVec", 1, 5, 5, 1); __PYX_ERR(4, 5400, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5400, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatVec", 1, 5, 5, 2); __PYX_ERR(4, 5400, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nr)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5400, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatVec", 1, 5, 5, 3); __PYX_ERR(4, 5400, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nc)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5400, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatVec", 1, 5, 5, 4); __PYX_ERR(4, 5400, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_mulMatVec") < 0)) __PYX_ERR(4, 5400, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_mat = ((PyArrayObject *)values[1]);
    __pyx_v_vec = ((PyArrayObject *)values[2]);
    __pyx_v_nr = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nr == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5400, __pyx_L3_error)
    __pyx_v_nc = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_nc == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5400, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_mulMatVec", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5400, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulMatVec", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5400, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_5numpy_ndarray, 1, "mat", 0))) __PYX_ERR(4, 5400, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5400, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_402_mju_mulMatVec(__pyx_self, __pyx_v_res, __pyx_v_mat, __pyx_v_vec, __pyx_v_nr, __pyx_v_nc);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_402_mju_mulMatVec(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat, PyArrayObject *__pyx_v_vec, int __pyx_v_nr, int __pyx_v_nc) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat;
  __Pyx_Buffer __pyx_pybuffer_mat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_mulMatVec", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_mat.pybuffer.buf = NULL;
  __pyx_pybuffer_mat.refcount = 0;
  __pyx_pybuffernd_mat.data = NULL;
  __pyx_pybuffernd_mat.rcbuffer = &__pyx_pybuffer_mat;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5400, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5400, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat.diminfo[0].strides = __pyx_pybuffernd_mat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat.diminfo[0].shape = __pyx_pybuffernd_mat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5400, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5401
 * 
 * def _mju_mulMatVec(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int nr, int nc):
 *     mju_mulMatVec(&res[0], &mat[0], &vec[0], nr, nc)             # <<<<<<<<<<<<<<
 * 
 * def _mju_mulMatTVec(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int nr, int nc):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5401, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_mat.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_mat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5401, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5401, __pyx_L1_error)
  }
  mju_mulMatVec((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_mat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_vec.diminfo[0].strides))), __pyx_v_nr, __pyx_v_nc);

  /* "mujoco_py/generated/wrappers.pxi":5400
 *     return mju_dot(&vec1[0], &vec2[0], n)
 * 
 * def _mju_mulMatVec(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_mulMatVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulMatVec", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5403
 *     mju_mulMatVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 * def _mju_mulMatTVec(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_mulMatTVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_405_mju_mulMatTVec(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_405_mju_mulMatTVec = {"_mju_mulMatTVec", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_405_mju_mulMatTVec, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_405_mju_mulMatTVec(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_mat = 0;
  PyArrayObject *__pyx_v_vec = 0;
  int __pyx_v_nr;
  int __pyx_v_nc;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_mulMatTVec (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_mat,&__pyx_n_s_vec,&__pyx_n_s_nr,&__pyx_n_s_nc,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5403, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5403, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatTVec", 1, 5, 5, 1); __PYX_ERR(4, 5403, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5403, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatTVec", 1, 5, 5, 2); __PYX_ERR(4, 5403, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nr)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5403, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatTVec", 1, 5, 5, 3); __PYX_ERR(4, 5403, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nc)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5403, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatTVec", 1, 5, 5, 4); __PYX_ERR(4, 5403, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_mulMatTVec") < 0)) __PYX_ERR(4, 5403, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_mat = ((PyArrayObject *)values[1]);
    __pyx_v_vec = ((PyArrayObject *)values[2]);
    __pyx_v_nr = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nr == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5403, __pyx_L3_error)
    __pyx_v_nc = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_nc == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5403, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_mulMatTVec", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5403, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulMatTVec", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5403, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_5numpy_ndarray, 1, "mat", 0))) __PYX_ERR(4, 5403, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5403, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_404_mju_mulMatTVec(__pyx_self, __pyx_v_res, __pyx_v_mat, __pyx_v_vec, __pyx_v_nr, __pyx_v_nc);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_404_mju_mulMatTVec(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat, PyArrayObject *__pyx_v_vec, int __pyx_v_nr, int __pyx_v_nc) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat;
  __Pyx_Buffer __pyx_pybuffer_mat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_mulMatTVec", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_mat.pybuffer.buf = NULL;
  __pyx_pybuffer_mat.refcount = 0;
  __pyx_pybuffernd_mat.data = NULL;
  __pyx_pybuffernd_mat.rcbuffer = &__pyx_pybuffer_mat;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5403, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5403, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat.diminfo[0].strides = __pyx_pybuffernd_mat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat.diminfo[0].shape = __pyx_pybuffernd_mat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5403, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5404
 * 
 * def _mju_mulMatTVec(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int nr, int nc):
 *     mju_mulMatTVec(&res[0], &mat[0], &vec[0], nr, nc)             # <<<<<<<<<<<<<<
 * 
 * def _mju_transpose(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, int nc):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5404, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_mat.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_mat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5404, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5404, __pyx_L1_error)
  }
  mju_mulMatTVec((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_mat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_vec.diminfo[0].strides))), __pyx_v_nr, __pyx_v_nc);

  /* "mujoco_py/generated/wrappers.pxi":5403
 *     mju_mulMatVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 * def _mju_mulMatTVec(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_mulMatTVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulMatTVec", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5406
 *     mju_mulMatTVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 * def _mju_transpose(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_transpose(&res[0], &mat[0], nr, nc)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_407_mju_transpose(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_407_mju_transpose = {"_mju_transpose", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_407_mju_transpose, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_407_mju_transpose(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_mat = 0;
  int __pyx_v_nr;
  int __pyx_v_nc;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_transpose (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_mat,&__pyx_n_s_nr,&__pyx_n_s_nc,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5406, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5406, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_transpose", 1, 4, 4, 1); __PYX_ERR(4, 5406, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nr)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5406, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_transpose", 1, 4, 4, 2); __PYX_ERR(4, 5406, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nc)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5406, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_transpose", 1, 4, 4, 3); __PYX_ERR(4, 5406, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_transpose") < 0)) __PYX_ERR(4, 5406, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_mat = ((PyArrayObject *)values[1]);
    __pyx_v_nr = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nr == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5406, __pyx_L3_error)
    __pyx_v_nc = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nc == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5406, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_transpose", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5406, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_transpose", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5406, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_5numpy_ndarray, 1, "mat", 0))) __PYX_ERR(4, 5406, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_406_mju_transpose(__pyx_self, __pyx_v_res, __pyx_v_mat, __pyx_v_nr, __pyx_v_nc);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_406_mju_transpose(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat, int __pyx_v_nr, int __pyx_v_nc) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat;
  __Pyx_Buffer __pyx_pybuffer_mat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_transpose", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_mat.pybuffer.buf = NULL;
  __pyx_pybuffer_mat.refcount = 0;
  __pyx_pybuffernd_mat.data = NULL;
  __pyx_pybuffernd_mat.rcbuffer = &__pyx_pybuffer_mat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5406, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5406, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat.diminfo[0].strides = __pyx_pybuffernd_mat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat.diminfo[0].shape = __pyx_pybuffernd_mat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5407
 * 
 * def _mju_transpose(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, int nc):
 *     mju_transpose(&res[0], &mat[0], nr, nc)             # <<<<<<<<<<<<<<
 * 
 * def _mju_mulMatMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int c2):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5407, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_mat.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_mat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5407, __pyx_L1_error)
  }
  mju_transpose((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_mat.diminfo[0].strides))), __pyx_v_nr, __pyx_v_nc);

  /* "mujoco_py/generated/wrappers.pxi":5406
 *     mju_mulMatTVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 * def _mju_transpose(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_transpose(&res[0], &mat[0], nr, nc)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_transpose", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5409
 *     mju_transpose(&res[0], &mat[0], nr, nc)
 * 
 * def _mju_mulMatMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int c2):             # <<<<<<<<<<<<<<
 *     mju_mulMatMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_409_mju_mulMatMat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_409_mju_mulMatMat = {"_mju_mulMatMat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_409_mju_mulMatMat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_409_mju_mulMatMat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_mat1 = 0;
  PyArrayObject *__pyx_v_mat2 = 0;
  int __pyx_v_r1;
  int __pyx_v_c1;
  int __pyx_v_c2;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_mulMatMat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_mat1,&__pyx_n_s_mat2,&__pyx_n_s_r1,&__pyx_n_s_c1,&__pyx_n_s_c2,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5409, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5409, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatMat", 1, 6, 6, 1); __PYX_ERR(4, 5409, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5409, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatMat", 1, 6, 6, 2); __PYX_ERR(4, 5409, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5409, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatMat", 1, 6, 6, 3); __PYX_ERR(4, 5409, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5409, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatMat", 1, 6, 6, 4); __PYX_ERR(4, 5409, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5409, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatMat", 1, 6, 6, 5); __PYX_ERR(4, 5409, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_mulMatMat") < 0)) __PYX_ERR(4, 5409, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_mat1 = ((PyArrayObject *)values[1]);
    __pyx_v_mat2 = ((PyArrayObject *)values[2]);
    __pyx_v_r1 = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_r1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5409, __pyx_L3_error)
    __pyx_v_c1 = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_c1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5409, __pyx_L3_error)
    __pyx_v_c2 = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_c2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5409, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_mulMatMat", 1, 6, 6, __pyx_nargs); __PYX_ERR(4, 5409, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulMatMat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5409, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat1), __pyx_ptype_5numpy_ndarray, 1, "mat1", 0))) __PYX_ERR(4, 5409, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat2), __pyx_ptype_5numpy_ndarray, 1, "mat2", 0))) __PYX_ERR(4, 5409, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_408_mju_mulMatMat(__pyx_self, __pyx_v_res, __pyx_v_mat1, __pyx_v_mat2, __pyx_v_r1, __pyx_v_c1, __pyx_v_c2);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_408_mju_mulMatMat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat1, PyArrayObject *__pyx_v_mat2, int __pyx_v_r1, int __pyx_v_c1, int __pyx_v_c2) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat1;
  __Pyx_Buffer __pyx_pybuffer_mat1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat2;
  __Pyx_Buffer __pyx_pybuffer_mat2;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_mulMatMat", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_mat1.pybuffer.buf = NULL;
  __pyx_pybuffer_mat1.refcount = 0;
  __pyx_pybuffernd_mat1.data = NULL;
  __pyx_pybuffernd_mat1.rcbuffer = &__pyx_pybuffer_mat1;
  __pyx_pybuffer_mat2.pybuffer.buf = NULL;
  __pyx_pybuffer_mat2.refcount = 0;
  __pyx_pybuffernd_mat2.data = NULL;
  __pyx_pybuffernd_mat2.rcbuffer = &__pyx_pybuffer_mat2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5409, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat1.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5409, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat1.diminfo[0].strides = __pyx_pybuffernd_mat1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat1.diminfo[0].shape = __pyx_pybuffernd_mat1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat2.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5409, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat2.diminfo[0].strides = __pyx_pybuffernd_mat2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat2.diminfo[0].shape = __pyx_pybuffernd_mat2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5410
 * 
 * def _mju_mulMatMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int c2):
 *     mju_mulMatMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)             # <<<<<<<<<<<<<<
 * 
 * def _mju_mulMatMatT(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int r2):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5410, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_mat1.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_mat1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5410, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_mat2.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_mat2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5410, __pyx_L1_error)
  }
  mju_mulMatMat((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat1.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_mat1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat2.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_mat2.diminfo[0].strides))), __pyx_v_r1, __pyx_v_c1, __pyx_v_c2);

  /* "mujoco_py/generated/wrappers.pxi":5409
 *     mju_transpose(&res[0], &mat[0], nr, nc)
 * 
 * def _mju_mulMatMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int c2):             # <<<<<<<<<<<<<<
 *     mju_mulMatMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat2.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulMatMat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat2.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5412
 *     mju_mulMatMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 * def _mju_mulMatMatT(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int r2):             # <<<<<<<<<<<<<<
 *     mju_mulMatMatT(&res[0], &mat1[0], &mat2[0], r1, c1, r2)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_411_mju_mulMatMatT(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_411_mju_mulMatMatT = {"_mju_mulMatMatT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_411_mju_mulMatMatT, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_411_mju_mulMatMatT(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_mat1 = 0;
  PyArrayObject *__pyx_v_mat2 = 0;
  int __pyx_v_r1;
  int __pyx_v_c1;
  int __pyx_v_r2;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_mulMatMatT (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_mat1,&__pyx_n_s_mat2,&__pyx_n_s_r1,&__pyx_n_s_c1,&__pyx_n_s_r2,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5412, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5412, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatMatT", 1, 6, 6, 1); __PYX_ERR(4, 5412, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5412, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatMatT", 1, 6, 6, 2); __PYX_ERR(4, 5412, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5412, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatMatT", 1, 6, 6, 3); __PYX_ERR(4, 5412, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5412, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatMatT", 1, 6, 6, 4); __PYX_ERR(4, 5412, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5412, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatMatT", 1, 6, 6, 5); __PYX_ERR(4, 5412, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_mulMatMatT") < 0)) __PYX_ERR(4, 5412, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_mat1 = ((PyArrayObject *)values[1]);
    __pyx_v_mat2 = ((PyArrayObject *)values[2]);
    __pyx_v_r1 = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_r1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5412, __pyx_L3_error)
    __pyx_v_c1 = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_c1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5412, __pyx_L3_error)
    __pyx_v_r2 = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_r2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5412, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_mulMatMatT", 1, 6, 6, __pyx_nargs); __PYX_ERR(4, 5412, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulMatMatT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5412, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat1), __pyx_ptype_5numpy_ndarray, 1, "mat1", 0))) __PYX_ERR(4, 5412, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat2), __pyx_ptype_5numpy_ndarray, 1, "mat2", 0))) __PYX_ERR(4, 5412, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_410_mju_mulMatMatT(__pyx_self, __pyx_v_res, __pyx_v_mat1, __pyx_v_mat2, __pyx_v_r1, __pyx_v_c1, __pyx_v_r2);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_410_mju_mulMatMatT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat1, PyArrayObject *__pyx_v_mat2, int __pyx_v_r1, int __pyx_v_c1, int __pyx_v_r2) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat1;
  __Pyx_Buffer __pyx_pybuffer_mat1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat2;
  __Pyx_Buffer __pyx_pybuffer_mat2;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_mulMatMatT", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_mat1.pybuffer.buf = NULL;
  __pyx_pybuffer_mat1.refcount = 0;
  __pyx_pybuffernd_mat1.data = NULL;
  __pyx_pybuffernd_mat1.rcbuffer = &__pyx_pybuffer_mat1;
  __pyx_pybuffer_mat2.pybuffer.buf = NULL;
  __pyx_pybuffer_mat2.refcount = 0;
  __pyx_pybuffernd_mat2.data = NULL;
  __pyx_pybuffernd_mat2.rcbuffer = &__pyx_pybuffer_mat2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5412, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat1.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5412, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat1.diminfo[0].strides = __pyx_pybuffernd_mat1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat1.diminfo[0].shape = __pyx_pybuffernd_mat1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat2.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5412, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat2.diminfo[0].strides = __pyx_pybuffernd_mat2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat2.diminfo[0].shape = __pyx_pybuffernd_mat2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5413
 * 
 * def _mju_mulMatMatT(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int r2):
 *     mju_mulMatMatT(&res[0], &mat1[0], &mat2[0], r1, c1, r2)             # <<<<<<<<<<<<<<
 * 
 * def _mju_mulMatTMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int c2):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5413, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_mat1.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_mat1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5413, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_mat2.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_mat2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5413, __pyx_L1_error)
  }
  mju_mulMatMatT((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat1.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_mat1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat2.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_mat2.diminfo[0].strides))), __pyx_v_r1, __pyx_v_c1, __pyx_v_r2);

  /* "mujoco_py/generated/wrappers.pxi":5412
 *     mju_mulMatMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 * def _mju_mulMatMatT(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int r2):             # <<<<<<<<<<<<<<
 *     mju_mulMatMatT(&res[0], &mat1[0], &mat2[0], r1, c1, r2)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat2.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulMatMatT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat2.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5415
 *     mju_mulMatMatT(&res[0], &mat1[0], &mat2[0], r1, c1, r2)
 * 
 * def _mju_mulMatTMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int c2):             # <<<<<<<<<<<<<<
 *     mju_mulMatTMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_413_mju_mulMatTMat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_413_mju_mulMatTMat = {"_mju_mulMatTMat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_413_mju_mulMatTMat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_413_mju_mulMatTMat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_mat1 = 0;
  PyArrayObject *__pyx_v_mat2 = 0;
  int __pyx_v_r1;
  int __pyx_v_c1;
  int __pyx_v_c2;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_mulMatTMat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_mat1,&__pyx_n_s_mat2,&__pyx_n_s_r1,&__pyx_n_s_c1,&__pyx_n_s_c2,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5415, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5415, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatTMat", 1, 6, 6, 1); __PYX_ERR(4, 5415, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5415, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatTMat", 1, 6, 6, 2); __PYX_ERR(4, 5415, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5415, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatTMat", 1, 6, 6, 3); __PYX_ERR(4, 5415, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5415, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatTMat", 1, 6, 6, 4); __PYX_ERR(4, 5415, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_c2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5415, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulMatTMat", 1, 6, 6, 5); __PYX_ERR(4, 5415, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_mulMatTMat") < 0)) __PYX_ERR(4, 5415, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_mat1 = ((PyArrayObject *)values[1]);
    __pyx_v_mat2 = ((PyArrayObject *)values[2]);
    __pyx_v_r1 = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_r1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5415, __pyx_L3_error)
    __pyx_v_c1 = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_c1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5415, __pyx_L3_error)
    __pyx_v_c2 = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_c2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5415, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_mulMatTMat", 1, 6, 6, __pyx_nargs); __PYX_ERR(4, 5415, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulMatTMat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5415, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat1), __pyx_ptype_5numpy_ndarray, 1, "mat1", 0))) __PYX_ERR(4, 5415, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat2), __pyx_ptype_5numpy_ndarray, 1, "mat2", 0))) __PYX_ERR(4, 5415, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_412_mju_mulMatTMat(__pyx_self, __pyx_v_res, __pyx_v_mat1, __pyx_v_mat2, __pyx_v_r1, __pyx_v_c1, __pyx_v_c2);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_412_mju_mulMatTMat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat1, PyArrayObject *__pyx_v_mat2, int __pyx_v_r1, int __pyx_v_c1, int __pyx_v_c2) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat1;
  __Pyx_Buffer __pyx_pybuffer_mat1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat2;
  __Pyx_Buffer __pyx_pybuffer_mat2;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_mulMatTMat", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_mat1.pybuffer.buf = NULL;
  __pyx_pybuffer_mat1.refcount = 0;
  __pyx_pybuffernd_mat1.data = NULL;
  __pyx_pybuffernd_mat1.rcbuffer = &__pyx_pybuffer_mat1;
  __pyx_pybuffer_mat2.pybuffer.buf = NULL;
  __pyx_pybuffer_mat2.refcount = 0;
  __pyx_pybuffernd_mat2.data = NULL;
  __pyx_pybuffernd_mat2.rcbuffer = &__pyx_pybuffer_mat2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5415, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat1.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5415, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat1.diminfo[0].strides = __pyx_pybuffernd_mat1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat1.diminfo[0].shape = __pyx_pybuffernd_mat1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat2.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5415, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat2.diminfo[0].strides = __pyx_pybuffernd_mat2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat2.diminfo[0].shape = __pyx_pybuffernd_mat2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5416
 * 
 * def _mju_mulMatTMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int c2):
 *     mju_mulMatTMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)             # <<<<<<<<<<<<<<
 * 
 * def _mju_sqrMatTD(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] diag, int nr, int nc):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5416, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_mat1.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_mat1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5416, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_mat2.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_mat2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5416, __pyx_L1_error)
  }
  mju_mulMatTMat((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat1.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_mat1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat2.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_mat2.diminfo[0].strides))), __pyx_v_r1, __pyx_v_c1, __pyx_v_c2);

  /* "mujoco_py/generated/wrappers.pxi":5415
 *     mju_mulMatMatT(&res[0], &mat1[0], &mat2[0], r1, c1, r2)
 * 
 * def _mju_mulMatTMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int c2):             # <<<<<<<<<<<<<<
 *     mju_mulMatTMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat2.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulMatTMat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat2.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5418
 *     mju_mulMatTMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 * def _mju_sqrMatTD(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] diag, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_sqrMatTD(&res[0], &mat[0], &diag[0], nr, nc)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_415_mju_sqrMatTD(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_415_mju_sqrMatTD = {"_mju_sqrMatTD", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_415_mju_sqrMatTD, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_415_mju_sqrMatTD(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_mat = 0;
  PyArrayObject *__pyx_v_diag = 0;
  int __pyx_v_nr;
  int __pyx_v_nc;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_sqrMatTD (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_mat,&__pyx_n_s_diag,&__pyx_n_s_nr,&__pyx_n_s_nc,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5418, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5418, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_sqrMatTD", 1, 5, 5, 1); __PYX_ERR(4, 5418, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_diag)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5418, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_sqrMatTD", 1, 5, 5, 2); __PYX_ERR(4, 5418, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nr)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5418, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_sqrMatTD", 1, 5, 5, 3); __PYX_ERR(4, 5418, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nc)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5418, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_sqrMatTD", 1, 5, 5, 4); __PYX_ERR(4, 5418, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_sqrMatTD") < 0)) __PYX_ERR(4, 5418, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_mat = ((PyArrayObject *)values[1]);
    __pyx_v_diag = ((PyArrayObject *)values[2]);
    __pyx_v_nr = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_nr == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5418, __pyx_L3_error)
    __pyx_v_nc = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_nc == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5418, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_sqrMatTD", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5418, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_sqrMatTD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5418, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_5numpy_ndarray, 1, "mat", 0))) __PYX_ERR(4, 5418, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diag), __pyx_ptype_5numpy_ndarray, 1, "diag", 0))) __PYX_ERR(4, 5418, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_414_mju_sqrMatTD(__pyx_self, __pyx_v_res, __pyx_v_mat, __pyx_v_diag, __pyx_v_nr, __pyx_v_nc);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_414_mju_sqrMatTD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat, PyArrayObject *__pyx_v_diag, int __pyx_v_nr, int __pyx_v_nc) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_diag;
  __Pyx_Buffer __pyx_pybuffer_diag;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat;
  __Pyx_Buffer __pyx_pybuffer_mat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_sqrMatTD", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_mat.pybuffer.buf = NULL;
  __pyx_pybuffer_mat.refcount = 0;
  __pyx_pybuffernd_mat.data = NULL;
  __pyx_pybuffernd_mat.rcbuffer = &__pyx_pybuffer_mat;
  __pyx_pybuffer_diag.pybuffer.buf = NULL;
  __pyx_pybuffer_diag.refcount = 0;
  __pyx_pybuffernd_diag.data = NULL;
  __pyx_pybuffernd_diag.rcbuffer = &__pyx_pybuffer_diag;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5418, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5418, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat.diminfo[0].strides = __pyx_pybuffernd_mat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat.diminfo[0].shape = __pyx_pybuffernd_mat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_diag.rcbuffer->pybuffer, (PyObject*)__pyx_v_diag, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5418, __pyx_L1_error)
  }
  __pyx_pybuffernd_diag.diminfo[0].strides = __pyx_pybuffernd_diag.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_diag.diminfo[0].shape = __pyx_pybuffernd_diag.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5419
 * 
 * def _mju_sqrMatTD(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] diag, int nr, int nc):
 *     mju_sqrMatTD(&res[0], &mat[0], &diag[0], nr, nc)             # <<<<<<<<<<<<<<
 * 
 * def _mju_transformSpatial(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int flg_force, np.ndarray[np.float64_t, mode="c", ndim=1] newpos, np.ndarray[np.float64_t, mode="c", ndim=1] oldpos, np.ndarray[np.float64_t, mode="c", ndim=1] rotnew2old):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5419, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_mat.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_mat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5419, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_diag.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_diag.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5419, __pyx_L1_error)
  }
  mju_sqrMatTD((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_mat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_diag.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_diag.diminfo[0].strides))), __pyx_v_nr, __pyx_v_nc);

  /* "mujoco_py/generated/wrappers.pxi":5418
 *     mju_mulMatTMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 * def _mju_sqrMatTD(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] diag, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_sqrMatTD(&res[0], &mat[0], &diag[0], nr, nc)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_diag.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_sqrMatTD", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_diag.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5421
 *     mju_sqrMatTD(&res[0], &mat[0], &diag[0], nr, nc)
 * 
 * def _mju_transformSpatial(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int flg_force, np.ndarray[np.float64_t, mode="c", ndim=1] newpos, np.ndarray[np.float64_t, mode="c", ndim=1] oldpos, np.ndarray[np.float64_t, mode="c", ndim=1] rotnew2old):             # <<<<<<<<<<<<<<
 *     mju_transformSpatial(&res[0], &vec[0], flg_force, &newpos[0], &oldpos[0], &rotnew2old[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_417_mju_transformSpatial(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_417_mju_transformSpatial = {"_mju_transformSpatial", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_417_mju_transformSpatial, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_417_mju_transformSpatial(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  int __pyx_v_flg_force;
  PyArrayObject *__pyx_v_newpos = 0;
  PyArrayObject *__pyx_v_oldpos = 0;
  PyArrayObject *__pyx_v_rotnew2old = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_transformSpatial (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec,&__pyx_n_s_flg_force,&__pyx_n_s_newpos,&__pyx_n_s_oldpos,&__pyx_n_s_rotnew2old,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5421, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5421, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_transformSpatial", 1, 6, 6, 1); __PYX_ERR(4, 5421, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flg_force)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5421, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_transformSpatial", 1, 6, 6, 2); __PYX_ERR(4, 5421, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_newpos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5421, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_transformSpatial", 1, 6, 6, 3); __PYX_ERR(4, 5421, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_oldpos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5421, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_transformSpatial", 1, 6, 6, 4); __PYX_ERR(4, 5421, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rotnew2old)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5421, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_transformSpatial", 1, 6, 6, 5); __PYX_ERR(4, 5421, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_transformSpatial") < 0)) __PYX_ERR(4, 5421, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
    __pyx_v_flg_force = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_flg_force == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5421, __pyx_L3_error)
    __pyx_v_newpos = ((PyArrayObject *)values[3]);
    __pyx_v_oldpos = ((PyArrayObject *)values[4]);
    __pyx_v_rotnew2old = ((PyArrayObject *)values[5]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_transformSpatial", 1, 6, 6, __pyx_nargs); __PYX_ERR(4, 5421, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_transformSpatial", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5421, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5421, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_newpos), __pyx_ptype_5numpy_ndarray, 1, "newpos", 0))) __PYX_ERR(4, 5421, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_oldpos), __pyx_ptype_5numpy_ndarray, 1, "oldpos", 0))) __PYX_ERR(4, 5421, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rotnew2old), __pyx_ptype_5numpy_ndarray, 1, "rotnew2old", 0))) __PYX_ERR(4, 5421, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_416_mju_transformSpatial(__pyx_self, __pyx_v_res, __pyx_v_vec, __pyx_v_flg_force, __pyx_v_newpos, __pyx_v_oldpos, __pyx_v_rotnew2old);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_416_mju_transformSpatial(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, int __pyx_v_flg_force, PyArrayObject *__pyx_v_newpos, PyArrayObject *__pyx_v_oldpos, PyArrayObject *__pyx_v_rotnew2old) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_newpos;
  __Pyx_Buffer __pyx_pybuffer_newpos;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_oldpos;
  __Pyx_Buffer __pyx_pybuffer_oldpos;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rotnew2old;
  __Pyx_Buffer __pyx_pybuffer_rotnew2old;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_transformSpatial", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  __pyx_pybuffer_newpos.pybuffer.buf = NULL;
  __pyx_pybuffer_newpos.refcount = 0;
  __pyx_pybuffernd_newpos.data = NULL;
  __pyx_pybuffernd_newpos.rcbuffer = &__pyx_pybuffer_newpos;
  __pyx_pybuffer_oldpos.pybuffer.buf = NULL;
  __pyx_pybuffer_oldpos.refcount = 0;
  __pyx_pybuffernd_oldpos.data = NULL;
  __pyx_pybuffernd_oldpos.rcbuffer = &__pyx_pybuffer_oldpos;
  __pyx_pybuffer_rotnew2old.pybuffer.buf = NULL;
  __pyx_pybuffer_rotnew2old.refcount = 0;
  __pyx_pybuffernd_rotnew2old.data = NULL;
  __pyx_pybuffernd_rotnew2old.rcbuffer = &__pyx_pybuffer_rotnew2old;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5421, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5421, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_newpos.rcbuffer->pybuffer, (PyObject*)__pyx_v_newpos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5421, __pyx_L1_error)
  }
  __pyx_pybuffernd_newpos.diminfo[0].strides = __pyx_pybuffernd_newpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_newpos.diminfo[0].shape = __pyx_pybuffernd_newpos.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_oldpos.rcbuffer->pybuffer, (PyObject*)__pyx_v_oldpos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5421, __pyx_L1_error)
  }
  __pyx_pybuffernd_oldpos.diminfo[0].strides = __pyx_pybuffernd_oldpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_oldpos.diminfo[0].shape = __pyx_pybuffernd_oldpos.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rotnew2old.rcbuffer->pybuffer, (PyObject*)__pyx_v_rotnew2old, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5421, __pyx_L1_error)
  }
  __pyx_pybuffernd_rotnew2old.diminfo[0].strides = __pyx_pybuffernd_rotnew2old.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rotnew2old.diminfo[0].shape = __pyx_pybuffernd_rotnew2old.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5422
 * 
 * def _mju_transformSpatial(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int flg_force, np.ndarray[np.float64_t, mode="c", ndim=1] newpos, np.ndarray[np.float64_t, mode="c", ndim=1] oldpos, np.ndarray[np.float64_t, mode="c", ndim=1] rotnew2old):
 *     mju_transformSpatial(&res[0], &vec[0], flg_force, &newpos[0], &oldpos[0], &rotnew2old[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_rotVecQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] quat):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5422, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5422, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_newpos.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_newpos.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5422, __pyx_L1_error)
  }
  __pyx_t_5 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_5 < 0) {
    __pyx_t_5 += __pyx_pybuffernd_oldpos.diminfo[0].shape;
    if (unlikely(__pyx_t_5 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_5 >= __pyx_pybuffernd_oldpos.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5422, __pyx_L1_error)
  }
  __pyx_t_6 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_6 < 0) {
    __pyx_t_6 += __pyx_pybuffernd_rotnew2old.diminfo[0].shape;
    if (unlikely(__pyx_t_6 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_6 >= __pyx_pybuffernd_rotnew2old.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5422, __pyx_L1_error)
  }
  mju_transformSpatial((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))), __pyx_v_flg_force, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_newpos.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_newpos.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_oldpos.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_oldpos.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_rotnew2old.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_rotnew2old.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5421
 *     mju_sqrMatTD(&res[0], &mat[0], &diag[0], nr, nc)
 * 
 * def _mju_transformSpatial(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int flg_force, np.ndarray[np.float64_t, mode="c", ndim=1] newpos, np.ndarray[np.float64_t, mode="c", ndim=1] oldpos, np.ndarray[np.float64_t, mode="c", ndim=1] rotnew2old):             # <<<<<<<<<<<<<<
 *     mju_transformSpatial(&res[0], &vec[0], flg_force, &newpos[0], &oldpos[0], &rotnew2old[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_newpos.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_oldpos.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rotnew2old.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_transformSpatial", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_newpos.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_oldpos.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rotnew2old.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5424
 *     mju_transformSpatial(&res[0], &vec[0], flg_force, &newpos[0], &oldpos[0], &rotnew2old[0])
 * 
 * def _mju_rotVecQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_rotVecQuat(&res[0], &vec[0], &quat[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_419_mju_rotVecQuat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_419_mju_rotVecQuat = {"_mju_rotVecQuat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_419_mju_rotVecQuat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_419_mju_rotVecQuat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_vec = 0;
  PyArrayObject *__pyx_v_quat = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_rotVecQuat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_vec,&__pyx_n_s_quat,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5424, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5424, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_rotVecQuat", 1, 3, 3, 1); __PYX_ERR(4, 5424, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5424, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_rotVecQuat", 1, 3, 3, 2); __PYX_ERR(4, 5424, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_rotVecQuat") < 0)) __PYX_ERR(4, 5424, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
    __pyx_v_quat = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_rotVecQuat", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5424, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_rotVecQuat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5424, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5424, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat), __pyx_ptype_5numpy_ndarray, 1, "quat", 0))) __PYX_ERR(4, 5424, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_418_mju_rotVecQuat(__pyx_self, __pyx_v_res, __pyx_v_vec, __pyx_v_quat);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_418_mju_rotVecQuat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_vec, PyArrayObject *__pyx_v_quat) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat;
  __Pyx_Buffer __pyx_pybuffer_quat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_rotVecQuat", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  __pyx_pybuffer_quat.pybuffer.buf = NULL;
  __pyx_pybuffer_quat.refcount = 0;
  __pyx_pybuffernd_quat.data = NULL;
  __pyx_pybuffernd_quat.rcbuffer = &__pyx_pybuffer_quat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5424, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5424, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5424, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat.diminfo[0].strides = __pyx_pybuffernd_quat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat.diminfo[0].shape = __pyx_pybuffernd_quat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5425
 * 
 * def _mju_rotVecQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] quat):
 *     mju_rotVecQuat(&res[0], &vec[0], &quat[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_negQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5425, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5425, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_quat.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_quat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5425, __pyx_L1_error)
  }
  mju_rotVecQuat((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_quat.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5424
 *     mju_transformSpatial(&res[0], &vec[0], flg_force, &newpos[0], &oldpos[0], &rotnew2old[0])
 * 
 * def _mju_rotVecQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_rotVecQuat(&res[0], &vec[0], &quat[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_rotVecQuat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5427
 *     mju_rotVecQuat(&res[0], &vec[0], &quat[0])
 * 
 * def _mju_negQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_negQuat(&res[0], &quat[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_421_mju_negQuat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_421_mju_negQuat = {"_mju_negQuat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_421_mju_negQuat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_421_mju_negQuat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_quat = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_negQuat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_quat,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5427, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5427, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_negQuat", 1, 2, 2, 1); __PYX_ERR(4, 5427, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_negQuat") < 0)) __PYX_ERR(4, 5427, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_quat = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_negQuat", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5427, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_negQuat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5427, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat), __pyx_ptype_5numpy_ndarray, 1, "quat", 0))) __PYX_ERR(4, 5427, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_420_mju_negQuat(__pyx_self, __pyx_v_res, __pyx_v_quat);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_420_mju_negQuat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_quat) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat;
  __Pyx_Buffer __pyx_pybuffer_quat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_negQuat", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_quat.pybuffer.buf = NULL;
  __pyx_pybuffer_quat.refcount = 0;
  __pyx_pybuffernd_quat.data = NULL;
  __pyx_pybuffernd_quat.rcbuffer = &__pyx_pybuffer_quat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5427, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5427, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat.diminfo[0].strides = __pyx_pybuffernd_quat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat.diminfo[0].shape = __pyx_pybuffernd_quat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5428
 * 
 * def _mju_negQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat):
 *     mju_negQuat(&res[0], &quat[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_mulQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat1, np.ndarray[np.float64_t, mode="c", ndim=1] quat2):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5428, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_quat.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_quat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5428, __pyx_L1_error)
  }
  mju_negQuat((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_quat.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5427
 *     mju_rotVecQuat(&res[0], &vec[0], &quat[0])
 * 
 * def _mju_negQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_negQuat(&res[0], &quat[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_negQuat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5430
 *     mju_negQuat(&res[0], &quat[0])
 * 
 * def _mju_mulQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat1, np.ndarray[np.float64_t, mode="c", ndim=1] quat2):             # <<<<<<<<<<<<<<
 *     mju_mulQuat(&res[0], &quat1[0], &quat2[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_423_mju_mulQuat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_423_mju_mulQuat = {"_mju_mulQuat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_423_mju_mulQuat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_423_mju_mulQuat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_quat1 = 0;
  PyArrayObject *__pyx_v_quat2 = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_mulQuat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_quat1,&__pyx_n_s_quat2,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5430, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5430, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulQuat", 1, 3, 3, 1); __PYX_ERR(4, 5430, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5430, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulQuat", 1, 3, 3, 2); __PYX_ERR(4, 5430, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_mulQuat") < 0)) __PYX_ERR(4, 5430, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_quat1 = ((PyArrayObject *)values[1]);
    __pyx_v_quat2 = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_mulQuat", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5430, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulQuat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5430, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat1), __pyx_ptype_5numpy_ndarray, 1, "quat1", 0))) __PYX_ERR(4, 5430, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat2), __pyx_ptype_5numpy_ndarray, 1, "quat2", 0))) __PYX_ERR(4, 5430, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_422_mju_mulQuat(__pyx_self, __pyx_v_res, __pyx_v_quat1, __pyx_v_quat2);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_422_mju_mulQuat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_quat1, PyArrayObject *__pyx_v_quat2) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat1;
  __Pyx_Buffer __pyx_pybuffer_quat1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat2;
  __Pyx_Buffer __pyx_pybuffer_quat2;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_mulQuat", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_quat1.pybuffer.buf = NULL;
  __pyx_pybuffer_quat1.refcount = 0;
  __pyx_pybuffernd_quat1.data = NULL;
  __pyx_pybuffernd_quat1.rcbuffer = &__pyx_pybuffer_quat1;
  __pyx_pybuffer_quat2.pybuffer.buf = NULL;
  __pyx_pybuffer_quat2.refcount = 0;
  __pyx_pybuffernd_quat2.data = NULL;
  __pyx_pybuffernd_quat2.rcbuffer = &__pyx_pybuffer_quat2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5430, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat1.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5430, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat1.diminfo[0].strides = __pyx_pybuffernd_quat1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat1.diminfo[0].shape = __pyx_pybuffernd_quat1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat2.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5430, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat2.diminfo[0].strides = __pyx_pybuffernd_quat2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat2.diminfo[0].shape = __pyx_pybuffernd_quat2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5431
 * 
 * def _mju_mulQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat1, np.ndarray[np.float64_t, mode="c", ndim=1] quat2):
 *     mju_mulQuat(&res[0], &quat1[0], &quat2[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_mulQuatAxis(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] axis):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5431, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_quat1.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_quat1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5431, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_quat2.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_quat2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5431, __pyx_L1_error)
  }
  mju_mulQuat((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat1.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_quat1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat2.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_quat2.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5430
 *     mju_negQuat(&res[0], &quat[0])
 * 
 * def _mju_mulQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat1, np.ndarray[np.float64_t, mode="c", ndim=1] quat2):             # <<<<<<<<<<<<<<
 *     mju_mulQuat(&res[0], &quat1[0], &quat2[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat2.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulQuat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat2.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5433
 *     mju_mulQuat(&res[0], &quat1[0], &quat2[0])
 * 
 * def _mju_mulQuatAxis(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] axis):             # <<<<<<<<<<<<<<
 *     mju_mulQuatAxis(&res[0], &quat[0], &axis[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_425_mju_mulQuatAxis(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_425_mju_mulQuatAxis = {"_mju_mulQuatAxis", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_425_mju_mulQuatAxis, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_425_mju_mulQuatAxis(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_quat = 0;
  PyArrayObject *__pyx_v_axis = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_mulQuatAxis (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_quat,&__pyx_n_s_axis,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5433, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5433, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulQuatAxis", 1, 3, 3, 1); __PYX_ERR(4, 5433, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_axis)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5433, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulQuatAxis", 1, 3, 3, 2); __PYX_ERR(4, 5433, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_mulQuatAxis") < 0)) __PYX_ERR(4, 5433, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_quat = ((PyArrayObject *)values[1]);
    __pyx_v_axis = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_mulQuatAxis", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5433, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulQuatAxis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5433, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat), __pyx_ptype_5numpy_ndarray, 1, "quat", 0))) __PYX_ERR(4, 5433, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_axis), __pyx_ptype_5numpy_ndarray, 1, "axis", 0))) __PYX_ERR(4, 5433, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_424_mju_mulQuatAxis(__pyx_self, __pyx_v_res, __pyx_v_quat, __pyx_v_axis);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_424_mju_mulQuatAxis(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_quat, PyArrayObject *__pyx_v_axis) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_axis;
  __Pyx_Buffer __pyx_pybuffer_axis;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat;
  __Pyx_Buffer __pyx_pybuffer_quat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_mulQuatAxis", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_quat.pybuffer.buf = NULL;
  __pyx_pybuffer_quat.refcount = 0;
  __pyx_pybuffernd_quat.data = NULL;
  __pyx_pybuffernd_quat.rcbuffer = &__pyx_pybuffer_quat;
  __pyx_pybuffer_axis.pybuffer.buf = NULL;
  __pyx_pybuffer_axis.refcount = 0;
  __pyx_pybuffernd_axis.data = NULL;
  __pyx_pybuffernd_axis.rcbuffer = &__pyx_pybuffer_axis;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5433, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5433, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat.diminfo[0].strides = __pyx_pybuffernd_quat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat.diminfo[0].shape = __pyx_pybuffernd_quat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_axis.rcbuffer->pybuffer, (PyObject*)__pyx_v_axis, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5433, __pyx_L1_error)
  }
  __pyx_pybuffernd_axis.diminfo[0].strides = __pyx_pybuffernd_axis.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_axis.diminfo[0].shape = __pyx_pybuffernd_axis.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5434
 * 
 * def _mju_mulQuatAxis(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] axis):
 *     mju_mulQuatAxis(&res[0], &quat[0], &axis[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_axisAngle2Quat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] axis, float angle):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5434, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_quat.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_quat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5434, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_axis.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_axis.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5434, __pyx_L1_error)
  }
  mju_mulQuatAxis((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_quat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_axis.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_axis.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5433
 *     mju_mulQuat(&res[0], &quat1[0], &quat2[0])
 * 
 * def _mju_mulQuatAxis(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] axis):             # <<<<<<<<<<<<<<
 *     mju_mulQuatAxis(&res[0], &quat[0], &axis[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_axis.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulQuatAxis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_axis.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5436
 *     mju_mulQuatAxis(&res[0], &quat[0], &axis[0])
 * 
 * def _mju_axisAngle2Quat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] axis, float angle):             # <<<<<<<<<<<<<<
 *     mju_axisAngle2Quat(&res[0], &axis[0], angle)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_427_mju_axisAngle2Quat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_427_mju_axisAngle2Quat = {"_mju_axisAngle2Quat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_427_mju_axisAngle2Quat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_427_mju_axisAngle2Quat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_axis = 0;
  float __pyx_v_angle;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_axisAngle2Quat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_axis,&__pyx_n_s_angle,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5436, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_axis)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5436, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_axisAngle2Quat", 1, 3, 3, 1); __PYX_ERR(4, 5436, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_angle)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5436, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_axisAngle2Quat", 1, 3, 3, 2); __PYX_ERR(4, 5436, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_axisAngle2Quat") < 0)) __PYX_ERR(4, 5436, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_axis = ((PyArrayObject *)values[1]);
    __pyx_v_angle = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_angle == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5436, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_axisAngle2Quat", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5436, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_axisAngle2Quat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5436, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_axis), __pyx_ptype_5numpy_ndarray, 1, "axis", 0))) __PYX_ERR(4, 5436, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_426_mju_axisAngle2Quat(__pyx_self, __pyx_v_res, __pyx_v_axis, __pyx_v_angle);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_426_mju_axisAngle2Quat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_axis, float __pyx_v_angle) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_axis;
  __Pyx_Buffer __pyx_pybuffer_axis;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_axisAngle2Quat", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_axis.pybuffer.buf = NULL;
  __pyx_pybuffer_axis.refcount = 0;
  __pyx_pybuffernd_axis.data = NULL;
  __pyx_pybuffernd_axis.rcbuffer = &__pyx_pybuffer_axis;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5436, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_axis.rcbuffer->pybuffer, (PyObject*)__pyx_v_axis, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5436, __pyx_L1_error)
  }
  __pyx_pybuffernd_axis.diminfo[0].strides = __pyx_pybuffernd_axis.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_axis.diminfo[0].shape = __pyx_pybuffernd_axis.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5437
 * 
 * def _mju_axisAngle2Quat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] axis, float angle):
 *     mju_axisAngle2Quat(&res[0], &axis[0], angle)             # <<<<<<<<<<<<<<
 * 
 * def _mju_quat2Vel(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, float dt):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5437, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_axis.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_axis.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5437, __pyx_L1_error)
  }
  mju_axisAngle2Quat((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_axis.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_axis.diminfo[0].strides))), __pyx_v_angle);

  /* "mujoco_py/generated/wrappers.pxi":5436
 *     mju_mulQuatAxis(&res[0], &quat[0], &axis[0])
 * 
 * def _mju_axisAngle2Quat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] axis, float angle):             # <<<<<<<<<<<<<<
 *     mju_axisAngle2Quat(&res[0], &axis[0], angle)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_axis.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_axisAngle2Quat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_axis.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5439
 *     mju_axisAngle2Quat(&res[0], &axis[0], angle)
 * 
 * def _mju_quat2Vel(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, float dt):             # <<<<<<<<<<<<<<
 *     mju_quat2Vel(&res[0], &quat[0], dt)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_429_mju_quat2Vel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_429_mju_quat2Vel = {"_mju_quat2Vel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_429_mju_quat2Vel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_429_mju_quat2Vel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_quat = 0;
  float __pyx_v_dt;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_quat2Vel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_quat,&__pyx_n_s_dt,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5439, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5439, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_quat2Vel", 1, 3, 3, 1); __PYX_ERR(4, 5439, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5439, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_quat2Vel", 1, 3, 3, 2); __PYX_ERR(4, 5439, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_quat2Vel") < 0)) __PYX_ERR(4, 5439, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_quat = ((PyArrayObject *)values[1]);
    __pyx_v_dt = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_dt == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5439, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_quat2Vel", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5439, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_quat2Vel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5439, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat), __pyx_ptype_5numpy_ndarray, 1, "quat", 0))) __PYX_ERR(4, 5439, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_428_mju_quat2Vel(__pyx_self, __pyx_v_res, __pyx_v_quat, __pyx_v_dt);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_428_mju_quat2Vel(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_quat, float __pyx_v_dt) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat;
  __Pyx_Buffer __pyx_pybuffer_quat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_quat2Vel", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_quat.pybuffer.buf = NULL;
  __pyx_pybuffer_quat.refcount = 0;
  __pyx_pybuffernd_quat.data = NULL;
  __pyx_pybuffernd_quat.rcbuffer = &__pyx_pybuffer_quat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5439, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5439, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat.diminfo[0].strides = __pyx_pybuffernd_quat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat.diminfo[0].shape = __pyx_pybuffernd_quat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5440
 * 
 * def _mju_quat2Vel(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, float dt):
 *     mju_quat2Vel(&res[0], &quat[0], dt)             # <<<<<<<<<<<<<<
 * 
 * def _mju_subQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] qa, np.ndarray[np.float64_t, mode="c", ndim=1] qb):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5440, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_quat.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_quat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5440, __pyx_L1_error)
  }
  mju_quat2Vel((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_quat.diminfo[0].strides))), __pyx_v_dt);

  /* "mujoco_py/generated/wrappers.pxi":5439
 *     mju_axisAngle2Quat(&res[0], &axis[0], angle)
 * 
 * def _mju_quat2Vel(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, float dt):             # <<<<<<<<<<<<<<
 *     mju_quat2Vel(&res[0], &quat[0], dt)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_quat2Vel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5442
 *     mju_quat2Vel(&res[0], &quat[0], dt)
 * 
 * def _mju_subQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] qa, np.ndarray[np.float64_t, mode="c", ndim=1] qb):             # <<<<<<<<<<<<<<
 *     mju_subQuat(&res[0], &qa[0], &qb[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_431_mju_subQuat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_431_mju_subQuat = {"_mju_subQuat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_431_mju_subQuat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_431_mju_subQuat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_qa = 0;
  PyArrayObject *__pyx_v_qb = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_subQuat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_qa,&__pyx_n_s_qb,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5442, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_qa)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5442, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_subQuat", 1, 3, 3, 1); __PYX_ERR(4, 5442, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_qb)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5442, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_subQuat", 1, 3, 3, 2); __PYX_ERR(4, 5442, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_subQuat") < 0)) __PYX_ERR(4, 5442, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_qa = ((PyArrayObject *)values[1]);
    __pyx_v_qb = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_subQuat", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5442, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_subQuat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5442, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_qa), __pyx_ptype_5numpy_ndarray, 1, "qa", 0))) __PYX_ERR(4, 5442, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_qb), __pyx_ptype_5numpy_ndarray, 1, "qb", 0))) __PYX_ERR(4, 5442, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_430_mju_subQuat(__pyx_self, __pyx_v_res, __pyx_v_qa, __pyx_v_qb);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_430_mju_subQuat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_qa, PyArrayObject *__pyx_v_qb) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_qa;
  __Pyx_Buffer __pyx_pybuffer_qa;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_qb;
  __Pyx_Buffer __pyx_pybuffer_qb;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_subQuat", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_qa.pybuffer.buf = NULL;
  __pyx_pybuffer_qa.refcount = 0;
  __pyx_pybuffernd_qa.data = NULL;
  __pyx_pybuffernd_qa.rcbuffer = &__pyx_pybuffer_qa;
  __pyx_pybuffer_qb.pybuffer.buf = NULL;
  __pyx_pybuffer_qb.refcount = 0;
  __pyx_pybuffernd_qb.data = NULL;
  __pyx_pybuffernd_qb.rcbuffer = &__pyx_pybuffer_qb;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5442, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_qa.rcbuffer->pybuffer, (PyObject*)__pyx_v_qa, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5442, __pyx_L1_error)
  }
  __pyx_pybuffernd_qa.diminfo[0].strides = __pyx_pybuffernd_qa.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_qa.diminfo[0].shape = __pyx_pybuffernd_qa.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_qb.rcbuffer->pybuffer, (PyObject*)__pyx_v_qb, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5442, __pyx_L1_error)
  }
  __pyx_pybuffernd_qb.diminfo[0].strides = __pyx_pybuffernd_qb.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_qb.diminfo[0].shape = __pyx_pybuffernd_qb.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5443
 * 
 * def _mju_subQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] qa, np.ndarray[np.float64_t, mode="c", ndim=1] qb):
 *     mju_subQuat(&res[0], &qa[0], &qb[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_quat2Mat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5443, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_qa.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_qa.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5443, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_qb.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_qb.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5443, __pyx_L1_error)
  }
  mju_subQuat((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_qa.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_qa.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_qb.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_qb.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5442
 *     mju_quat2Vel(&res[0], &quat[0], dt)
 * 
 * def _mju_subQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] qa, np.ndarray[np.float64_t, mode="c", ndim=1] qb):             # <<<<<<<<<<<<<<
 *     mju_subQuat(&res[0], &qa[0], &qb[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qa.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qb.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_subQuat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qa.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_qb.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5445
 *     mju_subQuat(&res[0], &qa[0], &qb[0])
 * 
 * def _mju_quat2Mat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_quat2Mat(&res[0], &quat[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_433_mju_quat2Mat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_433_mju_quat2Mat = {"_mju_quat2Mat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_433_mju_quat2Mat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_433_mju_quat2Mat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_quat = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_quat2Mat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_quat,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5445, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5445, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_quat2Mat", 1, 2, 2, 1); __PYX_ERR(4, 5445, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_quat2Mat") < 0)) __PYX_ERR(4, 5445, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_quat = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_quat2Mat", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5445, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_quat2Mat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5445, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat), __pyx_ptype_5numpy_ndarray, 1, "quat", 0))) __PYX_ERR(4, 5445, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_432_mju_quat2Mat(__pyx_self, __pyx_v_res, __pyx_v_quat);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_432_mju_quat2Mat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_quat) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat;
  __Pyx_Buffer __pyx_pybuffer_quat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_quat2Mat", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_quat.pybuffer.buf = NULL;
  __pyx_pybuffer_quat.refcount = 0;
  __pyx_pybuffernd_quat.data = NULL;
  __pyx_pybuffernd_quat.rcbuffer = &__pyx_pybuffer_quat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5445, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5445, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat.diminfo[0].strides = __pyx_pybuffernd_quat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat.diminfo[0].shape = __pyx_pybuffernd_quat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5446
 * 
 * def _mju_quat2Mat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat):
 *     mju_quat2Mat(&res[0], &quat[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_mat2Quat(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] mat):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5446, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_quat.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_quat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5446, __pyx_L1_error)
  }
  mju_quat2Mat((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_quat.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5445
 *     mju_subQuat(&res[0], &qa[0], &qb[0])
 * 
 * def _mju_quat2Mat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_quat2Mat(&res[0], &quat[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_quat2Mat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5448
 *     mju_quat2Mat(&res[0], &quat[0])
 * 
 * def _mju_mat2Quat(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     mju_mat2Quat(&quat[0], &mat[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_435_mju_mat2Quat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_435_mju_mat2Quat = {"_mju_mat2Quat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_435_mju_mat2Quat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_435_mju_mat2Quat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_quat = 0;
  PyArrayObject *__pyx_v_mat = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_mat2Quat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_quat,&__pyx_n_s_mat,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5448, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5448, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mat2Quat", 1, 2, 2, 1); __PYX_ERR(4, 5448, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_mat2Quat") < 0)) __PYX_ERR(4, 5448, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_quat = ((PyArrayObject *)values[0]);
    __pyx_v_mat = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_mat2Quat", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5448, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mat2Quat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat), __pyx_ptype_5numpy_ndarray, 1, "quat", 0))) __PYX_ERR(4, 5448, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_5numpy_ndarray, 1, "mat", 0))) __PYX_ERR(4, 5448, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_434_mju_mat2Quat(__pyx_self, __pyx_v_quat, __pyx_v_mat);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_434_mju_mat2Quat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_quat, PyArrayObject *__pyx_v_mat) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat;
  __Pyx_Buffer __pyx_pybuffer_mat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat;
  __Pyx_Buffer __pyx_pybuffer_quat;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_mat2Quat", 1);
  __pyx_pybuffer_quat.pybuffer.buf = NULL;
  __pyx_pybuffer_quat.refcount = 0;
  __pyx_pybuffernd_quat.data = NULL;
  __pyx_pybuffernd_quat.rcbuffer = &__pyx_pybuffer_quat;
  __pyx_pybuffer_mat.pybuffer.buf = NULL;
  __pyx_pybuffer_mat.refcount = 0;
  __pyx_pybuffernd_mat.data = NULL;
  __pyx_pybuffernd_mat.rcbuffer = &__pyx_pybuffer_mat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5448, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat.diminfo[0].strides = __pyx_pybuffernd_quat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat.diminfo[0].shape = __pyx_pybuffernd_quat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5448, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat.diminfo[0].strides = __pyx_pybuffernd_mat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat.diminfo[0].shape = __pyx_pybuffernd_mat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5449
 * 
 * def _mju_mat2Quat(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] mat):
 *     mju_mat2Quat(&quat[0], &mat[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_derivQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vel):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_quat.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_quat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5449, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_mat.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_mat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5449, __pyx_L1_error)
  }
  mju_mat2Quat((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_quat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_mat.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5448
 *     mju_quat2Mat(&res[0], &quat[0])
 * 
 * def _mju_mat2Quat(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     mju_mat2Quat(&quat[0], &mat[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mat2Quat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5451
 *     mju_mat2Quat(&quat[0], &mat[0])
 * 
 * def _mju_derivQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vel):             # <<<<<<<<<<<<<<
 *     mju_derivQuat(&res[0], &quat[0], &vel[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_437_mju_derivQuat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_437_mju_derivQuat = {"_mju_derivQuat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_437_mju_derivQuat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_437_mju_derivQuat(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_quat = 0;
  PyArrayObject *__pyx_v_vel = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_derivQuat (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_quat,&__pyx_n_s_vel,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5451, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5451, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_derivQuat", 1, 3, 3, 1); __PYX_ERR(4, 5451, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vel)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5451, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_derivQuat", 1, 3, 3, 2); __PYX_ERR(4, 5451, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_derivQuat") < 0)) __PYX_ERR(4, 5451, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_quat = ((PyArrayObject *)values[1]);
    __pyx_v_vel = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_derivQuat", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5451, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_derivQuat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5451, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat), __pyx_ptype_5numpy_ndarray, 1, "quat", 0))) __PYX_ERR(4, 5451, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vel), __pyx_ptype_5numpy_ndarray, 1, "vel", 0))) __PYX_ERR(4, 5451, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_436_mju_derivQuat(__pyx_self, __pyx_v_res, __pyx_v_quat, __pyx_v_vel);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_436_mju_derivQuat(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_quat, PyArrayObject *__pyx_v_vel) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat;
  __Pyx_Buffer __pyx_pybuffer_quat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vel;
  __Pyx_Buffer __pyx_pybuffer_vel;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_derivQuat", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_quat.pybuffer.buf = NULL;
  __pyx_pybuffer_quat.refcount = 0;
  __pyx_pybuffernd_quat.data = NULL;
  __pyx_pybuffernd_quat.rcbuffer = &__pyx_pybuffer_quat;
  __pyx_pybuffer_vel.pybuffer.buf = NULL;
  __pyx_pybuffer_vel.refcount = 0;
  __pyx_pybuffernd_vel.data = NULL;
  __pyx_pybuffernd_vel.rcbuffer = &__pyx_pybuffer_vel;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5451, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5451, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat.diminfo[0].strides = __pyx_pybuffernd_quat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat.diminfo[0].shape = __pyx_pybuffernd_quat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vel.rcbuffer->pybuffer, (PyObject*)__pyx_v_vel, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5451, __pyx_L1_error)
  }
  __pyx_pybuffernd_vel.diminfo[0].strides = __pyx_pybuffernd_vel.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vel.diminfo[0].shape = __pyx_pybuffernd_vel.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5452
 * 
 * def _mju_derivQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vel):
 *     mju_derivQuat(&res[0], &quat[0], &vel[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_quatIntegrate(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vel, float scale):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5452, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_quat.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_quat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5452, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_vel.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_vel.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5452, __pyx_L1_error)
  }
  mju_derivQuat((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_quat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vel.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_vel.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5451
 *     mju_mat2Quat(&quat[0], &mat[0])
 * 
 * def _mju_derivQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vel):             # <<<<<<<<<<<<<<
 *     mju_derivQuat(&res[0], &quat[0], &vel[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vel.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_derivQuat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vel.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5454
 *     mju_derivQuat(&res[0], &quat[0], &vel[0])
 * 
 * def _mju_quatIntegrate(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vel, float scale):             # <<<<<<<<<<<<<<
 *     mju_quatIntegrate(&quat[0], &vel[0], scale)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_439_mju_quatIntegrate(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_439_mju_quatIntegrate = {"_mju_quatIntegrate", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_439_mju_quatIntegrate, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_439_mju_quatIntegrate(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_quat = 0;
  PyArrayObject *__pyx_v_vel = 0;
  float __pyx_v_scale;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_quatIntegrate (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_quat,&__pyx_n_s_vel,&__pyx_n_s_scale,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5454, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vel)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5454, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_quatIntegrate", 1, 3, 3, 1); __PYX_ERR(4, 5454, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scale)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5454, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_quatIntegrate", 1, 3, 3, 2); __PYX_ERR(4, 5454, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_quatIntegrate") < 0)) __PYX_ERR(4, 5454, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_quat = ((PyArrayObject *)values[0]);
    __pyx_v_vel = ((PyArrayObject *)values[1]);
    __pyx_v_scale = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_scale == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5454, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_quatIntegrate", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5454, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_quatIntegrate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat), __pyx_ptype_5numpy_ndarray, 1, "quat", 0))) __PYX_ERR(4, 5454, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vel), __pyx_ptype_5numpy_ndarray, 1, "vel", 0))) __PYX_ERR(4, 5454, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_438_mju_quatIntegrate(__pyx_self, __pyx_v_quat, __pyx_v_vel, __pyx_v_scale);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_438_mju_quatIntegrate(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_quat, PyArrayObject *__pyx_v_vel, float __pyx_v_scale) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat;
  __Pyx_Buffer __pyx_pybuffer_quat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vel;
  __Pyx_Buffer __pyx_pybuffer_vel;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_quatIntegrate", 1);
  __pyx_pybuffer_quat.pybuffer.buf = NULL;
  __pyx_pybuffer_quat.refcount = 0;
  __pyx_pybuffernd_quat.data = NULL;
  __pyx_pybuffernd_quat.rcbuffer = &__pyx_pybuffer_quat;
  __pyx_pybuffer_vel.pybuffer.buf = NULL;
  __pyx_pybuffer_vel.refcount = 0;
  __pyx_pybuffernd_vel.data = NULL;
  __pyx_pybuffernd_vel.rcbuffer = &__pyx_pybuffer_vel;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5454, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat.diminfo[0].strides = __pyx_pybuffernd_quat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat.diminfo[0].shape = __pyx_pybuffernd_quat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vel.rcbuffer->pybuffer, (PyObject*)__pyx_v_vel, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5454, __pyx_L1_error)
  }
  __pyx_pybuffernd_vel.diminfo[0].strides = __pyx_pybuffernd_vel.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vel.diminfo[0].shape = __pyx_pybuffernd_vel.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5455
 * 
 * def _mju_quatIntegrate(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vel, float scale):
 *     mju_quatIntegrate(&quat[0], &vel[0], scale)             # <<<<<<<<<<<<<<
 * 
 * def _mju_quatZ2Vec(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_quat.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_quat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5455, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vel.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vel.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5455, __pyx_L1_error)
  }
  mju_quatIntegrate((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_quat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vel.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vel.diminfo[0].strides))), __pyx_v_scale);

  /* "mujoco_py/generated/wrappers.pxi":5454
 *     mju_derivQuat(&res[0], &quat[0], &vel[0])
 * 
 * def _mju_quatIntegrate(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vel, float scale):             # <<<<<<<<<<<<<<
 *     mju_quatIntegrate(&quat[0], &vel[0], scale)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vel.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_quatIntegrate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vel.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5457
 *     mju_quatIntegrate(&quat[0], &vel[0], scale)
 * 
 * def _mju_quatZ2Vec(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_quatZ2Vec(&quat[0], &vec[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_441_mju_quatZ2Vec(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_441_mju_quatZ2Vec = {"_mju_quatZ2Vec", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_441_mju_quatZ2Vec, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_441_mju_quatZ2Vec(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_quat = 0;
  PyArrayObject *__pyx_v_vec = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_quatZ2Vec (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_quat,&__pyx_n_s_vec,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5457, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5457, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_quatZ2Vec", 1, 2, 2, 1); __PYX_ERR(4, 5457, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_quatZ2Vec") < 0)) __PYX_ERR(4, 5457, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_quat = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_quatZ2Vec", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5457, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_quatZ2Vec", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat), __pyx_ptype_5numpy_ndarray, 1, "quat", 0))) __PYX_ERR(4, 5457, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5457, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_440_mju_quatZ2Vec(__pyx_self, __pyx_v_quat, __pyx_v_vec);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_440_mju_quatZ2Vec(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_quat, PyArrayObject *__pyx_v_vec) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat;
  __Pyx_Buffer __pyx_pybuffer_quat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_quatZ2Vec", 1);
  __pyx_pybuffer_quat.pybuffer.buf = NULL;
  __pyx_pybuffer_quat.refcount = 0;
  __pyx_pybuffernd_quat.data = NULL;
  __pyx_pybuffernd_quat.rcbuffer = &__pyx_pybuffer_quat;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5457, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat.diminfo[0].strides = __pyx_pybuffernd_quat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat.diminfo[0].shape = __pyx_pybuffernd_quat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5457, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5458
 * 
 * def _mju_quatZ2Vec(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 *     mju_quatZ2Vec(&quat[0], &vec[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_mulPose(np.ndarray[np.float64_t, mode="c", ndim=1] posres, np.ndarray[np.float64_t, mode="c", ndim=1] quatres, np.ndarray[np.float64_t, mode="c", ndim=1] pos1, np.ndarray[np.float64_t, mode="c", ndim=1] quat1, np.ndarray[np.float64_t, mode="c", ndim=1] pos2, np.ndarray[np.float64_t, mode="c", ndim=1] quat2):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_quat.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_quat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5458, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5458, __pyx_L1_error)
  }
  mju_quatZ2Vec((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_quat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_vec.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5457
 *     mju_quatIntegrate(&quat[0], &vel[0], scale)
 * 
 * def _mju_quatZ2Vec(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_quatZ2Vec(&quat[0], &vec[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_quatZ2Vec", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5460
 *     mju_quatZ2Vec(&quat[0], &vec[0])
 * 
 * def _mju_mulPose(np.ndarray[np.float64_t, mode="c", ndim=1] posres, np.ndarray[np.float64_t, mode="c", ndim=1] quatres, np.ndarray[np.float64_t, mode="c", ndim=1] pos1, np.ndarray[np.float64_t, mode="c", ndim=1] quat1, np.ndarray[np.float64_t, mode="c", ndim=1] pos2, np.ndarray[np.float64_t, mode="c", ndim=1] quat2):             # <<<<<<<<<<<<<<
 *     mju_mulPose(&posres[0], &quatres[0], &pos1[0], &quat1[0], &pos2[0], &quat2[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_443_mju_mulPose(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_443_mju_mulPose = {"_mju_mulPose", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_443_mju_mulPose, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_443_mju_mulPose(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_posres = 0;
  PyArrayObject *__pyx_v_quatres = 0;
  PyArrayObject *__pyx_v_pos1 = 0;
  PyArrayObject *__pyx_v_quat1 = 0;
  PyArrayObject *__pyx_v_pos2 = 0;
  PyArrayObject *__pyx_v_quat2 = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_mulPose (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_posres,&__pyx_n_s_quatres,&__pyx_n_s_pos1,&__pyx_n_s_quat1,&__pyx_n_s_pos2,&__pyx_n_s_quat2,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_posres)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5460, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quatres)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5460, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulPose", 1, 6, 6, 1); __PYX_ERR(4, 5460, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pos1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5460, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulPose", 1, 6, 6, 2); __PYX_ERR(4, 5460, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5460, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulPose", 1, 6, 6, 3); __PYX_ERR(4, 5460, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pos2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5460, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulPose", 1, 6, 6, 4); __PYX_ERR(4, 5460, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5460, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_mulPose", 1, 6, 6, 5); __PYX_ERR(4, 5460, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_mulPose") < 0)) __PYX_ERR(4, 5460, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
      values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
    }
    __pyx_v_posres = ((PyArrayObject *)values[0]);
    __pyx_v_quatres = ((PyArrayObject *)values[1]);
    __pyx_v_pos1 = ((PyArrayObject *)values[2]);
    __pyx_v_quat1 = ((PyArrayObject *)values[3]);
    __pyx_v_pos2 = ((PyArrayObject *)values[4]);
    __pyx_v_quat2 = ((PyArrayObject *)values[5]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_mulPose", 1, 6, 6, __pyx_nargs); __PYX_ERR(4, 5460, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulPose", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_posres), __pyx_ptype_5numpy_ndarray, 1, "posres", 0))) __PYX_ERR(4, 5460, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quatres), __pyx_ptype_5numpy_ndarray, 1, "quatres", 0))) __PYX_ERR(4, 5460, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pos1), __pyx_ptype_5numpy_ndarray, 1, "pos1", 0))) __PYX_ERR(4, 5460, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat1), __pyx_ptype_5numpy_ndarray, 1, "quat1", 0))) __PYX_ERR(4, 5460, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pos2), __pyx_ptype_5numpy_ndarray, 1, "pos2", 0))) __PYX_ERR(4, 5460, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat2), __pyx_ptype_5numpy_ndarray, 1, "quat2", 0))) __PYX_ERR(4, 5460, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_442_mju_mulPose(__pyx_self, __pyx_v_posres, __pyx_v_quatres, __pyx_v_pos1, __pyx_v_quat1, __pyx_v_pos2, __pyx_v_quat2);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_442_mju_mulPose(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_posres, PyArrayObject *__pyx_v_quatres, PyArrayObject *__pyx_v_pos1, PyArrayObject *__pyx_v_quat1, PyArrayObject *__pyx_v_pos2, PyArrayObject *__pyx_v_quat2) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pos1;
  __Pyx_Buffer __pyx_pybuffer_pos1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pos2;
  __Pyx_Buffer __pyx_pybuffer_pos2;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_posres;
  __Pyx_Buffer __pyx_pybuffer_posres;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat1;
  __Pyx_Buffer __pyx_pybuffer_quat1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat2;
  __Pyx_Buffer __pyx_pybuffer_quat2;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quatres;
  __Pyx_Buffer __pyx_pybuffer_quatres;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_mulPose", 1);
  __pyx_pybuffer_posres.pybuffer.buf = NULL;
  __pyx_pybuffer_posres.refcount = 0;
  __pyx_pybuffernd_posres.data = NULL;
  __pyx_pybuffernd_posres.rcbuffer = &__pyx_pybuffer_posres;
  __pyx_pybuffer_quatres.pybuffer.buf = NULL;
  __pyx_pybuffer_quatres.refcount = 0;
  __pyx_pybuffernd_quatres.data = NULL;
  __pyx_pybuffernd_quatres.rcbuffer = &__pyx_pybuffer_quatres;
  __pyx_pybuffer_pos1.pybuffer.buf = NULL;
  __pyx_pybuffer_pos1.refcount = 0;
  __pyx_pybuffernd_pos1.data = NULL;
  __pyx_pybuffernd_pos1.rcbuffer = &__pyx_pybuffer_pos1;
  __pyx_pybuffer_quat1.pybuffer.buf = NULL;
  __pyx_pybuffer_quat1.refcount = 0;
  __pyx_pybuffernd_quat1.data = NULL;
  __pyx_pybuffernd_quat1.rcbuffer = &__pyx_pybuffer_quat1;
  __pyx_pybuffer_pos2.pybuffer.buf = NULL;
  __pyx_pybuffer_pos2.refcount = 0;
  __pyx_pybuffernd_pos2.data = NULL;
  __pyx_pybuffernd_pos2.rcbuffer = &__pyx_pybuffer_pos2;
  __pyx_pybuffer_quat2.pybuffer.buf = NULL;
  __pyx_pybuffer_quat2.refcount = 0;
  __pyx_pybuffernd_quat2.data = NULL;
  __pyx_pybuffernd_quat2.rcbuffer = &__pyx_pybuffer_quat2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_posres.rcbuffer->pybuffer, (PyObject*)__pyx_v_posres, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5460, __pyx_L1_error)
  }
  __pyx_pybuffernd_posres.diminfo[0].strides = __pyx_pybuffernd_posres.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_posres.diminfo[0].shape = __pyx_pybuffernd_posres.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quatres.rcbuffer->pybuffer, (PyObject*)__pyx_v_quatres, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5460, __pyx_L1_error)
  }
  __pyx_pybuffernd_quatres.diminfo[0].strides = __pyx_pybuffernd_quatres.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quatres.diminfo[0].shape = __pyx_pybuffernd_quatres.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pos1.rcbuffer->pybuffer, (PyObject*)__pyx_v_pos1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5460, __pyx_L1_error)
  }
  __pyx_pybuffernd_pos1.diminfo[0].strides = __pyx_pybuffernd_pos1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pos1.diminfo[0].shape = __pyx_pybuffernd_pos1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat1.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5460, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat1.diminfo[0].strides = __pyx_pybuffernd_quat1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat1.diminfo[0].shape = __pyx_pybuffernd_quat1.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pos2.rcbuffer->pybuffer, (PyObject*)__pyx_v_pos2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5460, __pyx_L1_error)
  }
  __pyx_pybuffernd_pos2.diminfo[0].strides = __pyx_pybuffernd_pos2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pos2.diminfo[0].shape = __pyx_pybuffernd_pos2.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat2.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5460, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat2.diminfo[0].strides = __pyx_pybuffernd_quat2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat2.diminfo[0].shape = __pyx_pybuffernd_quat2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5461
 * 
 * def _mju_mulPose(np.ndarray[np.float64_t, mode="c", ndim=1] posres, np.ndarray[np.float64_t, mode="c", ndim=1] quatres, np.ndarray[np.float64_t, mode="c", ndim=1] pos1, np.ndarray[np.float64_t, mode="c", ndim=1] quat1, np.ndarray[np.float64_t, mode="c", ndim=1] pos2, np.ndarray[np.float64_t, mode="c", ndim=1] quat2):
 *     mju_mulPose(&posres[0], &quatres[0], &pos1[0], &quat1[0], &pos2[0], &quat2[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_negPose(np.ndarray[np.float64_t, mode="c", ndim=1] posres, np.ndarray[np.float64_t, mode="c", ndim=1] quatres, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_posres.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_posres.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5461, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_quatres.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_quatres.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5461, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_pos1.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_pos1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5461, __pyx_L1_error)
  }
  __pyx_t_5 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_5 < 0) {
    __pyx_t_5 += __pyx_pybuffernd_quat1.diminfo[0].shape;
    if (unlikely(__pyx_t_5 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_5 >= __pyx_pybuffernd_quat1.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5461, __pyx_L1_error)
  }
  __pyx_t_6 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_6 < 0) {
    __pyx_t_6 += __pyx_pybuffernd_pos2.diminfo[0].shape;
    if (unlikely(__pyx_t_6 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_6 >= __pyx_pybuffernd_pos2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5461, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_7 < 0) {
    __pyx_t_7 += __pyx_pybuffernd_quat2.diminfo[0].shape;
    if (unlikely(__pyx_t_7 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_7 >= __pyx_pybuffernd_quat2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5461, __pyx_L1_error)
  }
  mju_mulPose((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_posres.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_posres.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quatres.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_quatres.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_pos1.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_pos1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat1.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_quat1.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_pos2.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_pos2.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat2.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_quat2.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5460
 *     mju_quatZ2Vec(&quat[0], &vec[0])
 * 
 * def _mju_mulPose(np.ndarray[np.float64_t, mode="c", ndim=1] posres, np.ndarray[np.float64_t, mode="c", ndim=1] quatres, np.ndarray[np.float64_t, mode="c", ndim=1] pos1, np.ndarray[np.float64_t, mode="c", ndim=1] quat1, np.ndarray[np.float64_t, mode="c", ndim=1] pos2, np.ndarray[np.float64_t, mode="c", ndim=1] quat2):             # <<<<<<<<<<<<<<
 *     mju_mulPose(&posres[0], &quatres[0], &pos1[0], &quat1[0], &pos2[0], &quat2[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos2.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_posres.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat2.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quatres.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_mulPose", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos2.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_posres.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat2.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quatres.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5463
 *     mju_mulPose(&posres[0], &quatres[0], &pos1[0], &quat1[0], &pos2[0], &quat2[0])
 * 
 * def _mju_negPose(np.ndarray[np.float64_t, mode="c", ndim=1] posres, np.ndarray[np.float64_t, mode="c", ndim=1] quatres, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_negPose(&posres[0], &quatres[0], &pos[0], &quat[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_445_mju_negPose(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_445_mju_negPose = {"_mju_negPose", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_445_mju_negPose, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_445_mju_negPose(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_posres = 0;
  PyArrayObject *__pyx_v_quatres = 0;
  PyArrayObject *__pyx_v_pos = 0;
  PyArrayObject *__pyx_v_quat = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_negPose (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_posres,&__pyx_n_s_quatres,&__pyx_n_s_pos,&__pyx_n_s_quat,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_posres)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5463, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quatres)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5463, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_negPose", 1, 4, 4, 1); __PYX_ERR(4, 5463, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5463, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_negPose", 1, 4, 4, 2); __PYX_ERR(4, 5463, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5463, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_negPose", 1, 4, 4, 3); __PYX_ERR(4, 5463, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_negPose") < 0)) __PYX_ERR(4, 5463, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_posres = ((PyArrayObject *)values[0]);
    __pyx_v_quatres = ((PyArrayObject *)values[1]);
    __pyx_v_pos = ((PyArrayObject *)values[2]);
    __pyx_v_quat = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_negPose", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5463, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_negPose", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_posres), __pyx_ptype_5numpy_ndarray, 1, "posres", 0))) __PYX_ERR(4, 5463, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quatres), __pyx_ptype_5numpy_ndarray, 1, "quatres", 0))) __PYX_ERR(4, 5463, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pos), __pyx_ptype_5numpy_ndarray, 1, "pos", 0))) __PYX_ERR(4, 5463, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat), __pyx_ptype_5numpy_ndarray, 1, "quat", 0))) __PYX_ERR(4, 5463, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_444_mju_negPose(__pyx_self, __pyx_v_posres, __pyx_v_quatres, __pyx_v_pos, __pyx_v_quat);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_444_mju_negPose(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_posres, PyArrayObject *__pyx_v_quatres, PyArrayObject *__pyx_v_pos, PyArrayObject *__pyx_v_quat) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pos;
  __Pyx_Buffer __pyx_pybuffer_pos;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_posres;
  __Pyx_Buffer __pyx_pybuffer_posres;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat;
  __Pyx_Buffer __pyx_pybuffer_quat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quatres;
  __Pyx_Buffer __pyx_pybuffer_quatres;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_negPose", 1);
  __pyx_pybuffer_posres.pybuffer.buf = NULL;
  __pyx_pybuffer_posres.refcount = 0;
  __pyx_pybuffernd_posres.data = NULL;
  __pyx_pybuffernd_posres.rcbuffer = &__pyx_pybuffer_posres;
  __pyx_pybuffer_quatres.pybuffer.buf = NULL;
  __pyx_pybuffer_quatres.refcount = 0;
  __pyx_pybuffernd_quatres.data = NULL;
  __pyx_pybuffernd_quatres.rcbuffer = &__pyx_pybuffer_quatres;
  __pyx_pybuffer_pos.pybuffer.buf = NULL;
  __pyx_pybuffer_pos.refcount = 0;
  __pyx_pybuffernd_pos.data = NULL;
  __pyx_pybuffernd_pos.rcbuffer = &__pyx_pybuffer_pos;
  __pyx_pybuffer_quat.pybuffer.buf = NULL;
  __pyx_pybuffer_quat.refcount = 0;
  __pyx_pybuffernd_quat.data = NULL;
  __pyx_pybuffernd_quat.rcbuffer = &__pyx_pybuffer_quat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_posres.rcbuffer->pybuffer, (PyObject*)__pyx_v_posres, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5463, __pyx_L1_error)
  }
  __pyx_pybuffernd_posres.diminfo[0].strides = __pyx_pybuffernd_posres.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_posres.diminfo[0].shape = __pyx_pybuffernd_posres.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quatres.rcbuffer->pybuffer, (PyObject*)__pyx_v_quatres, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5463, __pyx_L1_error)
  }
  __pyx_pybuffernd_quatres.diminfo[0].strides = __pyx_pybuffernd_quatres.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quatres.diminfo[0].shape = __pyx_pybuffernd_quatres.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pos.rcbuffer->pybuffer, (PyObject*)__pyx_v_pos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5463, __pyx_L1_error)
  }
  __pyx_pybuffernd_pos.diminfo[0].strides = __pyx_pybuffernd_pos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pos.diminfo[0].shape = __pyx_pybuffernd_pos.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5463, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat.diminfo[0].strides = __pyx_pybuffernd_quat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat.diminfo[0].shape = __pyx_pybuffernd_quat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5464
 * 
 * def _mju_negPose(np.ndarray[np.float64_t, mode="c", ndim=1] posres, np.ndarray[np.float64_t, mode="c", ndim=1] quatres, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat):
 *     mju_negPose(&posres[0], &quatres[0], &pos[0], &quat[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_trnVecPose(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_posres.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_posres.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5464, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_quatres.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_quatres.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5464, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_pos.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_pos.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5464, __pyx_L1_error)
  }
  __pyx_t_5 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_5 < 0) {
    __pyx_t_5 += __pyx_pybuffernd_quat.diminfo[0].shape;
    if (unlikely(__pyx_t_5 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_5 >= __pyx_pybuffernd_quat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5464, __pyx_L1_error)
  }
  mju_negPose((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_posres.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_posres.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quatres.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_quatres.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_pos.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_pos.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_quat.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5463
 *     mju_mulPose(&posres[0], &quatres[0], &pos1[0], &quat1[0], &pos2[0], &quat2[0])
 * 
 * def _mju_negPose(np.ndarray[np.float64_t, mode="c", ndim=1] posres, np.ndarray[np.float64_t, mode="c", ndim=1] quatres, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_negPose(&posres[0], &quatres[0], &pos[0], &quat[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_posres.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quatres.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_negPose", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_posres.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quatres.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5466
 *     mju_negPose(&posres[0], &quatres[0], &pos[0], &quat[0])
 * 
 * def _mju_trnVecPose(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_trnVecPose(&res[0], &pos[0], &quat[0], &vec[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_447_mju_trnVecPose(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_447_mju_trnVecPose = {"_mju_trnVecPose", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_447_mju_trnVecPose, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_447_mju_trnVecPose(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_pos = 0;
  PyArrayObject *__pyx_v_quat = 0;
  PyArrayObject *__pyx_v_vec = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_trnVecPose (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_pos,&__pyx_n_s_quat,&__pyx_n_s_vec,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5466, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5466, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_trnVecPose", 1, 4, 4, 1); __PYX_ERR(4, 5466, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5466, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_trnVecPose", 1, 4, 4, 2); __PYX_ERR(4, 5466, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5466, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_trnVecPose", 1, 4, 4, 3); __PYX_ERR(4, 5466, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_trnVecPose") < 0)) __PYX_ERR(4, 5466, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_pos = ((PyArrayObject *)values[1]);
    __pyx_v_quat = ((PyArrayObject *)values[2]);
    __pyx_v_vec = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_trnVecPose", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5466, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_trnVecPose", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5466, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pos), __pyx_ptype_5numpy_ndarray, 1, "pos", 0))) __PYX_ERR(4, 5466, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat), __pyx_ptype_5numpy_ndarray, 1, "quat", 0))) __PYX_ERR(4, 5466, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5466, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_446_mju_trnVecPose(__pyx_self, __pyx_v_res, __pyx_v_pos, __pyx_v_quat, __pyx_v_vec);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_446_mju_trnVecPose(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_pos, PyArrayObject *__pyx_v_quat, PyArrayObject *__pyx_v_vec) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pos;
  __Pyx_Buffer __pyx_pybuffer_pos;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat;
  __Pyx_Buffer __pyx_pybuffer_quat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_trnVecPose", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_pos.pybuffer.buf = NULL;
  __pyx_pybuffer_pos.refcount = 0;
  __pyx_pybuffernd_pos.data = NULL;
  __pyx_pybuffernd_pos.rcbuffer = &__pyx_pybuffer_pos;
  __pyx_pybuffer_quat.pybuffer.buf = NULL;
  __pyx_pybuffer_quat.refcount = 0;
  __pyx_pybuffernd_quat.data = NULL;
  __pyx_pybuffernd_quat.rcbuffer = &__pyx_pybuffer_quat;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5466, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pos.rcbuffer->pybuffer, (PyObject*)__pyx_v_pos, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5466, __pyx_L1_error)
  }
  __pyx_pybuffernd_pos.diminfo[0].strides = __pyx_pybuffernd_pos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pos.diminfo[0].shape = __pyx_pybuffernd_pos.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5466, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat.diminfo[0].strides = __pyx_pybuffernd_quat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat.diminfo[0].shape = __pyx_pybuffernd_quat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5466, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5467
 * 
 * def _mju_trnVecPose(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vec):
 *     mju_trnVecPose(&res[0], &pos[0], &quat[0], &vec[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_cholFactor(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int n, float mindiag):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5467, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_pos.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_pos.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5467, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_quat.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_quat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5467, __pyx_L1_error)
  }
  __pyx_t_5 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_5 < 0) {
    __pyx_t_5 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_5 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_5 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5467, __pyx_L1_error)
  }
  mju_trnVecPose((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_pos.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_pos.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_quat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_vec.diminfo[0].strides))));

  /* "mujoco_py/generated/wrappers.pxi":5466
 *     mju_negPose(&posres[0], &quatres[0], &pos[0], &quat[0])
 * 
 * def _mju_trnVecPose(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_trnVecPose(&res[0], &pos[0], &quat[0], &vec[0])
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_trnVecPose", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pos.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5469
 *     mju_trnVecPose(&res[0], &pos[0], &quat[0], &vec[0])
 * 
 * def _mju_cholFactor(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int n, float mindiag):             # <<<<<<<<<<<<<<
 *     return mju_cholFactor(&mat[0], n, mindiag)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_449_mju_cholFactor(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_449_mju_cholFactor = {"_mju_cholFactor", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_449_mju_cholFactor, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_449_mju_cholFactor(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_mat = 0;
  int __pyx_v_n;
  float __pyx_v_mindiag;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_cholFactor (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,&__pyx_n_s_n,&__pyx_n_s_mindiag,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5469, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5469, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_cholFactor", 1, 3, 3, 1); __PYX_ERR(4, 5469, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mindiag)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5469, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_cholFactor", 1, 3, 3, 2); __PYX_ERR(4, 5469, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_cholFactor") < 0)) __PYX_ERR(4, 5469, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_mat = ((PyArrayObject *)values[0]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5469, __pyx_L3_error)
    __pyx_v_mindiag = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_mindiag == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5469, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_cholFactor", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5469, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_cholFactor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_5numpy_ndarray, 1, "mat", 0))) __PYX_ERR(4, 5469, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_448_mju_cholFactor(__pyx_self, __pyx_v_mat, __pyx_v_n, __pyx_v_mindiag);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_448_mju_cholFactor(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_mat, int __pyx_v_n, float __pyx_v_mindiag) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat;
  __Pyx_Buffer __pyx_pybuffer_mat;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_cholFactor", 1);
  __pyx_pybuffer_mat.pybuffer.buf = NULL;
  __pyx_pybuffer_mat.refcount = 0;
  __pyx_pybuffernd_mat.data = NULL;
  __pyx_pybuffernd_mat.rcbuffer = &__pyx_pybuffer_mat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5469, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat.diminfo[0].strides = __pyx_pybuffernd_mat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat.diminfo[0].shape = __pyx_pybuffernd_mat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5470
 * 
 * def _mju_cholFactor(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int n, float mindiag):
 *     return mju_cholFactor(&mat[0], n, mindiag)             # <<<<<<<<<<<<<<
 * 
 * def _mju_cholSolve(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_mat.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_mat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5470, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyInt_From_int(mju_cholFactor((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_mat.diminfo[0].strides))), __pyx_v_n, __pyx_v_mindiag)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5469
 *     mju_trnVecPose(&res[0], &pos[0], &quat[0], &vec[0])
 * 
 * def _mju_cholFactor(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int n, float mindiag):             # <<<<<<<<<<<<<<
 *     return mju_cholFactor(&mat[0], n, mindiag)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_cholFactor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5472
 *     return mju_cholFactor(&mat[0], n, mindiag)
 * 
 * def _mju_cholSolve(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     mju_cholSolve(&res[0], &mat[0], &vec[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_451_mju_cholSolve(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_451_mju_cholSolve = {"_mju_cholSolve", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_451_mju_cholSolve, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_451_mju_cholSolve(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_res = 0;
  PyArrayObject *__pyx_v_mat = 0;
  PyArrayObject *__pyx_v_vec = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_cholSolve (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_res,&__pyx_n_s_mat,&__pyx_n_s_vec,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_res)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5472, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5472, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_cholSolve", 1, 4, 4, 1); __PYX_ERR(4, 5472, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5472, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_cholSolve", 1, 4, 4, 2); __PYX_ERR(4, 5472, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5472, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_cholSolve", 1, 4, 4, 3); __PYX_ERR(4, 5472, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_cholSolve") < 0)) __PYX_ERR(4, 5472, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_res = ((PyArrayObject *)values[0]);
    __pyx_v_mat = ((PyArrayObject *)values[1]);
    __pyx_v_vec = ((PyArrayObject *)values[2]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5472, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_cholSolve", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5472, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_cholSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_res), __pyx_ptype_5numpy_ndarray, 1, "res", 0))) __PYX_ERR(4, 5472, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_5numpy_ndarray, 1, "mat", 0))) __PYX_ERR(4, 5472, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5472, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_450_mju_cholSolve(__pyx_self, __pyx_v_res, __pyx_v_mat, __pyx_v_vec, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_450_mju_cholSolve(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_res, PyArrayObject *__pyx_v_mat, PyArrayObject *__pyx_v_vec, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat;
  __Pyx_Buffer __pyx_pybuffer_mat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_res;
  __Pyx_Buffer __pyx_pybuffer_res;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_cholSolve", 1);
  __pyx_pybuffer_res.pybuffer.buf = NULL;
  __pyx_pybuffer_res.refcount = 0;
  __pyx_pybuffernd_res.data = NULL;
  __pyx_pybuffernd_res.rcbuffer = &__pyx_pybuffer_res;
  __pyx_pybuffer_mat.pybuffer.buf = NULL;
  __pyx_pybuffer_mat.refcount = 0;
  __pyx_pybuffernd_mat.data = NULL;
  __pyx_pybuffernd_mat.rcbuffer = &__pyx_pybuffer_mat;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_res.rcbuffer->pybuffer, (PyObject*)__pyx_v_res, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5472, __pyx_L1_error)
  }
  __pyx_pybuffernd_res.diminfo[0].strides = __pyx_pybuffernd_res.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_res.diminfo[0].shape = __pyx_pybuffernd_res.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5472, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat.diminfo[0].strides = __pyx_pybuffernd_mat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat.diminfo[0].shape = __pyx_pybuffernd_mat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5472, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5473
 * 
 * def _mju_cholSolve(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):
 *     mju_cholSolve(&res[0], &mat[0], &vec[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_cholUpdate(np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] x, int n, int flg_plus):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_res.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_res.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5473, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_mat.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_mat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5473, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5473, __pyx_L1_error)
  }
  mju_cholSolve((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_res.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_res.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_mat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_vec.diminfo[0].strides))), __pyx_v_n);

  /* "mujoco_py/generated/wrappers.pxi":5472
 *     return mju_cholFactor(&mat[0], n, mindiag)
 * 
 * def _mju_cholSolve(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     mju_cholSolve(&res[0], &mat[0], &vec[0], n)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_cholSolve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_res.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5475
 *     mju_cholSolve(&res[0], &mat[0], &vec[0], n)
 * 
 * def _mju_cholUpdate(np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] x, int n, int flg_plus):             # <<<<<<<<<<<<<<
 *     return mju_cholUpdate(&mat[0], &x[0], n, flg_plus)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_453_mju_cholUpdate(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_453_mju_cholUpdate = {"_mju_cholUpdate", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_453_mju_cholUpdate, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_453_mju_cholUpdate(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_mat = 0;
  PyArrayObject *__pyx_v_x = 0;
  int __pyx_v_n;
  int __pyx_v_flg_plus;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_cholUpdate (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,&__pyx_n_s_x,&__pyx_n_s_n,&__pyx_n_s_flg_plus,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5475, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5475, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_cholUpdate", 1, 4, 4, 1); __PYX_ERR(4, 5475, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5475, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_cholUpdate", 1, 4, 4, 2); __PYX_ERR(4, 5475, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flg_plus)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5475, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_cholUpdate", 1, 4, 4, 3); __PYX_ERR(4, 5475, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_cholUpdate") < 0)) __PYX_ERR(4, 5475, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_mat = ((PyArrayObject *)values[0]);
    __pyx_v_x = ((PyArrayObject *)values[1]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5475, __pyx_L3_error)
    __pyx_v_flg_plus = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_flg_plus == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5475, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_cholUpdate", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5475, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_cholUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_5numpy_ndarray, 1, "mat", 0))) __PYX_ERR(4, 5475, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_5numpy_ndarray, 1, "x", 0))) __PYX_ERR(4, 5475, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_452_mju_cholUpdate(__pyx_self, __pyx_v_mat, __pyx_v_x, __pyx_v_n, __pyx_v_flg_plus);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_452_mju_cholUpdate(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_mat, PyArrayObject *__pyx_v_x, int __pyx_v_n, int __pyx_v_flg_plus) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat;
  __Pyx_Buffer __pyx_pybuffer_mat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_x;
  __Pyx_Buffer __pyx_pybuffer_x;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_cholUpdate", 1);
  __pyx_pybuffer_mat.pybuffer.buf = NULL;
  __pyx_pybuffer_mat.refcount = 0;
  __pyx_pybuffernd_mat.data = NULL;
  __pyx_pybuffernd_mat.rcbuffer = &__pyx_pybuffer_mat;
  __pyx_pybuffer_x.pybuffer.buf = NULL;
  __pyx_pybuffer_x.refcount = 0;
  __pyx_pybuffernd_x.data = NULL;
  __pyx_pybuffernd_x.rcbuffer = &__pyx_pybuffer_x;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5475, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat.diminfo[0].strides = __pyx_pybuffernd_mat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat.diminfo[0].shape = __pyx_pybuffernd_mat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_x.rcbuffer->pybuffer, (PyObject*)__pyx_v_x, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5475, __pyx_L1_error)
  }
  __pyx_pybuffernd_x.diminfo[0].strides = __pyx_pybuffernd_x.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_x.diminfo[0].shape = __pyx_pybuffernd_x.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5476
 * 
 * def _mju_cholUpdate(np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] x, int n, int flg_plus):
 *     return mju_cholUpdate(&mat[0], &x[0], n, flg_plus)             # <<<<<<<<<<<<<<
 * 
 * def _mju_eig3(np.ndarray[np.float64_t, mode="c", ndim=1] eigval, np.ndarray[np.float64_t, mode="c", ndim=1] eigvec, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] mat):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_mat.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_mat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5476, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_x.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_x.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5476, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyInt_From_int(mju_cholUpdate((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_mat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_x.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_x.diminfo[0].strides))), __pyx_v_n, __pyx_v_flg_plus)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5476, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5475
 *     mju_cholSolve(&res[0], &mat[0], &vec[0], n)
 * 
 * def _mju_cholUpdate(np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] x, int n, int flg_plus):             # <<<<<<<<<<<<<<
 *     return mju_cholUpdate(&mat[0], &x[0], n, flg_plus)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_cholUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_x.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5478
 *     return mju_cholUpdate(&mat[0], &x[0], n, flg_plus)
 * 
 * def _mju_eig3(np.ndarray[np.float64_t, mode="c", ndim=1] eigval, np.ndarray[np.float64_t, mode="c", ndim=1] eigvec, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     return mju_eig3(&eigval[0], &eigvec[0], &quat[0], &mat[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_455_mju_eig3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_455_mju_eig3 = {"_mju_eig3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_455_mju_eig3, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_455_mju_eig3(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_eigval = 0;
  PyArrayObject *__pyx_v_eigvec = 0;
  PyArrayObject *__pyx_v_quat = 0;
  PyArrayObject *__pyx_v_mat = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_eig3 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_eigval,&__pyx_n_s_eigvec,&__pyx_n_s_quat,&__pyx_n_s_mat,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_eigval)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5478, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_eigvec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5478, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_eig3", 1, 4, 4, 1); __PYX_ERR(4, 5478, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5478, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_eig3", 1, 4, 4, 2); __PYX_ERR(4, 5478, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mat)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5478, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_eig3", 1, 4, 4, 3); __PYX_ERR(4, 5478, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_eig3") < 0)) __PYX_ERR(4, 5478, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_eigval = ((PyArrayObject *)values[0]);
    __pyx_v_eigvec = ((PyArrayObject *)values[1]);
    __pyx_v_quat = ((PyArrayObject *)values[2]);
    __pyx_v_mat = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_eig3", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5478, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_eig3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_eigval), __pyx_ptype_5numpy_ndarray, 1, "eigval", 0))) __PYX_ERR(4, 5478, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_eigvec), __pyx_ptype_5numpy_ndarray, 1, "eigvec", 0))) __PYX_ERR(4, 5478, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quat), __pyx_ptype_5numpy_ndarray, 1, "quat", 0))) __PYX_ERR(4, 5478, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_5numpy_ndarray, 1, "mat", 0))) __PYX_ERR(4, 5478, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_454_mju_eig3(__pyx_self, __pyx_v_eigval, __pyx_v_eigvec, __pyx_v_quat, __pyx_v_mat);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_454_mju_eig3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_eigval, PyArrayObject *__pyx_v_eigvec, PyArrayObject *__pyx_v_quat, PyArrayObject *__pyx_v_mat) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_eigval;
  __Pyx_Buffer __pyx_pybuffer_eigval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_eigvec;
  __Pyx_Buffer __pyx_pybuffer_eigvec;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mat;
  __Pyx_Buffer __pyx_pybuffer_mat;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_quat;
  __Pyx_Buffer __pyx_pybuffer_quat;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_eig3", 1);
  __pyx_pybuffer_eigval.pybuffer.buf = NULL;
  __pyx_pybuffer_eigval.refcount = 0;
  __pyx_pybuffernd_eigval.data = NULL;
  __pyx_pybuffernd_eigval.rcbuffer = &__pyx_pybuffer_eigval;
  __pyx_pybuffer_eigvec.pybuffer.buf = NULL;
  __pyx_pybuffer_eigvec.refcount = 0;
  __pyx_pybuffernd_eigvec.data = NULL;
  __pyx_pybuffernd_eigvec.rcbuffer = &__pyx_pybuffer_eigvec;
  __pyx_pybuffer_quat.pybuffer.buf = NULL;
  __pyx_pybuffer_quat.refcount = 0;
  __pyx_pybuffernd_quat.data = NULL;
  __pyx_pybuffernd_quat.rcbuffer = &__pyx_pybuffer_quat;
  __pyx_pybuffer_mat.pybuffer.buf = NULL;
  __pyx_pybuffer_mat.refcount = 0;
  __pyx_pybuffernd_mat.data = NULL;
  __pyx_pybuffernd_mat.rcbuffer = &__pyx_pybuffer_mat;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_eigval.rcbuffer->pybuffer, (PyObject*)__pyx_v_eigval, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5478, __pyx_L1_error)
  }
  __pyx_pybuffernd_eigval.diminfo[0].strides = __pyx_pybuffernd_eigval.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_eigval.diminfo[0].shape = __pyx_pybuffernd_eigval.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_eigvec.rcbuffer->pybuffer, (PyObject*)__pyx_v_eigvec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5478, __pyx_L1_error)
  }
  __pyx_pybuffernd_eigvec.diminfo[0].strides = __pyx_pybuffernd_eigvec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_eigvec.diminfo[0].shape = __pyx_pybuffernd_eigvec.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_quat.rcbuffer->pybuffer, (PyObject*)__pyx_v_quat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5478, __pyx_L1_error)
  }
  __pyx_pybuffernd_quat.diminfo[0].strides = __pyx_pybuffernd_quat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_quat.diminfo[0].shape = __pyx_pybuffernd_quat.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mat.rcbuffer->pybuffer, (PyObject*)__pyx_v_mat, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5478, __pyx_L1_error)
  }
  __pyx_pybuffernd_mat.diminfo[0].strides = __pyx_pybuffernd_mat.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mat.diminfo[0].shape = __pyx_pybuffernd_mat.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5479
 * 
 * def _mju_eig3(np.ndarray[np.float64_t, mode="c", ndim=1] eigval, np.ndarray[np.float64_t, mode="c", ndim=1] eigvec, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] mat):
 *     return mju_eig3(&eigval[0], &eigvec[0], &quat[0], &mat[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_muscleGain(float len, float vel, np.ndarray[np.float64_t, mode="c", ndim=1] lengthrange, float acc0, np.ndarray[np.float64_t, mode="c", ndim=1] prm):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_eigval.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_eigval.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5479, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_eigvec.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_eigvec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5479, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_quat.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_quat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5479, __pyx_L1_error)
  }
  __pyx_t_5 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_5 < 0) {
    __pyx_t_5 += __pyx_pybuffernd_mat.diminfo[0].shape;
    if (unlikely(__pyx_t_5 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_5 >= __pyx_pybuffernd_mat.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5479, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_PyInt_From_int(mju_eig3((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_eigval.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_eigval.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_eigvec.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_eigvec.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_quat.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_quat.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mat.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_mat.diminfo[0].strides))))); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5478
 *     return mju_cholUpdate(&mat[0], &x[0], n, flg_plus)
 * 
 * def _mju_eig3(np.ndarray[np.float64_t, mode="c", ndim=1] eigval, np.ndarray[np.float64_t, mode="c", ndim=1] eigvec, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     return mju_eig3(&eigval[0], &eigvec[0], &quat[0], &mat[0])
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_eigval.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_eigvec.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_eig3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_eigval.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_eigvec.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mat.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_quat.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5481
 *     return mju_eig3(&eigval[0], &eigvec[0], &quat[0], &mat[0])
 * 
 * def _mju_muscleGain(float len, float vel, np.ndarray[np.float64_t, mode="c", ndim=1] lengthrange, float acc0, np.ndarray[np.float64_t, mode="c", ndim=1] prm):             # <<<<<<<<<<<<<<
 *     return mju_muscleGain(len, vel, &lengthrange[0], acc0, &prm[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_457_mju_muscleGain(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_457_mju_muscleGain = {"_mju_muscleGain", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_457_mju_muscleGain, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_457_mju_muscleGain(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  float __pyx_v_len;
  float __pyx_v_vel;
  PyArrayObject *__pyx_v_lengthrange = 0;
  float __pyx_v_acc0;
  PyArrayObject *__pyx_v_prm = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_muscleGain (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_len,&__pyx_n_s_vel,&__pyx_n_s_lengthrange,&__pyx_n_s_acc0,&__pyx_n_s_prm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_len)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5481, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vel)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5481, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_muscleGain", 1, 5, 5, 1); __PYX_ERR(4, 5481, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_lengthrange)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5481, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_muscleGain", 1, 5, 5, 2); __PYX_ERR(4, 5481, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_acc0)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5481, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_muscleGain", 1, 5, 5, 3); __PYX_ERR(4, 5481, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_prm)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5481, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_muscleGain", 1, 5, 5, 4); __PYX_ERR(4, 5481, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_muscleGain") < 0)) __PYX_ERR(4, 5481, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_len = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_len == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5481, __pyx_L3_error)
    __pyx_v_vel = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_vel == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5481, __pyx_L3_error)
    __pyx_v_lengthrange = ((PyArrayObject *)values[2]);
    __pyx_v_acc0 = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_acc0 == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5481, __pyx_L3_error)
    __pyx_v_prm = ((PyArrayObject *)values[4]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_muscleGain", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5481, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_muscleGain", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lengthrange), __pyx_ptype_5numpy_ndarray, 1, "lengthrange", 0))) __PYX_ERR(4, 5481, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_prm), __pyx_ptype_5numpy_ndarray, 1, "prm", 0))) __PYX_ERR(4, 5481, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_456_mju_muscleGain(__pyx_self, __pyx_v_len, __pyx_v_vel, __pyx_v_lengthrange, __pyx_v_acc0, __pyx_v_prm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_456_mju_muscleGain(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_len, float __pyx_v_vel, PyArrayObject *__pyx_v_lengthrange, float __pyx_v_acc0, PyArrayObject *__pyx_v_prm) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lengthrange;
  __Pyx_Buffer __pyx_pybuffer_lengthrange;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_prm;
  __Pyx_Buffer __pyx_pybuffer_prm;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_muscleGain", 1);
  __pyx_pybuffer_lengthrange.pybuffer.buf = NULL;
  __pyx_pybuffer_lengthrange.refcount = 0;
  __pyx_pybuffernd_lengthrange.data = NULL;
  __pyx_pybuffernd_lengthrange.rcbuffer = &__pyx_pybuffer_lengthrange;
  __pyx_pybuffer_prm.pybuffer.buf = NULL;
  __pyx_pybuffer_prm.refcount = 0;
  __pyx_pybuffernd_prm.data = NULL;
  __pyx_pybuffernd_prm.rcbuffer = &__pyx_pybuffer_prm;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lengthrange.rcbuffer->pybuffer, (PyObject*)__pyx_v_lengthrange, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5481, __pyx_L1_error)
  }
  __pyx_pybuffernd_lengthrange.diminfo[0].strides = __pyx_pybuffernd_lengthrange.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lengthrange.diminfo[0].shape = __pyx_pybuffernd_lengthrange.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_prm.rcbuffer->pybuffer, (PyObject*)__pyx_v_prm, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5481, __pyx_L1_error)
  }
  __pyx_pybuffernd_prm.diminfo[0].strides = __pyx_pybuffernd_prm.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_prm.diminfo[0].shape = __pyx_pybuffernd_prm.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5482
 * 
 * def _mju_muscleGain(float len, float vel, np.ndarray[np.float64_t, mode="c", ndim=1] lengthrange, float acc0, np.ndarray[np.float64_t, mode="c", ndim=1] prm):
 *     return mju_muscleGain(len, vel, &lengthrange[0], acc0, &prm[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_muscleBias(float len, np.ndarray[np.float64_t, mode="c", ndim=1] lengthrange, float acc0, np.ndarray[np.float64_t, mode="c", ndim=1] prm):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_lengthrange.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_lengthrange.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5482, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_prm.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_prm.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5482, __pyx_L1_error)
  }
  __pyx_t_4 = PyFloat_FromDouble(mju_muscleGain(__pyx_v_len, __pyx_v_vel, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_lengthrange.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_lengthrange.diminfo[0].strides))), __pyx_v_acc0, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_prm.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_prm.diminfo[0].strides))))); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5482, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5481
 *     return mju_eig3(&eigval[0], &eigvec[0], &quat[0], &mat[0])
 * 
 * def _mju_muscleGain(float len, float vel, np.ndarray[np.float64_t, mode="c", ndim=1] lengthrange, float acc0, np.ndarray[np.float64_t, mode="c", ndim=1] prm):             # <<<<<<<<<<<<<<
 *     return mju_muscleGain(len, vel, &lengthrange[0], acc0, &prm[0])
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lengthrange.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_prm.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_muscleGain", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lengthrange.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_prm.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5484
 *     return mju_muscleGain(len, vel, &lengthrange[0], acc0, &prm[0])
 * 
 * def _mju_muscleBias(float len, np.ndarray[np.float64_t, mode="c", ndim=1] lengthrange, float acc0, np.ndarray[np.float64_t, mode="c", ndim=1] prm):             # <<<<<<<<<<<<<<
 *     return mju_muscleBias(len, &lengthrange[0], acc0, &prm[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_459_mju_muscleBias(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_459_mju_muscleBias = {"_mju_muscleBias", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_459_mju_muscleBias, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_459_mju_muscleBias(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  float __pyx_v_len;
  PyArrayObject *__pyx_v_lengthrange = 0;
  float __pyx_v_acc0;
  PyArrayObject *__pyx_v_prm = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_muscleBias (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_len,&__pyx_n_s_lengthrange,&__pyx_n_s_acc0,&__pyx_n_s_prm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_len)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5484, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_lengthrange)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5484, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_muscleBias", 1, 4, 4, 1); __PYX_ERR(4, 5484, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_acc0)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5484, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_muscleBias", 1, 4, 4, 2); __PYX_ERR(4, 5484, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_prm)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5484, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_muscleBias", 1, 4, 4, 3); __PYX_ERR(4, 5484, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_muscleBias") < 0)) __PYX_ERR(4, 5484, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_len = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_len == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5484, __pyx_L3_error)
    __pyx_v_lengthrange = ((PyArrayObject *)values[1]);
    __pyx_v_acc0 = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_acc0 == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5484, __pyx_L3_error)
    __pyx_v_prm = ((PyArrayObject *)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_muscleBias", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5484, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_muscleBias", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lengthrange), __pyx_ptype_5numpy_ndarray, 1, "lengthrange", 0))) __PYX_ERR(4, 5484, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_prm), __pyx_ptype_5numpy_ndarray, 1, "prm", 0))) __PYX_ERR(4, 5484, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_458_mju_muscleBias(__pyx_self, __pyx_v_len, __pyx_v_lengthrange, __pyx_v_acc0, __pyx_v_prm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_458_mju_muscleBias(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_len, PyArrayObject *__pyx_v_lengthrange, float __pyx_v_acc0, PyArrayObject *__pyx_v_prm) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lengthrange;
  __Pyx_Buffer __pyx_pybuffer_lengthrange;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_prm;
  __Pyx_Buffer __pyx_pybuffer_prm;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_muscleBias", 1);
  __pyx_pybuffer_lengthrange.pybuffer.buf = NULL;
  __pyx_pybuffer_lengthrange.refcount = 0;
  __pyx_pybuffernd_lengthrange.data = NULL;
  __pyx_pybuffernd_lengthrange.rcbuffer = &__pyx_pybuffer_lengthrange;
  __pyx_pybuffer_prm.pybuffer.buf = NULL;
  __pyx_pybuffer_prm.refcount = 0;
  __pyx_pybuffernd_prm.data = NULL;
  __pyx_pybuffernd_prm.rcbuffer = &__pyx_pybuffer_prm;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lengthrange.rcbuffer->pybuffer, (PyObject*)__pyx_v_lengthrange, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5484, __pyx_L1_error)
  }
  __pyx_pybuffernd_lengthrange.diminfo[0].strides = __pyx_pybuffernd_lengthrange.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lengthrange.diminfo[0].shape = __pyx_pybuffernd_lengthrange.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_prm.rcbuffer->pybuffer, (PyObject*)__pyx_v_prm, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5484, __pyx_L1_error)
  }
  __pyx_pybuffernd_prm.diminfo[0].strides = __pyx_pybuffernd_prm.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_prm.diminfo[0].shape = __pyx_pybuffernd_prm.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5485
 * 
 * def _mju_muscleBias(float len, np.ndarray[np.float64_t, mode="c", ndim=1] lengthrange, float acc0, np.ndarray[np.float64_t, mode="c", ndim=1] prm):
 *     return mju_muscleBias(len, &lengthrange[0], acc0, &prm[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_muscleDynamics(float ctrl, float act, np.ndarray[np.float64_t, mode="c", ndim=1] prm):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_lengthrange.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_lengthrange.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5485, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_prm.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_prm.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5485, __pyx_L1_error)
  }
  __pyx_t_4 = PyFloat_FromDouble(mju_muscleBias(__pyx_v_len, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_lengthrange.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_lengthrange.diminfo[0].strides))), __pyx_v_acc0, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_prm.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_prm.diminfo[0].strides))))); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5484
 *     return mju_muscleGain(len, vel, &lengthrange[0], acc0, &prm[0])
 * 
 * def _mju_muscleBias(float len, np.ndarray[np.float64_t, mode="c", ndim=1] lengthrange, float acc0, np.ndarray[np.float64_t, mode="c", ndim=1] prm):             # <<<<<<<<<<<<<<
 *     return mju_muscleBias(len, &lengthrange[0], acc0, &prm[0])
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lengthrange.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_prm.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_muscleBias", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lengthrange.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_prm.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5487
 *     return mju_muscleBias(len, &lengthrange[0], acc0, &prm[0])
 * 
 * def _mju_muscleDynamics(float ctrl, float act, np.ndarray[np.float64_t, mode="c", ndim=1] prm):             # <<<<<<<<<<<<<<
 *     return mju_muscleDynamics(ctrl, act, &prm[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_461_mju_muscleDynamics(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_461_mju_muscleDynamics = {"_mju_muscleDynamics", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_461_mju_muscleDynamics, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_461_mju_muscleDynamics(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  float __pyx_v_ctrl;
  float __pyx_v_act;
  PyArrayObject *__pyx_v_prm = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_muscleDynamics (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ctrl,&__pyx_n_s_act,&__pyx_n_s_prm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ctrl)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5487, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_act)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5487, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_muscleDynamics", 1, 3, 3, 1); __PYX_ERR(4, 5487, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_prm)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5487, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_muscleDynamics", 1, 3, 3, 2); __PYX_ERR(4, 5487, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_muscleDynamics") < 0)) __PYX_ERR(4, 5487, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_ctrl = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_ctrl == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5487, __pyx_L3_error)
    __pyx_v_act = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_act == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5487, __pyx_L3_error)
    __pyx_v_prm = ((PyArrayObject *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_muscleDynamics", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5487, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_muscleDynamics", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_prm), __pyx_ptype_5numpy_ndarray, 1, "prm", 0))) __PYX_ERR(4, 5487, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_460_mju_muscleDynamics(__pyx_self, __pyx_v_ctrl, __pyx_v_act, __pyx_v_prm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_460_mju_muscleDynamics(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_ctrl, float __pyx_v_act, PyArrayObject *__pyx_v_prm) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_prm;
  __Pyx_Buffer __pyx_pybuffer_prm;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_muscleDynamics", 1);
  __pyx_pybuffer_prm.pybuffer.buf = NULL;
  __pyx_pybuffer_prm.refcount = 0;
  __pyx_pybuffernd_prm.data = NULL;
  __pyx_pybuffernd_prm.rcbuffer = &__pyx_pybuffer_prm;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_prm.rcbuffer->pybuffer, (PyObject*)__pyx_v_prm, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5487, __pyx_L1_error)
  }
  __pyx_pybuffernd_prm.diminfo[0].strides = __pyx_pybuffernd_prm.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_prm.diminfo[0].shape = __pyx_pybuffernd_prm.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5488
 * 
 * def _mju_muscleDynamics(float ctrl, float act, np.ndarray[np.float64_t, mode="c", ndim=1] prm):
 *     return mju_muscleDynamics(ctrl, act, &prm[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_encodePyramid(np.ndarray[np.float64_t, mode="c", ndim=1] pyramid, np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] mu, int dim):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_prm.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_prm.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5488, __pyx_L1_error)
  }
  __pyx_t_3 = PyFloat_FromDouble(mju_muscleDynamics(__pyx_v_ctrl, __pyx_v_act, (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_prm.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_prm.diminfo[0].strides))))); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5487
 *     return mju_muscleBias(len, &lengthrange[0], acc0, &prm[0])
 * 
 * def _mju_muscleDynamics(float ctrl, float act, np.ndarray[np.float64_t, mode="c", ndim=1] prm):             # <<<<<<<<<<<<<<
 *     return mju_muscleDynamics(ctrl, act, &prm[0])
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_prm.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_muscleDynamics", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_prm.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5490
 *     return mju_muscleDynamics(ctrl, act, &prm[0])
 * 
 * def _mju_encodePyramid(np.ndarray[np.float64_t, mode="c", ndim=1] pyramid, np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] mu, int dim):             # <<<<<<<<<<<<<<
 *     mju_encodePyramid(&pyramid[0], &force[0], &mu[0], dim)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_463_mju_encodePyramid(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_463_mju_encodePyramid = {"_mju_encodePyramid", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_463_mju_encodePyramid, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_463_mju_encodePyramid(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_pyramid = 0;
  PyArrayObject *__pyx_v_force = 0;
  PyArrayObject *__pyx_v_mu = 0;
  int __pyx_v_dim;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_encodePyramid (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyramid,&__pyx_n_s_force,&__pyx_n_s_mu,&__pyx_n_s_dim,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyramid)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5490, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_force)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5490, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_encodePyramid", 1, 4, 4, 1); __PYX_ERR(4, 5490, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mu)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5490, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_encodePyramid", 1, 4, 4, 2); __PYX_ERR(4, 5490, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dim)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5490, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_encodePyramid", 1, 4, 4, 3); __PYX_ERR(4, 5490, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_encodePyramid") < 0)) __PYX_ERR(4, 5490, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_pyramid = ((PyArrayObject *)values[0]);
    __pyx_v_force = ((PyArrayObject *)values[1]);
    __pyx_v_mu = ((PyArrayObject *)values[2]);
    __pyx_v_dim = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_dim == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5490, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_encodePyramid", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5490, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_encodePyramid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pyramid), __pyx_ptype_5numpy_ndarray, 1, "pyramid", 0))) __PYX_ERR(4, 5490, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_force), __pyx_ptype_5numpy_ndarray, 1, "force", 0))) __PYX_ERR(4, 5490, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mu), __pyx_ptype_5numpy_ndarray, 1, "mu", 0))) __PYX_ERR(4, 5490, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_462_mju_encodePyramid(__pyx_self, __pyx_v_pyramid, __pyx_v_force, __pyx_v_mu, __pyx_v_dim);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_462_mju_encodePyramid(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_pyramid, PyArrayObject *__pyx_v_force, PyArrayObject *__pyx_v_mu, int __pyx_v_dim) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_force;
  __Pyx_Buffer __pyx_pybuffer_force;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mu;
  __Pyx_Buffer __pyx_pybuffer_mu;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pyramid;
  __Pyx_Buffer __pyx_pybuffer_pyramid;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_encodePyramid", 1);
  __pyx_pybuffer_pyramid.pybuffer.buf = NULL;
  __pyx_pybuffer_pyramid.refcount = 0;
  __pyx_pybuffernd_pyramid.data = NULL;
  __pyx_pybuffernd_pyramid.rcbuffer = &__pyx_pybuffer_pyramid;
  __pyx_pybuffer_force.pybuffer.buf = NULL;
  __pyx_pybuffer_force.refcount = 0;
  __pyx_pybuffernd_force.data = NULL;
  __pyx_pybuffernd_force.rcbuffer = &__pyx_pybuffer_force;
  __pyx_pybuffer_mu.pybuffer.buf = NULL;
  __pyx_pybuffer_mu.refcount = 0;
  __pyx_pybuffernd_mu.data = NULL;
  __pyx_pybuffernd_mu.rcbuffer = &__pyx_pybuffer_mu;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pyramid.rcbuffer->pybuffer, (PyObject*)__pyx_v_pyramid, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5490, __pyx_L1_error)
  }
  __pyx_pybuffernd_pyramid.diminfo[0].strides = __pyx_pybuffernd_pyramid.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pyramid.diminfo[0].shape = __pyx_pybuffernd_pyramid.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_force.rcbuffer->pybuffer, (PyObject*)__pyx_v_force, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5490, __pyx_L1_error)
  }
  __pyx_pybuffernd_force.diminfo[0].strides = __pyx_pybuffernd_force.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_force.diminfo[0].shape = __pyx_pybuffernd_force.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mu.rcbuffer->pybuffer, (PyObject*)__pyx_v_mu, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5490, __pyx_L1_error)
  }
  __pyx_pybuffernd_mu.diminfo[0].strides = __pyx_pybuffernd_mu.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mu.diminfo[0].shape = __pyx_pybuffernd_mu.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5491
 * 
 * def _mju_encodePyramid(np.ndarray[np.float64_t, mode="c", ndim=1] pyramid, np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] mu, int dim):
 *     mju_encodePyramid(&pyramid[0], &force[0], &mu[0], dim)             # <<<<<<<<<<<<<<
 * 
 * def _mju_decodePyramid(np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] pyramid, np.ndarray[np.float64_t, mode="c", ndim=1] mu, int dim):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_pyramid.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_pyramid.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5491, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_force.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_force.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5491, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_mu.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_mu.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5491, __pyx_L1_error)
  }
  mju_encodePyramid((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_pyramid.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_pyramid.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_force.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_force.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mu.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_mu.diminfo[0].strides))), __pyx_v_dim);

  /* "mujoco_py/generated/wrappers.pxi":5490
 *     return mju_muscleDynamics(ctrl, act, &prm[0])
 * 
 * def _mju_encodePyramid(np.ndarray[np.float64_t, mode="c", ndim=1] pyramid, np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] mu, int dim):             # <<<<<<<<<<<<<<
 *     mju_encodePyramid(&pyramid[0], &force[0], &mu[0], dim)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_force.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mu.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pyramid.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_encodePyramid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_force.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mu.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pyramid.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5493
 *     mju_encodePyramid(&pyramid[0], &force[0], &mu[0], dim)
 * 
 * def _mju_decodePyramid(np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] pyramid, np.ndarray[np.float64_t, mode="c", ndim=1] mu, int dim):             # <<<<<<<<<<<<<<
 *     mju_decodePyramid(&force[0], &pyramid[0], &mu[0], dim)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_465_mju_decodePyramid(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_465_mju_decodePyramid = {"_mju_decodePyramid", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_465_mju_decodePyramid, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_465_mju_decodePyramid(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_force = 0;
  PyArrayObject *__pyx_v_pyramid = 0;
  PyArrayObject *__pyx_v_mu = 0;
  int __pyx_v_dim;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_decodePyramid (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_force,&__pyx_n_s_pyramid,&__pyx_n_s_mu,&__pyx_n_s_dim,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_force)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5493, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyramid)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5493, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_decodePyramid", 1, 4, 4, 1); __PYX_ERR(4, 5493, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mu)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5493, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_decodePyramid", 1, 4, 4, 2); __PYX_ERR(4, 5493, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dim)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5493, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_decodePyramid", 1, 4, 4, 3); __PYX_ERR(4, 5493, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_decodePyramid") < 0)) __PYX_ERR(4, 5493, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_force = ((PyArrayObject *)values[0]);
    __pyx_v_pyramid = ((PyArrayObject *)values[1]);
    __pyx_v_mu = ((PyArrayObject *)values[2]);
    __pyx_v_dim = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_dim == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5493, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_decodePyramid", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 5493, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_decodePyramid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_force), __pyx_ptype_5numpy_ndarray, 1, "force", 0))) __PYX_ERR(4, 5493, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pyramid), __pyx_ptype_5numpy_ndarray, 1, "pyramid", 0))) __PYX_ERR(4, 5493, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mu), __pyx_ptype_5numpy_ndarray, 1, "mu", 0))) __PYX_ERR(4, 5493, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_464_mju_decodePyramid(__pyx_self, __pyx_v_force, __pyx_v_pyramid, __pyx_v_mu, __pyx_v_dim);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_464_mju_decodePyramid(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_force, PyArrayObject *__pyx_v_pyramid, PyArrayObject *__pyx_v_mu, int __pyx_v_dim) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_force;
  __Pyx_Buffer __pyx_pybuffer_force;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_mu;
  __Pyx_Buffer __pyx_pybuffer_mu;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pyramid;
  __Pyx_Buffer __pyx_pybuffer_pyramid;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_decodePyramid", 1);
  __pyx_pybuffer_force.pybuffer.buf = NULL;
  __pyx_pybuffer_force.refcount = 0;
  __pyx_pybuffernd_force.data = NULL;
  __pyx_pybuffernd_force.rcbuffer = &__pyx_pybuffer_force;
  __pyx_pybuffer_pyramid.pybuffer.buf = NULL;
  __pyx_pybuffer_pyramid.refcount = 0;
  __pyx_pybuffernd_pyramid.data = NULL;
  __pyx_pybuffernd_pyramid.rcbuffer = &__pyx_pybuffer_pyramid;
  __pyx_pybuffer_mu.pybuffer.buf = NULL;
  __pyx_pybuffer_mu.refcount = 0;
  __pyx_pybuffernd_mu.data = NULL;
  __pyx_pybuffernd_mu.rcbuffer = &__pyx_pybuffer_mu;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_force.rcbuffer->pybuffer, (PyObject*)__pyx_v_force, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5493, __pyx_L1_error)
  }
  __pyx_pybuffernd_force.diminfo[0].strides = __pyx_pybuffernd_force.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_force.diminfo[0].shape = __pyx_pybuffernd_force.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pyramid.rcbuffer->pybuffer, (PyObject*)__pyx_v_pyramid, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5493, __pyx_L1_error)
  }
  __pyx_pybuffernd_pyramid.diminfo[0].strides = __pyx_pybuffernd_pyramid.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pyramid.diminfo[0].shape = __pyx_pybuffernd_pyramid.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_mu.rcbuffer->pybuffer, (PyObject*)__pyx_v_mu, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5493, __pyx_L1_error)
  }
  __pyx_pybuffernd_mu.diminfo[0].strides = __pyx_pybuffernd_mu.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_mu.diminfo[0].shape = __pyx_pybuffernd_mu.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5494
 * 
 * def _mju_decodePyramid(np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] pyramid, np.ndarray[np.float64_t, mode="c", ndim=1] mu, int dim):
 *     mju_decodePyramid(&force[0], &pyramid[0], &mu[0], dim)             # <<<<<<<<<<<<<<
 * 
 * def _mju_springDamper(float pos0, float vel0, float Kp, float Kv, float dt):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_force.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_force.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5494, __pyx_L1_error)
  }
  __pyx_t_3 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_pybuffernd_pyramid.diminfo[0].shape;
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_pybuffernd_pyramid.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5494, __pyx_L1_error)
  }
  __pyx_t_4 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_pybuffernd_mu.diminfo[0].shape;
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_pybuffernd_mu.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5494, __pyx_L1_error)
  }
  mju_decodePyramid((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_force.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_force.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_pyramid.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_pyramid.diminfo[0].strides))), (&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_mu.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_mu.diminfo[0].strides))), __pyx_v_dim);

  /* "mujoco_py/generated/wrappers.pxi":5493
 *     mju_encodePyramid(&pyramid[0], &force[0], &mu[0], dim)
 * 
 * def _mju_decodePyramid(np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] pyramid, np.ndarray[np.float64_t, mode="c", ndim=1] mu, int dim):             # <<<<<<<<<<<<<<
 *     mju_decodePyramid(&force[0], &pyramid[0], &mu[0], dim)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_force.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mu.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pyramid.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_decodePyramid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_force.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_mu.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pyramid.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5496
 *     mju_decodePyramid(&force[0], &pyramid[0], &mu[0], dim)
 * 
 * def _mju_springDamper(float pos0, float vel0, float Kp, float Kv, float dt):             # <<<<<<<<<<<<<<
 *     return mju_springDamper(pos0, vel0, Kp, Kv, dt)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_467_mju_springDamper(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_467_mju_springDamper = {"_mju_springDamper", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_467_mju_springDamper, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_467_mju_springDamper(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  float __pyx_v_pos0;
  float __pyx_v_vel0;
  float __pyx_v_Kp;
  float __pyx_v_Kv;
  float __pyx_v_dt;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_springDamper (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pos0,&__pyx_n_s_vel0,&__pyx_n_s_Kp,&__pyx_n_s_Kv,&__pyx_n_s_dt,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pos0)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5496, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vel0)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5496, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_springDamper", 1, 5, 5, 1); __PYX_ERR(4, 5496, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_Kp)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5496, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_springDamper", 1, 5, 5, 2); __PYX_ERR(4, 5496, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_Kv)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5496, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_springDamper", 1, 5, 5, 3); __PYX_ERR(4, 5496, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5496, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_springDamper", 1, 5, 5, 4); __PYX_ERR(4, 5496, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_springDamper") < 0)) __PYX_ERR(4, 5496, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
      values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
    }
    __pyx_v_pos0 = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_pos0 == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5496, __pyx_L3_error)
    __pyx_v_vel0 = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_vel0 == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5496, __pyx_L3_error)
    __pyx_v_Kp = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_Kp == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5496, __pyx_L3_error)
    __pyx_v_Kv = __pyx_PyFloat_AsFloat(values[3]); if (unlikely((__pyx_v_Kv == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5496, __pyx_L3_error)
    __pyx_v_dt = __pyx_PyFloat_AsFloat(values[4]); if (unlikely((__pyx_v_dt == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5496, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_springDamper", 1, 5, 5, __pyx_nargs); __PYX_ERR(4, 5496, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_springDamper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_466_mju_springDamper(__pyx_self, __pyx_v_pos0, __pyx_v_vel0, __pyx_v_Kp, __pyx_v_Kv, __pyx_v_dt);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_466_mju_springDamper(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_pos0, float __pyx_v_vel0, float __pyx_v_Kp, float __pyx_v_Kv, float __pyx_v_dt) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_springDamper", 1);

  /* "mujoco_py/generated/wrappers.pxi":5497
 * 
 * def _mju_springDamper(float pos0, float vel0, float Kp, float Kv, float dt):
 *     return mju_springDamper(pos0, vel0, Kp, Kv, dt)             # <<<<<<<<<<<<<<
 * 
 * def _mju_min(float a, float b):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(mju_springDamper(__pyx_v_pos0, __pyx_v_vel0, __pyx_v_Kp, __pyx_v_Kv, __pyx_v_dt)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5496
 *     mju_decodePyramid(&force[0], &pyramid[0], &mu[0], dim)
 * 
 * def _mju_springDamper(float pos0, float vel0, float Kp, float Kv, float dt):             # <<<<<<<<<<<<<<
 *     return mju_springDamper(pos0, vel0, Kp, Kv, dt)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_springDamper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5499
 *     return mju_springDamper(pos0, vel0, Kp, Kv, dt)
 * 
 * def _mju_min(float a, float b):             # <<<<<<<<<<<<<<
 *     return mju_min(a, b)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_469_mju_min(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_469_mju_min = {"_mju_min", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_469_mju_min, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_469_mju_min(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  float __pyx_v_a;
  float __pyx_v_b;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_min (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_a,&__pyx_n_s_b,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5499, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_b)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5499, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_min", 1, 2, 2, 1); __PYX_ERR(4, 5499, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_min") < 0)) __PYX_ERR(4, 5499, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_a = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_a == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5499, __pyx_L3_error)
    __pyx_v_b = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_b == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5499, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_min", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5499, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_min", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_468_mju_min(__pyx_self, __pyx_v_a, __pyx_v_b);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_468_mju_min(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_a, float __pyx_v_b) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_min", 1);

  /* "mujoco_py/generated/wrappers.pxi":5500
 * 
 * def _mju_min(float a, float b):
 *     return mju_min(a, b)             # <<<<<<<<<<<<<<
 * 
 * def _mju_max(float a, float b):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(mju_min(__pyx_v_a, __pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5499
 *     return mju_springDamper(pos0, vel0, Kp, Kv, dt)
 * 
 * def _mju_min(float a, float b):             # <<<<<<<<<<<<<<
 *     return mju_min(a, b)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_min", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5502
 *     return mju_min(a, b)
 * 
 * def _mju_max(float a, float b):             # <<<<<<<<<<<<<<
 *     return mju_max(a, b)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_471_mju_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_471_mju_max = {"_mju_max", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_471_mju_max, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_471_mju_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  float __pyx_v_a;
  float __pyx_v_b;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_max (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_a,&__pyx_n_s_b,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5502, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_b)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5502, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_max", 1, 2, 2, 1); __PYX_ERR(4, 5502, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_max") < 0)) __PYX_ERR(4, 5502, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_a = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_a == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5502, __pyx_L3_error)
    __pyx_v_b = __pyx_PyFloat_AsFloat(values[1]); if (unlikely((__pyx_v_b == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5502, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_max", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5502, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_470_mju_max(__pyx_self, __pyx_v_a, __pyx_v_b);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_470_mju_max(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_a, float __pyx_v_b) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_max", 1);

  /* "mujoco_py/generated/wrappers.pxi":5503
 * 
 * def _mju_max(float a, float b):
 *     return mju_max(a, b)             # <<<<<<<<<<<<<<
 * 
 * def _mju_sign(float x):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(mju_max(__pyx_v_a, __pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5502
 *     return mju_min(a, b)
 * 
 * def _mju_max(float a, float b):             # <<<<<<<<<<<<<<
 *     return mju_max(a, b)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5505
 *     return mju_max(a, b)
 * 
 * def _mju_sign(float x):             # <<<<<<<<<<<<<<
 *     return mju_sign(x)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_473_mju_sign(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_473_mju_sign = {"_mju_sign", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_473_mju_sign, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_473_mju_sign(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  float __pyx_v_x;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_sign (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5505, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_sign") < 0)) __PYX_ERR(4, 5505, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_x = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5505, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_sign", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5505, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_sign", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_472_mju_sign(__pyx_self, __pyx_v_x);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_472_mju_sign(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_x) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_sign", 1);

  /* "mujoco_py/generated/wrappers.pxi":5506
 * 
 * def _mju_sign(float x):
 *     return mju_sign(x)             # <<<<<<<<<<<<<<
 * 
 * def _mju_round(float x):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(mju_sign(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5505
 *     return mju_max(a, b)
 * 
 * def _mju_sign(float x):             # <<<<<<<<<<<<<<
 *     return mju_sign(x)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_sign", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5508
 *     return mju_sign(x)
 * 
 * def _mju_round(float x):             # <<<<<<<<<<<<<<
 *     return mju_round(x)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_475_mju_round(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_475_mju_round = {"_mju_round", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_475_mju_round, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_475_mju_round(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  float __pyx_v_x;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_round (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5508, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_round") < 0)) __PYX_ERR(4, 5508, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_x = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5508, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_round", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5508, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_round", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_474_mju_round(__pyx_self, __pyx_v_x);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_474_mju_round(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_x) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_round", 1);

  /* "mujoco_py/generated/wrappers.pxi":5509
 * 
 * def _mju_round(float x):
 *     return mju_round(x)             # <<<<<<<<<<<<<<
 * 
 * def _mju_str2Type(str str):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(mju_round(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5508
 *     return mju_sign(x)
 * 
 * def _mju_round(float x):             # <<<<<<<<<<<<<<
 *     return mju_round(x)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_round", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5511
 *     return mju_round(x)
 * 
 * def _mju_str2Type(str str):             # <<<<<<<<<<<<<<
 *     return mju_str2Type(str.encode())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_477_mju_str2Type(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_477_mju_str2Type = {"_mju_str2Type", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_477_mju_str2Type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_477_mju_str2Type(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_str = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_str2Type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_str,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_str)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5511, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_str2Type") < 0)) __PYX_ERR(4, 5511, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_str = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_str2Type", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5511, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_str2Type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_str), (&PyUnicode_Type), 1, "str", 1))) __PYX_ERR(4, 5511, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_476_mju_str2Type(__pyx_self, __pyx_v_str);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_476_mju_str2Type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_str) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_str2Type", 1);

  /* "mujoco_py/generated/wrappers.pxi":5512
 * 
 * def _mju_str2Type(str str):
 *     return mju_str2Type(str.encode())             # <<<<<<<<<<<<<<
 * 
 * def _mju_isBad(float x):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_str == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
    __PYX_ERR(4, 5512, __pyx_L1_error)
  }
  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_str, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(4, 5512, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyInt_From_int(mju_str2Type(__pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5511
 *     return mju_round(x)
 * 
 * def _mju_str2Type(str str):             # <<<<<<<<<<<<<<
 *     return mju_str2Type(str.encode())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_str2Type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5514
 *     return mju_str2Type(str.encode())
 * 
 * def _mju_isBad(float x):             # <<<<<<<<<<<<<<
 *     return mju_isBad(x)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_479_mju_isBad(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_479_mju_isBad = {"_mju_isBad", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_479_mju_isBad, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_479_mju_isBad(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  float __pyx_v_x;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_isBad (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5514, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_isBad") < 0)) __PYX_ERR(4, 5514, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_x = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5514, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_isBad", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5514, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_isBad", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_478_mju_isBad(__pyx_self, __pyx_v_x);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_478_mju_isBad(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_x) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_isBad", 1);

  /* "mujoco_py/generated/wrappers.pxi":5515
 * 
 * def _mju_isBad(float x):
 *     return mju_isBad(x)             # <<<<<<<<<<<<<<
 * 
 * def _mju_isZero(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(mju_isBad(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5514
 *     return mju_str2Type(str.encode())
 * 
 * def _mju_isBad(float x):             # <<<<<<<<<<<<<<
 *     return mju_isBad(x)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_isBad", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5517
 *     return mju_isBad(x)
 * 
 * def _mju_isZero(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     return mju_isZero(&vec[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_481_mju_isZero(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_481_mju_isZero = {"_mju_isZero", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_481_mju_isZero, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_481_mju_isZero(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_vec = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_isZero (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5517, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5517, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_isZero", 1, 2, 2, 1); __PYX_ERR(4, 5517, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_isZero") < 0)) __PYX_ERR(4, 5517, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_vec = ((PyArrayObject *)values[0]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5517, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_isZero", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5517, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_isZero", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(4, 5517, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_480_mju_isZero(__pyx_self, __pyx_v_vec, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_480_mju_isZero(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_vec, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_isZero", 1);
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5517, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5518
 * 
 * def _mju_isZero(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):
 *     return mju_isZero(&vec[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_standardNormal(np.ndarray[np.float64_t, mode="c", ndim=1] num2):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_vec.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_vec.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5518, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyInt_From_int(mju_isZero((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_vec.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_vec.diminfo[0].strides))), __pyx_v_n)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5517
 *     return mju_isBad(x)
 * 
 * def _mju_isZero(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     return mju_isZero(&vec[0], n)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_isZero", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5520
 *     return mju_isZero(&vec[0], n)
 * 
 * def _mju_standardNormal(np.ndarray[np.float64_t, mode="c", ndim=1] num2):             # <<<<<<<<<<<<<<
 *     return mju_standardNormal(&num2[0])
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_483_mju_standardNormal(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_483_mju_standardNormal = {"_mju_standardNormal", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_483_mju_standardNormal, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_483_mju_standardNormal(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_num2 = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_standardNormal (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_num2,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_num2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5520, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_standardNormal") < 0)) __PYX_ERR(4, 5520, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_num2 = ((PyArrayObject *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_standardNormal", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5520, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_standardNormal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_num2), __pyx_ptype_5numpy_ndarray, 1, "num2", 0))) __PYX_ERR(4, 5520, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_482_mju_standardNormal(__pyx_self, __pyx_v_num2);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_482_mju_standardNormal(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_num2) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_num2;
  __Pyx_Buffer __pyx_pybuffer_num2;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_standardNormal", 1);
  __pyx_pybuffer_num2.pybuffer.buf = NULL;
  __pyx_pybuffer_num2.refcount = 0;
  __pyx_pybuffernd_num2.data = NULL;
  __pyx_pybuffernd_num2.rcbuffer = &__pyx_pybuffer_num2;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_num2.rcbuffer->pybuffer, (PyObject*)__pyx_v_num2, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5520, __pyx_L1_error)
  }
  __pyx_pybuffernd_num2.diminfo[0].strides = __pyx_pybuffernd_num2.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_num2.diminfo[0].shape = __pyx_pybuffernd_num2.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5521
 * 
 * def _mju_standardNormal(np.ndarray[np.float64_t, mode="c", ndim=1] num2):
 *     return mju_standardNormal(&num2[0])             # <<<<<<<<<<<<<<
 * 
 * def _mju_insertionSort(np.ndarray[np.float64_t, mode="c", ndim=1] list, int n):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_num2.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_num2.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5521, __pyx_L1_error)
  }
  __pyx_t_3 = PyFloat_FromDouble(mju_standardNormal((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_num2.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_num2.diminfo[0].strides))))); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5520
 *     return mju_isZero(&vec[0], n)
 * 
 * def _mju_standardNormal(np.ndarray[np.float64_t, mode="c", ndim=1] num2):             # <<<<<<<<<<<<<<
 *     return mju_standardNormal(&num2[0])
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_num2.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_standardNormal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_num2.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5523
 *     return mju_standardNormal(&num2[0])
 * 
 * def _mju_insertionSort(np.ndarray[np.float64_t, mode="c", ndim=1] list, int n):             # <<<<<<<<<<<<<<
 *     mju_insertionSort(&list[0], n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_485_mju_insertionSort(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_485_mju_insertionSort = {"_mju_insertionSort", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_485_mju_insertionSort, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_485_mju_insertionSort(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_list = 0;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_insertionSort (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_list,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_list)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5523, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5523, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_insertionSort", 1, 2, 2, 1); __PYX_ERR(4, 5523, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_insertionSort") < 0)) __PYX_ERR(4, 5523, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_list = ((PyArrayObject *)values[0]);
    __pyx_v_n = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5523, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_insertionSort", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5523, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_insertionSort", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_list), __pyx_ptype_5numpy_ndarray, 1, "list", 0))) __PYX_ERR(4, 5523, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_484_mju_insertionSort(__pyx_self, __pyx_v_list, __pyx_v_n);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_484_mju_insertionSort(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_list, int __pyx_v_n) {
  __Pyx_LocalBuf_ND __pyx_pybuffernd_list;
  __Pyx_Buffer __pyx_pybuffer_list;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_insertionSort", 1);
  __pyx_pybuffer_list.pybuffer.buf = NULL;
  __pyx_pybuffer_list.refcount = 0;
  __pyx_pybuffernd_list.data = NULL;
  __pyx_pybuffernd_list.rcbuffer = &__pyx_pybuffer_list;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_list.rcbuffer->pybuffer, (PyObject*)__pyx_v_list, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(4, 5523, __pyx_L1_error)
  }
  __pyx_pybuffernd_list.diminfo[0].strides = __pyx_pybuffernd_list.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_list.diminfo[0].shape = __pyx_pybuffernd_list.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/generated/wrappers.pxi":5524
 * 
 * def _mju_insertionSort(np.ndarray[np.float64_t, mode="c", ndim=1] list, int n):
 *     mju_insertionSort(&list[0], n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_insertionSortInt(uintptr_t list, int n):
 */
  __pyx_t_1 = 0;
  __pyx_t_2 = -1;
  if (__pyx_t_1 < 0) {
    __pyx_t_1 += __pyx_pybuffernd_list.diminfo[0].shape;
    if (unlikely(__pyx_t_1 < 0)) __pyx_t_2 = 0;
  } else if (unlikely(__pyx_t_1 >= __pyx_pybuffernd_list.diminfo[0].shape)) __pyx_t_2 = 0;
  if (unlikely(__pyx_t_2 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_2);
    __PYX_ERR(4, 5524, __pyx_L1_error)
  }
  mju_insertionSort((&(*__Pyx_BufPtrCContig1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_list.rcbuffer->pybuffer.buf, __pyx_t_1, __pyx_pybuffernd_list.diminfo[0].strides))), __pyx_v_n);

  /* "mujoco_py/generated/wrappers.pxi":5523
 *     return mju_standardNormal(&num2[0])
 * 
 * def _mju_insertionSort(np.ndarray[np.float64_t, mode="c", ndim=1] list, int n):             # <<<<<<<<<<<<<<
 *     mju_insertionSort(&list[0], n)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_list.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj._mju_insertionSort", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_list.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5526
 *     mju_insertionSort(&list[0], n)
 * 
 * def _mju_insertionSortInt(uintptr_t list, int n):             # <<<<<<<<<<<<<<
 *     mju_insertionSortInt(<int*>list, n)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_487_mju_insertionSortInt(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_487_mju_insertionSortInt = {"_mju_insertionSortInt", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_487_mju_insertionSortInt, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_487_mju_insertionSortInt(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  uintptr_t __pyx_v_list;
  int __pyx_v_n;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_insertionSortInt (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_list,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_list)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5526, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5526, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_insertionSortInt", 1, 2, 2, 1); __PYX_ERR(4, 5526, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_insertionSortInt") < 0)) __PYX_ERR(4, 5526, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_list = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_list == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(4, 5526, __pyx_L3_error)
    __pyx_v_n = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5526, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_insertionSortInt", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5526, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_insertionSortInt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_486_mju_insertionSortInt(__pyx_self, __pyx_v_list, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_486_mju_insertionSortInt(CYTHON_UNUSED PyObject *__pyx_self, uintptr_t __pyx_v_list, int __pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_insertionSortInt", 1);

  /* "mujoco_py/generated/wrappers.pxi":5527
 * 
 * def _mju_insertionSortInt(uintptr_t list, int n):
 *     mju_insertionSortInt(<int*>list, n)             # <<<<<<<<<<<<<<
 * 
 * def _mju_Halton(int index, int base):
 */
  mju_insertionSortInt(((int *)__pyx_v_list), __pyx_v_n);

  /* "mujoco_py/generated/wrappers.pxi":5526
 *     mju_insertionSort(&list[0], n)
 * 
 * def _mju_insertionSortInt(uintptr_t list, int n):             # <<<<<<<<<<<<<<
 *     mju_insertionSortInt(<int*>list, n)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5529
 *     mju_insertionSortInt(<int*>list, n)
 * 
 * def _mju_Halton(int index, int base):             # <<<<<<<<<<<<<<
 *     return mju_Halton(index, base)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_489_mju_Halton(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_489_mju_Halton = {"_mju_Halton", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_489_mju_Halton, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_489_mju_Halton(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_index;
  int __pyx_v_base;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_Halton (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_index,&__pyx_n_s_base,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_index)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5529, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_base)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5529, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_mju_Halton", 1, 2, 2, 1); __PYX_ERR(4, 5529, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_Halton") < 0)) __PYX_ERR(4, 5529, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_index = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_index == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5529, __pyx_L3_error)
    __pyx_v_base = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_base == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5529, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_Halton", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5529, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_Halton", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_488_mju_Halton(__pyx_self, __pyx_v_index, __pyx_v_base);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_488_mju_Halton(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_index, int __pyx_v_base) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_Halton", 1);

  /* "mujoco_py/generated/wrappers.pxi":5530
 * 
 * def _mju_Halton(int index, int base):
 *     return mju_Halton(index, base)             # <<<<<<<<<<<<<<
 * 
 * def _mju_sigmoid(float x):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(mju_Halton(__pyx_v_index, __pyx_v_base)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5529
 *     mju_insertionSortInt(<int*>list, n)
 * 
 * def _mju_Halton(int index, int base):             # <<<<<<<<<<<<<<
 *     return mju_Halton(index, base)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_Halton", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/generated/wrappers.pxi":5532
 *     return mju_Halton(index, base)
 * 
 * def _mju_sigmoid(float x):             # <<<<<<<<<<<<<<
 *     return mju_sigmoid(x)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_491_mju_sigmoid(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_491_mju_sigmoid = {"_mju_sigmoid", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_491_mju_sigmoid, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_491_mju_sigmoid(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  float __pyx_v_x;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mju_sigmoid (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5532, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_mju_sigmoid") < 0)) __PYX_ERR(4, 5532, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_x = __pyx_PyFloat_AsFloat(values[0]); if (unlikely((__pyx_v_x == (float)-1) && PyErr_Occurred())) __PYX_ERR(4, 5532, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mju_sigmoid", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5532, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj._mju_sigmoid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_490_mju_sigmoid(__pyx_self, __pyx_v_x);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_490_mju_sigmoid(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_x) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mju_sigmoid", 1);

  /* "mujoco_py/generated/wrappers.pxi":5533
 * 
 * def _mju_sigmoid(float x):
 *     return mju_sigmoid(x)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(mju_sigmoid(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/generated/wrappers.pxi":5532
 *     return mju_Halton(index, base)
 * 
 * def _mju_sigmoid(float x):             # <<<<<<<<<<<<<<
 *     return mju_sigmoid(x)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj._mju_sigmoid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/opengl_context.pyx":7
 * 
 * 
 * def _add_mujoco_bin_to_dyld_library_path():             # <<<<<<<<<<<<<<
 *     mujoco_path = discover_mujoco()
 *     bin_path = os.path.join(mujoco_path, "bin")
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_493_add_mujoco_bin_to_dyld_library_path(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_493_add_mujoco_bin_to_dyld_library_path = {"_add_mujoco_bin_to_dyld_library_path", (PyCFunction)__pyx_pw_9mujoco_py_4cymj_493_add_mujoco_bin_to_dyld_library_path, METH_NOARGS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_493_add_mujoco_bin_to_dyld_library_path(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_add_mujoco_bin_to_dyld_library_path (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_492_add_mujoco_bin_to_dyld_library_path(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_492_add_mujoco_bin_to_dyld_library_path(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_v_mujoco_path = NULL;
  PyObject *__pyx_v_bin_path = NULL;
  PyObject *__pyx_v_old_dyld_library_path = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_add_mujoco_bin_to_dyld_library_path", 1);

  /* "mujoco_py/opengl_context.pyx":8
 * 
 * def _add_mujoco_bin_to_dyld_library_path():
 *     mujoco_path = discover_mujoco()             # <<<<<<<<<<<<<<
 *     bin_path = os.path.join(mujoco_path, "bin")
 *     old_dyld_library_path = os.getenv("DYLD_LIBRARY_PATH", "")
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_discover_mujoco); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_mujoco_path = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/opengl_context.pyx":9
 * def _add_mujoco_bin_to_dyld_library_path():
 *     mujoco_path = discover_mujoco()
 *     bin_path = os.path.join(mujoco_path, "bin")             # <<<<<<<<<<<<<<
 *     old_dyld_library_path = os.getenv("DYLD_LIBRARY_PATH", "")
 *     os.environ["DYLD_LIBRARY_PATH"] = "{}:{}".format(
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_join); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_mujoco_path, __pyx_n_u_bin};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_bin_path = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/opengl_context.pyx":10
 *     mujoco_path = discover_mujoco()
 *     bin_path = os.path.join(mujoco_path, "bin")
 *     old_dyld_library_path = os.getenv("DYLD_LIBRARY_PATH", "")             # <<<<<<<<<<<<<<
 *     os.environ["DYLD_LIBRARY_PATH"] = "{}:{}".format(
 *         bin_path, old_dyld_library_path)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_getenv); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_old_dyld_library_path = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/opengl_context.pyx":11
 *     bin_path = os.path.join(mujoco_path, "bin")
 *     old_dyld_library_path = os.getenv("DYLD_LIBRARY_PATH", "")
 *     os.environ["DYLD_LIBRARY_PATH"] = "{}:{}".format(             # <<<<<<<<<<<<<<
 *         bin_path, old_dyld_library_path)
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u__34, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "mujoco_py/opengl_context.pyx":12
 *     old_dyld_library_path = os.getenv("DYLD_LIBRARY_PATH", "")
 *     os.environ["DYLD_LIBRARY_PATH"] = "{}:{}".format(
 *         bin_path, old_dyld_library_path)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_bin_path, __pyx_v_old_dyld_library_path};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }

  /* "mujoco_py/opengl_context.pyx":11
 *     bin_path = os.path.join(mujoco_path, "bin")
 *     old_dyld_library_path = os.getenv("DYLD_LIBRARY_PATH", "")
 *     os.environ["DYLD_LIBRARY_PATH"] = "{}:{}".format(             # <<<<<<<<<<<<<<
 *         bin_path, old_dyld_library_path)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_environ); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_n_u_DYLD_LIBRARY_PATH, __pyx_t_1) < 0))) __PYX_ERR(0, 11, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/opengl_context.pyx":7
 * 
 * 
 * def _add_mujoco_bin_to_dyld_library_path():             # <<<<<<<<<<<<<<
 *     mujoco_path = discover_mujoco()
 *     bin_path = os.path.join(mujoco_path, "bin")
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj._add_mujoco_bin_to_dyld_library_path", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_mujoco_path);
  __Pyx_XDECREF(__pyx_v_bin_path);
  __Pyx_XDECREF(__pyx_v_old_dyld_library_path);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/opengl_context.pyx":24
 * class OpenGLContext(metaclass=ABCMeta):
 * 
 *     @abstractmethod             # <<<<<<<<<<<<<<
 *     def make_context_current(self):
 *         raise NotImplementedError()
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13OpenGLContext_1make_context_current(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_13OpenGLContext_1make_context_current = {"make_context_current", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13OpenGLContext_1make_context_current, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_13OpenGLContext_1make_context_current(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_context_current (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 24, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_context_current") < 0)) __PYX_ERR(0, 24, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_context_current", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 24, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.OpenGLContext.make_context_current", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13OpenGLContext_make_context_current(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13OpenGLContext_make_context_current(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_context_current", 1);

  /* "mujoco_py/opengl_context.pyx":26
 *     @abstractmethod
 *     def make_context_current(self):
 *         raise NotImplementedError()             # <<<<<<<<<<<<<<
 * 
 *     @abstractmethod
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_NotImplementedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(0, 26, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":24
 * class OpenGLContext(metaclass=ABCMeta):
 * 
 *     @abstractmethod             # <<<<<<<<<<<<<<
 *     def make_context_current(self):
 *         raise NotImplementedError()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.OpenGLContext.make_context_current", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/opengl_context.pyx":28
 *         raise NotImplementedError()
 * 
 *     @abstractmethod             # <<<<<<<<<<<<<<
 *     def set_buffer_size(self, width, height):
 *         raise NotImplementedError()
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_13OpenGLContext_3set_buffer_size(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_13OpenGLContext_3set_buffer_size = {"set_buffer_size", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13OpenGLContext_3set_buffer_size, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_13OpenGLContext_3set_buffer_size(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
  CYTHON_UNUSED PyObject *__pyx_v_width = 0;
  CYTHON_UNUSED PyObject *__pyx_v_height = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_buffer_size (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_width,&__pyx_n_s_height,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_width)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("set_buffer_size", 1, 3, 3, 1); __PYX_ERR(0, 28, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_height)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("set_buffer_size", 1, 3, 3, 2); __PYX_ERR(0, 28, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_buffer_size") < 0)) __PYX_ERR(0, 28, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_width = values[1];
    __pyx_v_height = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_buffer_size", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 28, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.OpenGLContext.set_buffer_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_13OpenGLContext_2set_buffer_size(__pyx_self, __pyx_v_self, __pyx_v_width, __pyx_v_height);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_13OpenGLContext_2set_buffer_size(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_width, CYTHON_UNUSED PyObject *__pyx_v_height) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_buffer_size", 1);

  /* "mujoco_py/opengl_context.pyx":30
 *     @abstractmethod
 *     def set_buffer_size(self, width, height):
 *         raise NotImplementedError()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_NotImplementedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(0, 30, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":28
 *         raise NotImplementedError()
 * 
 *     @abstractmethod             # <<<<<<<<<<<<<<
 *     def set_buffer_size(self, width, height):
 *         raise NotImplementedError()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.OpenGLContext.set_buffer_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/opengl_context.pyx":43
 *     _GLFW_IS_INITIALIZED = False
 * 
 *     def __init__(self, offscreen=False, quiet=False):             # <<<<<<<<<<<<<<
 *         GlfwContext._init_glfw()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11GlfwContext_1__init__ = {"__init__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11GlfwContext_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_offscreen = 0;
  PyObject *__pyx_v_quiet = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_offscreen,&__pyx_n_s_quiet,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_False)));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_False)));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 43, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_offscreen);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 43, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quiet);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 43, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 43, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_offscreen = values[1];
    __pyx_v_quiet = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 43, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.GlfwContext.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11GlfwContext___init__(__pyx_self, __pyx_v_self, __pyx_v_offscreen, __pyx_v_quiet);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_offscreen, PyObject *__pyx_v_quiet) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "mujoco_py/opengl_context.pyx":44
 * 
 *     def __init__(self, offscreen=False, quiet=False):
 *         GlfwContext._init_glfw()             # <<<<<<<<<<<<<<
 * 
 *         self._width = self._INIT_WIDTH
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_GlfwContext); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init_glfw); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/opengl_context.pyx":46
 *         GlfwContext._init_glfw()
 * 
 *         self._width = self._INIT_WIDTH             # <<<<<<<<<<<<<<
 *         self._height = self._INIT_HEIGHT
 *         self.window = self._create_window(offscreen, quiet=quiet)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_INIT_WIDTH); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_width_2, __pyx_t_1) < 0) __PYX_ERR(0, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/opengl_context.pyx":47
 * 
 *         self._width = self._INIT_WIDTH
 *         self._height = self._INIT_HEIGHT             # <<<<<<<<<<<<<<
 *         self.window = self._create_window(offscreen, quiet=quiet)
 *         self._set_window_size(self._width, self._height)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_INIT_HEIGHT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_height_2, __pyx_t_1) < 0) __PYX_ERR(0, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/opengl_context.pyx":48
 *         self._width = self._INIT_WIDTH
 *         self._height = self._INIT_HEIGHT
 *         self.window = self._create_window(offscreen, quiet=quiet)             # <<<<<<<<<<<<<<
 *         self._set_window_size(self._width, self._height)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_create_window); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_offscreen);
  __Pyx_GIVEREF(__pyx_v_offscreen);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_offscreen)) __PYX_ERR(0, 48, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_quiet, __pyx_v_quiet) < 0) __PYX_ERR(0, 48, __pyx_L1_error)
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_window, __pyx_t_5) < 0) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/opengl_context.pyx":49
 *         self._height = self._INIT_HEIGHT
 *         self.window = self._create_window(offscreen, quiet=quiet)
 *         self._set_window_size(self._width, self._height)             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_window_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_width_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_height_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_1};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 49, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/opengl_context.pyx":43
 *     _GLFW_IS_INITIALIZED = False
 * 
 *     def __init__(self, offscreen=False, quiet=False):             # <<<<<<<<<<<<<<
 *         GlfwContext._init_glfw()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.GlfwContext.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/opengl_context.pyx":51
 *         self._set_window_size(self._width, self._height)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _init_glfw():
 *         if GlfwContext._GLFW_IS_INITIALIZED:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_3_init_glfw(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11GlfwContext_3_init_glfw = {"_init_glfw", (PyCFunction)__pyx_pw_9mujoco_py_4cymj_11GlfwContext_3_init_glfw, METH_NOARGS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_3_init_glfw(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_init_glfw (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11GlfwContext_2_init_glfw(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext_2_init_glfw(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_init_glfw", 1);

  /* "mujoco_py/opengl_context.pyx":53
 *     @staticmethod
 *     def _init_glfw():
 *         if GlfwContext._GLFW_IS_INITIALIZED:             # <<<<<<<<<<<<<<
 *             return
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_GlfwContext); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_GLFW_IS_INITIALIZED); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 53, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "mujoco_py/opengl_context.pyx":54
 *     def _init_glfw():
 *         if GlfwContext._GLFW_IS_INITIALIZED:
 *             return             # <<<<<<<<<<<<<<
 * 
 *         if 'glfw' not in globals():
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "mujoco_py/opengl_context.pyx":53
 *     @staticmethod
 *     def _init_glfw():
 *         if GlfwContext._GLFW_IS_INITIALIZED:             # <<<<<<<<<<<<<<
 *             return
 * 
 */
  }

  /* "mujoco_py/opengl_context.pyx":56
 *             return
 * 
 *         if 'glfw' not in globals():             # <<<<<<<<<<<<<<
 *             raise GlfwError("GLFW not installed")
 * 
 */
  __pyx_t_2 = __Pyx_Globals(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_glfw, __pyx_t_2, Py_NE)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 56, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(__pyx_t_3)) {

    /* "mujoco_py/opengl_context.pyx":57
 * 
 *         if 'glfw' not in globals():
 *             raise GlfwError("GLFW not installed")             # <<<<<<<<<<<<<<
 * 
 *         glfw.set_error_callback(GlfwContext._glfw_error_callback)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_GlfwError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_u_GLFW_not_installed};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 57, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 57, __pyx_L1_error)

    /* "mujoco_py/opengl_context.pyx":56
 *             return
 * 
 *         if 'glfw' not in globals():             # <<<<<<<<<<<<<<
 *             raise GlfwError("GLFW not installed")
 * 
 */
  }

  /* "mujoco_py/opengl_context.pyx":59
 *             raise GlfwError("GLFW not installed")
 * 
 *         glfw.set_error_callback(GlfwContext._glfw_error_callback)             # <<<<<<<<<<<<<<
 * 
 *         # HAX: sometimes first init() fails, while second works fine.
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_glfw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_set_error_callback); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_GlfwContext); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_glfw_error_callback); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_6};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 59, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/opengl_context.pyx":62
 * 
 *         # HAX: sometimes first init() fails, while second works fine.
 *         glfw.init()             # <<<<<<<<<<<<<<
 *         if not glfw.init():
 *             raise GlfwError("Failed to initialize GLFW")
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_glfw); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_init); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/opengl_context.pyx":63
 *         # HAX: sometimes first init() fails, while second works fine.
 *         glfw.init()
 *         if not glfw.init():             # <<<<<<<<<<<<<<
 *             raise GlfwError("Failed to initialize GLFW")
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_glfw); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 63, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = (!__pyx_t_3);
  if (unlikely(__pyx_t_7)) {

    /* "mujoco_py/opengl_context.pyx":64
 *         glfw.init()
 *         if not glfw.init():
 *             raise GlfwError("Failed to initialize GLFW")             # <<<<<<<<<<<<<<
 * 
 *         GlfwContext._GLFW_IS_INITIALIZED = True
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_GlfwError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 64, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_kp_u_Failed_to_initialize_GLFW};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 64, __pyx_L1_error)

    /* "mujoco_py/opengl_context.pyx":63
 *         # HAX: sometimes first init() fails, while second works fine.
 *         glfw.init()
 *         if not glfw.init():             # <<<<<<<<<<<<<<
 *             raise GlfwError("Failed to initialize GLFW")
 * 
 */
  }

  /* "mujoco_py/opengl_context.pyx":66
 *             raise GlfwError("Failed to initialize GLFW")
 * 
 *         GlfwContext._GLFW_IS_INITIALIZED = True             # <<<<<<<<<<<<<<
 * 
 *     def make_context_current(self):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_GlfwContext); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_GLFW_IS_INITIALIZED, Py_True) < 0) __PYX_ERR(0, 66, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/opengl_context.pyx":51
 *         self._set_window_size(self._width, self._height)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _init_glfw():
 *         if GlfwContext._GLFW_IS_INITIALIZED:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.GlfwContext._init_glfw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/opengl_context.pyx":68
 *         GlfwContext._GLFW_IS_INITIALIZED = True
 * 
 *     def make_context_current(self):             # <<<<<<<<<<<<<<
 *         glfw.make_context_current(self.window)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_5make_context_current(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11GlfwContext_5make_context_current = {"make_context_current", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11GlfwContext_5make_context_current, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_5make_context_current(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_context_current (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 68, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_context_current") < 0)) __PYX_ERR(0, 68, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_context_current", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 68, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.GlfwContext.make_context_current", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11GlfwContext_4make_context_current(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext_4make_context_current(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_context_current", 1);

  /* "mujoco_py/opengl_context.pyx":69
 * 
 *     def make_context_current(self):
 *         glfw.make_context_current(self.window)             # <<<<<<<<<<<<<<
 * 
 *     def set_buffer_size(self, width, height):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_glfw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_make_context_current); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_window); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/opengl_context.pyx":68
 *         GlfwContext._GLFW_IS_INITIALIZED = True
 * 
 *     def make_context_current(self):             # <<<<<<<<<<<<<<
 *         glfw.make_context_current(self.window)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("mujoco_py.cymj.GlfwContext.make_context_current", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/opengl_context.pyx":71
 *         glfw.make_context_current(self.window)
 * 
 *     def set_buffer_size(self, width, height):             # <<<<<<<<<<<<<<
 *         self._set_window_size(width, height)
 *         self._width = width
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_7set_buffer_size(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11GlfwContext_7set_buffer_size = {"set_buffer_size", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11GlfwContext_7set_buffer_size, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_7set_buffer_size(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_height = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_buffer_size (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_width,&__pyx_n_s_height,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_width)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("set_buffer_size", 1, 3, 3, 1); __PYX_ERR(0, 71, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_height)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("set_buffer_size", 1, 3, 3, 2); __PYX_ERR(0, 71, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_buffer_size") < 0)) __PYX_ERR(0, 71, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_width = values[1];
    __pyx_v_height = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_buffer_size", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 71, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.GlfwContext.set_buffer_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11GlfwContext_6set_buffer_size(__pyx_self, __pyx_v_self, __pyx_v_width, __pyx_v_height);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext_6set_buffer_size(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_height) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_buffer_size", 1);

  /* "mujoco_py/opengl_context.pyx":72
 * 
 *     def set_buffer_size(self, width, height):
 *         self._set_window_size(width, height)             # <<<<<<<<<<<<<<
 *         self._width = width
 *         self._height = height
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_window_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_width, __pyx_v_height};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 72, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/opengl_context.pyx":73
 *     def set_buffer_size(self, width, height):
 *         self._set_window_size(width, height)
 *         self._width = width             # <<<<<<<<<<<<<<
 *         self._height = height
 * 
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_width_2, __pyx_v_width) < 0) __PYX_ERR(0, 73, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":74
 *         self._set_window_size(width, height)
 *         self._width = width
 *         self._height = height             # <<<<<<<<<<<<<<
 * 
 *     def _create_window(self, offscreen, quiet=False):
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_height_2, __pyx_v_height) < 0) __PYX_ERR(0, 74, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":71
 *         glfw.make_context_current(self.window)
 * 
 *     def set_buffer_size(self, width, height):             # <<<<<<<<<<<<<<
 *         self._set_window_size(width, height)
 *         self._width = width
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.GlfwContext.set_buffer_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/opengl_context.pyx":76
 *         self._height = height
 * 
 *     def _create_window(self, offscreen, quiet=False):             # <<<<<<<<<<<<<<
 *         if offscreen:
 *             if not quiet:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_9_create_window(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11GlfwContext_9_create_window = {"_create_window", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11GlfwContext_9_create_window, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_9_create_window(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_offscreen = 0;
  PyObject *__pyx_v_quiet = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_create_window (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_offscreen,&__pyx_n_s_quiet,0};
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_False)));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 76, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_offscreen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 76, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_create_window", 0, 2, 3, 1); __PYX_ERR(0, 76, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quiet);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 76, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_create_window") < 0)) __PYX_ERR(0, 76, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_offscreen = values[1];
    __pyx_v_quiet = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_create_window", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 76, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.GlfwContext._create_window", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11GlfwContext_8_create_window(__pyx_self, __pyx_v_self, __pyx_v_offscreen, __pyx_v_quiet);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext_8_create_window(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_offscreen, PyObject *__pyx_v_quiet) {
  PyObject *__pyx_v_init_width = NULL;
  PyObject *__pyx_v_init_height = NULL;
  PyObject *__pyx_v_resolution = NULL;
  CYTHON_UNUSED PyObject *__pyx_v__ = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_refresh_rate = NULL;
  PyObject *__pyx_v_window = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *(*__pyx_t_9)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_create_window", 1);

  /* "mujoco_py/opengl_context.pyx":77
 * 
 *     def _create_window(self, offscreen, quiet=False):
 *         if offscreen:             # <<<<<<<<<<<<<<
 *             if not quiet:
 *                 print("Creating offscreen glfw")
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_offscreen); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 77, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "mujoco_py/opengl_context.pyx":78
 *     def _create_window(self, offscreen, quiet=False):
 *         if offscreen:
 *             if not quiet:             # <<<<<<<<<<<<<<
 *                 print("Creating offscreen glfw")
 *             glfw.window_hint(glfw.VISIBLE, 0)
 */
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_quiet); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 78, __pyx_L1_error)
    __pyx_t_2 = (!__pyx_t_1);
    if (__pyx_t_2) {

      /* "mujoco_py/opengl_context.pyx":79
 *         if offscreen:
 *             if not quiet:
 *                 print("Creating offscreen glfw")             # <<<<<<<<<<<<<<
 *             glfw.window_hint(glfw.VISIBLE, 0)
 *             glfw.window_hint(glfw.DOUBLEBUFFER, 0)
 */
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_print, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 79, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "mujoco_py/opengl_context.pyx":78
 *     def _create_window(self, offscreen, quiet=False):
 *         if offscreen:
 *             if not quiet:             # <<<<<<<<<<<<<<
 *                 print("Creating offscreen glfw")
 *             glfw.window_hint(glfw.VISIBLE, 0)
 */
    }

    /* "mujoco_py/opengl_context.pyx":80
 *             if not quiet:
 *                 print("Creating offscreen glfw")
 *             glfw.window_hint(glfw.VISIBLE, 0)             # <<<<<<<<<<<<<<
 *             glfw.window_hint(glfw.DOUBLEBUFFER, 0)
 *             init_width, init_height = self._INIT_WIDTH, self._INIT_HEIGHT
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_glfw); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_window_hint); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_glfw); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_VISIBLE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_6, __pyx_int_0};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 80, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "mujoco_py/opengl_context.pyx":81
 *                 print("Creating offscreen glfw")
 *             glfw.window_hint(glfw.VISIBLE, 0)
 *             glfw.window_hint(glfw.DOUBLEBUFFER, 0)             # <<<<<<<<<<<<<<
 *             init_width, init_height = self._INIT_WIDTH, self._INIT_HEIGHT
 *         else:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_glfw); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_window_hint); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_glfw); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_DOUBLEBUFFER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_4, __pyx_int_0};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 81, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "mujoco_py/opengl_context.pyx":82
 *             glfw.window_hint(glfw.VISIBLE, 0)
 *             glfw.window_hint(glfw.DOUBLEBUFFER, 0)
 *             init_width, init_height = self._INIT_WIDTH, self._INIT_HEIGHT             # <<<<<<<<<<<<<<
 *         else:
 *             if not quiet:
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_INIT_WIDTH); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_INIT_HEIGHT); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_init_width = __pyx_t_3;
    __pyx_t_3 = 0;
    __pyx_v_init_height = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "mujoco_py/opengl_context.pyx":77
 * 
 *     def _create_window(self, offscreen, quiet=False):
 *         if offscreen:             # <<<<<<<<<<<<<<
 *             if not quiet:
 *                 print("Creating offscreen glfw")
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/opengl_context.pyx":84
 *             init_width, init_height = self._INIT_WIDTH, self._INIT_HEIGHT
 *         else:
 *             if not quiet:             # <<<<<<<<<<<<<<
 *                 print("Creating window glfw")
 *             glfw.window_hint(glfw.SAMPLES, 4)
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_quiet); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 84, __pyx_L1_error)
    __pyx_t_1 = (!__pyx_t_2);
    if (__pyx_t_1) {

      /* "mujoco_py/opengl_context.pyx":85
 *         else:
 *             if not quiet:
 *                 print("Creating window glfw")             # <<<<<<<<<<<<<<
 *             glfw.window_hint(glfw.SAMPLES, 4)
 *             glfw.window_hint(glfw.VISIBLE, 1)
 */
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_print, __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 85, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "mujoco_py/opengl_context.pyx":84
 *             init_width, init_height = self._INIT_WIDTH, self._INIT_HEIGHT
 *         else:
 *             if not quiet:             # <<<<<<<<<<<<<<
 *                 print("Creating window glfw")
 *             glfw.window_hint(glfw.SAMPLES, 4)
 */
    }

    /* "mujoco_py/opengl_context.pyx":86
 *             if not quiet:
 *                 print("Creating window glfw")
 *             glfw.window_hint(glfw.SAMPLES, 4)             # <<<<<<<<<<<<<<
 *             glfw.window_hint(glfw.VISIBLE, 1)
 *             glfw.window_hint(glfw.DOUBLEBUFFER, 1)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_glfw); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_window_hint); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_glfw); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_SAMPLES); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_int_4};
      __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 86, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "mujoco_py/opengl_context.pyx":87
 *                 print("Creating window glfw")
 *             glfw.window_hint(glfw.SAMPLES, 4)
 *             glfw.window_hint(glfw.VISIBLE, 1)             # <<<<<<<<<<<<<<
 *             glfw.window_hint(glfw.DOUBLEBUFFER, 1)
 *             resolution, _, refresh_rate = glfw.get_video_mode(
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_glfw); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_window_hint); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_glfw); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_VISIBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_3, __pyx_int_1};
      __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 87, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "mujoco_py/opengl_context.pyx":88
 *             glfw.window_hint(glfw.SAMPLES, 4)
 *             glfw.window_hint(glfw.VISIBLE, 1)
 *             glfw.window_hint(glfw.DOUBLEBUFFER, 1)             # <<<<<<<<<<<<<<
 *             resolution, _, refresh_rate = glfw.get_video_mode(
 *                 glfw.get_primary_monitor())
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_glfw); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 88, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_window_hint); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 88, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_glfw); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 88, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_DOUBLEBUFFER); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 88, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_4, __pyx_int_1};
      __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 88, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "mujoco_py/opengl_context.pyx":89
 *             glfw.window_hint(glfw.VISIBLE, 1)
 *             glfw.window_hint(glfw.DOUBLEBUFFER, 1)
 *             resolution, _, refresh_rate = glfw.get_video_mode(             # <<<<<<<<<<<<<<
 *                 glfw.get_primary_monitor())
 *             init_width, init_height = resolution
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_glfw); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 89, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get_video_mode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 89, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "mujoco_py/opengl_context.pyx":90
 *             glfw.window_hint(glfw.DOUBLEBUFFER, 1)
 *             resolution, _, refresh_rate = glfw.get_video_mode(
 *                 glfw.get_primary_monitor())             # <<<<<<<<<<<<<<
 *             init_width, init_height = resolution
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_glfw); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_get_primary_monitor); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 90, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __pyx_t_8 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_3};
      __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 89, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) {
      PyObject* sequence = __pyx_t_6;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 3)) {
        if (size > 3) __Pyx_RaiseTooManyValuesError(3);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 89, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
        __pyx_t_8 = PyTuple_GET_ITEM(sequence, 2); 
      } else {
        __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
        __pyx_t_8 = PyList_GET_ITEM(sequence, 2); 
      }
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      #else
      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 89, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 89, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_8 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 89, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      #endif
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_5 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 89, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_5);
      index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      index = 1; __pyx_t_3 = __pyx_t_9(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      index = 2; __pyx_t_8 = __pyx_t_9(__pyx_t_5); if (unlikely(!__pyx_t_8)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_8);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_5), 3) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
      __pyx_t_9 = NULL;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L7_unpacking_done;
      __pyx_L6_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_9 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 89, __pyx_L1_error)
      __pyx_L7_unpacking_done:;
    }

    /* "mujoco_py/opengl_context.pyx":89
 *             glfw.window_hint(glfw.VISIBLE, 1)
 *             glfw.window_hint(glfw.DOUBLEBUFFER, 1)
 *             resolution, _, refresh_rate = glfw.get_video_mode(             # <<<<<<<<<<<<<<
 *                 glfw.get_primary_monitor())
 *             init_width, init_height = resolution
 */
    __pyx_v_resolution = __pyx_t_4;
    __pyx_t_4 = 0;
    __pyx_v__ = __pyx_t_3;
    __pyx_t_3 = 0;
    __pyx_v_refresh_rate = __pyx_t_8;
    __pyx_t_8 = 0;

    /* "mujoco_py/opengl_context.pyx":91
 *             resolution, _, refresh_rate = glfw.get_video_mode(
 *                 glfw.get_primary_monitor())
 *             init_width, init_height = resolution             # <<<<<<<<<<<<<<
 * 
 *         self._width = init_width
 */
    if ((likely(PyTuple_CheckExact(__pyx_v_resolution))) || (PyList_CheckExact(__pyx_v_resolution))) {
      PyObject* sequence = __pyx_v_resolution;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 91, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_8 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_8);
      #else
      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 91, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 91, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      #endif
    } else {
      Py_ssize_t index = -1;
      __pyx_t_3 = PyObject_GetIter(__pyx_v_resolution); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 91, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3);
      index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_6);
      index = 1; __pyx_t_8 = __pyx_t_9(__pyx_t_3); if (unlikely(!__pyx_t_8)) goto __pyx_L8_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_8);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_3), 2) < 0) __PYX_ERR(0, 91, __pyx_L1_error)
      __pyx_t_9 = NULL;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L9_unpacking_done;
      __pyx_L8_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_9 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 91, __pyx_L1_error)
      __pyx_L9_unpacking_done:;
    }
    __pyx_v_init_width = __pyx_t_6;
    __pyx_t_6 = 0;
    __pyx_v_init_height = __pyx_t_8;
    __pyx_t_8 = 0;
  }
  __pyx_L3:;

  /* "mujoco_py/opengl_context.pyx":93
 *             init_width, init_height = resolution
 * 
 *         self._width = init_width             # <<<<<<<<<<<<<<
 *         self._height = init_height
 *         window = glfw.create_window(
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_width_2, __pyx_v_init_width) < 0) __PYX_ERR(0, 93, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":94
 * 
 *         self._width = init_width
 *         self._height = init_height             # <<<<<<<<<<<<<<
 *         window = glfw.create_window(
 *             self._width, self._height, "mujoco_py", None, None)
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_height_2, __pyx_v_init_height) < 0) __PYX_ERR(0, 94, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":95
 *         self._width = init_width
 *         self._height = init_height
 *         window = glfw.create_window(             # <<<<<<<<<<<<<<
 *             self._width, self._height, "mujoco_py", None, None)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_glfw); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_create_window_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "mujoco_py/opengl_context.pyx":96
 *         self._height = init_height
 *         window = glfw.create_window(
 *             self._width, self._height, "mujoco_py", None, None)             # <<<<<<<<<<<<<<
 * 
 *         if not window:
 */
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_width_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_height_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[6] = {__pyx_t_5, __pyx_t_6, __pyx_t_4, __pyx_n_u_mujoco_py, Py_None, Py_None};
    __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_7, 5+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_window = __pyx_t_8;
  __pyx_t_8 = 0;

  /* "mujoco_py/opengl_context.pyx":98
 *             self._width, self._height, "mujoco_py", None, None)
 * 
 *         if not window:             # <<<<<<<<<<<<<<
 *             raise GlfwError("Failed to create GLFW window")
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_window); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 98, __pyx_L1_error)
  __pyx_t_2 = (!__pyx_t_1);
  if (unlikely(__pyx_t_2)) {

    /* "mujoco_py/opengl_context.pyx":99
 * 
 *         if not window:
 *             raise GlfwError("Failed to create GLFW window")             # <<<<<<<<<<<<<<
 * 
 *         return window
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_GlfwError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_u_Failed_to_create_GLFW_window};
      __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 99, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_Raise(__pyx_t_8, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __PYX_ERR(0, 99, __pyx_L1_error)

    /* "mujoco_py/opengl_context.pyx":98
 *             self._width, self._height, "mujoco_py", None, None)
 * 
 *         if not window:             # <<<<<<<<<<<<<<
 *             raise GlfwError("Failed to create GLFW window")
 * 
 */
  }

  /* "mujoco_py/opengl_context.pyx":101
 *             raise GlfwError("Failed to create GLFW window")
 * 
 *         return window             # <<<<<<<<<<<<<<
 * 
 *     def get_buffer_size(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_window);
  __pyx_r = __pyx_v_window;
  goto __pyx_L0;

  /* "mujoco_py/opengl_context.pyx":76
 *         self._height = height
 * 
 *     def _create_window(self, offscreen, quiet=False):             # <<<<<<<<<<<<<<
 *         if offscreen:
 *             if not quiet:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("mujoco_py.cymj.GlfwContext._create_window", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_init_width);
  __Pyx_XDECREF(__pyx_v_init_height);
  __Pyx_XDECREF(__pyx_v_resolution);
  __Pyx_XDECREF(__pyx_v__);
  __Pyx_XDECREF(__pyx_v_refresh_rate);
  __Pyx_XDECREF(__pyx_v_window);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/opengl_context.pyx":103
 *         return window
 * 
 *     def get_buffer_size(self):             # <<<<<<<<<<<<<<
 *         return glfw.get_framebuffer_size(self.window)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_11get_buffer_size(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11GlfwContext_11get_buffer_size = {"get_buffer_size", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11GlfwContext_11get_buffer_size, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_11get_buffer_size(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_buffer_size (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 103, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "get_buffer_size") < 0)) __PYX_ERR(0, 103, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_buffer_size", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 103, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.GlfwContext.get_buffer_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11GlfwContext_10get_buffer_size(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext_10get_buffer_size(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_buffer_size", 1);

  /* "mujoco_py/opengl_context.pyx":104
 * 
 *     def get_buffer_size(self):
 *         return glfw.get_framebuffer_size(self.window)             # <<<<<<<<<<<<<<
 * 
 *     def _set_window_size(self, target_width, target_height):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_glfw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get_framebuffer_size); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_window); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 104, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/opengl_context.pyx":103
 *         return window
 * 
 *     def get_buffer_size(self):             # <<<<<<<<<<<<<<
 *         return glfw.get_framebuffer_size(self.window)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("mujoco_py.cymj.GlfwContext.get_buffer_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/opengl_context.pyx":106
 *         return glfw.get_framebuffer_size(self.window)
 * 
 *     def _set_window_size(self, target_width, target_height):             # <<<<<<<<<<<<<<
 *         self.make_context_current()
 *         if target_width != self._width or target_height != self._height:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_13_set_window_size(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11GlfwContext_13_set_window_size = {"_set_window_size", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11GlfwContext_13_set_window_size, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_13_set_window_size(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_target_width = 0;
  PyObject *__pyx_v_target_height = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_window_size (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_target_width,&__pyx_n_s_target_height,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 106, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_target_width)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 106, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_set_window_size", 1, 3, 3, 1); __PYX_ERR(0, 106, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_target_height)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 106, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_set_window_size", 1, 3, 3, 2); __PYX_ERR(0, 106, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_set_window_size") < 0)) __PYX_ERR(0, 106, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_target_width = values[1];
    __pyx_v_target_height = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_window_size", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 106, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.GlfwContext._set_window_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11GlfwContext_12_set_window_size(__pyx_self, __pyx_v_self, __pyx_v_target_width, __pyx_v_target_height);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext_12_set_window_size(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_target_width, PyObject *__pyx_v_target_height) {
  PyObject *__pyx_v_width = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_height = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *(*__pyx_t_8)(PyObject *);
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_window_size", 1);

  /* "mujoco_py/opengl_context.pyx":107
 * 
 *     def _set_window_size(self, target_width, target_height):
 *         self.make_context_current()             # <<<<<<<<<<<<<<
 *         if target_width != self._width or target_height != self._height:
 *             self._width = target_width
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_make_context_current); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/opengl_context.pyx":108
 *     def _set_window_size(self, target_width, target_height):
 *         self.make_context_current()
 *         if target_width != self._width or target_height != self._height:             # <<<<<<<<<<<<<<
 *             self._width = target_width
 *             self._height = target_height
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_width_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_target_width, __pyx_t_1, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!__pyx_t_6) {
  } else {
    __pyx_t_5 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_height_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_target_height, __pyx_t_2, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_5 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_5) {

    /* "mujoco_py/opengl_context.pyx":109
 *         self.make_context_current()
 *         if target_width != self._width or target_height != self._height:
 *             self._width = target_width             # <<<<<<<<<<<<<<
 *             self._height = target_height
 *             glfw.set_window_size(self.window, target_width, target_height)
 */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_width_2, __pyx_v_target_width) < 0) __PYX_ERR(0, 109, __pyx_L1_error)

    /* "mujoco_py/opengl_context.pyx":110
 *         if target_width != self._width or target_height != self._height:
 *             self._width = target_width
 *             self._height = target_height             # <<<<<<<<<<<<<<
 *             glfw.set_window_size(self.window, target_width, target_height)
 * 
 */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_height_2, __pyx_v_target_height) < 0) __PYX_ERR(0, 110, __pyx_L1_error)

    /* "mujoco_py/opengl_context.pyx":111
 *             self._width = target_width
 *             self._height = target_height
 *             glfw.set_window_size(self.window, target_width, target_height)             # <<<<<<<<<<<<<<
 * 
 *             # HAX: When running on a Mac with retina screen, the size
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_glfw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_set_window_size_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_window); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_2, __pyx_v_target_width, __pyx_v_target_height};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "mujoco_py/opengl_context.pyx":115
 *             # HAX: When running on a Mac with retina screen, the size
 *             # sometimes doubles
 *             width, height = glfw.get_framebuffer_size(self.window)             # <<<<<<<<<<<<<<
 *             if target_width != width and "darwin" in sys.platform.lower():
 *                 glfw.set_window_size(self.window, target_width // 2, target_height // 2)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_glfw); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get_framebuffer_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_window); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_3};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 115, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 115, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      #else
      __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 115, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 115, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 115, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_7);
      index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      index = 1; __pyx_t_3 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 115, __pyx_L1_error)
      __pyx_t_8 = NULL;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L7_unpacking_done;
      __pyx_L6_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_8 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 115, __pyx_L1_error)
      __pyx_L7_unpacking_done:;
    }
    __pyx_v_width = __pyx_t_2;
    __pyx_t_2 = 0;
    __pyx_v_height = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "mujoco_py/opengl_context.pyx":116
 *             # sometimes doubles
 *             width, height = glfw.get_framebuffer_size(self.window)
 *             if target_width != width and "darwin" in sys.platform.lower():             # <<<<<<<<<<<<<<
 *                 glfw.set_window_size(self.window, target_width // 2, target_height // 2)
 * 
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_target_width, __pyx_v_width, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 116, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 116, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L9_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_sys); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_platform); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_lower); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 116, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_darwin, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 116, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = __pyx_t_6;
    __pyx_L9_bool_binop_done:;
    if (__pyx_t_5) {

      /* "mujoco_py/opengl_context.pyx":117
 *             width, height = glfw.get_framebuffer_size(self.window)
 *             if target_width != width and "darwin" in sys.platform.lower():
 *                 glfw.set_window_size(self.window, target_width // 2, target_height // 2)             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_glfw); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 117, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_set_window_size_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 117, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_window); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 117, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = __Pyx_PyInt_FloorDivideObjC(__pyx_v_target_width, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 117, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = __Pyx_PyInt_FloorDivideObjC(__pyx_v_target_height, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 117, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = NULL;
      __pyx_t_4 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_4 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[4] = {__pyx_t_10, __pyx_t_3, __pyx_t_7, __pyx_t_9};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "mujoco_py/opengl_context.pyx":116
 *             # sometimes doubles
 *             width, height = glfw.get_framebuffer_size(self.window)
 *             if target_width != width and "darwin" in sys.platform.lower():             # <<<<<<<<<<<<<<
 *                 glfw.set_window_size(self.window, target_width // 2, target_height // 2)
 * 
 */
    }

    /* "mujoco_py/opengl_context.pyx":108
 *     def _set_window_size(self, target_width, target_height):
 *         self.make_context_current()
 *         if target_width != self._width or target_height != self._height:             # <<<<<<<<<<<<<<
 *             self._width = target_width
 *             self._height = target_height
 */
  }

  /* "mujoco_py/opengl_context.pyx":106
 *         return glfw.get_framebuffer_size(self.window)
 * 
 *     def _set_window_size(self, target_width, target_height):             # <<<<<<<<<<<<<<
 *         self.make_context_current()
 *         if target_width != self._width or target_height != self._height:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("mujoco_py.cymj.GlfwContext._set_window_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_width);
  __Pyx_XDECREF(__pyx_v_height);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/opengl_context.pyx":119
 *                 glfw.set_window_size(self.window, target_width // 2, target_height // 2)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _glfw_error_callback(error_code, description):
 *         print("GLFW error (code %d): %s", error_code, description)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_15_glfw_error_callback(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_11GlfwContext_15_glfw_error_callback = {"_glfw_error_callback", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11GlfwContext_15_glfw_error_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_11GlfwContext_15_glfw_error_callback(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_error_code = 0;
  PyObject *__pyx_v_description = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_glfw_error_callback (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_error_code,&__pyx_n_s_description,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_error_code)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 119, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_description)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 119, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_glfw_error_callback", 1, 2, 2, 1); __PYX_ERR(0, 119, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_glfw_error_callback") < 0)) __PYX_ERR(0, 119, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_error_code = values[0];
    __pyx_v_description = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_glfw_error_callback", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 119, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.GlfwContext._glfw_error_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_11GlfwContext_14_glfw_error_callback(__pyx_self, __pyx_v_error_code, __pyx_v_description);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_11GlfwContext_14_glfw_error_callback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_error_code, PyObject *__pyx_v_description) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_glfw_error_callback", 1);

  /* "mujoco_py/opengl_context.pyx":121
 *     @staticmethod
 *     def _glfw_error_callback(error_code, description):
 *         print("GLFW error (code %d): %s", error_code, description)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_kp_u_GLFW_error_code_d_s);
  __Pyx_GIVEREF(__pyx_kp_u_GLFW_error_code_d_s);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_GLFW_error_code_d_s)) __PYX_ERR(0, 121, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_error_code);
  __Pyx_GIVEREF(__pyx_v_error_code);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_error_code)) __PYX_ERR(0, 121, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_description);
  __Pyx_GIVEREF(__pyx_v_description);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_description)) __PYX_ERR(0, 121, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_print, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/opengl_context.pyx":119
 *                 glfw.set_window_size(self.window, target_width // 2, target_height // 2)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _glfw_error_callback(error_code, description):
 *         print("GLFW error (code %d): %s", error_code, description)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("mujoco_py.cymj.GlfwContext._glfw_error_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/opengl_context.pyx":126
 * class OffscreenOpenGLContext():
 * 
 *     def __init__(self, device_id):             # <<<<<<<<<<<<<<
 *         self.device_id = device_id
 *         res = initOpenGL(device_id)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_22OffscreenOpenGLContext_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_22OffscreenOpenGLContext_1__init__ = {"__init__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_22OffscreenOpenGLContext_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_22OffscreenOpenGLContext_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_device_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_device_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 126, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_device_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 126, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 126, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 126, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_device_id = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 126, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.OffscreenOpenGLContext.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_22OffscreenOpenGLContext___init__(__pyx_self, __pyx_v_self, __pyx_v_device_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_22OffscreenOpenGLContext___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_device_id) {
  int __pyx_v_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "mujoco_py/opengl_context.pyx":127
 * 
 *     def __init__(self, device_id):
 *         self.device_id = device_id             # <<<<<<<<<<<<<<
 *         res = initOpenGL(device_id)
 *         if res != 1:
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_device_id, __pyx_v_device_id) < 0) __PYX_ERR(0, 127, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":128
 *     def __init__(self, device_id):
 *         self.device_id = device_id
 *         res = initOpenGL(device_id)             # <<<<<<<<<<<<<<
 *         if res != 1:
 *             raise RuntimeError("Failed to initialize OpenGL")
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_device_id); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 128, __pyx_L1_error)
  __pyx_v_res = initOpenGL(__pyx_t_1);

  /* "mujoco_py/opengl_context.pyx":129
 *         self.device_id = device_id
 *         res = initOpenGL(device_id)
 *         if res != 1:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("Failed to initialize OpenGL")
 * 
 */
  __pyx_t_2 = (__pyx_v_res != 1);
  if (unlikely(__pyx_t_2)) {

    /* "mujoco_py/opengl_context.pyx":130
 *         res = initOpenGL(device_id)
 *         if res != 1:
 *             raise RuntimeError("Failed to initialize OpenGL")             # <<<<<<<<<<<<<<
 * 
 *     def close(self):
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__37, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 130, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 130, __pyx_L1_error)

    /* "mujoco_py/opengl_context.pyx":129
 *         self.device_id = device_id
 *         res = initOpenGL(device_id)
 *         if res != 1:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("Failed to initialize OpenGL")
 * 
 */
  }

  /* "mujoco_py/opengl_context.pyx":126
 * class OffscreenOpenGLContext():
 * 
 *     def __init__(self, device_id):             # <<<<<<<<<<<<<<
 *         self.device_id = device_id
 *         res = initOpenGL(device_id)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.OffscreenOpenGLContext.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/opengl_context.pyx":132
 *             raise RuntimeError("Failed to initialize OpenGL")
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         # TODO: properly close OpenGL in our contexts
 *         closeOpenGL()
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_22OffscreenOpenGLContext_3close(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_22OffscreenOpenGLContext_3close = {"close", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_22OffscreenOpenGLContext_3close, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_22OffscreenOpenGLContext_3close(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 132, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "close") < 0)) __PYX_ERR(0, 132, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("close", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 132, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.OffscreenOpenGLContext.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_22OffscreenOpenGLContext_2close(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_22OffscreenOpenGLContext_2close(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close", 1);

  /* "mujoco_py/opengl_context.pyx":134
 *     def close(self):
 *         # TODO: properly close OpenGL in our contexts
 *         closeOpenGL()             # <<<<<<<<<<<<<<
 * 
 *     def make_context_current(self):
 */
  closeOpenGL();

  /* "mujoco_py/opengl_context.pyx":132
 *             raise RuntimeError("Failed to initialize OpenGL")
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         # TODO: properly close OpenGL in our contexts
 *         closeOpenGL()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/opengl_context.pyx":136
 *         closeOpenGL()
 * 
 *     def make_context_current(self):             # <<<<<<<<<<<<<<
 *         makeOpenGLContextCurrent(self.device_id)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_22OffscreenOpenGLContext_5make_context_current(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_22OffscreenOpenGLContext_5make_context_current = {"make_context_current", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_22OffscreenOpenGLContext_5make_context_current, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_22OffscreenOpenGLContext_5make_context_current(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_context_current (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 136, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_context_current") < 0)) __PYX_ERR(0, 136, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_context_current", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 136, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.OffscreenOpenGLContext.make_context_current", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_22OffscreenOpenGLContext_4make_context_current(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_22OffscreenOpenGLContext_4make_context_current(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_context_current", 1);

  /* "mujoco_py/opengl_context.pyx":137
 * 
 *     def make_context_current(self):
 *         makeOpenGLContextCurrent(self.device_id)             # <<<<<<<<<<<<<<
 * 
 *     def set_buffer_size(self, int width, int height):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_device_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 137, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (void)(makeOpenGLContextCurrent(__pyx_t_2));

  /* "mujoco_py/opengl_context.pyx":136
 *         closeOpenGL()
 * 
 *     def make_context_current(self):             # <<<<<<<<<<<<<<
 *         makeOpenGLContextCurrent(self.device_id)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.OffscreenOpenGLContext.make_context_current", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/opengl_context.pyx":139
 *         makeOpenGLContextCurrent(self.device_id)
 * 
 *     def set_buffer_size(self, int width, int height):             # <<<<<<<<<<<<<<
 *         res = setOpenGLBufferSize(self.device_id, width, height)
 *         if res != 1:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_22OffscreenOpenGLContext_7set_buffer_size(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_22OffscreenOpenGLContext_7set_buffer_size = {"set_buffer_size", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_22OffscreenOpenGLContext_7set_buffer_size, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_22OffscreenOpenGLContext_7set_buffer_size(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  int __pyx_v_width;
  int __pyx_v_height;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_buffer_size (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_width,&__pyx_n_s_height,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_width)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("set_buffer_size", 1, 3, 3, 1); __PYX_ERR(0, 139, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_height)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("set_buffer_size", 1, 3, 3, 2); __PYX_ERR(0, 139, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_buffer_size") < 0)) __PYX_ERR(0, 139, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_width = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_width == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L3_error)
    __pyx_v_height = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_height == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_buffer_size", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 139, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.OffscreenOpenGLContext.set_buffer_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_22OffscreenOpenGLContext_6set_buffer_size(__pyx_self, __pyx_v_self, __pyx_v_width, __pyx_v_height);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_22OffscreenOpenGLContext_6set_buffer_size(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, int __pyx_v_width, int __pyx_v_height) {
  int __pyx_v_res;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_buffer_size", 1);

  /* "mujoco_py/opengl_context.pyx":140
 * 
 *     def set_buffer_size(self, int width, int height):
 *         res = setOpenGLBufferSize(self.device_id, width, height)             # <<<<<<<<<<<<<<
 *         if res != 1:
 *             raise RuntimeError("Failed to set buffer size")
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_device_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_res = setOpenGLBufferSize(__pyx_t_2, __pyx_v_width, __pyx_v_height);

  /* "mujoco_py/opengl_context.pyx":141
 *     def set_buffer_size(self, int width, int height):
 *         res = setOpenGLBufferSize(self.device_id, width, height)
 *         if res != 1:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("Failed to set buffer size")
 */
  __pyx_t_3 = (__pyx_v_res != 1);
  if (unlikely(__pyx_t_3)) {

    /* "mujoco_py/opengl_context.pyx":142
 *         res = setOpenGLBufferSize(self.device_id, width, height)
 *         if res != 1:
 *             raise RuntimeError("Failed to set buffer size")             # <<<<<<<<<<<<<<
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 142, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 142, __pyx_L1_error)

    /* "mujoco_py/opengl_context.pyx":141
 *     def set_buffer_size(self, int width, int height):
 *         res = setOpenGLBufferSize(self.device_id, width, height)
 *         if res != 1:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("Failed to set buffer size")
 */
  }

  /* "mujoco_py/opengl_context.pyx":139
 *         makeOpenGLContextCurrent(self.device_id)
 * 
 *     def set_buffer_size(self, int width, int height):             # <<<<<<<<<<<<<<
 *         res = setOpenGLBufferSize(self.device_id, width, height)
 *         if res != 1:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.OffscreenOpenGLContext.set_buffer_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":68
 *     cdef public object render_callback
 * 
 *     def __cinit__(self, PyMjModel model, PyMjData data=None, int nsubsteps=1,             # <<<<<<<<<<<<<<
 *                   udd_callback=None, substep_callback=None, userdata_names=None,
 *                   render_callback=None):
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_5MjSim_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_5MjSim_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_model = 0;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_data = 0;
  int __pyx_v_nsubsteps;
  PyObject *__pyx_v_udd_callback = 0;
  PyObject *__pyx_v_substep_callback = 0;
  PyObject *__pyx_v_userdata_names = 0;
  PyObject *__pyx_v_render_callback = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[7] = {0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,&__pyx_n_s_data,&__pyx_n_s_nsubsteps,&__pyx_n_s_udd_callback,&__pyx_n_s_substep_callback,&__pyx_n_s_userdata_names,&__pyx_n_s_render_callback,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS((PyObject *)((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)Py_None));

    /* "mujoco_py/mjsim.pyx":69
 * 
 *     def __cinit__(self, PyMjModel model, PyMjData data=None, int nsubsteps=1,
 *                   udd_callback=None, substep_callback=None, userdata_names=None,             # <<<<<<<<<<<<<<
 *                   render_callback=None):
 *         self.nsubsteps = nsubsteps
 */
    values[3] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_None));
    values[4] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_None));
    values[5] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_None));

    /* "mujoco_py/mjsim.pyx":70
 *     def __cinit__(self, PyMjModel model, PyMjData data=None, int nsubsteps=1,
 *                   udd_callback=None, substep_callback=None, userdata_names=None,
 *                   render_callback=None):             # <<<<<<<<<<<<<<
 *         self.nsubsteps = nsubsteps
 *         self.model = model
 */
    values[6] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  7: values[6] = __Pyx_Arg_VARARGS(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_model)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 68, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 68, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nsubsteps);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 68, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_udd_callback);
          if (value) { values[3] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 68, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_substep_callback);
          if (value) { values[4] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 68, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_userdata_names);
          if (value) { values[5] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 68, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_render_callback);
          if (value) { values[6] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 68, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(5, 68, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  7: values[6] = __Pyx_Arg_VARARGS(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_model = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)values[0]);
    __pyx_v_data = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)values[1]);
    if (values[2]) {
      __pyx_v_nsubsteps = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_nsubsteps == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 68, __pyx_L3_error)
    } else {
      __pyx_v_nsubsteps = ((int)1);
    }
    __pyx_v_udd_callback = values[3];
    __pyx_v_substep_callback = values[4];
    __pyx_v_userdata_names = values[5];
    __pyx_v_render_callback = values[6];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 7, __pyx_nargs); __PYX_ERR(5, 68, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_model), __pyx_ptype_9mujoco_py_4cymj_PyMjModel, 1, "model", 0))) __PYX_ERR(5, 68, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_data), __pyx_ptype_9mujoco_py_4cymj_PyMjData, 1, "data", 0))) __PYX_ERR(5, 68, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), __pyx_v_model, __pyx_v_data, __pyx_v_nsubsteps, __pyx_v_udd_callback, __pyx_v_substep_callback, __pyx_v_userdata_names, __pyx_v_render_callback);

  /* "mujoco_py/mjsim.pyx":68
 *     cdef public object render_callback
 * 
 *     def __cinit__(self, PyMjModel model, PyMjData data=None, int nsubsteps=1,             # <<<<<<<<<<<<<<
 *                   udd_callback=None, substep_callback=None, userdata_names=None,
 *                   render_callback=None):
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_5MjSim___cinit__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *__pyx_v_model, struct __pyx_obj_9mujoco_py_4cymj_PyMjData *__pyx_v_data, int __pyx_v_nsubsteps, PyObject *__pyx_v_udd_callback, PyObject *__pyx_v_substep_callback, PyObject *__pyx_v_userdata_names, PyObject *__pyx_v_render_callback) {
  mjData *__pyx_v__data;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "mujoco_py/mjsim.pyx":71
 *                   udd_callback=None, substep_callback=None, userdata_names=None,
 *                   render_callback=None):
 *         self.nsubsteps = nsubsteps             # <<<<<<<<<<<<<<
 *         self.model = model
 *         if data is None:
 */
  __pyx_v_self->nsubsteps = __pyx_v_nsubsteps;

  /* "mujoco_py/mjsim.pyx":72
 *                   render_callback=None):
 *         self.nsubsteps = nsubsteps
 *         self.model = model             # <<<<<<<<<<<<<<
 *         if data is None:
 *             with wrap_mujoco_warning():
 */
  __Pyx_INCREF((PyObject *)__pyx_v_model);
  __Pyx_GIVEREF((PyObject *)__pyx_v_model);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->model);
  __Pyx_DECREF((PyObject *)__pyx_v_self->model);
  __pyx_v_self->model = __pyx_v_model;

  /* "mujoco_py/mjsim.pyx":73
 *         self.nsubsteps = nsubsteps
 *         self.model = model
 *         if data is None:             # <<<<<<<<<<<<<<
 *             with wrap_mujoco_warning():
 *                 _data = mj_makeData(self.model.ptr)
 */
  __pyx_t_1 = (((PyObject *)__pyx_v_data) == Py_None);
  if (__pyx_t_1) {

    /* "mujoco_py/mjsim.pyx":74
 *         self.model = model
 *         if data is None:
 *             with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *                 _data = mj_makeData(self.model.ptr)
 *             if _data == NULL:
 */
    /*with:*/ {
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_wrap_mujoco_warning); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 74, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = NULL;
      __pyx_t_5 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
          __pyx_t_5 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
        __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 74, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_exit); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 74, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 74, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = NULL;
      __pyx_t_5 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
          __pyx_t_5 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
        __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 74, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      /*try:*/ {
        {
          (void)__pyx_t_8; (void)__pyx_t_9; (void)__pyx_t_10; /* mark used */
          /*try:*/ {

            /* "mujoco_py/mjsim.pyx":75
 *         if data is None:
 *             with wrap_mujoco_warning():
 *                 _data = mj_makeData(self.model.ptr)             # <<<<<<<<<<<<<<
 *             if _data == NULL:
 *                 raise Exception('mj_makeData failed!')
 */
            __pyx_v__data = mj_makeData(__pyx_v_self->model->ptr);

            /* "mujoco_py/mjsim.pyx":74
 *         self.model = model
 *         if data is None:
 *             with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *                 _data = mj_makeData(self.model.ptr)
 *             if _data == NULL:
 */
          }
        }
      }
      /*finally:*/ {
        /*normal exit:*/{
          if (__pyx_t_6) {
            __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__17, NULL);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 74, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          }
          goto __pyx_L7;
        }
        __pyx_L7:;
      }
      goto __pyx_L14;
      __pyx_L4_error:;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L1_error;
      __pyx_L14:;
    }

    /* "mujoco_py/mjsim.pyx":76
 *             with wrap_mujoco_warning():
 *                 _data = mj_makeData(self.model.ptr)
 *             if _data == NULL:             # <<<<<<<<<<<<<<
 *                 raise Exception('mj_makeData failed!')
 *             self.data = WrapMjData(_data, self.model)
 */
    __pyx_t_1 = (__pyx_v__data == NULL);
    if (unlikely(__pyx_t_1)) {

      /* "mujoco_py/mjsim.pyx":77
 *                 _data = mj_makeData(self.model.ptr)
 *             if _data == NULL:
 *                 raise Exception('mj_makeData failed!')             # <<<<<<<<<<<<<<
 *             self.data = WrapMjData(_data, self.model)
 *         else:
 */
      __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 77, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_Raise(__pyx_t_2, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __PYX_ERR(5, 77, __pyx_L1_error)

      /* "mujoco_py/mjsim.pyx":76
 *             with wrap_mujoco_warning():
 *                 _data = mj_makeData(self.model.ptr)
 *             if _data == NULL:             # <<<<<<<<<<<<<<
 *                 raise Exception('mj_makeData failed!')
 *             self.data = WrapMjData(_data, self.model)
 */
    }

    /* "mujoco_py/mjsim.pyx":78
 *             if _data == NULL:
 *                 raise Exception('mj_makeData failed!')
 *             self.data = WrapMjData(_data, self.model)             # <<<<<<<<<<<<<<
 *         else:
 *             self.data = data
 */
    __pyx_t_2 = ((PyObject *)__pyx_v_self->model);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjData(__pyx_v__data, ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)__pyx_t_2))); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 78, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF((PyObject *)__pyx_v_self->data);
    __Pyx_DECREF((PyObject *)__pyx_v_self->data);
    __pyx_v_self->data = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "mujoco_py/mjsim.pyx":73
 *         self.nsubsteps = nsubsteps
 *         self.model = model
 *         if data is None:             # <<<<<<<<<<<<<<
 *             with wrap_mujoco_warning():
 *                 _data = mj_makeData(self.model.ptr)
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/mjsim.pyx":80
 *             self.data = WrapMjData(_data, self.model)
 *         else:
 *             self.data = data             # <<<<<<<<<<<<<<
 * 
 *         self.render_contexts = []
 */
  /*else*/ {
    __Pyx_INCREF((PyObject *)__pyx_v_data);
    __Pyx_GIVEREF((PyObject *)__pyx_v_data);
    __Pyx_GOTREF((PyObject *)__pyx_v_self->data);
    __Pyx_DECREF((PyObject *)__pyx_v_self->data);
    __pyx_v_self->data = __pyx_v_data;
  }
  __pyx_L3:;

  /* "mujoco_py/mjsim.pyx":82
 *             self.data = data
 * 
 *         self.render_contexts = []             # <<<<<<<<<<<<<<
 *         self._render_context_offscreen = None
 *         self._render_context_window = None
 */
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->render_contexts);
  __Pyx_DECREF(__pyx_v_self->render_contexts);
  __pyx_v_self->render_contexts = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "mujoco_py/mjsim.pyx":83
 * 
 *         self.render_contexts = []
 *         self._render_context_offscreen = None             # <<<<<<<<<<<<<<
 *         self._render_context_window = None
 *         self.udd_state = None
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_render_context_offscreen);
  __Pyx_DECREF(__pyx_v_self->_render_context_offscreen);
  __pyx_v_self->_render_context_offscreen = Py_None;

  /* "mujoco_py/mjsim.pyx":84
 *         self.render_contexts = []
 *         self._render_context_offscreen = None
 *         self._render_context_window = None             # <<<<<<<<<<<<<<
 *         self.udd_state = None
 *         self.udd_callback = udd_callback
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_render_context_window);
  __Pyx_DECREF(__pyx_v_self->_render_context_window);
  __pyx_v_self->_render_context_window = Py_None;

  /* "mujoco_py/mjsim.pyx":85
 *         self._render_context_offscreen = None
 *         self._render_context_window = None
 *         self.udd_state = None             # <<<<<<<<<<<<<<
 *         self.udd_callback = udd_callback
 *         self.render_callback = render_callback
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->udd_state);
  __Pyx_DECREF(__pyx_v_self->udd_state);
  __pyx_v_self->udd_state = ((PyObject*)Py_None);

  /* "mujoco_py/mjsim.pyx":86
 *         self._render_context_window = None
 *         self.udd_state = None
 *         self.udd_callback = udd_callback             # <<<<<<<<<<<<<<
 *         self.render_callback = render_callback
 *         self.extras = {}
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_udd_callback, __pyx_v_udd_callback) < 0) __PYX_ERR(5, 86, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":87
 *         self.udd_state = None
 *         self.udd_callback = udd_callback
 *         self.render_callback = render_callback             # <<<<<<<<<<<<<<
 *         self.extras = {}
 *         self.set_substep_callback(substep_callback, userdata_names)
 */
  __Pyx_INCREF(__pyx_v_render_callback);
  __Pyx_GIVEREF(__pyx_v_render_callback);
  __Pyx_GOTREF(__pyx_v_self->render_callback);
  __Pyx_DECREF(__pyx_v_self->render_callback);
  __pyx_v_self->render_callback = __pyx_v_render_callback;

  /* "mujoco_py/mjsim.pyx":88
 *         self.udd_callback = udd_callback
 *         self.render_callback = render_callback
 *         self.extras = {}             # <<<<<<<<<<<<<<
 *         self.set_substep_callback(substep_callback, userdata_names)
 * 
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->extras);
  __Pyx_DECREF(__pyx_v_self->extras);
  __pyx_v_self->extras = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "mujoco_py/mjsim.pyx":89
 *         self.render_callback = render_callback
 *         self.extras = {}
 *         self.set_substep_callback(substep_callback, userdata_names)             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_substep_callback); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_substep_callback, __pyx_v_userdata_names};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 89, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/mjsim.pyx":68
 *     cdef public object render_callback
 * 
 *     def __cinit__(self, PyMjModel model, PyMjData data=None, int nsubsteps=1,             # <<<<<<<<<<<<<<
 *                   udd_callback=None, substep_callback=None, userdata_names=None,
 *                   render_callback=None):
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":91
 *         self.set_substep_callback(substep_callback, userdata_names)
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """
 *         Resets the simulation data and clears buffers.
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_3reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_5MjSim_2reset, "\n        Resets the simulation data and clears buffers.\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_3reset = {"reset", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_3reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_2reset};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_3reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "reset", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_2reset(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_2reset(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 1);

  /* "mujoco_py/mjsim.pyx":95
 *         Resets the simulation data and clears buffers.
 *         """
 *         with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *             mj_resetData(self.model.ptr, self.data.ptr)
 * 
 */
  /*with:*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_wrap_mujoco_warning); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 95, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 95, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 95, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        (void)__pyx_t_7; (void)__pyx_t_8; (void)__pyx_t_9; /* mark used */
        /*try:*/ {

          /* "mujoco_py/mjsim.pyx":96
 *         """
 *         with wrap_mujoco_warning():
 *             mj_resetData(self.model.ptr, self.data.ptr)             # <<<<<<<<<<<<<<
 * 
 *         self.udd_state = None
 */
          mj_resetData(__pyx_v_self->model->ptr, __pyx_v_self->data->ptr);

          /* "mujoco_py/mjsim.pyx":95
 *         Resets the simulation data and clears buffers.
 *         """
 *         with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *             mj_resetData(self.model.ptr, self.data.ptr)
 * 
 */
        }
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_5) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__17, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 95, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L13;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L1_error;
    __pyx_L13:;
  }

  /* "mujoco_py/mjsim.pyx":98
 *             mj_resetData(self.model.ptr, self.data.ptr)
 * 
 *         self.udd_state = None             # <<<<<<<<<<<<<<
 *         self.step_udd()
 * 
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->udd_state);
  __Pyx_DECREF(__pyx_v_self->udd_state);
  __pyx_v_self->udd_state = ((PyObject*)Py_None);

  /* "mujoco_py/mjsim.pyx":99
 * 
 *         self.udd_state = None
 *         self.step_udd()             # <<<<<<<<<<<<<<
 * 
 *     def forward(self):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_step_udd); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":91
 *         self.set_substep_callback(substep_callback, userdata_names)
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """
 *         Resets the simulation data and clears buffers.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":101
 *         self.step_udd()
 * 
 *     def forward(self):             # <<<<<<<<<<<<<<
 *         """
 *         Computes the forward kinematics. Calls ``mj_forward`` internally.
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_5forward(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_5MjSim_4forward, "\n        Computes the forward kinematics. Calls ``mj_forward`` internally.\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_5forward = {"forward", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_5forward, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_4forward};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_5forward(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("forward (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("forward", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "forward", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_4forward(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_4forward(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("forward", 1);

  /* "mujoco_py/mjsim.pyx":105
 *         Computes the forward kinematics. Calls ``mj_forward`` internally.
 *         """
 *         with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *             mj_forward(self.model.ptr, self.data.ptr)
 * 
 */
  /*with:*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_wrap_mujoco_warning); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 105, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 105, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 105, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 105, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 105, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        (void)__pyx_t_7; (void)__pyx_t_8; (void)__pyx_t_9; /* mark used */
        /*try:*/ {

          /* "mujoco_py/mjsim.pyx":106
 *         """
 *         with wrap_mujoco_warning():
 *             mj_forward(self.model.ptr, self.data.ptr)             # <<<<<<<<<<<<<<
 * 
 *     def set_constants(self):
 */
          mj_forward(__pyx_v_self->model->ptr, __pyx_v_self->data->ptr);

          /* "mujoco_py/mjsim.pyx":105
 *         Computes the forward kinematics. Calls ``mj_forward`` internally.
 *         """
 *         with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *             mj_forward(self.model.ptr, self.data.ptr)
 * 
 */
        }
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_5) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__17, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 105, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L13;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L1_error;
    __pyx_L13:;
  }

  /* "mujoco_py/mjsim.pyx":101
 *         self.step_udd()
 * 
 *     def forward(self):             # <<<<<<<<<<<<<<
 *         """
 *         Computes the forward kinematics. Calls ``mj_forward`` internally.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":108
 *             mj_forward(self.model.ptr, self.data.ptr)
 * 
 *     def set_constants(self):             # <<<<<<<<<<<<<<
 *         """
 *         Set constant fields of mjModel, corresponding to qpos0 configuration.
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_7set_constants(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_5MjSim_6set_constants, "\n        Set constant fields of mjModel, corresponding to qpos0 configuration.\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_7set_constants = {"set_constants", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_7set_constants, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_6set_constants};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_7set_constants(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_constants (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("set_constants", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "set_constants", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_6set_constants(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_6set_constants(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_constants", 1);

  /* "mujoco_py/mjsim.pyx":112
 *         Set constant fields of mjModel, corresponding to qpos0 configuration.
 *         """
 *         with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *             mj_setConst(self.model.ptr, self.data.ptr)
 * 
 */
  /*with:*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_wrap_mujoco_warning); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 112, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 112, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 112, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        (void)__pyx_t_7; (void)__pyx_t_8; (void)__pyx_t_9; /* mark used */
        /*try:*/ {

          /* "mujoco_py/mjsim.pyx":113
 *         """
 *         with wrap_mujoco_warning():
 *             mj_setConst(self.model.ptr, self.data.ptr)             # <<<<<<<<<<<<<<
 * 
 *     def step(self, with_udd=True):
 */
          mj_setConst(__pyx_v_self->model->ptr, __pyx_v_self->data->ptr);

          /* "mujoco_py/mjsim.pyx":112
 *         Set constant fields of mjModel, corresponding to qpos0 configuration.
 *         """
 *         with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *             mj_setConst(self.model.ptr, self.data.ptr)
 * 
 */
        }
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_5) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__17, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 112, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L13;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L1_error;
    __pyx_L13:;
  }

  /* "mujoco_py/mjsim.pyx":108
 *             mj_forward(self.model.ptr, self.data.ptr)
 * 
 *     def set_constants(self):             # <<<<<<<<<<<<<<
 *         """
 *         Set constant fields of mjModel, corresponding to qpos0 configuration.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.set_constants", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":115
 *             mj_setConst(self.model.ptr, self.data.ptr)
 * 
 *     def step(self, with_udd=True):             # <<<<<<<<<<<<<<
 *         """
 *         Advances the simulation by calling ``mj_step``.
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_9step(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_5MjSim_8step, "\n        Advances the simulation by calling ``mj_step``.\n\n        If ``qpos`` or ``qvel`` have been modified directly, the user is required to call\n        :meth:`.forward` before :meth:`.step` if their ``udd_callback`` requires access to MuJoCo state\n        set during the forward dynamics.\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_9step = {"step", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_9step, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_8step};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_9step(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_with_udd = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("step (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_with_udd,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_True));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_with_udd);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 115, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "step") < 0)) __PYX_ERR(5, 115, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_with_udd = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("step", 0, 0, 1, __pyx_nargs); __PYX_ERR(5, 115, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.step", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_8step(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), __pyx_v_with_udd);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_8step(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_with_udd) {
  CYTHON_UNUSED int __pyx_v__;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("step", 1);

  /* "mujoco_py/mjsim.pyx":123
 *         set during the forward dynamics.
 *         """
 *         if with_udd:             # <<<<<<<<<<<<<<
 *             self.step_udd()
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_with_udd); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(5, 123, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "mujoco_py/mjsim.pyx":124
 *         """
 *         if with_udd:
 *             self.step_udd()             # <<<<<<<<<<<<<<
 * 
 *         with wrap_mujoco_warning():
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_step_udd); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 124, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "mujoco_py/mjsim.pyx":123
 *         set during the forward dynamics.
 *         """
 *         if with_udd:             # <<<<<<<<<<<<<<
 *             self.step_udd()
 * 
 */
  }

  /* "mujoco_py/mjsim.pyx":126
 *             self.step_udd()
 * 
 *         with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *             for _ in range(self.nsubsteps):
 *                 self.substep_callback()
 */
  /*with:*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_wrap_mujoco_warning); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 126, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 126, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_exit); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 126, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 126, __pyx_L4_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 126, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_10);
        /*try:*/ {

          /* "mujoco_py/mjsim.pyx":127
 * 
 *         with wrap_mujoco_warning():
 *             for _ in range(self.nsubsteps):             # <<<<<<<<<<<<<<
 *                 self.substep_callback()
 *                 mj_step(self.model.ptr, self.data.ptr)
 */
          __pyx_t_5 = __pyx_v_self->nsubsteps;
          __pyx_t_11 = __pyx_t_5;
          for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
            __pyx_v__ = __pyx_t_12;

            /* "mujoco_py/mjsim.pyx":128
 *         with wrap_mujoco_warning():
 *             for _ in range(self.nsubsteps):
 *                 self.substep_callback()             # <<<<<<<<<<<<<<
 *                 mj_step(self.model.ptr, self.data.ptr)
 * 
 */
            __pyx_t_2 = ((struct __pyx_vtabstruct_9mujoco_py_4cymj_MjSim *)__pyx_v_self->__pyx_vtab)->substep_callback(__pyx_v_self, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 128, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

            /* "mujoco_py/mjsim.pyx":129
 *             for _ in range(self.nsubsteps):
 *                 self.substep_callback()
 *                 mj_step(self.model.ptr, self.data.ptr)             # <<<<<<<<<<<<<<
 * 
 *     def render(self, width=None, height=None, *, camera_name=None, depth=False,
 */
            mj_step(__pyx_v_self->model->ptr, __pyx_v_self->data->ptr);
          }

          /* "mujoco_py/mjsim.pyx":126
 *             self.step_udd()
 * 
 *         with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *             for _ in range(self.nsubsteps):
 *                 self.substep_callback()
 */
        }
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L13_try_end;
        __pyx_L8_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("mujoco_py.cymj.MjSim.step", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(5, 126, __pyx_L10_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_7 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 126, __pyx_L10_except_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 126, __pyx_L10_except_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (__pyx_t_1 < 0) __PYX_ERR(5, 126, __pyx_L10_except_error)
          __pyx_t_14 = (!__pyx_t_1);
          if (unlikely(__pyx_t_14)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_3, __pyx_t_4);
            __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; 
            __PYX_ERR(5, 126, __pyx_L10_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L9_exception_handled;
        }
        __pyx_L10_except_error:;
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
        goto __pyx_L1_error;
        __pyx_L9_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
        __pyx_L13_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_6) {
          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__17, NULL);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 126, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        goto __pyx_L7;
      }
      __pyx_L7:;
    }
    goto __pyx_L19;
    __pyx_L4_error:;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L1_error;
    __pyx_L19:;
  }

  /* "mujoco_py/mjsim.pyx":115
 *             mj_setConst(self.model.ptr, self.data.ptr)
 * 
 *     def step(self, with_udd=True):             # <<<<<<<<<<<<<<
 *         """
 *         Advances the simulation by calling ``mj_step``.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.step", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":131
 *                 mj_step(self.model.ptr, self.data.ptr)
 * 
 *     def render(self, width=None, height=None, *, camera_name=None, depth=False,             # <<<<<<<<<<<<<<
 *                mode='offscreen', device_id=-1, segmentation=False):
 *         """
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_11render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_5MjSim_10render, "\n        Renders view from a camera and returns image as an `numpy.ndarray`.\n\n        Args:\n        - width (int): desired image width.\n        - height (int): desired image height.\n        - camera_name (str): name of camera in model. If None, the free\n            camera will be used.\n        - depth (bool): if True, also return depth buffer\n        - device (int): device to use for rendering (only for GPU-backed\n            rendering).\n\n        Returns:\n        - rgb (uint8 array): image buffer from camera\n        - depth (float array): depth buffer from camera (only returned\n            if depth=True)\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_11render = {"render", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_11render, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_10render};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_11render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_height = 0;
  PyObject *__pyx_v_camera_name = 0;
  PyObject *__pyx_v_depth = 0;
  PyObject *__pyx_v_mode = 0;
  PyObject *__pyx_v_device_id = 0;
  PyObject *__pyx_v_segmentation = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[7] = {0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("render (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_width,&__pyx_n_s_height,&__pyx_n_s_camera_name,&__pyx_n_s_depth,&__pyx_n_s_mode,&__pyx_n_s_device_id,&__pyx_n_s_segmentation,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_False));
    values[4] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_n_u_offscreen));
    values[5] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_neg_1));

    /* "mujoco_py/mjsim.pyx":132
 * 
 *     def render(self, width=None, height=None, *, camera_name=None, depth=False,
 *                mode='offscreen', device_id=-1, segmentation=False):             # <<<<<<<<<<<<<<
 *         """
 *         Renders view from a camera and returns image as an `numpy.ndarray`.
 */
    values[6] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_False));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_width);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 131, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_height);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 131, __pyx_L3_error)
        }
      }
      if (kw_args > 0 && likely(kw_args <= 5)) {
        Py_ssize_t index;
        for (index = 2; index < 7 && kw_args > 0; index++) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, *__pyx_pyargnames[index]);
          if (value) { values[index] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 131, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "render") < 0)) __PYX_ERR(5, 131, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_width = values[0];
    __pyx_v_height = values[1];
    __pyx_v_camera_name = values[2];
    __pyx_v_depth = values[3];
    __pyx_v_mode = values[4];
    __pyx_v_device_id = values[5];
    __pyx_v_segmentation = values[6];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("render", 0, 0, 2, __pyx_nargs); __PYX_ERR(5, 131, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_10render(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), __pyx_v_width, __pyx_v_height, __pyx_v_camera_name, __pyx_v_depth, __pyx_v_mode, __pyx_v_device_id, __pyx_v_segmentation);

  /* "mujoco_py/mjsim.pyx":131
 *                 mj_step(self.model.ptr, self.data.ptr)
 * 
 *     def render(self, width=None, height=None, *, camera_name=None, depth=False,             # <<<<<<<<<<<<<<
 *                mode='offscreen', device_id=-1, segmentation=False):
 *         """
 */

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_10render(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_height, PyObject *__pyx_v_camera_name, PyObject *__pyx_v_depth, PyObject *__pyx_v_mode, PyObject *__pyx_v_device_id, PyObject *__pyx_v_segmentation) {
  PyObject *__pyx_v_camera_id = NULL;
  PyObject *__pyx_v_render_context = NULL;
  PyObject *__pyx_v_MjViewer = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 1);

  /* "mujoco_py/mjsim.pyx":150
 *             if depth=True)
 *         """
 *         if camera_name is None:             # <<<<<<<<<<<<<<
 *             camera_id = None
 *         else:
 */
  __pyx_t_1 = (__pyx_v_camera_name == Py_None);
  if (__pyx_t_1) {

    /* "mujoco_py/mjsim.pyx":151
 *         """
 *         if camera_name is None:
 *             camera_id = None             # <<<<<<<<<<<<<<
 *         else:
 *             camera_id = self.model.camera_name2id(camera_name)
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_camera_id = Py_None;

    /* "mujoco_py/mjsim.pyx":150
 *             if depth=True)
 *         """
 *         if camera_name is None:             # <<<<<<<<<<<<<<
 *             camera_id = None
 *         else:
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/mjsim.pyx":153
 *             camera_id = None
 *         else:
 *             camera_id = self.model.camera_name2id(camera_name)             # <<<<<<<<<<<<<<
 * 
 *         if mode == 'offscreen':
 */
  /*else*/ {
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->model), __pyx_n_s_camera_name2id); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 153, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_camera_name};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 153, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_v_camera_id = __pyx_t_2;
    __pyx_t_2 = 0;
  }
  __pyx_L3:;

  /* "mujoco_py/mjsim.pyx":155
 *             camera_id = self.model.camera_name2id(camera_name)
 * 
 *         if mode == 'offscreen':             # <<<<<<<<<<<<<<
 *             with _MjSim_render_lock:
 *                 if self._render_context_offscreen is None:
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_mode, __pyx_n_u_offscreen, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(5, 155, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "mujoco_py/mjsim.pyx":156
 * 
 *         if mode == 'offscreen':
 *             with _MjSim_render_lock:             # <<<<<<<<<<<<<<
 *                 if self._render_context_offscreen is None:
 *                     render_context = MjRenderContextOffscreen(
 */
    /*with:*/ {
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MjSim_render_lock); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_exit); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 156, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = NULL;
      __pyx_t_5 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
          __pyx_t_5 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
        __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 156, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      /*try:*/ {
        {
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_8);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_10);
          /*try:*/ {

            /* "mujoco_py/mjsim.pyx":157
 *         if mode == 'offscreen':
 *             with _MjSim_render_lock:
 *                 if self._render_context_offscreen is None:             # <<<<<<<<<<<<<<
 *                     render_context = MjRenderContextOffscreen(
 *                         self, device_id=device_id)
 */
            __pyx_t_1 = (__pyx_v_self->_render_context_offscreen == Py_None);
            if (__pyx_t_1) {

              /* "mujoco_py/mjsim.pyx":158
 *             with _MjSim_render_lock:
 *                 if self._render_context_offscreen is None:
 *                     render_context = MjRenderContextOffscreen(             # <<<<<<<<<<<<<<
 *                         self, device_id=device_id)
 *                 else:
 */
              __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MjRenderContextOffscreen); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 158, __pyx_L9_error)
              __Pyx_GOTREF(__pyx_t_2);

              /* "mujoco_py/mjsim.pyx":159
 *                 if self._render_context_offscreen is None:
 *                     render_context = MjRenderContextOffscreen(
 *                         self, device_id=device_id)             # <<<<<<<<<<<<<<
 *                 else:
 *                     render_context = self._render_context_offscreen
 */
              __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 158, __pyx_L9_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_INCREF((PyObject *)__pyx_v_self);
              __Pyx_GIVEREF((PyObject *)__pyx_v_self);
              if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self))) __PYX_ERR(5, 158, __pyx_L9_error);
              __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 159, __pyx_L9_error)
              __Pyx_GOTREF(__pyx_t_4);
              if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_device_id, __pyx_v_device_id) < 0) __PYX_ERR(5, 159, __pyx_L9_error)

              /* "mujoco_py/mjsim.pyx":158
 *             with _MjSim_render_lock:
 *                 if self._render_context_offscreen is None:
 *                     render_context = MjRenderContextOffscreen(             # <<<<<<<<<<<<<<
 *                         self, device_id=device_id)
 *                 else:
 */
              __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 158, __pyx_L9_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __pyx_v_render_context = __pyx_t_7;
              __pyx_t_7 = 0;

              /* "mujoco_py/mjsim.pyx":157
 *         if mode == 'offscreen':
 *             with _MjSim_render_lock:
 *                 if self._render_context_offscreen is None:             # <<<<<<<<<<<<<<
 *                     render_context = MjRenderContextOffscreen(
 *                         self, device_id=device_id)
 */
              goto __pyx_L15;
            }

            /* "mujoco_py/mjsim.pyx":161
 *                         self, device_id=device_id)
 *                 else:
 *                     render_context = self._render_context_offscreen             # <<<<<<<<<<<<<<
 * 
 *                 render_context.render(
 */
            /*else*/ {
              __pyx_t_7 = __pyx_v_self->_render_context_offscreen;
              __Pyx_INCREF(__pyx_t_7);
              __pyx_v_render_context = __pyx_t_7;
              __pyx_t_7 = 0;
            }
            __pyx_L15:;

            /* "mujoco_py/mjsim.pyx":163
 *                     render_context = self._render_context_offscreen
 * 
 *                 render_context.render(             # <<<<<<<<<<<<<<
 *                     width=width, height=height, camera_id=camera_id, segmentation=segmentation)
 *                 return render_context.read_pixels(
 */
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_render_context, __pyx_n_s_render); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 163, __pyx_L9_error)
            __Pyx_GOTREF(__pyx_t_7);

            /* "mujoco_py/mjsim.pyx":164
 * 
 *                 render_context.render(
 *                     width=width, height=height, camera_id=camera_id, segmentation=segmentation)             # <<<<<<<<<<<<<<
 *                 return render_context.read_pixels(
 *                     width, height, depth=depth, segmentation=segmentation)
 */
            __pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 164, __pyx_L9_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_width, __pyx_v_width) < 0) __PYX_ERR(5, 164, __pyx_L9_error)
            if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_height, __pyx_v_height) < 0) __PYX_ERR(5, 164, __pyx_L9_error)
            if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_camera_id, __pyx_v_camera_id) < 0) __PYX_ERR(5, 164, __pyx_L9_error)
            if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_segmentation, __pyx_v_segmentation) < 0) __PYX_ERR(5, 164, __pyx_L9_error)

            /* "mujoco_py/mjsim.pyx":163
 *                     render_context = self._render_context_offscreen
 * 
 *                 render_context.render(             # <<<<<<<<<<<<<<
 *                     width=width, height=height, camera_id=camera_id, segmentation=segmentation)
 *                 return render_context.read_pixels(
 */
            __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 163, __pyx_L9_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

            /* "mujoco_py/mjsim.pyx":165
 *                 render_context.render(
 *                     width=width, height=height, camera_id=camera_id, segmentation=segmentation)
 *                 return render_context.read_pixels(             # <<<<<<<<<<<<<<
 *                     width, height, depth=depth, segmentation=segmentation)
 *         elif mode == 'window':
 */
            __Pyx_XDECREF(__pyx_r);
            __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_render_context, __pyx_n_s_read_pixels); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 165, __pyx_L9_error)
            __Pyx_GOTREF(__pyx_t_3);

            /* "mujoco_py/mjsim.pyx":166
 *                     width=width, height=height, camera_id=camera_id, segmentation=segmentation)
 *                 return render_context.read_pixels(
 *                     width, height, depth=depth, segmentation=segmentation)             # <<<<<<<<<<<<<<
 *         elif mode == 'window':
 *             if self._render_context_window is None:
 */
            __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 165, __pyx_L9_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_INCREF(__pyx_v_width);
            __Pyx_GIVEREF(__pyx_v_width);
            if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_width)) __PYX_ERR(5, 165, __pyx_L9_error);
            __Pyx_INCREF(__pyx_v_height);
            __Pyx_GIVEREF(__pyx_v_height);
            if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_height)) __PYX_ERR(5, 165, __pyx_L9_error);
            __pyx_t_7 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 166, __pyx_L9_error)
            __Pyx_GOTREF(__pyx_t_7);
            if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_depth, __pyx_v_depth) < 0) __PYX_ERR(5, 166, __pyx_L9_error)
            if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_segmentation, __pyx_v_segmentation) < 0) __PYX_ERR(5, 166, __pyx_L9_error)

            /* "mujoco_py/mjsim.pyx":165
 *                 render_context.render(
 *                     width=width, height=height, camera_id=camera_id, segmentation=segmentation)
 *                 return render_context.read_pixels(             # <<<<<<<<<<<<<<
 *                     width, height, depth=depth, segmentation=segmentation)
 *         elif mode == 'window':
 */
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 165, __pyx_L9_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_r = __pyx_t_2;
            __pyx_t_2 = 0;
            goto __pyx_L13_try_return;

            /* "mujoco_py/mjsim.pyx":156
 * 
 *         if mode == 'offscreen':
 *             with _MjSim_render_lock:             # <<<<<<<<<<<<<<
 *                 if self._render_context_offscreen is None:
 *                     render_context = MjRenderContextOffscreen(
 */
          }
          __pyx_L9_error:;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          /*except:*/ {
            __Pyx_AddTraceback("mujoco_py.cymj.MjSim.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
            if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_7, &__pyx_t_4) < 0) __PYX_ERR(5, 156, __pyx_L11_except_error)
            __Pyx_XGOTREF(__pyx_t_2);
            __Pyx_XGOTREF(__pyx_t_7);
            __Pyx_XGOTREF(__pyx_t_4);
            __pyx_t_3 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 156, __pyx_L11_except_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 156, __pyx_L11_except_error)
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_11);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            if (__pyx_t_1 < 0) __PYX_ERR(5, 156, __pyx_L11_except_error)
            __pyx_t_12 = (!__pyx_t_1);
            if (unlikely(__pyx_t_12)) {
              __Pyx_GIVEREF(__pyx_t_2);
              __Pyx_GIVEREF(__pyx_t_7);
              __Pyx_XGIVEREF(__pyx_t_4);
              __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_7, __pyx_t_4);
              __pyx_t_2 = 0; __pyx_t_7 = 0; __pyx_t_4 = 0; 
              __PYX_ERR(5, 156, __pyx_L11_except_error)
            }
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            goto __pyx_L10_exception_handled;
          }
          __pyx_L11_except_error:;
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_XGIVEREF(__pyx_t_9);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
          goto __pyx_L1_error;
          __pyx_L13_try_return:;
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_XGIVEREF(__pyx_t_9);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
          goto __pyx_L6_return;
          __pyx_L10_exception_handled:;
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_XGIVEREF(__pyx_t_9);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
        }
      }
      /*finally:*/ {
        /*normal exit:*/{
          if (__pyx_t_6) {
            __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__17, NULL);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 156, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          }
          goto __pyx_L8;
        }
        __pyx_L6_return: {
          __pyx_t_10 = __pyx_r;
          __pyx_r = 0;
          if (__pyx_t_6) {
            __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__17, NULL);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 156, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          }
          __pyx_r = __pyx_t_10;
          __pyx_t_10 = 0;
          goto __pyx_L0;
        }
        __pyx_L8:;
      }
      goto __pyx_L19;
      __pyx_L5_error:;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L1_error;
      __pyx_L19:;
    }

    /* "mujoco_py/mjsim.pyx":155
 *             camera_id = self.model.camera_name2id(camera_name)
 * 
 *         if mode == 'offscreen':             # <<<<<<<<<<<<<<
 *             with _MjSim_render_lock:
 *                 if self._render_context_offscreen is None:
 */
    goto __pyx_L4;
  }

  /* "mujoco_py/mjsim.pyx":167
 *                 return render_context.read_pixels(
 *                     width, height, depth=depth, segmentation=segmentation)
 *         elif mode == 'window':             # <<<<<<<<<<<<<<
 *             if self._render_context_window is None:
 *                 from mujoco_py.mjviewer import MjViewer
 */
  __pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_v_mode, __pyx_n_u_window, Py_EQ)); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(5, 167, __pyx_L1_error)
  if (likely(__pyx_t_12)) {

    /* "mujoco_py/mjsim.pyx":168
 *                     width, height, depth=depth, segmentation=segmentation)
 *         elif mode == 'window':
 *             if self._render_context_window is None:             # <<<<<<<<<<<<<<
 *                 from mujoco_py.mjviewer import MjViewer
 *                 render_context = MjViewer(self)
 */
    __pyx_t_12 = (__pyx_v_self->_render_context_window == Py_None);
    if (__pyx_t_12) {

      /* "mujoco_py/mjsim.pyx":169
 *         elif mode == 'window':
 *             if self._render_context_window is None:
 *                 from mujoco_py.mjviewer import MjViewer             # <<<<<<<<<<<<<<
 *                 render_context = MjViewer(self)
 *             else:
 */
      __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 169, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_n_s_MjViewer);
      __Pyx_GIVEREF(__pyx_n_s_MjViewer);
      if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 0, __pyx_n_s_MjViewer)) __PYX_ERR(5, 169, __pyx_L1_error);
      __pyx_t_7 = __Pyx_Import(__pyx_n_s_mujoco_py_mjviewer, __pyx_t_4, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 169, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_MjViewer); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 169, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_4);
      __pyx_v_MjViewer = __pyx_t_4;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "mujoco_py/mjsim.pyx":170
 *             if self._render_context_window is None:
 *                 from mujoco_py.mjviewer import MjViewer
 *                 render_context = MjViewer(self)             # <<<<<<<<<<<<<<
 *             else:
 *                 render_context = self._render_context_window
 */
      __Pyx_INCREF(__pyx_v_MjViewer);
      __pyx_t_4 = __pyx_v_MjViewer; __pyx_t_2 = NULL;
      __pyx_t_5 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
          __pyx_t_5 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_self)};
        __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 170, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __pyx_v_render_context = __pyx_t_7;
      __pyx_t_7 = 0;

      /* "mujoco_py/mjsim.pyx":168
 *                     width, height, depth=depth, segmentation=segmentation)
 *         elif mode == 'window':
 *             if self._render_context_window is None:             # <<<<<<<<<<<<<<
 *                 from mujoco_py.mjviewer import MjViewer
 *                 render_context = MjViewer(self)
 */
      goto __pyx_L20;
    }

    /* "mujoco_py/mjsim.pyx":172
 *                 render_context = MjViewer(self)
 *             else:
 *                 render_context = self._render_context_window             # <<<<<<<<<<<<<<
 * 
 *             render_context.render()
 */
    /*else*/ {
      __pyx_t_7 = __pyx_v_self->_render_context_window;
      __Pyx_INCREF(__pyx_t_7);
      __pyx_v_render_context = __pyx_t_7;
      __pyx_t_7 = 0;
    }
    __pyx_L20:;

    /* "mujoco_py/mjsim.pyx":174
 *                 render_context = self._render_context_window
 * 
 *             render_context.render()             # <<<<<<<<<<<<<<
 * 
 *         else:
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_render_context, __pyx_n_s_render); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 174, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "mujoco_py/mjsim.pyx":167
 *                 return render_context.read_pixels(
 *                     width, height, depth=depth, segmentation=segmentation)
 *         elif mode == 'window':             # <<<<<<<<<<<<<<
 *             if self._render_context_window is None:
 *                 from mujoco_py.mjviewer import MjViewer
 */
    goto __pyx_L4;
  }

  /* "mujoco_py/mjsim.pyx":177
 * 
 *         else:
 *             raise ValueError("Mode must be either 'window' or 'offscreen'.")             # <<<<<<<<<<<<<<
 * 
 *     def add_render_context(self, render_context):
 */
  /*else*/ {
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__40, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_Raise(__pyx_t_7, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __PYX_ERR(5, 177, __pyx_L1_error)
  }
  __pyx_L4:;

  /* "mujoco_py/mjsim.pyx":131
 *                 mj_step(self.model.ptr, self.data.ptr)
 * 
 *     def render(self, width=None, height=None, *, camera_name=None, depth=False,             # <<<<<<<<<<<<<<
 *                mode='offscreen', device_id=-1, segmentation=False):
 *         """
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_camera_id);
  __Pyx_XDECREF(__pyx_v_render_context);
  __Pyx_XDECREF(__pyx_v_MjViewer);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":179
 *             raise ValueError("Mode must be either 'window' or 'offscreen'.")
 * 
 *     def add_render_context(self, render_context):             # <<<<<<<<<<<<<<
 *         self.render_contexts.append(render_context)
 *         if render_context.offscreen and self._render_context_offscreen is None:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_13add_render_context(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_13add_render_context = {"add_render_context", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_13add_render_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_13add_render_context(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_render_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_render_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_render_context,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_render_context)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 179, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "add_render_context") < 0)) __PYX_ERR(5, 179, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_render_context = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_render_context", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 179, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.add_render_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_12add_render_context(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), __pyx_v_render_context);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_12add_render_context(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_render_context) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_render_context", 1);

  /* "mujoco_py/mjsim.pyx":180
 * 
 *     def add_render_context(self, render_context):
 *         self.render_contexts.append(render_context)             # <<<<<<<<<<<<<<
 *         if render_context.offscreen and self._render_context_offscreen is None:
 *             self._render_context_offscreen = render_context
 */
  if (unlikely(__pyx_v_self->render_contexts == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(5, 180, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyList_Append(__pyx_v_self->render_contexts, __pyx_v_render_context); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(5, 180, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":181
 *     def add_render_context(self, render_context):
 *         self.render_contexts.append(render_context)
 *         if render_context.offscreen and self._render_context_offscreen is None:             # <<<<<<<<<<<<<<
 *             self._render_context_offscreen = render_context
 *         elif not render_context.offscreen and self._render_context_window is None:
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_render_context, __pyx_n_s_offscreen); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(5, 181, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = (__pyx_v_self->_render_context_offscreen == Py_None);
  __pyx_t_2 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "mujoco_py/mjsim.pyx":182
 *         self.render_contexts.append(render_context)
 *         if render_context.offscreen and self._render_context_offscreen is None:
 *             self._render_context_offscreen = render_context             # <<<<<<<<<<<<<<
 *         elif not render_context.offscreen and self._render_context_window is None:
 *             self._render_context_window = render_context
 */
    __Pyx_INCREF(__pyx_v_render_context);
    __Pyx_GIVEREF(__pyx_v_render_context);
    __Pyx_GOTREF(__pyx_v_self->_render_context_offscreen);
    __Pyx_DECREF(__pyx_v_self->_render_context_offscreen);
    __pyx_v_self->_render_context_offscreen = __pyx_v_render_context;

    /* "mujoco_py/mjsim.pyx":181
 *     def add_render_context(self, render_context):
 *         self.render_contexts.append(render_context)
 *         if render_context.offscreen and self._render_context_offscreen is None:             # <<<<<<<<<<<<<<
 *             self._render_context_offscreen = render_context
 *         elif not render_context.offscreen and self._render_context_window is None:
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/mjsim.pyx":183
 *         if render_context.offscreen and self._render_context_offscreen is None:
 *             self._render_context_offscreen = render_context
 *         elif not render_context.offscreen and self._render_context_window is None:             # <<<<<<<<<<<<<<
 *             self._render_context_window = render_context
 * 
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_render_context, __pyx_n_s_offscreen); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(5, 183, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = (!__pyx_t_4);
  if (__pyx_t_5) {
  } else {
    __pyx_t_2 = __pyx_t_5;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_5 = (__pyx_v_self->_render_context_window == Py_None);
  __pyx_t_2 = __pyx_t_5;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_2) {

    /* "mujoco_py/mjsim.pyx":184
 *             self._render_context_offscreen = render_context
 *         elif not render_context.offscreen and self._render_context_window is None:
 *             self._render_context_window = render_context             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
    __Pyx_INCREF(__pyx_v_render_context);
    __Pyx_GIVEREF(__pyx_v_render_context);
    __Pyx_GOTREF(__pyx_v_self->_render_context_window);
    __Pyx_DECREF(__pyx_v_self->_render_context_window);
    __pyx_v_self->_render_context_window = __pyx_v_render_context;

    /* "mujoco_py/mjsim.pyx":183
 *         if render_context.offscreen and self._render_context_offscreen is None:
 *             self._render_context_offscreen = render_context
 *         elif not render_context.offscreen and self._render_context_window is None:             # <<<<<<<<<<<<<<
 *             self._render_context_window = render_context
 * 
 */
  }
  __pyx_L3:;

  /* "mujoco_py/mjsim.pyx":179
 *             raise ValueError("Mode must be either 'window' or 'offscreen'.")
 * 
 *     def add_render_context(self, render_context):             # <<<<<<<<<<<<<<
 *         self.render_contexts.append(render_context)
 *         if render_context.offscreen and self._render_context_offscreen is None:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.add_render_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":186
 *             self._render_context_window = render_context
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def udd_callback(self):
 *         return self._udd_callback
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_12udd_callback_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_12udd_callback_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_12udd_callback___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_12udd_callback___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "mujoco_py/mjsim.pyx":188
 *     @property
 *     def udd_callback(self):
 *         return self._udd_callback             # <<<<<<<<<<<<<<
 * 
 *     @udd_callback.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_udd_callback);
  __pyx_r = __pyx_v_self->_udd_callback;
  goto __pyx_L0;

  /* "mujoco_py/mjsim.pyx":186
 *             self._render_context_window = render_context
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def udd_callback(self):
 *         return self._udd_callback
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":190
 *         return self._udd_callback
 * 
 *     @udd_callback.setter             # <<<<<<<<<<<<<<
 *     def udd_callback(self, value):
 *         self._udd_callback = value
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_5MjSim_12udd_callback_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_5MjSim_12udd_callback_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_12udd_callback_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_5MjSim_12udd_callback_2__set__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "mujoco_py/mjsim.pyx":192
 *     @udd_callback.setter
 *     def udd_callback(self, value):
 *         self._udd_callback = value             # <<<<<<<<<<<<<<
 *         self.udd_state = None
 *         self.step_udd()
 */
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->_udd_callback);
  __Pyx_DECREF(__pyx_v_self->_udd_callback);
  __pyx_v_self->_udd_callback = __pyx_v_value;

  /* "mujoco_py/mjsim.pyx":193
 *     def udd_callback(self, value):
 *         self._udd_callback = value
 *         self.udd_state = None             # <<<<<<<<<<<<<<
 *         self.step_udd()
 * 
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->udd_state);
  __Pyx_DECREF(__pyx_v_self->udd_state);
  __pyx_v_self->udd_state = ((PyObject*)Py_None);

  /* "mujoco_py/mjsim.pyx":194
 *         self._udd_callback = value
 *         self.udd_state = None
 *         self.step_udd()             # <<<<<<<<<<<<<<
 * 
 *     cpdef substep_callback(self):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_step_udd); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 194, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":190
 *         return self._udd_callback
 * 
 *     @udd_callback.setter             # <<<<<<<<<<<<<<
 *     def udd_callback(self, value):
 *         self._udd_callback = value
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.udd_callback.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":196
 *         self.step_udd()
 * 
 *     cpdef substep_callback(self):             # <<<<<<<<<<<<<<
 *         if self.substep_callback_ptr:
 *             (<mjfGeneric>self.substep_callback_ptr)(self.model.ptr, self.data.ptr)
 */

static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_15substep_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9mujoco_py_4cymj_5MjSim_substep_callback(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("substep_callback", 1);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_substep_callback); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 196, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_9mujoco_py_4cymj_5MjSim_15substep_callback)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        __pyx_t_5 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
            __pyx_t_5 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 196, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "mujoco_py/mjsim.pyx":197
 * 
 *     cpdef substep_callback(self):
 *         if self.substep_callback_ptr:             # <<<<<<<<<<<<<<
 *             (<mjfGeneric>self.substep_callback_ptr)(self.model.ptr, self.data.ptr)
 * 
 */
  __pyx_t_6 = (__pyx_v_self->substep_callback_ptr != 0);
  if (__pyx_t_6) {

    /* "mujoco_py/mjsim.pyx":198
 *     cpdef substep_callback(self):
 *         if self.substep_callback_ptr:
 *             (<mjfGeneric>self.substep_callback_ptr)(self.model.ptr, self.data.ptr)             # <<<<<<<<<<<<<<
 * 
 *     def set_substep_callback(self, substep_callback, userdata_names=None):
 */
    ((__pyx_t_9mujoco_py_4cymj_mjfGeneric)__pyx_v_self->substep_callback_ptr)(__pyx_v_self->model->ptr, __pyx_v_self->data->ptr);

    /* "mujoco_py/mjsim.pyx":197
 * 
 *     cpdef substep_callback(self):
 *         if self.substep_callback_ptr:             # <<<<<<<<<<<<<<
 *             (<mjfGeneric>self.substep_callback_ptr)(self.model.ptr, self.data.ptr)
 * 
 */
  }

  /* "mujoco_py/mjsim.pyx":196
 *         self.step_udd()
 * 
 *     cpdef substep_callback(self):             # <<<<<<<<<<<<<<
 *         if self.substep_callback_ptr:
 *             (<mjfGeneric>self.substep_callback_ptr)(self.model.ptr, self.data.ptr)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.substep_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_15substep_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_15substep_callback = {"substep_callback", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_15substep_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_15substep_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("substep_callback (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("substep_callback", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "substep_callback", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_14substep_callback(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_14substep_callback(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("substep_callback", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_9mujoco_py_4cymj_5MjSim_substep_callback(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 196, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.substep_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":200
 *             (<mjfGeneric>self.substep_callback_ptr)(self.model.ptr, self.data.ptr)
 * 
 *     def set_substep_callback(self, substep_callback, userdata_names=None):             # <<<<<<<<<<<<<<
 *         '''
 *         Set a substep callback function.
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_17set_substep_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_5MjSim_16set_substep_callback, "\n        Set a substep callback function.\n\n        Parameters :\n            substep_callback : str or int or None\n                If `substep_callback` is a string, compile to function pointer and set.\n                    See `builder.build_callback_fn()` for documentation.\n                If `substep_callback` is an int, we interpret it as a function pointer.\n                If `substep_callback` is None, we disable substep_callbacks.\n            userdata_names : list of strings or None\n                This is a convenience parameter, if not None, this is passed\n                onto ``model.set_userdata_names()``.\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_17set_substep_callback = {"set_substep_callback", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_17set_substep_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_16set_substep_callback};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_17set_substep_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_substep_callback = 0;
  PyObject *__pyx_v_userdata_names = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_substep_callback (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_substep_callback,&__pyx_n_s_userdata_names,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_substep_callback)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 200, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_userdata_names);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 200, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_substep_callback") < 0)) __PYX_ERR(5, 200, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_substep_callback = values[0];
    __pyx_v_userdata_names = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_substep_callback", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 200, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.set_substep_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_16set_substep_callback(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), __pyx_v_substep_callback, __pyx_v_userdata_names);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_16set_substep_callback(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_substep_callback, PyObject *__pyx_v_userdata_names) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  uintptr_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_substep_callback", 1);

  /* "mujoco_py/mjsim.pyx":214
 *                 onto ``model.set_userdata_names()``.
 *         '''
 *         if userdata_names is not None:             # <<<<<<<<<<<<<<
 *             self.model.set_userdata_names(userdata_names)
 *         if substep_callback is None:
 */
  __pyx_t_1 = (__pyx_v_userdata_names != Py_None);
  if (__pyx_t_1) {

    /* "mujoco_py/mjsim.pyx":215
 *         '''
 *         if userdata_names is not None:
 *             self.model.set_userdata_names(userdata_names)             # <<<<<<<<<<<<<<
 *         if substep_callback is None:
 *             self.substep_callback_ptr = 0
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->model), __pyx_n_s_set_userdata_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 215, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_userdata_names};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 215, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "mujoco_py/mjsim.pyx":214
 *                 onto ``model.set_userdata_names()``.
 *         '''
 *         if userdata_names is not None:             # <<<<<<<<<<<<<<
 *             self.model.set_userdata_names(userdata_names)
 *         if substep_callback is None:
 */
  }

  /* "mujoco_py/mjsim.pyx":216
 *         if userdata_names is not None:
 *             self.model.set_userdata_names(userdata_names)
 *         if substep_callback is None:             # <<<<<<<<<<<<<<
 *             self.substep_callback_ptr = 0
 *         elif isinstance(substep_callback, int):
 */
  __pyx_t_1 = (__pyx_v_substep_callback == Py_None);
  if (__pyx_t_1) {

    /* "mujoco_py/mjsim.pyx":217
 *             self.model.set_userdata_names(userdata_names)
 *         if substep_callback is None:
 *             self.substep_callback_ptr = 0             # <<<<<<<<<<<<<<
 *         elif isinstance(substep_callback, int):
 *             self.substep_callback_ptr = substep_callback
 */
    __pyx_v_self->substep_callback_ptr = 0;

    /* "mujoco_py/mjsim.pyx":216
 *         if userdata_names is not None:
 *             self.model.set_userdata_names(userdata_names)
 *         if substep_callback is None:             # <<<<<<<<<<<<<<
 *             self.substep_callback_ptr = 0
 *         elif isinstance(substep_callback, int):
 */
    goto __pyx_L4;
  }

  /* "mujoco_py/mjsim.pyx":218
 *         if substep_callback is None:
 *             self.substep_callback_ptr = 0
 *         elif isinstance(substep_callback, int):             # <<<<<<<<<<<<<<
 *             self.substep_callback_ptr = substep_callback
 *         elif isinstance(substep_callback, str):
 */
  __pyx_t_1 = PyInt_Check(__pyx_v_substep_callback); 
  if (__pyx_t_1) {

    /* "mujoco_py/mjsim.pyx":219
 *             self.substep_callback_ptr = 0
 *         elif isinstance(substep_callback, int):
 *             self.substep_callback_ptr = substep_callback             # <<<<<<<<<<<<<<
 *         elif isinstance(substep_callback, str):
 *             self.substep_callback_ptr = build_callback_fn(substep_callback,
 */
    __pyx_t_6 = __Pyx_PyInt_As_size_t(__pyx_v_substep_callback); if (unlikely((__pyx_t_6 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(5, 219, __pyx_L1_error)
    __pyx_v_self->substep_callback_ptr = __pyx_t_6;

    /* "mujoco_py/mjsim.pyx":218
 *         if substep_callback is None:
 *             self.substep_callback_ptr = 0
 *         elif isinstance(substep_callback, int):             # <<<<<<<<<<<<<<
 *             self.substep_callback_ptr = substep_callback
 *         elif isinstance(substep_callback, str):
 */
    goto __pyx_L4;
  }

  /* "mujoco_py/mjsim.pyx":220
 *         elif isinstance(substep_callback, int):
 *             self.substep_callback_ptr = substep_callback
 *         elif isinstance(substep_callback, str):             # <<<<<<<<<<<<<<
 *             self.substep_callback_ptr = build_callback_fn(substep_callback,
 *                                                           self.model.userdata_names)
 */
  __pyx_t_1 = PyUnicode_Check(__pyx_v_substep_callback); 
  if (likely(__pyx_t_1)) {

    /* "mujoco_py/mjsim.pyx":221
 *             self.substep_callback_ptr = substep_callback
 *         elif isinstance(substep_callback, str):
 *             self.substep_callback_ptr = build_callback_fn(substep_callback,             # <<<<<<<<<<<<<<
 *                                                           self.model.userdata_names)
 *         else:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_build_callback_fn); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 221, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "mujoco_py/mjsim.pyx":222
 *         elif isinstance(substep_callback, str):
 *             self.substep_callback_ptr = build_callback_fn(substep_callback,
 *                                                           self.model.userdata_names)             # <<<<<<<<<<<<<<
 *         else:
 *             raise TypeError('invalid: {}'.format(type(substep_callback)))
 */
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_substep_callback, __pyx_v_self->model->userdata_names};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 221, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }

    /* "mujoco_py/mjsim.pyx":221
 *             self.substep_callback_ptr = substep_callback
 *         elif isinstance(substep_callback, str):
 *             self.substep_callback_ptr = build_callback_fn(substep_callback,             # <<<<<<<<<<<<<<
 *                                                           self.model.userdata_names)
 *         else:
 */
    __pyx_t_6 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_6 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(5, 221, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_self->substep_callback_ptr = __pyx_t_6;

    /* "mujoco_py/mjsim.pyx":220
 *         elif isinstance(substep_callback, int):
 *             self.substep_callback_ptr = substep_callback
 *         elif isinstance(substep_callback, str):             # <<<<<<<<<<<<<<
 *             self.substep_callback_ptr = build_callback_fn(substep_callback,
 *                                                           self.model.userdata_names)
 */
    goto __pyx_L4;
  }

  /* "mujoco_py/mjsim.pyx":224
 *                                                           self.model.userdata_names)
 *         else:
 *             raise TypeError('invalid: {}'.format(type(substep_callback)))             # <<<<<<<<<<<<<<
 * 
 *     def step_udd(self):
 */
  /*else*/ {
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_invalid, __pyx_n_s_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 224, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)Py_TYPE(__pyx_v_substep_callback))};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 224, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 224, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(5, 224, __pyx_L1_error)
  }
  __pyx_L4:;

  /* "mujoco_py/mjsim.pyx":200
 *             (<mjfGeneric>self.substep_callback_ptr)(self.model.ptr, self.data.ptr)
 * 
 *     def set_substep_callback(self, substep_callback, userdata_names=None):             # <<<<<<<<<<<<<<
 *         '''
 *         Set a substep callback function.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.set_substep_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":226
 *             raise TypeError('invalid: {}'.format(type(substep_callback)))
 * 
 *     def step_udd(self):             # <<<<<<<<<<<<<<
 *         if self._udd_callback is None:
 *             self.udd_state = {}
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_19step_udd(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_19step_udd = {"step_udd", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_19step_udd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_19step_udd(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("step_udd (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("step_udd", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "step_udd", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_18step_udd(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_18step_udd(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_v_schema_example = NULL;
  PyObject *__pyx_v_keys = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("step_udd", 1);

  /* "mujoco_py/mjsim.pyx":227
 * 
 *     def step_udd(self):
 *         if self._udd_callback is None:             # <<<<<<<<<<<<<<
 *             self.udd_state = {}
 *         else:
 */
  __pyx_t_1 = (__pyx_v_self->_udd_callback == Py_None);
  if (__pyx_t_1) {

    /* "mujoco_py/mjsim.pyx":228
 *     def step_udd(self):
 *         if self._udd_callback is None:
 *             self.udd_state = {}             # <<<<<<<<<<<<<<
 *         else:
 *             schema_example = self.udd_state
 */
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 228, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_self->udd_state);
    __Pyx_DECREF(__pyx_v_self->udd_state);
    __pyx_v_self->udd_state = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "mujoco_py/mjsim.pyx":227
 * 
 *     def step_udd(self):
 *         if self._udd_callback is None:             # <<<<<<<<<<<<<<
 *             self.udd_state = {}
 *         else:
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/mjsim.pyx":230
 *             self.udd_state = {}
 *         else:
 *             schema_example = self.udd_state             # <<<<<<<<<<<<<<
 *             self.udd_state = self._udd_callback(self)
 *             # Check to make sure the udd_state has consistent keys and dimension across steps
 */
  /*else*/ {
    __pyx_t_2 = __pyx_v_self->udd_state;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_schema_example = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "mujoco_py/mjsim.pyx":231
 *         else:
 *             schema_example = self.udd_state
 *             self.udd_state = self._udd_callback(self)             # <<<<<<<<<<<<<<
 *             # Check to make sure the udd_state has consistent keys and dimension across steps
 *             if schema_example is not None:
 */
    __Pyx_INCREF(__pyx_v_self->_udd_callback);
    __pyx_t_3 = __pyx_v_self->_udd_callback; __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_self)};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_2))) __PYX_ERR(5, 231, __pyx_L1_error)
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_self->udd_state);
    __Pyx_DECREF(__pyx_v_self->udd_state);
    __pyx_v_self->udd_state = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "mujoco_py/mjsim.pyx":233
 *             self.udd_state = self._udd_callback(self)
 *             # Check to make sure the udd_state has consistent keys and dimension across steps
 *             if schema_example is not None:             # <<<<<<<<<<<<<<
 *                 keys = set(schema_example.keys()) | set(self.udd_state.keys())
 *                 for key in keys:
 */
    __pyx_t_1 = (__pyx_v_schema_example != ((PyObject*)Py_None));
    if (__pyx_t_1) {

      /* "mujoco_py/mjsim.pyx":234
 *             # Check to make sure the udd_state has consistent keys and dimension across steps
 *             if schema_example is not None:
 *                 keys = set(schema_example.keys()) | set(self.udd_state.keys())             # <<<<<<<<<<<<<<
 *                 for key in keys:
 *                     assert key in schema_example, "Keys cannot be added to udd_state between steps."
 */
      if (unlikely(__pyx_v_schema_example == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys");
        __PYX_ERR(5, 234, __pyx_L1_error)
      }
      __pyx_t_2 = __Pyx_PyDict_Keys(__pyx_v_schema_example); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 234, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PySet_New(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 234, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(__pyx_v_self->udd_state == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys");
        __PYX_ERR(5, 234, __pyx_L1_error)
      }
      __pyx_t_2 = __Pyx_PyDict_Keys(__pyx_v_self->udd_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 234, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = PySet_New(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 234, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_Or(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 234, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_v_keys = ((PyObject*)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "mujoco_py/mjsim.pyx":235
 *             if schema_example is not None:
 *                 keys = set(schema_example.keys()) | set(self.udd_state.keys())
 *                 for key in keys:             # <<<<<<<<<<<<<<
 *                     assert key in schema_example, "Keys cannot be added to udd_state between steps."
 *                     assert key in self.udd_state, "Keys cannot be dropped from udd_state between steps."
 */
      __pyx_t_6 = 0;
      __pyx_t_4 = __Pyx_set_iterator(__pyx_v_keys, 1, (&__pyx_t_7), (&__pyx_t_5)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2);
      __pyx_t_2 = __pyx_t_4;
      __pyx_t_4 = 0;
      while (1) {
        __pyx_t_8 = __Pyx_set_iter_next(__pyx_t_2, __pyx_t_7, &__pyx_t_6, &__pyx_t_4, __pyx_t_5);
        if (unlikely(__pyx_t_8 == 0)) break;
        if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(5, 235, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "mujoco_py/mjsim.pyx":236
 *                 keys = set(schema_example.keys()) | set(self.udd_state.keys())
 *                 for key in keys:
 *                     assert key in schema_example, "Keys cannot be added to udd_state between steps."             # <<<<<<<<<<<<<<
 *                     assert key in self.udd_state, "Keys cannot be dropped from udd_state between steps."
 *                     if isinstance(schema_example[key], Number):
 */
        #ifndef CYTHON_WITHOUT_ASSERTIONS
        if (unlikely(__pyx_assertions_enabled())) {
          if (unlikely(__pyx_v_schema_example == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
            __PYX_ERR(5, 236, __pyx_L1_error)
          }
          __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_key, __pyx_v_schema_example, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(5, 236, __pyx_L1_error)
          if (unlikely(!__pyx_t_1)) {
            __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_kp_u_Keys_cannot_be_added_to_udd_stat, 0, 0);
            __PYX_ERR(5, 236, __pyx_L1_error)
          }
        }
        #else
        if ((1)); else __PYX_ERR(5, 236, __pyx_L1_error)
        #endif

        /* "mujoco_py/mjsim.pyx":237
 *                 for key in keys:
 *                     assert key in schema_example, "Keys cannot be added to udd_state between steps."
 *                     assert key in self.udd_state, "Keys cannot be dropped from udd_state between steps."             # <<<<<<<<<<<<<<
 *                     if isinstance(schema_example[key], Number):
 *                         assert isinstance(self.udd_state[key], Number), \
 */
        #ifndef CYTHON_WITHOUT_ASSERTIONS
        if (unlikely(__pyx_assertions_enabled())) {
          if (unlikely(__pyx_v_self->udd_state == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
            __PYX_ERR(5, 237, __pyx_L1_error)
          }
          __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_key, __pyx_v_self->udd_state, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(5, 237, __pyx_L1_error)
          if (unlikely(!__pyx_t_1)) {
            __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_kp_u_Keys_cannot_be_dropped_from_udd, 0, 0);
            __PYX_ERR(5, 237, __pyx_L1_error)
          }
        }
        #else
        if ((1)); else __PYX_ERR(5, 237, __pyx_L1_error)
        #endif

        /* "mujoco_py/mjsim.pyx":238
 *                     assert key in schema_example, "Keys cannot be added to udd_state between steps."
 *                     assert key in self.udd_state, "Keys cannot be dropped from udd_state between steps."
 *                     if isinstance(schema_example[key], Number):             # <<<<<<<<<<<<<<
 *                         assert isinstance(self.udd_state[key], Number), \
 *                             "Every value in udd_state must be either a number or a numpy array"
 */
        if (unlikely(__pyx_v_schema_example == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
          __PYX_ERR(5, 238, __pyx_L1_error)
        }
        __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_schema_example, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 238, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Number); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 238, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_1 = PyObject_IsInstance(__pyx_t_4, __pyx_t_3); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(5, 238, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (__pyx_t_1) {

          /* "mujoco_py/mjsim.pyx":239
 *                     assert key in self.udd_state, "Keys cannot be dropped from udd_state between steps."
 *                     if isinstance(schema_example[key], Number):
 *                         assert isinstance(self.udd_state[key], Number), \             # <<<<<<<<<<<<<<
 *                             "Every value in udd_state must be either a number or a numpy array"
 *                     else:
 */
          #ifndef CYTHON_WITHOUT_ASSERTIONS
          if (unlikely(__pyx_assertions_enabled())) {
            if (unlikely(__pyx_v_self->udd_state == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(5, 239, __pyx_L1_error)
            }
            __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->udd_state, __pyx_v_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 239, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Number); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 239, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_1 = PyObject_IsInstance(__pyx_t_3, __pyx_t_4); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(5, 239, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_1)) {
              __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_kp_u_Every_value_in_udd_state_must_be, 0, 0);
              __PYX_ERR(5, 239, __pyx_L1_error)
            }
          }
          #else
          if ((1)); else __PYX_ERR(5, 239, __pyx_L1_error)
          #endif

          /* "mujoco_py/mjsim.pyx":238
 *                     assert key in schema_example, "Keys cannot be added to udd_state between steps."
 *                     assert key in self.udd_state, "Keys cannot be dropped from udd_state between steps."
 *                     if isinstance(schema_example[key], Number):             # <<<<<<<<<<<<<<
 *                         assert isinstance(self.udd_state[key], Number), \
 *                             "Every value in udd_state must be either a number or a numpy array"
 */
          goto __pyx_L7;
        }

        /* "mujoco_py/mjsim.pyx":242
 *                             "Every value in udd_state must be either a number or a numpy array"
 *                     else:
 *                         assert isinstance(self.udd_state[key], np.ndarray), \             # <<<<<<<<<<<<<<
 *                             "Every value in udd_state must be either a number or a numpy array"
 *                         assert self.udd_state[key].shape == schema_example[key].shape, \
 */
        /*else*/ {
          #ifndef CYTHON_WITHOUT_ASSERTIONS
          if (unlikely(__pyx_assertions_enabled())) {
            if (unlikely(__pyx_v_self->udd_state == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(5, 242, __pyx_L1_error)
            }
            __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->udd_state, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 242, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_1 = __Pyx_TypeCheck(__pyx_t_4, __pyx_ptype_5numpy_ndarray); 
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_1)) {
              __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_kp_u_Every_value_in_udd_state_must_be, 0, 0);
              __PYX_ERR(5, 242, __pyx_L1_error)
            }
          }
          #else
          if ((1)); else __PYX_ERR(5, 242, __pyx_L1_error)
          #endif

          /* "mujoco_py/mjsim.pyx":244
 *                         assert isinstance(self.udd_state[key], np.ndarray), \
 *                             "Every value in udd_state must be either a number or a numpy array"
 *                         assert self.udd_state[key].shape == schema_example[key].shape, \             # <<<<<<<<<<<<<<
 *                             "Numpy array values in udd_state must keep the same dimension across steps."
 * 
 */
          #ifndef CYTHON_WITHOUT_ASSERTIONS
          if (unlikely(__pyx_assertions_enabled())) {
            if (unlikely(__pyx_v_self->udd_state == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(5, 244, __pyx_L1_error)
            }
            __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->udd_state, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 244, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 244, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(__pyx_v_schema_example == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(5, 244, __pyx_L1_error)
            }
            __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_schema_example, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 244, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_shape); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 244, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_9, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 244, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(5, 244, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_1)) {
              __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_kp_u_Numpy_array_values_in_udd_state, 0, 0);
              __PYX_ERR(5, 244, __pyx_L1_error)
            }
          }
          #else
          if ((1)); else __PYX_ERR(5, 244, __pyx_L1_error)
          #endif
        }
        __pyx_L7:;
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "mujoco_py/mjsim.pyx":233
 *             self.udd_state = self._udd_callback(self)
 *             # Check to make sure the udd_state has consistent keys and dimension across steps
 *             if schema_example is not None:             # <<<<<<<<<<<<<<
 *                 keys = set(schema_example.keys()) | set(self.udd_state.keys())
 *                 for key in keys:
 */
    }
  }
  __pyx_L3:;

  /* "mujoco_py/mjsim.pyx":226
 *             raise TypeError('invalid: {}'.format(type(substep_callback)))
 * 
 *     def step_udd(self):             # <<<<<<<<<<<<<<
 *         if self._udd_callback is None:
 *             self.udd_state = {}
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.step_udd", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_schema_example);
  __Pyx_XDECREF(__pyx_v_keys);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":247
 *                             "Numpy array values in udd_state must keep the same dimension across steps."
 * 
 *     def get_state(self):             # <<<<<<<<<<<<<<
 *         """ Returns a copy of the simulator state. """
 *         qpos = np.copy(self.data.qpos)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_21get_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_5MjSim_20get_state, " Returns a copy of the simulator state. ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_21get_state = {"get_state", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_21get_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_20get_state};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_21get_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_state (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("get_state", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "get_state", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_20get_state(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_20get_state(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_v_qpos = NULL;
  PyObject *__pyx_v_qvel = NULL;
  PyObject *__pyx_v_act = NULL;
  PyObject *__pyx_v_udd_state = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_state", 1);

  /* "mujoco_py/mjsim.pyx":249
 *     def get_state(self):
 *         """ Returns a copy of the simulator state. """
 *         qpos = np.copy(self.data.qpos)             # <<<<<<<<<<<<<<
 *         qvel = np.copy(self.data.qvel)
 *         if self.model.na == 0:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_copy); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_qpos); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 249, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_qpos = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":250
 *         """ Returns a copy of the simulator state. """
 *         qpos = np.copy(self.data.qpos)
 *         qvel = np.copy(self.data.qvel)             # <<<<<<<<<<<<<<
 *         if self.model.na == 0:
 *             act = None
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_copy); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_qvel = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":251
 *         qpos = np.copy(self.data.qpos)
 *         qvel = np.copy(self.data.qvel)
 *         if self.model.na == 0:             # <<<<<<<<<<<<<<
 *             act = None
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->model), __pyx_n_s_na); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = (__Pyx_PyInt_BoolEqObjC(__pyx_t_1, __pyx_int_0, 0, 0)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(5, 251, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_6) {

    /* "mujoco_py/mjsim.pyx":252
 *         qvel = np.copy(self.data.qvel)
 *         if self.model.na == 0:
 *             act = None             # <<<<<<<<<<<<<<
 *         else:
 *             act = np.copy(self.data.act)
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_act = Py_None;

    /* "mujoco_py/mjsim.pyx":251
 *         qpos = np.copy(self.data.qpos)
 *         qvel = np.copy(self.data.qvel)
 *         if self.model.na == 0:             # <<<<<<<<<<<<<<
 *             act = None
 *         else:
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/mjsim.pyx":254
 *             act = None
 *         else:
 *             act = np.copy(self.data.act)             # <<<<<<<<<<<<<<
 *         udd_state = copy.deepcopy(self.udd_state)
 * 
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_copy); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_act); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 254, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_v_act = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "mujoco_py/mjsim.pyx":255
 *         else:
 *             act = np.copy(self.data.act)
 *         udd_state = copy.deepcopy(self.udd_state)             # <<<<<<<<<<<<<<
 * 
 *         return MjSimState(self.data.time, qpos, qvel, act, udd_state)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_copy); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_deepcopy); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_self->udd_state};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_udd_state = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":257
 *         udd_state = copy.deepcopy(self.udd_state)
 * 
 *         return MjSimState(self.data.time, qpos, qvel, act, udd_state)             # <<<<<<<<<<<<<<
 * 
 *     def set_state(self, value):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MjSimState); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[6] = {__pyx_t_4, __pyx_t_3, __pyx_v_qpos, __pyx_v_qvel, __pyx_v_act, __pyx_v_udd_state};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 5+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 257, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/mjsim.pyx":247
 *                             "Numpy array values in udd_state must keep the same dimension across steps."
 * 
 *     def get_state(self):             # <<<<<<<<<<<<<<
 *         """ Returns a copy of the simulator state. """
 *         qpos = np.copy(self.data.qpos)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.get_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_qpos);
  __Pyx_XDECREF(__pyx_v_qvel);
  __Pyx_XDECREF(__pyx_v_act);
  __Pyx_XDECREF(__pyx_v_udd_state);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":259
 *         return MjSimState(self.data.time, qpos, qvel, act, udd_state)
 * 
 *     def set_state(self, value):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the state from an MjSimState.
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_23set_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_5MjSim_22set_state, "\n        Sets the state from an MjSimState.\n        If the MjSimState was previously unflattened from a numpy array, consider\n        set_state_from_flattened, as the defensive copy is a substantial overhead\n        in an inner loop.\n\n        Args:\n        - value (MjSimState): the desired state.\n        - call_forward: optionally call sim.forward(). Called by default if\n            the udd_callback is set.\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_23set_state = {"set_state", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_23set_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_22set_state};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_23set_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_value = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_state (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_value,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_value)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 259, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_state") < 0)) __PYX_ERR(5, 259, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_value = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_state", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 259, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_22set_state(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), __pyx_v_value);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_22set_state(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_state", 1);

  /* "mujoco_py/mjsim.pyx":271
 *             the udd_callback is set.
 *         """
 *         self.data.time = value.time             # <<<<<<<<<<<<<<
 *         self.data.qpos[:] = np.copy(value.qpos)
 *         self.data.qvel[:] = np.copy(value.qvel)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_time); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_time, __pyx_t_1) < 0) __PYX_ERR(5, 271, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":272
 *         """
 *         self.data.time = value.time
 *         self.data.qpos[:] = np.copy(value.qpos)             # <<<<<<<<<<<<<<
 *         self.data.qvel[:] = np.copy(value.qvel)
 *         if self.model.na != 0:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_copy); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_qpos); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 272, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_qpos); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetSlice(__pyx_t_3, __pyx_t_1, 0, 0, NULL, NULL, &__pyx_slice__5, 0, 0, 1) < 0) __PYX_ERR(5, 272, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":273
 *         self.data.time = value.time
 *         self.data.qpos[:] = np.copy(value.qpos)
 *         self.data.qvel[:] = np.copy(value.qvel)             # <<<<<<<<<<<<<<
 *         if self.model.na != 0:
 *             self.data.act[:] = np.copy(value.act)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_copy); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 273, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_qvel); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetSlice(__pyx_t_2, __pyx_t_1, 0, 0, NULL, NULL, &__pyx_slice__5, 0, 0, 1) < 0) __PYX_ERR(5, 273, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":274
 *         self.data.qpos[:] = np.copy(value.qpos)
 *         self.data.qvel[:] = np.copy(value.qvel)
 *         if self.model.na != 0:             # <<<<<<<<<<<<<<
 *             self.data.act[:] = np.copy(value.act)
 *         self.udd_state = copy.deepcopy(value.udd_state)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->model), __pyx_n_s_na); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = (__Pyx_PyInt_BoolNeObjC(__pyx_t_1, __pyx_int_0, 0, 0)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(5, 274, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_6) {

    /* "mujoco_py/mjsim.pyx":275
 *         self.data.qvel[:] = np.copy(value.qvel)
 *         if self.model.na != 0:
 *             self.data.act[:] = np.copy(value.act)             # <<<<<<<<<<<<<<
 *         self.udd_state = copy.deepcopy(value.udd_state)
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_copy); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_act); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 275, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_act); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_PyObject_SetSlice(__pyx_t_3, __pyx_t_1, 0, 0, NULL, NULL, &__pyx_slice__5, 0, 0, 1) < 0) __PYX_ERR(5, 275, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "mujoco_py/mjsim.pyx":274
 *         self.data.qpos[:] = np.copy(value.qpos)
 *         self.data.qvel[:] = np.copy(value.qvel)
 *         if self.model.na != 0:             # <<<<<<<<<<<<<<
 *             self.data.act[:] = np.copy(value.act)
 *         self.udd_state = copy.deepcopy(value.udd_state)
 */
  }

  /* "mujoco_py/mjsim.pyx":276
 *         if self.model.na != 0:
 *             self.data.act[:] = np.copy(value.act)
 *         self.udd_state = copy.deepcopy(value.udd_state)             # <<<<<<<<<<<<<<
 * 
 *     def set_state_from_flattened(self, value):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_copy); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_deepcopy); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_udd_state); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(5, 276, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->udd_state);
  __Pyx_DECREF(__pyx_v_self->udd_state);
  __pyx_v_self->udd_state = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":259
 *         return MjSimState(self.data.time, qpos, qvel, act, udd_state)
 * 
 *     def set_state(self, value):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the state from an MjSimState.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":278
 *         self.udd_state = copy.deepcopy(value.udd_state)
 * 
 *     def set_state_from_flattened(self, value):             # <<<<<<<<<<<<<<
 *         """ This helper method sets the state from an array without requiring a defensive copy."""
 *         state = MjSimState.from_flattened(value, self)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_25set_state_from_flattened(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_5MjSim_24set_state_from_flattened, " This helper method sets the state from an array without requiring a defensive copy.");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_25set_state_from_flattened = {"set_state_from_flattened", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_25set_state_from_flattened, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_24set_state_from_flattened};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_25set_state_from_flattened(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_value = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_state_from_flattened (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_value,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_value)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 278, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_state_from_flattened") < 0)) __PYX_ERR(5, 278, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_value = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_state_from_flattened", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 278, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.set_state_from_flattened", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_24set_state_from_flattened(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), __pyx_v_value);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_24set_state_from_flattened(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_value) {
  PyObject *__pyx_v_state = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_state_from_flattened", 1);

  /* "mujoco_py/mjsim.pyx":280
 *     def set_state_from_flattened(self, value):
 *         """ This helper method sets the state from an array without requiring a defensive copy."""
 *         state = MjSimState.from_flattened(value, self)             # <<<<<<<<<<<<<<
 * 
 *         self.data.time = state.time
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MjSimState); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_from_flattened); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_value, ((PyObject *)__pyx_v_self)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 280, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_state = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":282
 *         state = MjSimState.from_flattened(value, self)
 * 
 *         self.data.time = state.time             # <<<<<<<<<<<<<<
 *         self.data.qpos[:] = state.qpos
 *         self.data.qvel[:] = state.qvel
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_state, __pyx_n_s_time); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_time, __pyx_t_1) < 0) __PYX_ERR(5, 282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":283
 * 
 *         self.data.time = state.time
 *         self.data.qpos[:] = state.qpos             # <<<<<<<<<<<<<<
 *         self.data.qvel[:] = state.qvel
 *         if self.model.na != 0:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_state, __pyx_n_s_qpos); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_qpos); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetSlice(__pyx_t_3, __pyx_t_1, 0, 0, NULL, NULL, &__pyx_slice__5, 0, 0, 1) < 0) __PYX_ERR(5, 283, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":284
 *         self.data.time = state.time
 *         self.data.qpos[:] = state.qpos
 *         self.data.qvel[:] = state.qvel             # <<<<<<<<<<<<<<
 *         if self.model.na != 0:
 *             self.data.act[:] = state.act
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_state, __pyx_n_s_qvel); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetSlice(__pyx_t_3, __pyx_t_1, 0, 0, NULL, NULL, &__pyx_slice__5, 0, 0, 1) < 0) __PYX_ERR(5, 284, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":285
 *         self.data.qpos[:] = state.qpos
 *         self.data.qvel[:] = state.qvel
 *         if self.model.na != 0:             # <<<<<<<<<<<<<<
 *             self.data.act[:] = state.act
 *         self.udd_state = state.udd_state
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->model), __pyx_n_s_na); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = (__Pyx_PyInt_BoolNeObjC(__pyx_t_1, __pyx_int_0, 0, 0)); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(5, 285, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_5) {

    /* "mujoco_py/mjsim.pyx":286
 *         self.data.qvel[:] = state.qvel
 *         if self.model.na != 0:
 *             self.data.act[:] = state.act             # <<<<<<<<<<<<<<
 *         self.udd_state = state.udd_state
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_state, __pyx_n_s_act); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 286, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_act); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 286, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_PyObject_SetSlice(__pyx_t_3, __pyx_t_1, 0, 0, NULL, NULL, &__pyx_slice__5, 0, 0, 1) < 0) __PYX_ERR(5, 286, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "mujoco_py/mjsim.pyx":285
 *         self.data.qpos[:] = state.qpos
 *         self.data.qvel[:] = state.qvel
 *         if self.model.na != 0:             # <<<<<<<<<<<<<<
 *             self.data.act[:] = state.act
 *         self.udd_state = state.udd_state
 */
  }

  /* "mujoco_py/mjsim.pyx":287
 *         if self.model.na != 0:
 *             self.data.act[:] = state.act
 *         self.udd_state = state.udd_state             # <<<<<<<<<<<<<<
 * 
 *     def save(self, file, format='xml', keep_inertials=False):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_state, __pyx_n_s_udd_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(5, 287, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->udd_state);
  __Pyx_DECREF(__pyx_v_self->udd_state);
  __pyx_v_self->udd_state = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":278
 *         self.udd_state = copy.deepcopy(value.udd_state)
 * 
 *     def set_state_from_flattened(self, value):             # <<<<<<<<<<<<<<
 *         """ This helper method sets the state from an array without requiring a defensive copy."""
 *         state = MjSimState.from_flattened(value, self)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.set_state_from_flattened", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":289
 *         self.udd_state = state.udd_state
 * 
 *     def save(self, file, format='xml', keep_inertials=False):             # <<<<<<<<<<<<<<
 *         """
 *         Saves the simulator model and state to a file as either
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_27save(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_5MjSim_26save, "\n        Saves the simulator model and state to a file as either\n        a MuJoCo XML or MJB file. The current state is saved as\n        a keyframe in the model file. This is useful for debugging\n        using MuJoCo's `simulate` utility.\n\n        Note that this doesn't save the UDD-state which is\n        part of MjSimState, since that's not supported natively\n        by MuJoCo. If you want to save the model together with\n        the UDD-state, you should use the `get_xml` or `get_mjb`\n        methods on `MjModel` together with `MjSim.get_state` and\n        save them with e.g. pickle.\n\n        Args:\n        - file (IO stream): stream to write model to.\n        - format: format to use (either 'xml' or 'mjb')\n        - keep_inertials (bool): if False, removes all <inertial>\n          properties derived automatically for geoms by MuJoco. Note\n          that this removes ones that were provided by the user\n          as well.\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_27save = {"save", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_27save, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_26save};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_27save(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_file = 0;
  PyObject *__pyx_v_format = 0;
  PyObject *__pyx_v_keep_inertials = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("save (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_file,&__pyx_n_s_format,&__pyx_n_s_keep_inertials,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_n_u_xml));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_False));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_file)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 289, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_format);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 289, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_keep_inertials);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 289, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "save") < 0)) __PYX_ERR(5, 289, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_file = values[0];
    __pyx_v_format = values[1];
    __pyx_v_keep_inertials = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("save", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 289, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.save", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_26save(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), __pyx_v_file, __pyx_v_format, __pyx_v_keep_inertials);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":322
 *         mujoco_node.appendChild(keyframe_el)
 * 
 *         def str_array(arr):             # <<<<<<<<<<<<<<
 *             return " ".join(map(str, arr))
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_4save_1str_array(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_4save_1str_array = {"str_array", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_4save_1str_array, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_4save_1str_array(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_arr = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("str_array (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_arr,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_arr)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 322, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "str_array") < 0)) __PYX_ERR(5, 322, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_arr = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("str_array", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 322, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.save.str_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_4save_str_array(__pyx_self, __pyx_v_arr);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_4save_str_array(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_arr) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("str_array", 1);

  /* "mujoco_py/mjsim.pyx":323
 * 
 *         def str_array(arr):
 *             return " ".join(map(str, arr))             # <<<<<<<<<<<<<<
 * 
 *         key_el.setAttribute('time', str(self.data.time))
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)(&PyUnicode_Type));
  __Pyx_GIVEREF((PyObject *)(&PyUnicode_Type));
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)(&PyUnicode_Type)))) __PYX_ERR(5, 323, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_arr);
  __Pyx_GIVEREF(__pyx_v_arr);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_arr)) __PYX_ERR(5, 323, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_map, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyUnicode_Join(__pyx_kp_u__41, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/mjsim.pyx":322
 *         mujoco_node.appendChild(keyframe_el)
 * 
 *         def str_array(arr):             # <<<<<<<<<<<<<<
 *             return " ".join(map(str, arr))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.save.str_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":289
 *         self.udd_state = state.udd_state
 * 
 *     def save(self, file, format='xml', keep_inertials=False):             # <<<<<<<<<<<<<<
 *         """
 *         Saves the simulator model and state to a file as either
 */

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_26save(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_file, PyObject *__pyx_v_format, PyObject *__pyx_v_keep_inertials) {
  PyObject *__pyx_v_xml_str = NULL;
  PyObject *__pyx_v_dom = NULL;
  PyObject *__pyx_v_mujoco_node = NULL;
  PyObject *__pyx_v_keyframe_el = NULL;
  PyObject *__pyx_v_key_el = NULL;
  PyObject *__pyx_v_str_array = 0;
  PyObject *__pyx_v_element = NULL;
  PyObject *__pyx_v_result_xml = NULL;
  PyObject *__pyx_v_new_model = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("save", 1);

  /* "mujoco_py/mjsim.pyx":311
 *           as well.
 *         """
 *         xml_str = self.model.get_xml()             # <<<<<<<<<<<<<<
 *         dom = minidom.parseString(xml_str)
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->model), __pyx_n_s_get_xml); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 311, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_xml_str = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":312
 *         """
 *         xml_str = self.model.get_xml()
 *         dom = minidom.parseString(xml_str)             # <<<<<<<<<<<<<<
 * 
 *         mujoco_node = dom.childNodes[0]
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_minidom); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_parseString); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_xml_str};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 312, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_dom = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":314
 *         dom = minidom.parseString(xml_str)
 * 
 *         mujoco_node = dom.childNodes[0]             # <<<<<<<<<<<<<<
 *         assert mujoco_node.tagName == 'mujoco'
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dom, __pyx_n_s_childNodes); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_mujoco_node = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "mujoco_py/mjsim.pyx":315
 * 
 *         mujoco_node = dom.childNodes[0]
 *         assert mujoco_node.tagName == 'mujoco'             # <<<<<<<<<<<<<<
 * 
 *         keyframe_el = dom.createElement('keyframe')
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_mujoco_node, __pyx_n_s_tagName); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_mujoco, Py_EQ)); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(5, 315, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) {
      __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
      __PYX_ERR(5, 315, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(5, 315, __pyx_L1_error)
  #endif

  /* "mujoco_py/mjsim.pyx":317
 *         assert mujoco_node.tagName == 'mujoco'
 * 
 *         keyframe_el = dom.createElement('keyframe')             # <<<<<<<<<<<<<<
 *         key_el = dom.createElement('key')
 *         keyframe_el.appendChild(key_el)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dom, __pyx_n_s_createElement); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_n_u_keyframe};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 317, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_v_keyframe_el = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "mujoco_py/mjsim.pyx":318
 * 
 *         keyframe_el = dom.createElement('keyframe')
 *         key_el = dom.createElement('key')             # <<<<<<<<<<<<<<
 *         keyframe_el.appendChild(key_el)
 *         mujoco_node.appendChild(keyframe_el)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dom, __pyx_n_s_createElement); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_n_u_key};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 318, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_v_key_el = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "mujoco_py/mjsim.pyx":319
 *         keyframe_el = dom.createElement('keyframe')
 *         key_el = dom.createElement('key')
 *         keyframe_el.appendChild(key_el)             # <<<<<<<<<<<<<<
 *         mujoco_node.appendChild(keyframe_el)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_keyframe_el, __pyx_n_s_appendChild); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_key_el};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/mjsim.pyx":320
 *         key_el = dom.createElement('key')
 *         keyframe_el.appendChild(key_el)
 *         mujoco_node.appendChild(keyframe_el)             # <<<<<<<<<<<<<<
 * 
 *         def str_array(arr):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_mujoco_node, __pyx_n_s_appendChild); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_keyframe_el};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/mjsim.pyx":322
 *         mujoco_node.appendChild(keyframe_el)
 * 
 *         def str_array(arr):             # <<<<<<<<<<<<<<
 *             return " ".join(map(str, arr))
 * 
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_4save_1str_array, 0, __pyx_n_s_save_locals_str_array, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_str_array = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "mujoco_py/mjsim.pyx":325
 *             return " ".join(map(str, arr))
 * 
 *         key_el.setAttribute('time', str(self.data.time))             # <<<<<<<<<<<<<<
 *         key_el.setAttribute('qpos', str_array(self.data.qpos))
 *         key_el.setAttribute('qvel', str_array(self.data.qvel))
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_key_el, __pyx_n_s_setAttribute); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_PyObject_Str(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_n_u_time, __pyx_t_6};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 325, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/mjsim.pyx":326
 * 
 *         key_el.setAttribute('time', str(self.data.time))
 *         key_el.setAttribute('qpos', str_array(self.data.qpos))             # <<<<<<<<<<<<<<
 *         key_el.setAttribute('qvel', str_array(self.data.qvel))
 *         if self.data.act is not None:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_key_el, __pyx_n_s_setAttribute); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_qpos); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __pyx_pf_9mujoco_py_4cymj_5MjSim_4save_str_array(__pyx_v_str_array, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_n_u_qpos, __pyx_t_2};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/mjsim.pyx":327
 *         key_el.setAttribute('time', str(self.data.time))
 *         key_el.setAttribute('qpos', str_array(self.data.qpos))
 *         key_el.setAttribute('qvel', str_array(self.data.qvel))             # <<<<<<<<<<<<<<
 *         if self.data.act is not None:
 *             key_el.setAttribute('act', str_array(self.data.act))
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_key_el, __pyx_n_s_setAttribute); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_qvel); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __pyx_pf_9mujoco_py_4cymj_5MjSim_4save_str_array(__pyx_v_str_array, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_n_u_qvel, __pyx_t_6};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 327, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/mjsim.pyx":328
 *         key_el.setAttribute('qpos', str_array(self.data.qpos))
 *         key_el.setAttribute('qvel', str_array(self.data.qvel))
 *         if self.data.act is not None:             # <<<<<<<<<<<<<<
 *             key_el.setAttribute('act', str_array(self.data.act))
 * 
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_act); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = (__pyx_t_3 != Py_None);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_5) {

    /* "mujoco_py/mjsim.pyx":329
 *         key_el.setAttribute('qvel', str_array(self.data.qvel))
 *         if self.data.act is not None:
 *             key_el.setAttribute('act', str_array(self.data.act))             # <<<<<<<<<<<<<<
 * 
 *         if not keep_inertials:
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_key_el, __pyx_n_s_setAttribute); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->data), __pyx_n_s_act); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = __pyx_pf_9mujoco_py_4cymj_5MjSim_4save_str_array(__pyx_v_str_array, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_n_u_act, __pyx_t_2};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 329, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "mujoco_py/mjsim.pyx":328
 *         key_el.setAttribute('qpos', str_array(self.data.qpos))
 *         key_el.setAttribute('qvel', str_array(self.data.qvel))
 *         if self.data.act is not None:             # <<<<<<<<<<<<<<
 *             key_el.setAttribute('act', str_array(self.data.act))
 * 
 */
  }

  /* "mujoco_py/mjsim.pyx":331
 *             key_el.setAttribute('act', str_array(self.data.act))
 * 
 *         if not keep_inertials:             # <<<<<<<<<<<<<<
 *             for element in dom.getElementsByTagName('inertial'):
 *                 element.parentNode.removeChild(element)
 */
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_keep_inertials); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(5, 331, __pyx_L1_error)
  __pyx_t_7 = (!__pyx_t_5);
  if (__pyx_t_7) {

    /* "mujoco_py/mjsim.pyx":332
 * 
 *         if not keep_inertials:
 *             for element in dom.getElementsByTagName('inertial'):             # <<<<<<<<<<<<<<
 *                 element.parentNode.removeChild(element)
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dom, __pyx_n_s_getElementsByTagName); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 332, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_n_u_inertial};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 332, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1);
      __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 332, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 332, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
            #if !CYTHON_ASSUME_SAFE_MACROS
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 332, __pyx_L1_error)
            #endif
            if (__pyx_t_8 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(5, 332, __pyx_L1_error)
          #else
          __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 332, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
            #if !CYTHON_ASSUME_SAFE_MACROS
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 332, __pyx_L1_error)
            #endif
            if (__pyx_t_8 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(5, 332, __pyx_L1_error)
          #else
          __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 332, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_9(__pyx_t_1);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(5, 332, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_v_element, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "mujoco_py/mjsim.pyx":333
 *         if not keep_inertials:
 *             for element in dom.getElementsByTagName('inertial'):
 *                 element.parentNode.removeChild(element)             # <<<<<<<<<<<<<<
 * 
 *         result_xml = remove_empty_lines(dom.toprettyxml(indent=" " * 4))
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_element, __pyx_n_s_parentNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 333, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_removeChild); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 333, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = NULL;
      __pyx_t_4 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
          __pyx_t_4 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_element};
        __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 333, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "mujoco_py/mjsim.pyx":332
 * 
 *         if not keep_inertials:
 *             for element in dom.getElementsByTagName('inertial'):             # <<<<<<<<<<<<<<
 *                 element.parentNode.removeChild(element)
 * 
 */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "mujoco_py/mjsim.pyx":331
 *             key_el.setAttribute('act', str_array(self.data.act))
 * 
 *         if not keep_inertials:             # <<<<<<<<<<<<<<
 *             for element in dom.getElementsByTagName('inertial'):
 *                 element.parentNode.removeChild(element)
 */
  }

  /* "mujoco_py/mjsim.pyx":335
 *                 element.parentNode.removeChild(element)
 * 
 *         result_xml = remove_empty_lines(dom.toprettyxml(indent=" " * 4))             # <<<<<<<<<<<<<<
 * 
 *         if format == 'xml':
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_remove_empty_lines); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dom, __pyx_n_s_toprettyxml); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_indent, __pyx_kp_u__44) < 0) __PYX_ERR(5, 335, __pyx_L1_error)
  __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_10};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 335, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_result_xml = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsim.pyx":337
 *         result_xml = remove_empty_lines(dom.toprettyxml(indent=" " * 4))
 * 
 *         if format == 'xml':             # <<<<<<<<<<<<<<
 *             file.write(result_xml)
 *         elif format == 'mjb':
 */
  __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_format, __pyx_n_u_xml, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(5, 337, __pyx_L1_error)
  if (__pyx_t_7) {

    /* "mujoco_py/mjsim.pyx":338
 * 
 *         if format == 'xml':
 *             file.write(result_xml)             # <<<<<<<<<<<<<<
 *         elif format == 'mjb':
 *             new_model = load_model_from_xml(result_xml)
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_file, __pyx_n_s_write); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 338, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_10 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_v_result_xml};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 338, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "mujoco_py/mjsim.pyx":337
 *         result_xml = remove_empty_lines(dom.toprettyxml(indent=" " * 4))
 * 
 *         if format == 'xml':             # <<<<<<<<<<<<<<
 *             file.write(result_xml)
 *         elif format == 'mjb':
 */
    goto __pyx_L8;
  }

  /* "mujoco_py/mjsim.pyx":339
 *         if format == 'xml':
 *             file.write(result_xml)
 *         elif format == 'mjb':             # <<<<<<<<<<<<<<
 *             new_model = load_model_from_xml(result_xml)
 *             file.write(new_model.get_mjb())
 */
  __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_format, __pyx_n_u_mjb, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(5, 339, __pyx_L1_error)
  if (likely(__pyx_t_7)) {

    /* "mujoco_py/mjsim.pyx":340
 *             file.write(result_xml)
 *         elif format == 'mjb':
 *             new_model = load_model_from_xml(result_xml)             # <<<<<<<<<<<<<<
 *             file.write(new_model.get_mjb())
 *         else:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_load_model_from_xml); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_10 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_v_result_xml};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 340, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_v_new_model = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "mujoco_py/mjsim.pyx":341
 *         elif format == 'mjb':
 *             new_model = load_model_from_xml(result_xml)
 *             file.write(new_model.get_mjb())             # <<<<<<<<<<<<<<
 *         else:
 *             raise ValueError("Unsupported format. Valid ones are 'xml' and 'mjb'")
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_file, __pyx_n_s_write); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 341, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_new_model, __pyx_n_s_get_mjb); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 341, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_10 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 341, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_10};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 341, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "mujoco_py/mjsim.pyx":339
 *         if format == 'xml':
 *             file.write(result_xml)
 *         elif format == 'mjb':             # <<<<<<<<<<<<<<
 *             new_model = load_model_from_xml(result_xml)
 *             file.write(new_model.get_mjb())
 */
    goto __pyx_L8;
  }

  /* "mujoco_py/mjsim.pyx":343
 *             file.write(new_model.get_mjb())
 *         else:
 *             raise ValueError("Unsupported format. Valid ones are 'xml' and 'mjb'")             # <<<<<<<<<<<<<<
 * 
 *     def ray(self, pnt, vec, include_static_geoms=True, exclude_body=-1, group_filter=None):
 */
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__45, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(5, 343, __pyx_L1_error)
  }
  __pyx_L8:;

  /* "mujoco_py/mjsim.pyx":289
 *         self.udd_state = state.udd_state
 * 
 *     def save(self, file, format='xml', keep_inertials=False):             # <<<<<<<<<<<<<<
 *         """
 *         Saves the simulator model and state to a file as either
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.save", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_xml_str);
  __Pyx_XDECREF(__pyx_v_dom);
  __Pyx_XDECREF(__pyx_v_mujoco_node);
  __Pyx_XDECREF(__pyx_v_keyframe_el);
  __Pyx_XDECREF(__pyx_v_key_el);
  __Pyx_XDECREF(__pyx_v_str_array);
  __Pyx_XDECREF(__pyx_v_element);
  __Pyx_XDECREF(__pyx_v_result_xml);
  __Pyx_XDECREF(__pyx_v_new_model);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":345
 *             raise ValueError("Unsupported format. Valid ones are 'xml' and 'mjb'")
 * 
 *     def ray(self, pnt, vec, include_static_geoms=True, exclude_body=-1, group_filter=None):             # <<<<<<<<<<<<<<
 *         """
 *         Cast a ray into the scene, and return the first valid geom it intersects.
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_29ray(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_5MjSim_28ray, "\n        Cast a ray into the scene, and return the first valid geom it intersects.\n            pnt - origin point of the ray in world coordinates (X Y Z)\n            vec - direction of the ray in world coordinates (X Y Z)\n            include_static_geoms - if False, we exclude geoms that are children of worldbody.\n            exclude_body - if this is a body ID, we exclude all children geoms of this body.\n            group_filter - a vector of booleans of length const.NGROUP\n                           which specifies what geom groups (stored in model.geom_group)\n                           to enable or disable.  If none, all groups are used\n        Returns (distance, geomid) where\n            distance - distance along ray until first collision with geom\n            geomid - id of the geom the ray collided with\n        If no collision was found in the scene, return (-1, None)\n\n        NOTE: sometimes self.forward() needs to be called before self.ray().\n\n        See self.ray_fast_group() and self.ray_fast_nogroup() for versions of this call\n        with more stringent type requirements.\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_29ray = {"ray", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_29ray, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_28ray};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_29ray(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_pnt = 0;
  PyObject *__pyx_v_vec = 0;
  PyObject *__pyx_v_include_static_geoms = 0;
  PyObject *__pyx_v_exclude_body = 0;
  PyObject *__pyx_v_group_filter = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ray (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pnt,&__pyx_n_s_vec,&__pyx_n_s_include_static_geoms,&__pyx_n_s_exclude_body,&__pyx_n_s_group_filter,0};
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_True));
    values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_neg_1));
    values[4] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pnt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 345, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 345, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("ray", 0, 2, 5, 1); __PYX_ERR(5, 345, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_include_static_geoms);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 345, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_exclude_body);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 345, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_group_filter);
          if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 345, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "ray") < 0)) __PYX_ERR(5, 345, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_pnt = values[0];
    __pyx_v_vec = values[1];
    __pyx_v_include_static_geoms = values[2];
    __pyx_v_exclude_body = values[3];
    __pyx_v_group_filter = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ray", 0, 2, 5, __pyx_nargs); __PYX_ERR(5, 345, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.ray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_28ray(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), __pyx_v_pnt, __pyx_v_vec, __pyx_v_include_static_geoms, __pyx_v_exclude_body, __pyx_v_group_filter);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_28ray(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_pnt, PyObject *__pyx_v_vec, PyObject *__pyx_v_include_static_geoms, PyObject *__pyx_v_exclude_body, PyObject *__pyx_v_group_filter) {
  CYTHON_UNUSED __Pyx_memviewslice __pyx_v_pnt_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  CYTHON_UNUSED __Pyx_memviewslice __pyx_v_vec_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ray", 1);

  /* "mujoco_py/mjsim.pyx":366
 *         """
 *         cdef mjtNum distance
 *         cdef mjtNum[::view.contiguous] pnt_view = pnt             # <<<<<<<<<<<<<<
 *         cdef mjtNum[::view.contiguous] vec_view = vec
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn_mjtNum(__pyx_v_pnt, PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(5, 366, __pyx_L1_error)
  __pyx_v_pnt_view = __pyx_t_1;
  __pyx_t_1.memview = NULL;
  __pyx_t_1.data = NULL;

  /* "mujoco_py/mjsim.pyx":367
 *         cdef mjtNum distance
 *         cdef mjtNum[::view.contiguous] pnt_view = pnt
 *         cdef mjtNum[::view.contiguous] vec_view = vec             # <<<<<<<<<<<<<<
 * 
 *         if group_filter is None:
 */
  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn_mjtNum(__pyx_v_vec, PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(5, 367, __pyx_L1_error)
  __pyx_v_vec_view = __pyx_t_1;
  __pyx_t_1.memview = NULL;
  __pyx_t_1.data = NULL;

  /* "mujoco_py/mjsim.pyx":369
 *         cdef mjtNum[::view.contiguous] vec_view = vec
 * 
 *         if group_filter is None:             # <<<<<<<<<<<<<<
 *             return self.ray_fast_nogroup(
 *                 np.asarray(pnt, dtype=np.float64),
 */
  __pyx_t_2 = (__pyx_v_group_filter == Py_None);
  if (__pyx_t_2) {

    /* "mujoco_py/mjsim.pyx":370
 * 
 *         if group_filter is None:
 *             return self.ray_fast_nogroup(             # <<<<<<<<<<<<<<
 *                 np.asarray(pnt, dtype=np.float64),
 *                 np.asarray(vec, dtype=np.float64),
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ray_fast_nogroup); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "mujoco_py/mjsim.pyx":371
 *         if group_filter is None:
 *             return self.ray_fast_nogroup(
 *                 np.asarray(pnt, dtype=np.float64),             # <<<<<<<<<<<<<<
 *                 np.asarray(vec, dtype=np.float64),
 *                 1 if include_static_geoms else 0,
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pnt);
    __Pyx_GIVEREF(__pyx_v_pnt);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pnt)) __PYX_ERR(5, 371, __pyx_L1_error);
    __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_float64); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(5, 371, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "mujoco_py/mjsim.pyx":372
 *             return self.ray_fast_nogroup(
 *                 np.asarray(pnt, dtype=np.float64),
 *                 np.asarray(vec, dtype=np.float64),             # <<<<<<<<<<<<<<
 *                 1 if include_static_geoms else 0,
 *                 exclude_body)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_asarray); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_vec);
    __Pyx_GIVEREF(__pyx_v_vec);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_vec)) __PYX_ERR(5, 372, __pyx_L1_error);
    __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_float64); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_10) < 0) __PYX_ERR(5, 372, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "mujoco_py/mjsim.pyx":373
 *                 np.asarray(pnt, dtype=np.float64),
 *                 np.asarray(vec, dtype=np.float64),
 *                 1 if include_static_geoms else 0,             # <<<<<<<<<<<<<<
 *                 exclude_body)
 *         else:
 */
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_include_static_geoms); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(5, 373, __pyx_L1_error)
    if (__pyx_t_2) {
      __Pyx_INCREF(__pyx_int_1);
      __pyx_t_6 = __pyx_int_1;
    } else {
      __Pyx_INCREF(__pyx_int_0);
      __pyx_t_6 = __pyx_int_0;
    }

    /* "mujoco_py/mjsim.pyx":374
 *                 np.asarray(vec, dtype=np.float64),
 *                 1 if include_static_geoms else 0,
 *                 exclude_body)             # <<<<<<<<<<<<<<
 *         else:
 *             return self.ray_fast_group(
 */
    __pyx_t_7 = NULL;
    __pyx_t_11 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_11 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[5] = {__pyx_t_7, __pyx_t_9, __pyx_t_10, __pyx_t_6, __pyx_v_exclude_body};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_11, 4+__pyx_t_11);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 370, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "mujoco_py/mjsim.pyx":369
 *         cdef mjtNum[::view.contiguous] vec_view = vec
 * 
 *         if group_filter is None:             # <<<<<<<<<<<<<<
 *             return self.ray_fast_nogroup(
 *                 np.asarray(pnt, dtype=np.float64),
 */
  }

  /* "mujoco_py/mjsim.pyx":376
 *                 exclude_body)
 *         else:
 *             return self.ray_fast_group(             # <<<<<<<<<<<<<<
 *                 np.asarray(pnt, dtype=np.float64),
 *                 np.asarray(vec, dtype=np.float64),
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ray_fast_group); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 376, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "mujoco_py/mjsim.pyx":377
 *         else:
 *             return self.ray_fast_group(
 *                 np.asarray(pnt, dtype=np.float64),             # <<<<<<<<<<<<<<
 *                 np.asarray(vec, dtype=np.float64),
 *                 np.asarray(group_filter, dtype=np.uint8),
 */
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_asarray); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_pnt);
    __Pyx_GIVEREF(__pyx_v_pnt);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_pnt)) __PYX_ERR(5, 377, __pyx_L1_error);
    __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_float64); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(5, 377, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "mujoco_py/mjsim.pyx":378
 *             return self.ray_fast_group(
 *                 np.asarray(pnt, dtype=np.float64),
 *                 np.asarray(vec, dtype=np.float64),             # <<<<<<<<<<<<<<
 *                 np.asarray(group_filter, dtype=np.uint8),
 *                 1 if include_static_geoms else 0,
 */
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_v_vec);
    __Pyx_GIVEREF(__pyx_v_vec);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_vec)) __PYX_ERR(5, 378, __pyx_L1_error);
    __pyx_t_10 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_float64); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(5, 378, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

    /* "mujoco_py/mjsim.pyx":379
 *                 np.asarray(pnt, dtype=np.float64),
 *                 np.asarray(vec, dtype=np.float64),
 *                 np.asarray(group_filter, dtype=np.uint8),             # <<<<<<<<<<<<<<
 *                 1 if include_static_geoms else 0,
 *                 exclude_body)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_asarray); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_INCREF(__pyx_v_group_filter);
    __Pyx_GIVEREF(__pyx_v_group_filter);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_group_filter)) __PYX_ERR(5, 379, __pyx_L1_error);
    __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_uint8); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(5, 379, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_10, __pyx_t_6); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "mujoco_py/mjsim.pyx":380
 *                 np.asarray(vec, dtype=np.float64),
 *                 np.asarray(group_filter, dtype=np.uint8),
 *                 1 if include_static_geoms else 0,             # <<<<<<<<<<<<<<
 *                 exclude_body)
 * 
 */
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_include_static_geoms); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(5, 380, __pyx_L1_error)
    if (__pyx_t_2) {
      __Pyx_INCREF(__pyx_int_1);
      __pyx_t_6 = __pyx_int_1;
    } else {
      __Pyx_INCREF(__pyx_int_0);
      __pyx_t_6 = __pyx_int_0;
    }

    /* "mujoco_py/mjsim.pyx":381
 *                 np.asarray(group_filter, dtype=np.uint8),
 *                 1 if include_static_geoms else 0,
 *                 exclude_body)             # <<<<<<<<<<<<<<
 * 
 *     def ray_fast_group(self,
 */
    __pyx_t_10 = NULL;
    __pyx_t_11 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_11 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[6] = {__pyx_t_10, __pyx_t_5, __pyx_t_8, __pyx_t_12, __pyx_t_6, __pyx_v_exclude_body};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_11, 5+__pyx_t_11);
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 376, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "mujoco_py/mjsim.pyx":345
 *             raise ValueError("Unsupported format. Valid ones are 'xml' and 'mjb'")
 * 
 *     def ray(self, pnt, vec, include_static_geoms=True, exclude_body=-1, group_filter=None):             # <<<<<<<<<<<<<<
 *         """
 *         Cast a ray into the scene, and return the first valid geom it intersects.
 */

  /* function exit code */
  __pyx_L1_error:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_1, 1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.ray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_pnt_view, 1);
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_vec_view, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":383
 *                 exclude_body)
 * 
 *     def ray_fast_group(self,             # <<<<<<<<<<<<<<
 *             np.ndarray[np.float64_t, mode="c", ndim=1] pnt,
 *             np.ndarray[np.float64_t, mode="c", ndim=1] vec,
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_31ray_fast_group(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_5MjSim_30ray_fast_group, "\n        Faster version of sim.ray(), which avoids extra copies,\n        but needs to be given all the correct type arrays.\n\n        See self.ray() for explanation of arguments\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_31ray_fast_group = {"ray_fast_group", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_31ray_fast_group, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_30ray_fast_group};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_31ray_fast_group(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_pnt = 0;
  PyArrayObject *__pyx_v_vec = 0;
  PyArrayObject *__pyx_v_geomgroup = 0;
  mjtByte __pyx_v_flg_static;
  int __pyx_v_bodyexclude;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ray_fast_group (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pnt,&__pyx_n_s_vec,&__pyx_n_s_geomgroup,&__pyx_n_s_flg_static,&__pyx_n_s_bodyexclude,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pnt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 383, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 383, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("ray_fast_group", 0, 3, 5, 1); __PYX_ERR(5, 383, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_geomgroup)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 383, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("ray_fast_group", 0, 3, 5, 2); __PYX_ERR(5, 383, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flg_static);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 383, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_bodyexclude);
          if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 383, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "ray_fast_group") < 0)) __PYX_ERR(5, 383, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_pnt = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
    __pyx_v_geomgroup = ((PyArrayObject *)values[2]);
    if (values[3]) {
      __pyx_v_flg_static = __Pyx_PyInt_As_mjtByte(values[3]); if (unlikely((__pyx_v_flg_static == ((mjtByte)-1)) && PyErr_Occurred())) __PYX_ERR(5, 387, __pyx_L3_error)
    } else {
      __pyx_v_flg_static = ((mjtByte)1);
    }
    if (values[4]) {
      __pyx_v_bodyexclude = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_bodyexclude == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 388, __pyx_L3_error)
    } else {
      __pyx_v_bodyexclude = ((int)-1);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ray_fast_group", 0, 3, 5, __pyx_nargs); __PYX_ERR(5, 383, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.ray_fast_group", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pnt), __pyx_ptype_5numpy_ndarray, 1, "pnt", 0))) __PYX_ERR(5, 384, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(5, 385, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_geomgroup), __pyx_ptype_5numpy_ndarray, 1, "geomgroup", 0))) __PYX_ERR(5, 386, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_30ray_fast_group(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), __pyx_v_pnt, __pyx_v_vec, __pyx_v_geomgroup, __pyx_v_flg_static, __pyx_v_bodyexclude);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_30ray_fast_group(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyArrayObject *__pyx_v_pnt, PyArrayObject *__pyx_v_vec, PyArrayObject *__pyx_v_geomgroup, mjtByte __pyx_v_flg_static, int __pyx_v_bodyexclude) {
  int __pyx_v_geomid;
  mjtNum __pyx_v_distance;
  __Pyx_memviewslice __pyx_v_pnt_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_vec_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_geomgroup_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_LocalBuf_ND __pyx_pybuffernd_geomgroup;
  __Pyx_Buffer __pyx_pybuffer_geomgroup;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pnt;
  __Pyx_Buffer __pyx_pybuffer_pnt;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_t_2 = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ray_fast_group", 1);
  __pyx_pybuffer_pnt.pybuffer.buf = NULL;
  __pyx_pybuffer_pnt.refcount = 0;
  __pyx_pybuffernd_pnt.data = NULL;
  __pyx_pybuffernd_pnt.rcbuffer = &__pyx_pybuffer_pnt;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  __pyx_pybuffer_geomgroup.pybuffer.buf = NULL;
  __pyx_pybuffer_geomgroup.refcount = 0;
  __pyx_pybuffernd_geomgroup.data = NULL;
  __pyx_pybuffernd_geomgroup.rcbuffer = &__pyx_pybuffer_geomgroup;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer, (PyObject*)__pyx_v_pnt, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(5, 383, __pyx_L1_error)
  }
  __pyx_pybuffernd_pnt.diminfo[0].strides = __pyx_pybuffernd_pnt.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pnt.diminfo[0].shape = __pyx_pybuffernd_pnt.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(5, 383, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_geomgroup.rcbuffer->pybuffer, (PyObject*)__pyx_v_geomgroup, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(5, 383, __pyx_L1_error)
  }
  __pyx_pybuffernd_geomgroup.diminfo[0].strides = __pyx_pybuffernd_geomgroup.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_geomgroup.diminfo[0].shape = __pyx_pybuffernd_geomgroup.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/mjsim.pyx":397
 *         cdef int geomid
 *         cdef mjtNum distance
 *         cdef mjtNum[::view.contiguous] pnt_view = pnt             # <<<<<<<<<<<<<<
 *         cdef mjtNum[::view.contiguous] vec_view = vec
 *         cdef mjtByte[::view.contiguous] geomgroup_view = geomgroup
 */
  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn_mjtNum(((PyObject *)__pyx_v_pnt), PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(5, 397, __pyx_L1_error)
  __pyx_v_pnt_view = __pyx_t_1;
  __pyx_t_1.memview = NULL;
  __pyx_t_1.data = NULL;

  /* "mujoco_py/mjsim.pyx":398
 *         cdef mjtNum distance
 *         cdef mjtNum[::view.contiguous] pnt_view = pnt
 *         cdef mjtNum[::view.contiguous] vec_view = vec             # <<<<<<<<<<<<<<
 *         cdef mjtByte[::view.contiguous] geomgroup_view = geomgroup
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn_mjtNum(((PyObject *)__pyx_v_vec), PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(5, 398, __pyx_L1_error)
  __pyx_v_vec_view = __pyx_t_1;
  __pyx_t_1.memview = NULL;
  __pyx_t_1.data = NULL;

  /* "mujoco_py/mjsim.pyx":399
 *         cdef mjtNum[::view.contiguous] pnt_view = pnt
 *         cdef mjtNum[::view.contiguous] vec_view = vec
 *         cdef mjtByte[::view.contiguous] geomgroup_view = geomgroup             # <<<<<<<<<<<<<<
 * 
 *         distance = mj_ray(self.model.ptr,
 */
  __pyx_t_2 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn_mjtByte(((PyObject *)__pyx_v_geomgroup), PyBUF_WRITABLE); if (unlikely(!__pyx_t_2.memview)) __PYX_ERR(5, 399, __pyx_L1_error)
  __pyx_v_geomgroup_view = __pyx_t_2;
  __pyx_t_2.memview = NULL;
  __pyx_t_2.data = NULL;

  /* "mujoco_py/mjsim.pyx":403
 *         distance = mj_ray(self.model.ptr,
 *                           self.data.ptr,
 *                           &pnt_view[0],             # <<<<<<<<<<<<<<
 *                           &vec_view[0],
 *                           &geomgroup_view[0],
 */
  __pyx_t_3 = 0;
  __pyx_t_4 = -1;
  if (__pyx_t_3 < 0) {
    __pyx_t_3 += __pyx_v_pnt_view.shape[0];
    if (unlikely(__pyx_t_3 < 0)) __pyx_t_4 = 0;
  } else if (unlikely(__pyx_t_3 >= __pyx_v_pnt_view.shape[0])) __pyx_t_4 = 0;
  if (unlikely(__pyx_t_4 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_4);
    __PYX_ERR(5, 403, __pyx_L1_error)
  }

  /* "mujoco_py/mjsim.pyx":404
 *                           self.data.ptr,
 *                           &pnt_view[0],
 *                           &vec_view[0],             # <<<<<<<<<<<<<<
 *                           &geomgroup_view[0],
 *                           flg_static,
 */
  __pyx_t_5 = 0;
  __pyx_t_4 = -1;
  if (__pyx_t_5 < 0) {
    __pyx_t_5 += __pyx_v_vec_view.shape[0];
    if (unlikely(__pyx_t_5 < 0)) __pyx_t_4 = 0;
  } else if (unlikely(__pyx_t_5 >= __pyx_v_vec_view.shape[0])) __pyx_t_4 = 0;
  if (unlikely(__pyx_t_4 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_4);
    __PYX_ERR(5, 404, __pyx_L1_error)
  }

  /* "mujoco_py/mjsim.pyx":405
 *                           &pnt_view[0],
 *                           &vec_view[0],
 *                           &geomgroup_view[0],             # <<<<<<<<<<<<<<
 *                           flg_static,
 *                           bodyexclude,
 */
  __pyx_t_6 = 0;
  __pyx_t_4 = -1;
  if (__pyx_t_6 < 0) {
    __pyx_t_6 += __pyx_v_geomgroup_view.shape[0];
    if (unlikely(__pyx_t_6 < 0)) __pyx_t_4 = 0;
  } else if (unlikely(__pyx_t_6 >= __pyx_v_geomgroup_view.shape[0])) __pyx_t_4 = 0;
  if (unlikely(__pyx_t_4 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_4);
    __PYX_ERR(5, 405, __pyx_L1_error)
  }

  /* "mujoco_py/mjsim.pyx":401
 *         cdef mjtByte[::view.contiguous] geomgroup_view = geomgroup
 * 
 *         distance = mj_ray(self.model.ptr,             # <<<<<<<<<<<<<<
 *                           self.data.ptr,
 *                           &pnt_view[0],
 */
  __pyx_v_distance = mj_ray(__pyx_v_self->model->ptr, __pyx_v_self->data->ptr, (&(*((mjtNum *) ( /* dim=0 */ ((char *) (((mjtNum *) __pyx_v_pnt_view.data) + __pyx_t_3)) )))), (&(*((mjtNum *) ( /* dim=0 */ ((char *) (((mjtNum *) __pyx_v_vec_view.data) + __pyx_t_5)) )))), (&(*((mjtByte *) ( /* dim=0 */ ((char *) (((mjtByte *) __pyx_v_geomgroup_view.data) + __pyx_t_6)) )))), __pyx_v_flg_static, __pyx_v_bodyexclude, (&__pyx_v_geomid));

  /* "mujoco_py/mjsim.pyx":409
 *                           bodyexclude,
 *                           &geomid)
 *         return (distance, geomid)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_distance); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_geomid); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7)) __PYX_ERR(5, 409, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_8);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_8)) __PYX_ERR(5, 409, __pyx_L1_error);
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;

  /* "mujoco_py/mjsim.pyx":383
 *                 exclude_body)
 * 
 *     def ray_fast_group(self,             # <<<<<<<<<<<<<<
 *             np.ndarray[np.float64_t, mode="c", ndim=1] pnt,
 *             np.ndarray[np.float64_t, mode="c", ndim=1] vec,
 */

  /* function exit code */
  __pyx_L1_error:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_1, 1);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_2, 1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_geomgroup.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.ray_fast_group", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_geomgroup.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_pnt_view, 1);
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_vec_view, 1);
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_geomgroup_view, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":412
 * 
 * 
 *     def ray_fast_nogroup(self,             # <<<<<<<<<<<<<<
 *             np.ndarray[np.float64_t, mode="c", ndim=1] pnt,
 *             np.ndarray[np.float64_t, mode="c", ndim=1] vec,
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_33ray_fast_nogroup(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_5MjSim_32ray_fast_nogroup, "\n        Faster version of sim.ray(), which avoids extra copies,\n        but needs to be given all the correct type arrays.\n\n        This version hardcodes the geomgroup to NULL.\n        (Can't easily express a signature that is \"numpy array of specific type or None\")\n\n        See self.ray() for explanation of arguments\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_33ray_fast_nogroup = {"ray_fast_nogroup", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_33ray_fast_nogroup, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_32ray_fast_nogroup};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_33ray_fast_nogroup(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_pnt = 0;
  PyArrayObject *__pyx_v_vec = 0;
  mjtByte __pyx_v_flg_static;
  int __pyx_v_bodyexclude;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ray_fast_nogroup (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pnt,&__pyx_n_s_vec,&__pyx_n_s_flg_static,&__pyx_n_s_bodyexclude,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pnt)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 412, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vec)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 412, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("ray_fast_nogroup", 0, 2, 4, 1); __PYX_ERR(5, 412, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flg_static);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 412, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_bodyexclude);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 412, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "ray_fast_nogroup") < 0)) __PYX_ERR(5, 412, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_pnt = ((PyArrayObject *)values[0]);
    __pyx_v_vec = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_flg_static = __Pyx_PyInt_As_mjtByte(values[2]); if (unlikely((__pyx_v_flg_static == ((mjtByte)-1)) && PyErr_Occurred())) __PYX_ERR(5, 415, __pyx_L3_error)
    } else {
      __pyx_v_flg_static = ((mjtByte)1);
    }
    if (values[3]) {
      __pyx_v_bodyexclude = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_bodyexclude == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 416, __pyx_L3_error)
    } else {
      __pyx_v_bodyexclude = ((int)-1);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ray_fast_nogroup", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 412, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.ray_fast_nogroup", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pnt), __pyx_ptype_5numpy_ndarray, 1, "pnt", 0))) __PYX_ERR(5, 413, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_5numpy_ndarray, 1, "vec", 0))) __PYX_ERR(5, 414, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_32ray_fast_nogroup(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), __pyx_v_pnt, __pyx_v_vec, __pyx_v_flg_static, __pyx_v_bodyexclude);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_32ray_fast_nogroup(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyArrayObject *__pyx_v_pnt, PyArrayObject *__pyx_v_vec, mjtByte __pyx_v_flg_static, int __pyx_v_bodyexclude) {
  int __pyx_v_geomid;
  mjtNum __pyx_v_distance;
  __Pyx_memviewslice __pyx_v_pnt_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_vec_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_LocalBuf_ND __pyx_pybuffernd_pnt;
  __Pyx_Buffer __pyx_pybuffer_pnt;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_vec;
  __Pyx_Buffer __pyx_pybuffer_vec;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_memviewslice __pyx_t_1 = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ray_fast_nogroup", 1);
  __pyx_pybuffer_pnt.pybuffer.buf = NULL;
  __pyx_pybuffer_pnt.refcount = 0;
  __pyx_pybuffernd_pnt.data = NULL;
  __pyx_pybuffernd_pnt.rcbuffer = &__pyx_pybuffer_pnt;
  __pyx_pybuffer_vec.pybuffer.buf = NULL;
  __pyx_pybuffer_vec.refcount = 0;
  __pyx_pybuffernd_vec.data = NULL;
  __pyx_pybuffernd_vec.rcbuffer = &__pyx_pybuffer_vec;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer, (PyObject*)__pyx_v_pnt, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(5, 412, __pyx_L1_error)
  }
  __pyx_pybuffernd_pnt.diminfo[0].strides = __pyx_pybuffernd_pnt.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pnt.diminfo[0].shape = __pyx_pybuffernd_pnt.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_vec.rcbuffer->pybuffer, (PyObject*)__pyx_v_vec, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(5, 412, __pyx_L1_error)
  }
  __pyx_pybuffernd_vec.diminfo[0].strides = __pyx_pybuffernd_vec.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_vec.diminfo[0].shape = __pyx_pybuffernd_vec.rcbuffer->pybuffer.shape[0];

  /* "mujoco_py/mjsim.pyx":428
 *         cdef int geomid
 *         cdef mjtNum distance
 *         cdef mjtNum[::view.contiguous] pnt_view = pnt             # <<<<<<<<<<<<<<
 *         cdef mjtNum[::view.contiguous] vec_view = vec
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn_mjtNum(((PyObject *)__pyx_v_pnt), PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(5, 428, __pyx_L1_error)
  __pyx_v_pnt_view = __pyx_t_1;
  __pyx_t_1.memview = NULL;
  __pyx_t_1.data = NULL;

  /* "mujoco_py/mjsim.pyx":429
 *         cdef mjtNum distance
 *         cdef mjtNum[::view.contiguous] pnt_view = pnt
 *         cdef mjtNum[::view.contiguous] vec_view = vec             # <<<<<<<<<<<<<<
 * 
 *         distance = mj_ray(self.model.ptr,
 */
  __pyx_t_1 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn_mjtNum(((PyObject *)__pyx_v_vec), PyBUF_WRITABLE); if (unlikely(!__pyx_t_1.memview)) __PYX_ERR(5, 429, __pyx_L1_error)
  __pyx_v_vec_view = __pyx_t_1;
  __pyx_t_1.memview = NULL;
  __pyx_t_1.data = NULL;

  /* "mujoco_py/mjsim.pyx":433
 *         distance = mj_ray(self.model.ptr,
 *                           self.data.ptr,
 *                           &pnt_view[0],             # <<<<<<<<<<<<<<
 *                           &vec_view[0],
 *                           NULL,
 */
  __pyx_t_2 = 0;
  __pyx_t_3 = -1;
  if (__pyx_t_2 < 0) {
    __pyx_t_2 += __pyx_v_pnt_view.shape[0];
    if (unlikely(__pyx_t_2 < 0)) __pyx_t_3 = 0;
  } else if (unlikely(__pyx_t_2 >= __pyx_v_pnt_view.shape[0])) __pyx_t_3 = 0;
  if (unlikely(__pyx_t_3 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_3);
    __PYX_ERR(5, 433, __pyx_L1_error)
  }

  /* "mujoco_py/mjsim.pyx":434
 *                           self.data.ptr,
 *                           &pnt_view[0],
 *                           &vec_view[0],             # <<<<<<<<<<<<<<
 *                           NULL,
 *                           flg_static,
 */
  __pyx_t_4 = 0;
  __pyx_t_3 = -1;
  if (__pyx_t_4 < 0) {
    __pyx_t_4 += __pyx_v_vec_view.shape[0];
    if (unlikely(__pyx_t_4 < 0)) __pyx_t_3 = 0;
  } else if (unlikely(__pyx_t_4 >= __pyx_v_vec_view.shape[0])) __pyx_t_3 = 0;
  if (unlikely(__pyx_t_3 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_3);
    __PYX_ERR(5, 434, __pyx_L1_error)
  }

  /* "mujoco_py/mjsim.pyx":431
 *         cdef mjtNum[::view.contiguous] vec_view = vec
 * 
 *         distance = mj_ray(self.model.ptr,             # <<<<<<<<<<<<<<
 *                           self.data.ptr,
 *                           &pnt_view[0],
 */
  __pyx_v_distance = mj_ray(__pyx_v_self->model->ptr, __pyx_v_self->data->ptr, (&(*((mjtNum *) ( /* dim=0 */ ((char *) (((mjtNum *) __pyx_v_pnt_view.data) + __pyx_t_2)) )))), (&(*((mjtNum *) ( /* dim=0 */ ((char *) (((mjtNum *) __pyx_v_vec_view.data) + __pyx_t_4)) )))), NULL, __pyx_v_flg_static, __pyx_v_bodyexclude, (&__pyx_v_geomid));

  /* "mujoco_py/mjsim.pyx":439
 *                           bodyexclude,
 *                           &geomid)
 *         return (distance, geomid)             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_distance); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_geomid); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5)) __PYX_ERR(5, 439, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6)) __PYX_ERR(5, 439, __pyx_L1_error);
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "mujoco_py/mjsim.pyx":412
 * 
 * 
 *     def ray_fast_nogroup(self,             # <<<<<<<<<<<<<<
 *             np.ndarray[np.float64_t, mode="c", ndim=1] pnt,
 *             np.ndarray[np.float64_t, mode="c", ndim=1] vec,
 */

  /* function exit code */
  __pyx_L1_error:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_1, 1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.ray_fast_nogroup", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pnt.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_vec.rcbuffer->pybuffer);
  __pyx_L2:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_pnt_view, 1);
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_vec_view, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":44
 *     """
 *     # MjRenderContext for rendering camera views.
 *     cdef readonly list render_contexts             # <<<<<<<<<<<<<<
 *     cdef readonly object _render_context_window
 *     cdef readonly object _render_context_offscreen
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_15render_contexts_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_15render_contexts_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_15render_contexts___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_15render_contexts___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->render_contexts);
  __pyx_r = __pyx_v_self->render_contexts;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":45
 *     # MjRenderContext for rendering camera views.
 *     cdef readonly list render_contexts
 *     cdef readonly object _render_context_window             # <<<<<<<<<<<<<<
 *     cdef readonly object _render_context_offscreen
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_22_render_context_window_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_22_render_context_window_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_22_render_context_window___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_22_render_context_window___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_render_context_window);
  __pyx_r = __pyx_v_self->_render_context_window;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":46
 *     cdef readonly list render_contexts
 *     cdef readonly object _render_context_window
 *     cdef readonly object _render_context_offscreen             # <<<<<<<<<<<<<<
 * 
 *     # MuJoCo model
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_25_render_context_offscreen_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_25_render_context_offscreen_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_25_render_context_offscreen___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_25_render_context_offscreen___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_render_context_offscreen);
  __pyx_r = __pyx_v_self->_render_context_offscreen;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":49
 * 
 *     # MuJoCo model
 *     cdef readonly PyMjModel model             # <<<<<<<<<<<<<<
 *     # MuJoCo data
 *     """
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_5model_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_5model_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_5model___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_5model___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->model);
  __pyx_r = ((PyObject *)__pyx_v_self->model);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":54
 *     DATAZ
 *     """
 *     cdef readonly PyMjData data             # <<<<<<<<<<<<<<
 *     # Number of substeps when calling .step
 *     cdef public int nsubsteps
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_4data_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_4data_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_4data___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_4data___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->data);
  __pyx_r = ((PyObject *)__pyx_v_self->data);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":56
 *     cdef readonly PyMjData data
 *     # Number of substeps when calling .step
 *     cdef public int nsubsteps             # <<<<<<<<<<<<<<
 *     # User defined state.
 *     cdef public dict udd_state
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_9nsubsteps_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_9nsubsteps_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_9nsubsteps___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_9nsubsteps___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->nsubsteps); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.nsubsteps.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_5MjSim_9nsubsteps_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_5MjSim_9nsubsteps_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_9nsubsteps_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_5MjSim_9nsubsteps_2__set__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 56, __pyx_L1_error)
  __pyx_v_self->nsubsteps = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.nsubsteps.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":58
 *     cdef public int nsubsteps
 *     # User defined state.
 *     cdef public dict udd_state             # <<<<<<<<<<<<<<
 *     # User defined dynamics callback
 *     cdef readonly object _udd_callback
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_9udd_state_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_9udd_state_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_9udd_state___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_9udd_state___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->udd_state);
  __pyx_r = __pyx_v_self->udd_state;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_5MjSim_9udd_state_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_5MjSim_9udd_state_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_9udd_state_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_5MjSim_9udd_state_2__set__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(PyDict_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_v_value))) __PYX_ERR(5, 58, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->udd_state);
  __Pyx_DECREF(__pyx_v_self->udd_state);
  __pyx_v_self->udd_state = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.udd_state.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_5MjSim_9udd_state_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_5MjSim_9udd_state_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_9udd_state_4__del__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_5MjSim_9udd_state_4__del__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->udd_state);
  __Pyx_DECREF(__pyx_v_self->udd_state);
  __pyx_v_self->udd_state = ((PyObject*)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":60
 *     cdef public dict udd_state
 *     # User defined dynamics callback
 *     cdef readonly object _udd_callback             # <<<<<<<<<<<<<<
 *     # Allows to store extra information in MjSim.
 *     cdef readonly dict extras
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_13_udd_callback_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_13_udd_callback_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_13_udd_callback___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_13_udd_callback___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_udd_callback);
  __pyx_r = __pyx_v_self->_udd_callback;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":62
 *     cdef readonly object _udd_callback
 *     # Allows to store extra information in MjSim.
 *     cdef readonly dict extras             # <<<<<<<<<<<<<<
 *     # Function pointer for substep callback, stored as uintptr
 *     cdef readonly uintptr_t substep_callback_ptr
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_6extras_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_6extras_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_6extras___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_6extras___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->extras);
  __pyx_r = __pyx_v_self->extras;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":64
 *     cdef readonly dict extras
 *     # Function pointer for substep callback, stored as uintptr
 *     cdef readonly uintptr_t substep_callback_ptr             # <<<<<<<<<<<<<<
 *     # Callback executed before rendering.
 *     cdef public object render_callback
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_20substep_callback_ptr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_20substep_callback_ptr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_20substep_callback_ptr___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_20substep_callback_ptr___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->substep_callback_ptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.substep_callback_ptr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsim.pyx":66
 *     cdef readonly uintptr_t substep_callback_ptr
 *     # Callback executed before rendering.
 *     cdef public object render_callback             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, PyMjModel model, PyMjData data=None, int nsubsteps=1,
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_15render_callback_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_15render_callback_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_15render_callback___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_15render_callback___get__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->render_callback);
  __pyx_r = __pyx_v_self->render_callback;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_5MjSim_15render_callback_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_5MjSim_15render_callback_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_15render_callback_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_5MjSim_15render_callback_2__set__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 1);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->render_callback);
  __Pyx_DECREF(__pyx_v_self->render_callback);
  __pyx_v_self->render_callback = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_5MjSim_15render_callback_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_5MjSim_15render_callback_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_15render_callback_4__del__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_5MjSim_15render_callback_4__del__(struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->render_callback);
  __Pyx_DECREF(__pyx_v_self->render_callback);
  __pyx_v_self->render_callback = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_35__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_35__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_35__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_35__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_34__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_34__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_37__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_5MjSim_37__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_37__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_5MjSim_37__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_5MjSim_36__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_5MjSim_36__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.MjSim.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsimstate.pyx":10
 * 
 *     # need to implement this because numpy doesn't support == on arrays
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         if not isinstance(other, self.__class__):
 *             return NotImplemented
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10MjSimState_1__eq__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10MjSimState_1__eq__ = {"__eq__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10MjSimState_1__eq__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10MjSimState_1__eq__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_other = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_other,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 10, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_other)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 10, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__eq__", 1, 2, 2, 1); __PYX_ERR(6, 10, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__eq__") < 0)) __PYX_ERR(6, 10, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_other = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__eq__", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 10, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSimState.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10MjSimState___eq__(__pyx_self, __pyx_v_self, __pyx_v_other);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10MjSimState___eq__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_v_k = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  Py_ssize_t __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 1);

  /* "mujoco_py/mjsimstate.pyx":11
 *     # need to implement this because numpy doesn't support == on arrays
 *     def __eq__(self, other):
 *         if not isinstance(other, self.__class__):             # <<<<<<<<<<<<<<
 *             return NotImplemented
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_IsInstance(__pyx_v_other, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(6, 11, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "mujoco_py/mjsimstate.pyx":12
 *     def __eq__(self, other):
 *         if not isinstance(other, self.__class__):
 *             return NotImplemented             # <<<<<<<<<<<<<<
 * 
 *         if set(self.udd_state.keys()) != set(other.udd_state.keys()):
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_builtin_NotImplemented);
    __pyx_r = __pyx_builtin_NotImplemented;
    goto __pyx_L0;

    /* "mujoco_py/mjsimstate.pyx":11
 *     # need to implement this because numpy doesn't support == on arrays
 *     def __eq__(self, other):
 *         if not isinstance(other, self.__class__):             # <<<<<<<<<<<<<<
 *             return NotImplemented
 * 
 */
  }

  /* "mujoco_py/mjsimstate.pyx":14
 *             return NotImplemented
 * 
 *         if set(self.udd_state.keys()) != set(other.udd_state.keys()):             # <<<<<<<<<<<<<<
 *             return False
 * 
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_udd_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 14, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 14, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 14, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_udd_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 14, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_keys); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __pyx_t_7 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_t_7, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(6, 14, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {

    /* "mujoco_py/mjsimstate.pyx":15
 * 
 *         if set(self.udd_state.keys()) != set(other.udd_state.keys()):
 *             return False             # <<<<<<<<<<<<<<
 * 
 *         for k in self.udd_state.keys():
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_False);
    __pyx_r = Py_False;
    goto __pyx_L0;

    /* "mujoco_py/mjsimstate.pyx":14
 *             return NotImplemented
 * 
 *         if set(self.udd_state.keys()) != set(other.udd_state.keys()):             # <<<<<<<<<<<<<<
 *             return False
 * 
 */
  }

  /* "mujoco_py/mjsimstate.pyx":17
 *             return False
 * 
 *         for k in self.udd_state.keys():             # <<<<<<<<<<<<<<
 *             if isinstance(self.udd_state[k], Number) and self.udd_state[k] != other.udd_state[k]:
 *                 return False
 */
  __pyx_t_8 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_udd_state); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (unlikely(__pyx_t_7 == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys");
    __PYX_ERR(6, 17, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_dict_iterator(__pyx_t_7, 0, __pyx_n_s_keys, (&__pyx_t_9), (&__pyx_t_6)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_5;
  __pyx_t_5 = 0;
  while (1) {
    __pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_8, &__pyx_t_5, NULL, NULL, __pyx_t_6);
    if (unlikely(__pyx_t_10 == 0)) break;
    if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(6, 17, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "mujoco_py/mjsimstate.pyx":18
 * 
 *         for k in self.udd_state.keys():
 *             if isinstance(self.udd_state[k], Number) and self.udd_state[k] != other.udd_state[k]:             # <<<<<<<<<<<<<<
 *                 return False
 *             elif not np.array_equal(self.udd_state[k], other.udd_state[k]):
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_udd_state); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 18, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_k); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 18, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Number); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 18, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyObject_IsInstance(__pyx_t_7, __pyx_t_5); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(6, 18, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_udd_state); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 18, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_k); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 18, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_udd_state); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 18, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_k); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 18, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_RichCompare(__pyx_t_7, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 18, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(6, 18, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_3 = __pyx_t_2;
    __pyx_L8_bool_binop_done:;
    if (__pyx_t_3) {

      /* "mujoco_py/mjsimstate.pyx":19
 *         for k in self.udd_state.keys():
 *             if isinstance(self.udd_state[k], Number) and self.udd_state[k] != other.udd_state[k]:
 *                 return False             # <<<<<<<<<<<<<<
 *             elif not np.array_equal(self.udd_state[k], other.udd_state[k]):
 *                 return False
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;

      /* "mujoco_py/mjsimstate.pyx":18
 * 
 *         for k in self.udd_state.keys():
 *             if isinstance(self.udd_state[k], Number) and self.udd_state[k] != other.udd_state[k]:             # <<<<<<<<<<<<<<
 *                 return False
 *             elif not np.array_equal(self.udd_state[k], other.udd_state[k]):
 */
    }

    /* "mujoco_py/mjsimstate.pyx":20
 *             if isinstance(self.udd_state[k], Number) and self.udd_state[k] != other.udd_state[k]:
 *                 return False
 *             elif not np.array_equal(self.udd_state[k], other.udd_state[k]):             # <<<<<<<<<<<<<<
 *                 return False
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array_equal); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_udd_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_k); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_udd_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_k); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_10 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_10 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_11, __pyx_t_12};
      __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 20, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(6, 20, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_2 = (!__pyx_t_3);
    if (__pyx_t_2) {

      /* "mujoco_py/mjsimstate.pyx":21
 *                 return False
 *             elif not np.array_equal(self.udd_state[k], other.udd_state[k]):
 *                 return False             # <<<<<<<<<<<<<<
 * 
 *         return (self.time == other.time and
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;

      /* "mujoco_py/mjsimstate.pyx":20
 *             if isinstance(self.udd_state[k], Number) and self.udd_state[k] != other.udd_state[k]:
 *                 return False
 *             elif not np.array_equal(self.udd_state[k], other.udd_state[k]):             # <<<<<<<<<<<<<<
 *                 return False
 * 
 */
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjsimstate.pyx":23
 *                 return False
 * 
 *         return (self.time == other.time and             # <<<<<<<<<<<<<<
 *                 np.array_equal(self.qpos, other.qpos) and
 *                 np.array_equal(self.qvel, other.qvel) and
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_time); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_time); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_12 = PyObject_RichCompare(__pyx_t_5, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 23, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(6, 23, __pyx_L1_error)
  if (__pyx_t_2) {
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_12);
    __pyx_t_1 = __pyx_t_12;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L10_bool_binop_done;
  }

  /* "mujoco_py/mjsimstate.pyx":24
 * 
 *         return (self.time == other.time and
 *                 np.array_equal(self.qpos, other.qpos) and             # <<<<<<<<<<<<<<
 *                 np.array_equal(self.qvel, other.qvel) and
 *                 np.array_equal(self.act, other.act))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_array_equal); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_qpos); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_qpos); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_7, __pyx_t_11};
    __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(6, 24, __pyx_L1_error)
  if (__pyx_t_2) {
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_12);
    __pyx_t_1 = __pyx_t_12;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L10_bool_binop_done;
  }

  /* "mujoco_py/mjsimstate.pyx":25
 *         return (self.time == other.time and
 *                 np.array_equal(self.qpos, other.qpos) and
 *                 np.array_equal(self.qvel, other.qvel) and             # <<<<<<<<<<<<<<
 *                 np.array_equal(self.act, other.act))
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_array_equal); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_qvel); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_qvel); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_11))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_11);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_11, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_t_7};
    __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 25, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  }
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(6, 25, __pyx_L1_error)
  if (__pyx_t_2) {
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_12);
    __pyx_t_1 = __pyx_t_12;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L10_bool_binop_done;
  }

  /* "mujoco_py/mjsimstate.pyx":26
 *                 np.array_equal(self.qpos, other.qpos) and
 *                 np.array_equal(self.qvel, other.qvel) and
 *                 np.array_equal(self.act, other.act))             # <<<<<<<<<<<<<<
 * 
 *     def __ne__(self, other):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_array_equal); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_act); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_act); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_11, __pyx_t_5};
    __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 26, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_INCREF(__pyx_t_12);
  __pyx_t_1 = __pyx_t_12;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_L10_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/mjsimstate.pyx":10
 * 
 *     # need to implement this because numpy doesn't support == on arrays
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         if not isinstance(other, self.__class__):
 *             return NotImplemented
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSimState.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_k);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsimstate.pyx":28
 *                 np.array_equal(self.act, other.act))
 * 
 *     def __ne__(self, other):             # <<<<<<<<<<<<<<
 *         return not self.__eq__(other)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10MjSimState_3__ne__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10MjSimState_3__ne__ = {"__ne__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10MjSimState_3__ne__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10MjSimState_3__ne__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_other = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__ne__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_other,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 28, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_other)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 28, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__ne__", 1, 2, 2, 1); __PYX_ERR(6, 28, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__ne__") < 0)) __PYX_ERR(6, 28, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_other = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__ne__", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 28, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSimState.__ne__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10MjSimState_2__ne__(__pyx_self, __pyx_v_self, __pyx_v_other);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10MjSimState_2__ne__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ne__", 1);

  /* "mujoco_py/mjsimstate.pyx":29
 * 
 *     def __ne__(self, other):
 *         return not self.__eq__(other)             # <<<<<<<<<<<<<<
 * 
 *     def flatten(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_eq); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_other};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 29, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(6, 29, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyBool_FromLong((!__pyx_t_5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/mjsimstate.pyx":28
 *                 np.array_equal(self.act, other.act))
 * 
 *     def __ne__(self, other):             # <<<<<<<<<<<<<<
 *         return not self.__eq__(other)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSimState.__ne__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsimstate.pyx":31
 *         return not self.__eq__(other)
 * 
 *     def flatten(self):             # <<<<<<<<<<<<<<
 *         """ Flattens a state into a numpy array of numbers."""
 *         if self.act is None:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10MjSimState_5flatten(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_10MjSimState_4flatten, " Flattens a state into a numpy array of numbers.");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10MjSimState_5flatten = {"flatten", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10MjSimState_5flatten, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_10MjSimState_4flatten};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10MjSimState_5flatten(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("flatten (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 31, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "flatten") < 0)) __PYX_ERR(6, 31, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("flatten", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 31, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSimState.flatten", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10MjSimState_4flatten(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10MjSimState_4flatten(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_act = NULL;
  PyObject *__pyx_v_state_tuple = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("flatten", 1);

  /* "mujoco_py/mjsimstate.pyx":33
 *     def flatten(self):
 *         """ Flattens a state into a numpy array of numbers."""
 *         if self.act is None:             # <<<<<<<<<<<<<<
 *             act = np.empty(0)
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_act); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "mujoco_py/mjsimstate.pyx":34
 *         """ Flattens a state into a numpy array of numbers."""
 *         if self.act is None:
 *             act = np.empty(0)             # <<<<<<<<<<<<<<
 *         else:
 *             act = self.act
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 34, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 34, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_int_0};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 34, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_v_act = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "mujoco_py/mjsimstate.pyx":33
 *     def flatten(self):
 *         """ Flattens a state into a numpy array of numbers."""
 *         if self.act is None:             # <<<<<<<<<<<<<<
 *             act = np.empty(0)
 *         else:
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/mjsimstate.pyx":36
 *             act = np.empty(0)
 *         else:
 *             act = self.act             # <<<<<<<<<<<<<<
 *         state_tuple = ([self.time], self.qpos, self.qvel, act,
 *                        MjSimState._flatten_dict(self.udd_state))
 */
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_act); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 36, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_act = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "mujoco_py/mjsimstate.pyx":37
 *         else:
 *             act = self.act
 *         state_tuple = ([self.time], self.qpos, self.qvel, act,             # <<<<<<<<<<<<<<
 *                        MjSimState._flatten_dict(self.udd_state))
 *         return np.concatenate(state_tuple)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_time); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(6, 37, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_qpos); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_qvel); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "mujoco_py/mjsimstate.pyx":38
 *             act = self.act
 *         state_tuple = ([self.time], self.qpos, self.qvel, act,
 *                        MjSimState._flatten_dict(self.udd_state))             # <<<<<<<<<<<<<<
 *         return np.concatenate(state_tuple)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_MjSimState); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_flatten_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_udd_state); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
    __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 38, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }

  /* "mujoco_py/mjsimstate.pyx":37
 *         else:
 *             act = self.act
 *         state_tuple = ([self.time], self.qpos, self.qvel, act,             # <<<<<<<<<<<<<<
 *                        MjSimState._flatten_dict(self.udd_state))
 *         return np.concatenate(state_tuple)
 */
  __pyx_t_8 = PyTuple_New(5); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4)) __PYX_ERR(6, 37, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_1)) __PYX_ERR(6, 37, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_3)) __PYX_ERR(6, 37, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_act);
  __Pyx_GIVEREF(__pyx_v_act);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_v_act)) __PYX_ERR(6, 37, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 4, __pyx_t_6)) __PYX_ERR(6, 37, __pyx_L1_error);
  __pyx_t_4 = 0;
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_t_6 = 0;
  __pyx_v_state_tuple = ((PyObject*)__pyx_t_8);
  __pyx_t_8 = 0;

  /* "mujoco_py/mjsimstate.pyx":39
 *         state_tuple = ([self.time], self.qpos, self.qvel, act,
 *                        MjSimState._flatten_dict(self.udd_state))
 *         return np.concatenate(state_tuple)             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_state_tuple};
    __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 39, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;

  /* "mujoco_py/mjsimstate.pyx":31
 *         return not self.__eq__(other)
 * 
 *     def flatten(self):             # <<<<<<<<<<<<<<
 *         """ Flattens a state into a numpy array of numbers."""
 *         if self.act is None:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSimState.flatten", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_act);
  __Pyx_XDECREF(__pyx_v_state_tuple);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsimstate.pyx":41
 *         return np.concatenate(state_tuple)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _flatten_dict(d):
 *         a = []
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10MjSimState_7_flatten_dict(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10MjSimState_7_flatten_dict = {"_flatten_dict", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10MjSimState_7_flatten_dict, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10MjSimState_7_flatten_dict(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_flatten_dict (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 41, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_flatten_dict") < 0)) __PYX_ERR(6, 41, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_d = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_flatten_dict", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 41, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSimState._flatten_dict", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10MjSimState_6_flatten_dict(__pyx_self, __pyx_v_d);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10MjSimState_6_flatten_dict(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_d) {
  PyObject *__pyx_v_a = NULL;
  PyObject *__pyx_v_k = NULL;
  PyObject *__pyx_v_v = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_flatten_dict", 1);

  /* "mujoco_py/mjsimstate.pyx":43
 *     @staticmethod
 *     def _flatten_dict(d):
 *         a = []             # <<<<<<<<<<<<<<
 *         for k in sorted(d.keys()):
 *             v = d[k]
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_a = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsimstate.pyx":44
 *     def _flatten_dict(d):
 *         a = []
 *         for k in sorted(d.keys()):             # <<<<<<<<<<<<<<
 *             v = d[k]
 *             if isinstance(v, Number):
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_d, __pyx_n_s_keys); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PySequence_List(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_6 = PyList_Sort(__pyx_t_1); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(6, 44, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3);
  __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
      #if !CYTHON_ASSUME_SAFE_MACROS
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 44, __pyx_L1_error)
      #endif
      if (__pyx_t_7 >= __pyx_temp) break;
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(6, 44, __pyx_L1_error)
    #else
    __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "mujoco_py/mjsimstate.pyx":45
 *         a = []
 *         for k in sorted(d.keys()):
 *             v = d[k]             # <<<<<<<<<<<<<<
 *             if isinstance(v, Number):
 *                 a.extend([v])
 */
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_d, __pyx_v_k); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 45, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "mujoco_py/mjsimstate.pyx":46
 *         for k in sorted(d.keys()):
 *             v = d[k]
 *             if isinstance(v, Number):             # <<<<<<<<<<<<<<
 *                 a.extend([v])
 *             else:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Number); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 46, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = PyObject_IsInstance(__pyx_v_v, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(6, 46, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_8) {

      /* "mujoco_py/mjsimstate.pyx":47
 *             v = d[k]
 *             if isinstance(v, Number):
 *                 a.extend([v])             # <<<<<<<<<<<<<<
 *             else:
 *                 a.extend(v.ravel())
 */
      __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_a, __pyx_v_v); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(6, 47, __pyx_L1_error)

      /* "mujoco_py/mjsimstate.pyx":46
 *         for k in sorted(d.keys()):
 *             v = d[k]
 *             if isinstance(v, Number):             # <<<<<<<<<<<<<<
 *                 a.extend([v])
 *             else:
 */
      goto __pyx_L5;
    }

    /* "mujoco_py/mjsimstate.pyx":49
 *                 a.extend([v])
 *             else:
 *                 a.extend(v.ravel())             # <<<<<<<<<<<<<<
 * 
 *         return np.array(a)
 */
    /*else*/ {
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_v, __pyx_n_s_ravel); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 49, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = NULL;
      __pyx_t_5 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_5 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 49, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __pyx_t_6 = __Pyx_PyList_Extend(__pyx_v_a, __pyx_t_1); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(6, 49, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L5:;

    /* "mujoco_py/mjsimstate.pyx":44
 *     def _flatten_dict(d):
 *         a = []
 *         for k in sorted(d.keys()):             # <<<<<<<<<<<<<<
 *             v = d[k]
 *             if isinstance(v, Number):
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/mjsimstate.pyx":51
 *                 a.extend(v.ravel())
 * 
 *         return np.array(a)             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_a};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/mjsimstate.pyx":41
 *         return np.concatenate(state_tuple)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _flatten_dict(d):
 *         a = []
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSimState._flatten_dict", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_a);
  __Pyx_XDECREF(__pyx_v_k);
  __Pyx_XDECREF(__pyx_v_v);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsimstate.pyx":53
 *         return np.array(a)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def from_flattened(array, sim):
 *         idx_time = 0
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10MjSimState_9from_flattened(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10MjSimState_9from_flattened = {"from_flattened", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10MjSimState_9from_flattened, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10MjSimState_9from_flattened(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_array = 0;
  PyObject *__pyx_v_sim = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("from_flattened (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_array,&__pyx_n_s_sim,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_array)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 53, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sim)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 53, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("from_flattened", 1, 2, 2, 1); __PYX_ERR(6, 53, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "from_flattened") < 0)) __PYX_ERR(6, 53, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_array = values[0];
    __pyx_v_sim = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("from_flattened", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 53, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSimState.from_flattened", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10MjSimState_8from_flattened(__pyx_self, __pyx_v_array, __pyx_v_sim);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10MjSimState_8from_flattened(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_array, PyObject *__pyx_v_sim) {
  PyObject *__pyx_v_idx_time = NULL;
  PyObject *__pyx_v_idx_qpos = NULL;
  PyObject *__pyx_v_idx_qvel = NULL;
  PyObject *__pyx_v_idx_act = NULL;
  PyObject *__pyx_v_idx_udd = NULL;
  PyObject *__pyx_v_time = NULL;
  PyObject *__pyx_v_qpos = NULL;
  PyObject *__pyx_v_qvel = NULL;
  PyObject *__pyx_v_act = NULL;
  PyObject *__pyx_v_flat_udd_state = NULL;
  PyObject *__pyx_v_udd_state = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("from_flattened", 1);

  /* "mujoco_py/mjsimstate.pyx":55
 *     @staticmethod
 *     def from_flattened(array, sim):
 *         idx_time = 0             # <<<<<<<<<<<<<<
 *         idx_qpos = idx_time + 1
 *         idx_qvel = idx_qpos + sim.model.nq
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_idx_time = __pyx_int_0;

  /* "mujoco_py/mjsimstate.pyx":56
 *     def from_flattened(array, sim):
 *         idx_time = 0
 *         idx_qpos = idx_time + 1             # <<<<<<<<<<<<<<
 *         idx_qvel = idx_qpos + sim.model.nq
 *         idx_act = idx_qvel + sim.model.nv
 */
  __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_idx_time, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_idx_qpos = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsimstate.pyx":57
 *         idx_time = 0
 *         idx_qpos = idx_time + 1
 *         idx_qvel = idx_qpos + sim.model.nq             # <<<<<<<<<<<<<<
 *         idx_act = idx_qvel + sim.model.nv
 *         idx_udd = idx_act + sim.model.na
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_sim, __pyx_n_s_model); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nq); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Add(__pyx_v_idx_qpos, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_idx_qvel = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsimstate.pyx":58
 *         idx_qpos = idx_time + 1
 *         idx_qvel = idx_qpos + sim.model.nq
 *         idx_act = idx_qvel + sim.model.nv             # <<<<<<<<<<<<<<
 *         idx_udd = idx_act + sim.model.na
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_sim, __pyx_n_s_model); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nv); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Add(__pyx_v_idx_qvel, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_idx_act = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsimstate.pyx":59
 *         idx_qvel = idx_qpos + sim.model.nq
 *         idx_act = idx_qvel + sim.model.nv
 *         idx_udd = idx_act + sim.model.na             # <<<<<<<<<<<<<<
 * 
 *         time = array[idx_time]
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_sim, __pyx_n_s_model); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_na); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Add(__pyx_v_idx_act, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_idx_udd = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsimstate.pyx":61
 *         idx_udd = idx_act + sim.model.na
 * 
 *         time = array[idx_time]             # <<<<<<<<<<<<<<
 *         qpos = array[idx_qpos:idx_qpos + sim.model.nq]
 *         qvel = array[idx_qvel:idx_qvel + sim.model.nv]
 */
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_array, __pyx_v_idx_time); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_time = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsimstate.pyx":62
 * 
 *         time = array[idx_time]
 *         qpos = array[idx_qpos:idx_qpos + sim.model.nq]             # <<<<<<<<<<<<<<
 *         qvel = array[idx_qvel:idx_qvel + sim.model.nv]
 *         if sim.model.na == 0:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_sim, __pyx_n_s_model); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nq); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Add(__pyx_v_idx_qpos, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_array, 0, 0, &__pyx_v_idx_qpos, &__pyx_t_1, NULL, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_qpos = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "mujoco_py/mjsimstate.pyx":63
 *         time = array[idx_time]
 *         qpos = array[idx_qpos:idx_qpos + sim.model.nq]
 *         qvel = array[idx_qvel:idx_qvel + sim.model.nv]             # <<<<<<<<<<<<<<
 *         if sim.model.na == 0:
 *             act = None
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_sim, __pyx_n_s_model); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_nv); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Add(__pyx_v_idx_qvel, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_array, 0, 0, &__pyx_v_idx_qvel, &__pyx_t_2, NULL, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_qvel = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsimstate.pyx":64
 *         qpos = array[idx_qpos:idx_qpos + sim.model.nq]
 *         qvel = array[idx_qvel:idx_qvel + sim.model.nv]
 *         if sim.model.na == 0:             # <<<<<<<<<<<<<<
 *             act = None
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_sim, __pyx_n_s_model); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_na); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__Pyx_PyInt_BoolEqObjC(__pyx_t_2, __pyx_int_0, 0, 0)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(6, 64, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "mujoco_py/mjsimstate.pyx":65
 *         qvel = array[idx_qvel:idx_qvel + sim.model.nv]
 *         if sim.model.na == 0:
 *             act = None             # <<<<<<<<<<<<<<
 *         else:
 *             act = array[idx_act:idx_act + sim.model.na]
 */
    __Pyx_INCREF(Py_None);
    __pyx_v_act = Py_None;

    /* "mujoco_py/mjsimstate.pyx":64
 *         qpos = array[idx_qpos:idx_qpos + sim.model.nq]
 *         qvel = array[idx_qvel:idx_qvel + sim.model.nv]
 *         if sim.model.na == 0:             # <<<<<<<<<<<<<<
 *             act = None
 *         else:
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/mjsimstate.pyx":67
 *             act = None
 *         else:
 *             act = array[idx_act:idx_act + sim.model.na]             # <<<<<<<<<<<<<<
 *         flat_udd_state = array[idx_udd:]
 *         udd_state = MjSimState._unflatten_dict(flat_udd_state, sim.udd_state)
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_sim, __pyx_n_s_model); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_na); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_v_idx_act, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_array, 0, 0, &__pyx_v_idx_act, &__pyx_t_2, NULL, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_act = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "mujoco_py/mjsimstate.pyx":68
 *         else:
 *             act = array[idx_act:idx_act + sim.model.na]
 *         flat_udd_state = array[idx_udd:]             # <<<<<<<<<<<<<<
 *         udd_state = MjSimState._unflatten_dict(flat_udd_state, sim.udd_state)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_array, 0, 0, &__pyx_v_idx_udd, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_flat_udd_state = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsimstate.pyx":69
 *             act = array[idx_act:idx_act + sim.model.na]
 *         flat_udd_state = array[idx_udd:]
 *         udd_state = MjSimState._unflatten_dict(flat_udd_state, sim.udd_state)             # <<<<<<<<<<<<<<
 * 
 *         return MjSimState(time, qpos, qvel, act, udd_state)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MjSimState); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_unflatten_dict); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_sim, __pyx_n_s_udd_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_v_flat_udd_state, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 69, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_v_udd_state = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsimstate.pyx":71
 *         udd_state = MjSimState._unflatten_dict(flat_udd_state, sim.udd_state)
 * 
 *         return MjSimState(time, qpos, qvel, act, udd_state)             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_MjSimState); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[6] = {__pyx_t_2, __pyx_v_time, __pyx_v_qpos, __pyx_v_qvel, __pyx_v_act, __pyx_v_udd_state};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 5+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 71, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/mjsimstate.pyx":53
 *         return np.array(a)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def from_flattened(array, sim):
 *         idx_time = 0
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSimState.from_flattened", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_idx_time);
  __Pyx_XDECREF(__pyx_v_idx_qpos);
  __Pyx_XDECREF(__pyx_v_idx_qvel);
  __Pyx_XDECREF(__pyx_v_idx_act);
  __Pyx_XDECREF(__pyx_v_idx_udd);
  __Pyx_XDECREF(__pyx_v_time);
  __Pyx_XDECREF(__pyx_v_qpos);
  __Pyx_XDECREF(__pyx_v_qvel);
  __Pyx_XDECREF(__pyx_v_act);
  __Pyx_XDECREF(__pyx_v_flat_udd_state);
  __Pyx_XDECREF(__pyx_v_udd_state);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjsimstate.pyx":73
 *         return MjSimState(time, qpos, qvel, act, udd_state)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _unflatten_dict(a, schema_example):
 *         d = {}
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_10MjSimState_11_unflatten_dict(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_10MjSimState_11_unflatten_dict = {"_unflatten_dict", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10MjSimState_11_unflatten_dict, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_10MjSimState_11_unflatten_dict(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_a = 0;
  PyObject *__pyx_v_schema_example = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_unflatten_dict (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_a,&__pyx_n_s_schema_example,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 73, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_schema_example)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 73, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_unflatten_dict", 1, 2, 2, 1); __PYX_ERR(6, 73, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_unflatten_dict") < 0)) __PYX_ERR(6, 73, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_a = values[0];
    __pyx_v_schema_example = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_unflatten_dict", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 73, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjSimState._unflatten_dict", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_10MjSimState_10_unflatten_dict(__pyx_self, __pyx_v_a, __pyx_v_schema_example);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_10MjSimState_10_unflatten_dict(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_a, PyObject *__pyx_v_schema_example) {
  PyObject *__pyx_v_d = NULL;
  PyObject *__pyx_v_idx = NULL;
  PyObject *__pyx_v_k = NULL;
  PyObject *__pyx_v_schema_val = NULL;
  PyObject *__pyx_v_val = NULL;
  PyObject *__pyx_v_val_array = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_unflatten_dict", 1);

  /* "mujoco_py/mjsimstate.pyx":75
 *     @staticmethod
 *     def _unflatten_dict(a, schema_example):
 *         d = {}             # <<<<<<<<<<<<<<
 *         idx = 0
 *         for k in sorted(schema_example.keys()):
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_d = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "mujoco_py/mjsimstate.pyx":76
 *     def _unflatten_dict(a, schema_example):
 *         d = {}
 *         idx = 0             # <<<<<<<<<<<<<<
 *         for k in sorted(schema_example.keys()):
 *             schema_val = schema_example[k]
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_idx = __pyx_int_0;

  /* "mujoco_py/mjsimstate.pyx":77
 *         d = {}
 *         idx = 0
 *         for k in sorted(schema_example.keys()):             # <<<<<<<<<<<<<<
 *             schema_val = schema_example[k]
 *             if isinstance(schema_val, Number):
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_schema_example, __pyx_n_s_keys); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PySequence_List(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_6 = PyList_Sort(__pyx_t_1); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(6, 77, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3);
  __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
      #if !CYTHON_ASSUME_SAFE_MACROS
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 77, __pyx_L1_error)
      #endif
      if (__pyx_t_7 >= __pyx_temp) break;
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(6, 77, __pyx_L1_error)
    #else
    __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "mujoco_py/mjsimstate.pyx":78
 *         idx = 0
 *         for k in sorted(schema_example.keys()):
 *             schema_val = schema_example[k]             # <<<<<<<<<<<<<<
 *             if isinstance(schema_val, Number):
 *                 val = a[idx]
 */
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_schema_example, __pyx_v_k); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 78, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_schema_val, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "mujoco_py/mjsimstate.pyx":79
 *         for k in sorted(schema_example.keys()):
 *             schema_val = schema_example[k]
 *             if isinstance(schema_val, Number):             # <<<<<<<<<<<<<<
 *                 val = a[idx]
 *                 idx += 1
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Number); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 79, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = PyObject_IsInstance(__pyx_v_schema_val, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(6, 79, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_8) {

      /* "mujoco_py/mjsimstate.pyx":80
 *             schema_val = schema_example[k]
 *             if isinstance(schema_val, Number):
 *                 val = a[idx]             # <<<<<<<<<<<<<<
 *                 idx += 1
 *                 d[k] = val
 */
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_a, __pyx_v_idx); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 80, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "mujoco_py/mjsimstate.pyx":81
 *             if isinstance(schema_val, Number):
 *                 val = a[idx]
 *                 idx += 1             # <<<<<<<<<<<<<<
 *                 d[k] = val
 *             else:
 */
      __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_idx, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 81, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_idx, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "mujoco_py/mjsimstate.pyx":82
 *                 val = a[idx]
 *                 idx += 1
 *                 d[k] = val             # <<<<<<<<<<<<<<
 *             else:
 *                 assert isinstance(schema_val, np.ndarray)
 */
      if (unlikely((PyDict_SetItem(__pyx_v_d, __pyx_v_k, __pyx_v_val) < 0))) __PYX_ERR(6, 82, __pyx_L1_error)

      /* "mujoco_py/mjsimstate.pyx":79
 *         for k in sorted(schema_example.keys()):
 *             schema_val = schema_example[k]
 *             if isinstance(schema_val, Number):             # <<<<<<<<<<<<<<
 *                 val = a[idx]
 *                 idx += 1
 */
      goto __pyx_L5;
    }

    /* "mujoco_py/mjsimstate.pyx":84
 *                 d[k] = val
 *             else:
 *                 assert isinstance(schema_val, np.ndarray)             # <<<<<<<<<<<<<<
 *                 val_array = a[idx:idx+schema_val.size]
 *                 idx += schema_val.size
 */
    /*else*/ {
      #ifndef CYTHON_WITHOUT_ASSERTIONS
      if (unlikely(__pyx_assertions_enabled())) {
        __pyx_t_8 = __Pyx_TypeCheck(__pyx_v_schema_val, __pyx_ptype_5numpy_ndarray); 
        if (unlikely(!__pyx_t_8)) {
          __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
          __PYX_ERR(6, 84, __pyx_L1_error)
        }
      }
      #else
      if ((1)); else __PYX_ERR(6, 84, __pyx_L1_error)
      #endif

      /* "mujoco_py/mjsimstate.pyx":85
 *             else:
 *                 assert isinstance(schema_val, np.ndarray)
 *                 val_array = a[idx:idx+schema_val.size]             # <<<<<<<<<<<<<<
 *                 idx += schema_val.size
 *                 val = np.array(val_array).reshape(schema_val.shape)
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_schema_val, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 85, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyNumber_Add(__pyx_v_idx, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 85, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_a, 0, 0, &__pyx_v_idx, &__pyx_t_2, NULL, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 85, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF_SET(__pyx_v_val_array, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "mujoco_py/mjsimstate.pyx":86
 *                 assert isinstance(schema_val, np.ndarray)
 *                 val_array = a[idx:idx+schema_val.size]
 *                 idx += schema_val.size             # <<<<<<<<<<<<<<
 *                 val = np.array(val_array).reshape(schema_val.shape)
 *                 d[k] = val
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_schema_val, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 86, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_idx, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 86, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_idx, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "mujoco_py/mjsimstate.pyx":87
 *                 val_array = a[idx:idx+schema_val.size]
 *                 idx += schema_val.size
 *                 val = np.array(val_array).reshape(schema_val.shape)             # <<<<<<<<<<<<<<
 *                 d[k] = val
 *         return d
 */
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 87, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 87, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = NULL;
      __pyx_t_5 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
          __pyx_t_5 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_val_array};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 87, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_reshape); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 87, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_schema_val, __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 87, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = NULL;
      __pyx_t_5 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
          __pyx_t_5 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_1};
        __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 87, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
      __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "mujoco_py/mjsimstate.pyx":88
 *                 idx += schema_val.size
 *                 val = np.array(val_array).reshape(schema_val.shape)
 *                 d[k] = val             # <<<<<<<<<<<<<<
 *         return d
 */
      if (unlikely((PyDict_SetItem(__pyx_v_d, __pyx_v_k, __pyx_v_val) < 0))) __PYX_ERR(6, 88, __pyx_L1_error)
    }
    __pyx_L5:;

    /* "mujoco_py/mjsimstate.pyx":77
 *         d = {}
 *         idx = 0
 *         for k in sorted(schema_example.keys()):             # <<<<<<<<<<<<<<
 *             schema_val = schema_example[k]
 *             if isinstance(schema_val, Number):
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/mjsimstate.pyx":89
 *                 val = np.array(val_array).reshape(schema_val.shape)
 *                 d[k] = val
 *         return d             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_d);
  __pyx_r = __pyx_v_d;
  goto __pyx_L0;

  /* "mujoco_py/mjsimstate.pyx":73
 *         return MjSimState(time, qpos, qvel, act, udd_state)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _unflatten_dict(a, schema_example):
 *         d = {}
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("mujoco_py.cymj.MjSimState._unflatten_dict", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_d);
  __Pyx_XDECREF(__pyx_v_idx);
  __Pyx_XDECREF(__pyx_v_k);
  __Pyx_XDECREF(__pyx_v_schema_val);
  __Pyx_XDECREF(__pyx_v_val);
  __Pyx_XDECREF(__pyx_v_val_array);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":36
 *     cdef public object sim
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         maxgeom = 1000
 *         mjv_makeScene(self._model_ptr, &self._scn, maxgeom)
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext___cinit__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_15MjRenderContext___cinit__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {
  long __pyx_v_maxgeom;
  int __pyx_r;

  /* "mujoco_py/mjrendercontext.pyx":37
 * 
 *     def __cinit__(self):
 *         maxgeom = 1000             # <<<<<<<<<<<<<<
 *         mjv_makeScene(self._model_ptr, &self._scn, maxgeom)
 *         mjv_defaultCamera(&self._cam)
 */
  __pyx_v_maxgeom = 0x3E8;

  /* "mujoco_py/mjrendercontext.pyx":38
 *     def __cinit__(self):
 *         maxgeom = 1000
 *         mjv_makeScene(self._model_ptr, &self._scn, maxgeom)             # <<<<<<<<<<<<<<
 *         mjv_defaultCamera(&self._cam)
 *         mjv_defaultPerturb(&self._pert)
 */
  mjv_makeScene(__pyx_v_self->_model_ptr, (&__pyx_v_self->_scn), __pyx_v_maxgeom);

  /* "mujoco_py/mjrendercontext.pyx":39
 *         maxgeom = 1000
 *         mjv_makeScene(self._model_ptr, &self._scn, maxgeom)
 *         mjv_defaultCamera(&self._cam)             # <<<<<<<<<<<<<<
 *         mjv_defaultPerturb(&self._pert)
 *         mjv_defaultOption(&self._vopt)
 */
  mjv_defaultCamera((&__pyx_v_self->_cam));

  /* "mujoco_py/mjrendercontext.pyx":40
 *         mjv_makeScene(self._model_ptr, &self._scn, maxgeom)
 *         mjv_defaultCamera(&self._cam)
 *         mjv_defaultPerturb(&self._pert)             # <<<<<<<<<<<<<<
 *         mjv_defaultOption(&self._vopt)
 *         mjr_defaultContext(&self._con)
 */
  mjv_defaultPerturb((&__pyx_v_self->_pert));

  /* "mujoco_py/mjrendercontext.pyx":41
 *         mjv_defaultCamera(&self._cam)
 *         mjv_defaultPerturb(&self._pert)
 *         mjv_defaultOption(&self._vopt)             # <<<<<<<<<<<<<<
 *         mjr_defaultContext(&self._con)
 * 
 */
  mjv_defaultOption((&__pyx_v_self->_vopt));

  /* "mujoco_py/mjrendercontext.pyx":42
 *         mjv_defaultPerturb(&self._pert)
 *         mjv_defaultOption(&self._vopt)
 *         mjr_defaultContext(&self._con)             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, MjSim sim, bint offscreen=True, int device_id=-1, opengl_backend=None, quiet=False):
 */
  mjr_defaultContext((&__pyx_v_self->_con));

  /* "mujoco_py/mjrendercontext.pyx":36
 *     cdef public object sim
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         maxgeom = 1000
 *         mjv_makeScene(self._model_ptr, &self._scn, maxgeom)
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":44
 *         mjr_defaultContext(&self._con)
 * 
 *     def __init__(self, MjSim sim, bint offscreen=True, int device_id=-1, opengl_backend=None, quiet=False):             # <<<<<<<<<<<<<<
 *         self.sim = sim
 *         self._setup_opengl_context(offscreen, device_id, opengl_backend, quiet=quiet)
 */

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_sim = 0;
  int __pyx_v_offscreen;
  int __pyx_v_device_id;
  PyObject *__pyx_v_opengl_backend = 0;
  PyObject *__pyx_v_quiet = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sim,&__pyx_n_s_offscreen,&__pyx_n_s_device_id,&__pyx_n_s_opengl_backend,&__pyx_n_s_quiet,0};
    values[3] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_None));
    values[4] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_False));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sim)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_offscreen);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_device_id);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_opengl_backend);
          if (value) { values[3] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quiet);
          if (value) { values[4] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(1, 44, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_sim = ((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)values[0]);
    if (values[1]) {
      __pyx_v_offscreen = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_offscreen == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L3_error)
    } else {
      __pyx_v_offscreen = ((int)1);
    }
    if (values[2]) {
      __pyx_v_device_id = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_device_id == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 44, __pyx_L3_error)
    } else {
      __pyx_v_device_id = ((int)-1);
    }
    __pyx_v_opengl_backend = values[3];
    __pyx_v_quiet = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(1, 44, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sim), __pyx_ptype_9mujoco_py_4cymj_MjSim, 1, "sim", 0))) __PYX_ERR(1, 44, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_2__init__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), __pyx_v_sim, __pyx_v_offscreen, __pyx_v_device_id, __pyx_v_opengl_backend, __pyx_v_quiet);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_2__init__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_sim, int __pyx_v_offscreen, int __pyx_v_device_id, PyObject *__pyx_v_opengl_backend, PyObject *__pyx_v_quiet) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  mjModel *__pyx_t_6;
  mjData *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "mujoco_py/mjrendercontext.pyx":45
 * 
 *     def __init__(self, MjSim sim, bint offscreen=True, int device_id=-1, opengl_backend=None, quiet=False):
 *         self.sim = sim             # <<<<<<<<<<<<<<
 *         self._setup_opengl_context(offscreen, device_id, opengl_backend, quiet=quiet)
 *         self.offscreen = offscreen
 */
  __Pyx_INCREF((PyObject *)__pyx_v_sim);
  __Pyx_GIVEREF((PyObject *)__pyx_v_sim);
  __Pyx_GOTREF(__pyx_v_self->sim);
  __Pyx_DECREF(__pyx_v_self->sim);
  __pyx_v_self->sim = ((PyObject *)__pyx_v_sim);

  /* "mujoco_py/mjrendercontext.pyx":46
 *     def __init__(self, MjSim sim, bint offscreen=True, int device_id=-1, opengl_backend=None, quiet=False):
 *         self.sim = sim
 *         self._setup_opengl_context(offscreen, device_id, opengl_backend, quiet=quiet)             # <<<<<<<<<<<<<<
 *         self.offscreen = offscreen
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setup_opengl_context); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_offscreen); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_device_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2)) __PYX_ERR(1, 46, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3)) __PYX_ERR(1, 46, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_opengl_backend);
  __Pyx_GIVEREF(__pyx_v_opengl_backend);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_opengl_backend)) __PYX_ERR(1, 46, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_quiet, __pyx_v_quiet) < 0) __PYX_ERR(1, 46, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":47
 *         self.sim = sim
 *         self._setup_opengl_context(offscreen, device_id, opengl_backend, quiet=quiet)
 *         self.offscreen = offscreen             # <<<<<<<<<<<<<<
 * 
 *         # Ensure the model data has been updated so that there
 */
  __pyx_v_self->offscreen = __pyx_v_offscreen;

  /* "mujoco_py/mjrendercontext.pyx":51
 *         # Ensure the model data has been updated so that there
 *         # is something to render
 *         sim.forward()             # <<<<<<<<<<<<<<
 * 
 *         sim.add_render_context(self)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_sim), __pyx_n_s_forward); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":53
 *         sim.forward()
 * 
 *         sim.add_render_context(self)             # <<<<<<<<<<<<<<
 * 
 *         self._model_ptr = sim.model.ptr
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_sim), __pyx_n_s_add_render_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_self)};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 53, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":55
 *         sim.add_render_context(self)
 * 
 *         self._model_ptr = sim.model.ptr             # <<<<<<<<<<<<<<
 *         self._data_ptr = sim.data.ptr
 *         self.scn = WrapMjvScene(&self._scn)
 */
  __pyx_t_6 = __pyx_v_sim->model->ptr;
  __pyx_v_self->_model_ptr = __pyx_t_6;

  /* "mujoco_py/mjrendercontext.pyx":56
 * 
 *         self._model_ptr = sim.model.ptr
 *         self._data_ptr = sim.data.ptr             # <<<<<<<<<<<<<<
 *         self.scn = WrapMjvScene(&self._scn)
 *         self.cam = WrapMjvCamera(&self._cam)
 */
  __pyx_t_7 = __pyx_v_sim->data->ptr;
  __pyx_v_self->_data_ptr = __pyx_t_7;

  /* "mujoco_py/mjrendercontext.pyx":57
 *         self._model_ptr = sim.model.ptr
 *         self._data_ptr = sim.data.ptr
 *         self.scn = WrapMjvScene(&self._scn)             # <<<<<<<<<<<<<<
 *         self.cam = WrapMjvCamera(&self._cam)
 *         self.vopt = WrapMjvOption(&self._vopt)
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjvScene((&__pyx_v_self->_scn))); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->scn);
  __Pyx_DECREF((PyObject *)__pyx_v_self->scn);
  __pyx_v_self->scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":58
 *         self._data_ptr = sim.data.ptr
 *         self.scn = WrapMjvScene(&self._scn)
 *         self.cam = WrapMjvCamera(&self._cam)             # <<<<<<<<<<<<<<
 *         self.vopt = WrapMjvOption(&self._vopt)
 *         self.con = WrapMjrContext(&self._con)
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjvCamera((&__pyx_v_self->_cam))); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->cam);
  __Pyx_DECREF((PyObject *)__pyx_v_self->cam);
  __pyx_v_self->cam = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":59
 *         self.scn = WrapMjvScene(&self._scn)
 *         self.cam = WrapMjvCamera(&self._cam)
 *         self.vopt = WrapMjvOption(&self._vopt)             # <<<<<<<<<<<<<<
 *         self.con = WrapMjrContext(&self._con)
 * 
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjvOption((&__pyx_v_self->_vopt))); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->vopt);
  __Pyx_DECREF((PyObject *)__pyx_v_self->vopt);
  __pyx_v_self->vopt = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":60
 *         self.cam = WrapMjvCamera(&self._cam)
 *         self.vopt = WrapMjvOption(&self._vopt)
 *         self.con = WrapMjrContext(&self._con)             # <<<<<<<<<<<<<<
 * 
 *         self._pert.active = 0
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjrContext((&__pyx_v_self->_con))); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->con);
  __Pyx_DECREF((PyObject *)__pyx_v_self->con);
  __pyx_v_self->con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":62
 *         self.con = WrapMjrContext(&self._con)
 * 
 *         self._pert.active = 0             # <<<<<<<<<<<<<<
 *         self._pert.select = 0
 *         self._pert.skinselect = -1
 */
  __pyx_v_self->_pert.active = 0;

  /* "mujoco_py/mjrendercontext.pyx":63
 * 
 *         self._pert.active = 0
 *         self._pert.select = 0             # <<<<<<<<<<<<<<
 *         self._pert.skinselect = -1
 * 
 */
  __pyx_v_self->_pert.select = 0;

  /* "mujoco_py/mjrendercontext.pyx":64
 *         self._pert.active = 0
 *         self._pert.select = 0
 *         self._pert.skinselect = -1             # <<<<<<<<<<<<<<
 * 
 *         self.pert = WrapMjvPerturb(&self._pert)
 */
  __pyx_v_self->_pert.skinselect = -1;

  /* "mujoco_py/mjrendercontext.pyx":66
 *         self._pert.skinselect = -1
 * 
 *         self.pert = WrapMjvPerturb(&self._pert)             # <<<<<<<<<<<<<<
 * 
 *         self._markers = []
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjvPerturb((&__pyx_v_self->_pert))); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->pert);
  __Pyx_DECREF((PyObject *)__pyx_v_self->pert);
  __pyx_v_self->pert = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":68
 *         self.pert = WrapMjvPerturb(&self._pert)
 * 
 *         self._markers = []             # <<<<<<<<<<<<<<
 *         self._overlay = {}
 * 
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_markers);
  __Pyx_DECREF(__pyx_v_self->_markers);
  __pyx_v_self->_markers = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":69
 * 
 *         self._markers = []
 *         self._overlay = {}             # <<<<<<<<<<<<<<
 * 
 *         self._init_camera(sim)
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_overlay);
  __Pyx_DECREF(__pyx_v_self->_overlay);
  __pyx_v_self->_overlay = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":71
 *         self._overlay = {}
 * 
 *         self._init_camera(sim)             # <<<<<<<<<<<<<<
 *         self._set_mujoco_buffers()
 * 
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_init_camera); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_v_sim)};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 71, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":72
 * 
 *         self._init_camera(sim)
 *         self._set_mujoco_buffers()             # <<<<<<<<<<<<<<
 * 
 *     def update_sim(self, MjSim new_sim):
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_mujoco_buffers); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 72, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":44
 *         mjr_defaultContext(&self._con)
 * 
 *     def __init__(self, MjSim sim, bint offscreen=True, int device_id=-1, opengl_backend=None, quiet=False):             # <<<<<<<<<<<<<<
 *         self.sim = sim
 *         self._setup_opengl_context(offscreen, device_id, opengl_backend, quiet=quiet)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":74
 *         self._set_mujoco_buffers()
 * 
 *     def update_sim(self, MjSim new_sim):             # <<<<<<<<<<<<<<
 *         if new_sim == self.sim:
 *             return
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_5update_sim(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_5update_sim = {"update_sim", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_5update_sim, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_5update_sim(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_new_sim = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("update_sim (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_new_sim,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_new_sim)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 74, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "update_sim") < 0)) __PYX_ERR(1, 74, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_new_sim = ((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("update_sim", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 74, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.update_sim", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_new_sim), __pyx_ptype_9mujoco_py_4cymj_MjSim, 1, "new_sim", 0))) __PYX_ERR(1, 74, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_4update_sim(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), __pyx_v_new_sim);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_4update_sim(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_new_sim) {
  PyObject *__pyx_v_render_context = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  mjModel *__pyx_t_3;
  mjData *__pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("update_sim", 1);

  /* "mujoco_py/mjrendercontext.pyx":75
 * 
 *     def update_sim(self, MjSim new_sim):
 *         if new_sim == self.sim:             # <<<<<<<<<<<<<<
 *             return
 *         self._model_ptr = new_sim.model.ptr
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_new_sim), __pyx_v_self->sim, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 75, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 75, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "mujoco_py/mjrendercontext.pyx":76
 *     def update_sim(self, MjSim new_sim):
 *         if new_sim == self.sim:
 *             return             # <<<<<<<<<<<<<<
 *         self._model_ptr = new_sim.model.ptr
 *         self._data_ptr = new_sim.data.ptr
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "mujoco_py/mjrendercontext.pyx":75
 * 
 *     def update_sim(self, MjSim new_sim):
 *         if new_sim == self.sim:             # <<<<<<<<<<<<<<
 *             return
 *         self._model_ptr = new_sim.model.ptr
 */
  }

  /* "mujoco_py/mjrendercontext.pyx":77
 *         if new_sim == self.sim:
 *             return
 *         self._model_ptr = new_sim.model.ptr             # <<<<<<<<<<<<<<
 *         self._data_ptr = new_sim.data.ptr
 *         self._set_mujoco_buffers()
 */
  __pyx_t_3 = __pyx_v_new_sim->model->ptr;
  __pyx_v_self->_model_ptr = __pyx_t_3;

  /* "mujoco_py/mjrendercontext.pyx":78
 *             return
 *         self._model_ptr = new_sim.model.ptr
 *         self._data_ptr = new_sim.data.ptr             # <<<<<<<<<<<<<<
 *         self._set_mujoco_buffers()
 *         for render_context in self.sim.render_contexts:
 */
  __pyx_t_4 = __pyx_v_new_sim->data->ptr;
  __pyx_v_self->_data_ptr = __pyx_t_4;

  /* "mujoco_py/mjrendercontext.pyx":79
 *         self._model_ptr = new_sim.model.ptr
 *         self._data_ptr = new_sim.data.ptr
 *         self._set_mujoco_buffers()             # <<<<<<<<<<<<<<
 *         for render_context in self.sim.render_contexts:
 *             new_sim.add_render_context(render_context)
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_mujoco_buffers); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 79, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjrendercontext.pyx":80
 *         self._data_ptr = new_sim.data.ptr
 *         self._set_mujoco_buffers()
 *         for render_context in self.sim.render_contexts:             # <<<<<<<<<<<<<<
 *             new_sim.add_render_context(render_context)
 *         self.sim = new_sim
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->sim, __pyx_n_s_render_contexts); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5);
    __pyx_t_8 = 0;
    __pyx_t_9 = NULL;
  } else {
    __pyx_t_8 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 80, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_9)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 80, __pyx_L1_error)
          #endif
          if (__pyx_t_8 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(1, 80, __pyx_L1_error)
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 80, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 80, __pyx_L1_error)
          #endif
          if (__pyx_t_8 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(1, 80, __pyx_L1_error)
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 80, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_9(__pyx_t_5);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 80, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_render_context, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "mujoco_py/mjrendercontext.pyx":81
 *         self._set_mujoco_buffers()
 *         for render_context in self.sim.render_contexts:
 *             new_sim.add_render_context(render_context)             # <<<<<<<<<<<<<<
 *         self.sim = new_sim
 * 
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_new_sim), __pyx_n_s_add_render_context); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_10 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_v_render_context};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 81, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "mujoco_py/mjrendercontext.pyx":80
 *         self._data_ptr = new_sim.data.ptr
 *         self._set_mujoco_buffers()
 *         for render_context in self.sim.render_contexts:             # <<<<<<<<<<<<<<
 *             new_sim.add_render_context(render_context)
 *         self.sim = new_sim
 */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/mjrendercontext.pyx":82
 *         for render_context in self.sim.render_contexts:
 *             new_sim.add_render_context(render_context)
 *         self.sim = new_sim             # <<<<<<<<<<<<<<
 * 
 *     def _set_mujoco_buffers(self):
 */
  __Pyx_INCREF((PyObject *)__pyx_v_new_sim);
  __Pyx_GIVEREF((PyObject *)__pyx_v_new_sim);
  __Pyx_GOTREF(__pyx_v_self->sim);
  __Pyx_DECREF(__pyx_v_self->sim);
  __pyx_v_self->sim = ((PyObject *)__pyx_v_new_sim);

  /* "mujoco_py/mjrendercontext.pyx":74
 *         self._set_mujoco_buffers()
 * 
 *     def update_sim(self, MjSim new_sim):             # <<<<<<<<<<<<<<
 *         if new_sim == self.sim:
 *             return
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.update_sim", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_render_context);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":84
 *         self.sim = new_sim
 * 
 *     def _set_mujoco_buffers(self):             # <<<<<<<<<<<<<<
 *         mjr_makeContext(self._model_ptr, &self._con, mjFONTSCALE_150)
 *         if self.offscreen:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_7_set_mujoco_buffers(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_7_set_mujoco_buffers = {"_set_mujoco_buffers", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_7_set_mujoco_buffers, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_7_set_mujoco_buffers(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_mujoco_buffers (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("_set_mujoco_buffers", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "_set_mujoco_buffers", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_6_set_mujoco_buffers(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_6_set_mujoco_buffers(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_mujoco_buffers", 1);

  /* "mujoco_py/mjrendercontext.pyx":85
 * 
 *     def _set_mujoco_buffers(self):
 *         mjr_makeContext(self._model_ptr, &self._con, mjFONTSCALE_150)             # <<<<<<<<<<<<<<
 *         if self.offscreen:
 *             mjr_setBuffer(mjFB_OFFSCREEN, &self._con);
 */
  mjr_makeContext(__pyx_v_self->_model_ptr, (&__pyx_v_self->_con), mjFONTSCALE_150);

  /* "mujoco_py/mjrendercontext.pyx":86
 *     def _set_mujoco_buffers(self):
 *         mjr_makeContext(self._model_ptr, &self._con, mjFONTSCALE_150)
 *         if self.offscreen:             # <<<<<<<<<<<<<<
 *             mjr_setBuffer(mjFB_OFFSCREEN, &self._con);
 *             if self._con.currentBuffer != mjFB_OFFSCREEN:
 */
  if (__pyx_v_self->offscreen) {

    /* "mujoco_py/mjrendercontext.pyx":87
 *         mjr_makeContext(self._model_ptr, &self._con, mjFONTSCALE_150)
 *         if self.offscreen:
 *             mjr_setBuffer(mjFB_OFFSCREEN, &self._con);             # <<<<<<<<<<<<<<
 *             if self._con.currentBuffer != mjFB_OFFSCREEN:
 *                 raise RuntimeError('Offscreen rendering not supported')
 */
    mjr_setBuffer(mjFB_OFFSCREEN, (&__pyx_v_self->_con));

    /* "mujoco_py/mjrendercontext.pyx":88
 *         if self.offscreen:
 *             mjr_setBuffer(mjFB_OFFSCREEN, &self._con);
 *             if self._con.currentBuffer != mjFB_OFFSCREEN:             # <<<<<<<<<<<<<<
 *                 raise RuntimeError('Offscreen rendering not supported')
 *         else:
 */
    __pyx_t_1 = (__pyx_v_self->_con.currentBuffer != mjFB_OFFSCREEN);
    if (unlikely(__pyx_t_1)) {

      /* "mujoco_py/mjrendercontext.pyx":89
 *             mjr_setBuffer(mjFB_OFFSCREEN, &self._con);
 *             if self._con.currentBuffer != mjFB_OFFSCREEN:
 *                 raise RuntimeError('Offscreen rendering not supported')             # <<<<<<<<<<<<<<
 *         else:
 *             mjr_setBuffer(mjFB_WINDOW, &self._con);
 */
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__46, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 89, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_Raise(__pyx_t_2, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __PYX_ERR(1, 89, __pyx_L1_error)

      /* "mujoco_py/mjrendercontext.pyx":88
 *         if self.offscreen:
 *             mjr_setBuffer(mjFB_OFFSCREEN, &self._con);
 *             if self._con.currentBuffer != mjFB_OFFSCREEN:             # <<<<<<<<<<<<<<
 *                 raise RuntimeError('Offscreen rendering not supported')
 *         else:
 */
    }

    /* "mujoco_py/mjrendercontext.pyx":86
 *     def _set_mujoco_buffers(self):
 *         mjr_makeContext(self._model_ptr, &self._con, mjFONTSCALE_150)
 *         if self.offscreen:             # <<<<<<<<<<<<<<
 *             mjr_setBuffer(mjFB_OFFSCREEN, &self._con);
 *             if self._con.currentBuffer != mjFB_OFFSCREEN:
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/mjrendercontext.pyx":91
 *                 raise RuntimeError('Offscreen rendering not supported')
 *         else:
 *             mjr_setBuffer(mjFB_WINDOW, &self._con);             # <<<<<<<<<<<<<<
 *             if self._con.currentBuffer != mjFB_WINDOW:
 *                 raise RuntimeError('Window rendering not supported')
 */
  /*else*/ {
    mjr_setBuffer(mjFB_WINDOW, (&__pyx_v_self->_con));

    /* "mujoco_py/mjrendercontext.pyx":92
 *         else:
 *             mjr_setBuffer(mjFB_WINDOW, &self._con);
 *             if self._con.currentBuffer != mjFB_WINDOW:             # <<<<<<<<<<<<<<
 *                 raise RuntimeError('Window rendering not supported')
 *         self.con = WrapMjrContext(&self._con)
 */
    __pyx_t_1 = (__pyx_v_self->_con.currentBuffer != mjFB_WINDOW);
    if (unlikely(__pyx_t_1)) {

      /* "mujoco_py/mjrendercontext.pyx":93
 *             mjr_setBuffer(mjFB_WINDOW, &self._con);
 *             if self._con.currentBuffer != mjFB_WINDOW:
 *                 raise RuntimeError('Window rendering not supported')             # <<<<<<<<<<<<<<
 *         self.con = WrapMjrContext(&self._con)
 * 
 */
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__47, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 93, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_Raise(__pyx_t_2, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __PYX_ERR(1, 93, __pyx_L1_error)

      /* "mujoco_py/mjrendercontext.pyx":92
 *         else:
 *             mjr_setBuffer(mjFB_WINDOW, &self._con);
 *             if self._con.currentBuffer != mjFB_WINDOW:             # <<<<<<<<<<<<<<
 *                 raise RuntimeError('Window rendering not supported')
 *         self.con = WrapMjrContext(&self._con)
 */
    }
  }
  __pyx_L3:;

  /* "mujoco_py/mjrendercontext.pyx":94
 *             if self._con.currentBuffer != mjFB_WINDOW:
 *                 raise RuntimeError('Window rendering not supported')
 *         self.con = WrapMjrContext(&self._con)             # <<<<<<<<<<<<<<
 * 
 *     def _setup_opengl_context(self, offscreen, device_id, opengl_backend, quiet=False):
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjrContext((&__pyx_v_self->_con))); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->con);
  __Pyx_DECREF((PyObject *)__pyx_v_self->con);
  __pyx_v_self->con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":84
 *         self.sim = new_sim
 * 
 *     def _set_mujoco_buffers(self):             # <<<<<<<<<<<<<<
 *         mjr_makeContext(self._model_ptr, &self._con, mjFONTSCALE_150)
 *         if self.offscreen:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext._set_mujoco_buffers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":96
 *         self.con = WrapMjrContext(&self._con)
 * 
 *     def _setup_opengl_context(self, offscreen, device_id, opengl_backend, quiet=False):             # <<<<<<<<<<<<<<
 *         if opengl_backend is None and (not offscreen or sys.platform == 'darwin'):
 *             # default to glfw for onscreen viewing or mac (both offscreen/onscreen)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_9_setup_opengl_context(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_9_setup_opengl_context = {"_setup_opengl_context", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_9_setup_opengl_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_9_setup_opengl_context(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_offscreen = 0;
  PyObject *__pyx_v_device_id = 0;
  PyObject *__pyx_v_opengl_backend = 0;
  PyObject *__pyx_v_quiet = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_setup_opengl_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_offscreen,&__pyx_n_s_device_id,&__pyx_n_s_opengl_backend,&__pyx_n_s_quiet,0};
    values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_False));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_offscreen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 96, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_device_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 96, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_setup_opengl_context", 0, 3, 4, 1); __PYX_ERR(1, 96, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_opengl_backend)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 96, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("_setup_opengl_context", 0, 3, 4, 2); __PYX_ERR(1, 96, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_quiet);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 96, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_setup_opengl_context") < 0)) __PYX_ERR(1, 96, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_offscreen = values[0];
    __pyx_v_device_id = values[1];
    __pyx_v_opengl_backend = values[2];
    __pyx_v_quiet = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_setup_opengl_context", 0, 3, 4, __pyx_nargs); __PYX_ERR(1, 96, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext._setup_opengl_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_8_setup_opengl_context(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), __pyx_v_offscreen, __pyx_v_device_id, __pyx_v_opengl_backend, __pyx_v_quiet);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_8_setup_opengl_context(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_offscreen, PyObject *__pyx_v_device_id, PyObject *__pyx_v_opengl_backend, PyObject *__pyx_v_quiet) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_setup_opengl_context", 0);
  __Pyx_INCREF(__pyx_v_device_id);
  __Pyx_INCREF(__pyx_v_opengl_backend);

  /* "mujoco_py/mjrendercontext.pyx":97
 * 
 *     def _setup_opengl_context(self, offscreen, device_id, opengl_backend, quiet=False):
 *         if opengl_backend is None and (not offscreen or sys.platform == 'darwin'):             # <<<<<<<<<<<<<<
 *             # default to glfw for onscreen viewing or mac (both offscreen/onscreen)
 *             opengl_backend = 'glfw'
 */
  __pyx_t_2 = (__pyx_v_opengl_backend == Py_None);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_offscreen); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 97, __pyx_L1_error)
  __pyx_t_3 = (!__pyx_t_2);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sys); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 97, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_platform); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 97, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_darwin, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 97, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "mujoco_py/mjrendercontext.pyx":99
 *         if opengl_backend is None and (not offscreen or sys.platform == 'darwin'):
 *             # default to glfw for onscreen viewing or mac (both offscreen/onscreen)
 *             opengl_backend = 'glfw'             # <<<<<<<<<<<<<<
 * 
 *         if opengl_backend == 'glfw':
 */
    __Pyx_INCREF(__pyx_n_u_glfw);
    __Pyx_DECREF_SET(__pyx_v_opengl_backend, __pyx_n_u_glfw);

    /* "mujoco_py/mjrendercontext.pyx":97
 * 
 *     def _setup_opengl_context(self, offscreen, device_id, opengl_backend, quiet=False):
 *         if opengl_backend is None and (not offscreen or sys.platform == 'darwin'):             # <<<<<<<<<<<<<<
 *             # default to glfw for onscreen viewing or mac (both offscreen/onscreen)
 *             opengl_backend = 'glfw'
 */
  }

  /* "mujoco_py/mjrendercontext.pyx":101
 *             opengl_backend = 'glfw'
 * 
 *         if opengl_backend == 'glfw':             # <<<<<<<<<<<<<<
 *             self.opengl_context = GlfwContext(offscreen=offscreen, quiet=quiet)
 *         else:
 */
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_opengl_backend, __pyx_n_u_glfw, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 101, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "mujoco_py/mjrendercontext.pyx":102
 * 
 *         if opengl_backend == 'glfw':
 *             self.opengl_context = GlfwContext(offscreen=offscreen, quiet=quiet)             # <<<<<<<<<<<<<<
 *         else:
 *             if device_id < 0:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_GlfwContext); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_offscreen, __pyx_v_offscreen) < 0) __PYX_ERR(1, 102, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_quiet, __pyx_v_quiet) < 0) __PYX_ERR(1, 102, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GIVEREF(__pyx_t_6);
    __Pyx_GOTREF(__pyx_v_self->opengl_context);
    __Pyx_DECREF(__pyx_v_self->opengl_context);
    __pyx_v_self->opengl_context = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "mujoco_py/mjrendercontext.pyx":101
 *             opengl_backend = 'glfw'
 * 
 *         if opengl_backend == 'glfw':             # <<<<<<<<<<<<<<
 *             self.opengl_context = GlfwContext(offscreen=offscreen, quiet=quiet)
 *         else:
 */
    goto __pyx_L7;
  }

  /* "mujoco_py/mjrendercontext.pyx":104
 *             self.opengl_context = GlfwContext(offscreen=offscreen, quiet=quiet)
 *         else:
 *             if device_id < 0:             # <<<<<<<<<<<<<<
 *                 if "GPUS" in os.environ:
 *                     device_id = os.environ["GPUS"]
 */
  /*else*/ {
    __pyx_t_6 = PyObject_RichCompare(__pyx_v_device_id, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 104, __pyx_L1_error)
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 104, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_1) {

      /* "mujoco_py/mjrendercontext.pyx":105
 *         else:
 *             if device_id < 0:
 *                 if "GPUS" in os.environ:             # <<<<<<<<<<<<<<
 *                     device_id = os.environ["GPUS"]
 *                 else:
 */
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_os); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 105, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_environ); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 105, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_GPUS, __pyx_t_4, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 105, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_1) {

        /* "mujoco_py/mjrendercontext.pyx":106
 *             if device_id < 0:
 *                 if "GPUS" in os.environ:
 *                     device_id = os.environ["GPUS"]             # <<<<<<<<<<<<<<
 *                 else:
 *                     device_id = os.getenv('CUDA_VISIBLE_DEVICES', '')
 */
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 106, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_environ); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 106, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_n_u_GPUS); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 106, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF_SET(__pyx_v_device_id, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "mujoco_py/mjrendercontext.pyx":105
 *         else:
 *             if device_id < 0:
 *                 if "GPUS" in os.environ:             # <<<<<<<<<<<<<<
 *                     device_id = os.environ["GPUS"]
 *                 else:
 */
        goto __pyx_L9;
      }

      /* "mujoco_py/mjrendercontext.pyx":108
 *                     device_id = os.environ["GPUS"]
 *                 else:
 *                     device_id = os.getenv('CUDA_VISIBLE_DEVICES', '')             # <<<<<<<<<<<<<<
 *                 if len(device_id) > 0:
 *                     device_id = int(device_id.split(',')[0])
 */
      /*else*/ {
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 108, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_getenv); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 108, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__48, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 108, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF_SET(__pyx_v_device_id, __pyx_t_4);
        __pyx_t_4 = 0;
      }
      __pyx_L9:;

      /* "mujoco_py/mjrendercontext.pyx":109
 *                 else:
 *                     device_id = os.getenv('CUDA_VISIBLE_DEVICES', '')
 *                 if len(device_id) > 0:             # <<<<<<<<<<<<<<
 *                     device_id = int(device_id.split(',')[0])
 *                 else:
 */
      __pyx_t_7 = PyObject_Length(__pyx_v_device_id); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 109, __pyx_L1_error)
      __pyx_t_1 = (__pyx_t_7 > 0);
      if (__pyx_t_1) {

        /* "mujoco_py/mjrendercontext.pyx":110
 *                     device_id = os.getenv('CUDA_VISIBLE_DEVICES', '')
 *                 if len(device_id) > 0:
 *                     device_id = int(device_id.split(',')[0])             # <<<<<<<<<<<<<<
 *                 else:
 *                     # Sometimes env variable is an empty string.
 */
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_device_id, __pyx_n_s_split); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = NULL;
        __pyx_t_8 = 0;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
            __pyx_t_8 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_kp_u__14};
          __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 110, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF_SET(__pyx_v_device_id, __pyx_t_4);
        __pyx_t_4 = 0;

        /* "mujoco_py/mjrendercontext.pyx":109
 *                 else:
 *                     device_id = os.getenv('CUDA_VISIBLE_DEVICES', '')
 *                 if len(device_id) > 0:             # <<<<<<<<<<<<<<
 *                     device_id = int(device_id.split(',')[0])
 *                 else:
 */
        goto __pyx_L10;
      }

      /* "mujoco_py/mjrendercontext.pyx":113
 *                 else:
 *                     # Sometimes env variable is an empty string.
 *                     device_id = 0             # <<<<<<<<<<<<<<
 *             self.opengl_context = OffscreenOpenGLContext(device_id)
 * 
 */
      /*else*/ {
        __Pyx_INCREF(__pyx_int_0);
        __Pyx_DECREF_SET(__pyx_v_device_id, __pyx_int_0);
      }
      __pyx_L10:;

      /* "mujoco_py/mjrendercontext.pyx":104
 *             self.opengl_context = GlfwContext(offscreen=offscreen, quiet=quiet)
 *         else:
 *             if device_id < 0:             # <<<<<<<<<<<<<<
 *                 if "GPUS" in os.environ:
 *                     device_id = os.environ["GPUS"]
 */
    }

    /* "mujoco_py/mjrendercontext.pyx":114
 *                     # Sometimes env variable is an empty string.
 *                     device_id = 0
 *             self.opengl_context = OffscreenOpenGLContext(device_id)             # <<<<<<<<<<<<<<
 * 
 *     def _init_camera(self, sim):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_OffscreenOpenGLContext); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_device_id};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 114, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    __Pyx_GOTREF(__pyx_v_self->opengl_context);
    __Pyx_DECREF(__pyx_v_self->opengl_context);
    __pyx_v_self->opengl_context = __pyx_t_4;
    __pyx_t_4 = 0;
  }
  __pyx_L7:;

  /* "mujoco_py/mjrendercontext.pyx":96
 *         self.con = WrapMjrContext(&self._con)
 * 
 *     def _setup_opengl_context(self, offscreen, device_id, opengl_backend, quiet=False):             # <<<<<<<<<<<<<<
 *         if opengl_backend is None and (not offscreen or sys.platform == 'darwin'):
 *             # default to glfw for onscreen viewing or mac (both offscreen/onscreen)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext._setup_opengl_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_device_id);
  __Pyx_XDECREF(__pyx_v_opengl_backend);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":116
 *             self.opengl_context = OffscreenOpenGLContext(device_id)
 * 
 *     def _init_camera(self, sim):             # <<<<<<<<<<<<<<
 *         # Make the free camera look at the scene
 *         self.cam.type = const.CAMERA_FREE
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_11_init_camera(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_11_init_camera = {"_init_camera", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_11_init_camera, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_11_init_camera(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_sim = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_init_camera (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sim,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sim)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 116, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_init_camera") < 0)) __PYX_ERR(1, 116, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_sim = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_init_camera", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 116, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext._init_camera", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_10_init_camera(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), __pyx_v_sim);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_10_init_camera(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_sim) {
  long __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  long __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_init_camera", 1);

  /* "mujoco_py/mjrendercontext.pyx":118
 *     def _init_camera(self, sim):
 *         # Make the free camera look at the scene
 *         self.cam.type = const.CAMERA_FREE             # <<<<<<<<<<<<<<
 *         self.cam.fixedcamid = -1
 *         for i in range(3):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_const); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CAMERA_FREE); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->cam), __pyx_n_s_type, __pyx_t_2) < 0) __PYX_ERR(1, 118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":119
 *         # Make the free camera look at the scene
 *         self.cam.type = const.CAMERA_FREE
 *         self.cam.fixedcamid = -1             # <<<<<<<<<<<<<<
 *         for i in range(3):
 *             self.cam.lookat[i] = np.median(sim.data.geom_xpos[:, i])
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->cam), __pyx_n_s_fixedcamid, __pyx_int_neg_1) < 0) __PYX_ERR(1, 119, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":120
 *         self.cam.type = const.CAMERA_FREE
 *         self.cam.fixedcamid = -1
 *         for i in range(3):             # <<<<<<<<<<<<<<
 *             self.cam.lookat[i] = np.median(sim.data.geom_xpos[:, i])
 *         self.cam.distance = sim.model.stat.extent
 */
  for (__pyx_t_3 = 0; __pyx_t_3 < 3; __pyx_t_3+=1) {
    __pyx_v_i = __pyx_t_3;

    /* "mujoco_py/mjrendercontext.pyx":121
 *         self.cam.fixedcamid = -1
 *         for i in range(3):
 *             self.cam.lookat[i] = np.median(sim.data.geom_xpos[:, i])             # <<<<<<<<<<<<<<
 *         self.cam.distance = sim.model.stat.extent
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_median); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_sim, __pyx_n_s_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_geom_xpos); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_slice__5);
    __Pyx_GIVEREF(__pyx_slice__5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_slice__5)) __PYX_ERR(1, 121, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1)) __PYX_ERR(1, 121, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_1};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 121, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->cam), __pyx_n_s_lookat); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (unlikely((__Pyx_SetItemInt(__pyx_t_4, __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0))) __PYX_ERR(1, 121, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }

  /* "mujoco_py/mjrendercontext.pyx":122
 *         for i in range(3):
 *             self.cam.lookat[i] = np.median(sim.data.geom_xpos[:, i])
 *         self.cam.distance = sim.model.stat.extent             # <<<<<<<<<<<<<<
 * 
 *     def update_offscreen_size(self, width, height):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_sim, __pyx_n_s_model); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_stat); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_extent); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->cam), __pyx_n_s_distance, __pyx_t_2) < 0) __PYX_ERR(1, 122, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":116
 *             self.opengl_context = OffscreenOpenGLContext(device_id)
 * 
 *     def _init_camera(self, sim):             # <<<<<<<<<<<<<<
 *         # Make the free camera look at the scene
 *         self.cam.type = const.CAMERA_FREE
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext._init_camera", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":124
 *         self.cam.distance = sim.model.stat.extent
 * 
 *     def update_offscreen_size(self, width, height):             # <<<<<<<<<<<<<<
 *         if width != self._con.offWidth or height != self._con.offHeight:
 *             self._model_ptr.vis.global_.offwidth = width
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_13update_offscreen_size(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_13update_offscreen_size = {"update_offscreen_size", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_13update_offscreen_size, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_13update_offscreen_size(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_height = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("update_offscreen_size (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_width,&__pyx_n_s_height,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_width)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 124, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_height)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 124, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("update_offscreen_size", 1, 2, 2, 1); __PYX_ERR(1, 124, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "update_offscreen_size") < 0)) __PYX_ERR(1, 124, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_width = values[0];
    __pyx_v_height = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("update_offscreen_size", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 124, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.update_offscreen_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_12update_offscreen_size(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), __pyx_v_width, __pyx_v_height);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_12update_offscreen_size(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_height) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("update_offscreen_size", 1);

  /* "mujoco_py/mjrendercontext.pyx":125
 * 
 *     def update_offscreen_size(self, width, height):
 *         if width != self._con.offWidth or height != self._con.offHeight:             # <<<<<<<<<<<<<<
 *             self._model_ptr.vis.global_.offwidth = width
 *             self._model_ptr.vis.global_.offheight = height
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->_con.offWidth); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_width, __pyx_t_2, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 125, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(1, 125, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!__pyx_t_4) {
  } else {
    __pyx_t_1 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->_con.offHeight); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_height, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 125, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(1, 125, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "mujoco_py/mjrendercontext.pyx":126
 *     def update_offscreen_size(self, width, height):
 *         if width != self._con.offWidth or height != self._con.offHeight:
 *             self._model_ptr.vis.global_.offwidth = width             # <<<<<<<<<<<<<<
 *             self._model_ptr.vis.global_.offheight = height
 *             mjr_freeContext(&self._con)
 */
    __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_width); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 126, __pyx_L1_error)
    __pyx_v_self->_model_ptr->vis.global.offwidth = __pyx_t_5;

    /* "mujoco_py/mjrendercontext.pyx":127
 *         if width != self._con.offWidth or height != self._con.offHeight:
 *             self._model_ptr.vis.global_.offwidth = width
 *             self._model_ptr.vis.global_.offheight = height             # <<<<<<<<<<<<<<
 *             mjr_freeContext(&self._con)
 *             self._set_mujoco_buffers()
 */
    __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_height); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 127, __pyx_L1_error)
    __pyx_v_self->_model_ptr->vis.global.offheight = __pyx_t_5;

    /* "mujoco_py/mjrendercontext.pyx":128
 *             self._model_ptr.vis.global_.offwidth = width
 *             self._model_ptr.vis.global_.offheight = height
 *             mjr_freeContext(&self._con)             # <<<<<<<<<<<<<<
 *             self._set_mujoco_buffers()
 * 
 */
    mjr_freeContext((&__pyx_v_self->_con));

    /* "mujoco_py/mjrendercontext.pyx":129
 *             self._model_ptr.vis.global_.offheight = height
 *             mjr_freeContext(&self._con)
 *             self._set_mujoco_buffers()             # <<<<<<<<<<<<<<
 * 
 *     def render(self, width, height, camera_id=None, segmentation=False):
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_mujoco_buffers); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 129, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "mujoco_py/mjrendercontext.pyx":125
 * 
 *     def update_offscreen_size(self, width, height):
 *         if width != self._con.offWidth or height != self._con.offHeight:             # <<<<<<<<<<<<<<
 *             self._model_ptr.vis.global_.offwidth = width
 *             self._model_ptr.vis.global_.offheight = height
 */
  }

  /* "mujoco_py/mjrendercontext.pyx":124
 *         self.cam.distance = sim.model.stat.extent
 * 
 *     def update_offscreen_size(self, width, height):             # <<<<<<<<<<<<<<
 *         if width != self._con.offWidth or height != self._con.offHeight:
 *             self._model_ptr.vis.global_.offwidth = width
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.update_offscreen_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":131
 *             self._set_mujoco_buffers()
 * 
 *     def render(self, width, height, camera_id=None, segmentation=False):             # <<<<<<<<<<<<<<
 *         cdef mjrRect rect
 *         rect.left = 0
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_15render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_15render = {"render", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_15render, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_15render(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_height = 0;
  PyObject *__pyx_v_camera_id = 0;
  PyObject *__pyx_v_segmentation = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("render (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_width,&__pyx_n_s_height,&__pyx_n_s_camera_id,&__pyx_n_s_segmentation,0};
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_False));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_width)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_height)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("render", 0, 2, 4, 1); __PYX_ERR(1, 131, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_camera_id);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_segmentation);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "render") < 0)) __PYX_ERR(1, 131, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_width = values[0];
    __pyx_v_height = values[1];
    __pyx_v_camera_id = values[2];
    __pyx_v_segmentation = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("render", 0, 2, 4, __pyx_nargs); __PYX_ERR(1, 131, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_14render(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), __pyx_v_width, __pyx_v_height, __pyx_v_camera_id, __pyx_v_segmentation);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_14render(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_height, PyObject *__pyx_v_camera_id, PyObject *__pyx_v_segmentation) {
  mjrRect __pyx_v_rect;
  PyObject *__pyx_v_new_width = NULL;
  PyObject *__pyx_v_new_height = NULL;
  PyObject *__pyx_v_marker_params = NULL;
  PyObject *__pyx_v_gridpos = NULL;
  PyObject *__pyx_v_text1 = NULL;
  PyObject *__pyx_v_text2 = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  Py_ssize_t __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *(*__pyx_t_12)(PyObject *);
  int __pyx_t_13;
  int __pyx_t_14;
  char const *__pyx_t_15;
  char const *__pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 1);

  /* "mujoco_py/mjrendercontext.pyx":133
 *     def render(self, width, height, camera_id=None, segmentation=False):
 *         cdef mjrRect rect
 *         rect.left = 0             # <<<<<<<<<<<<<<
 *         rect.bottom = 0
 *         rect.width = width
 */
  __pyx_v_rect.left = 0;

  /* "mujoco_py/mjrendercontext.pyx":134
 *         cdef mjrRect rect
 *         rect.left = 0
 *         rect.bottom = 0             # <<<<<<<<<<<<<<
 *         rect.width = width
 *         rect.height = height
 */
  __pyx_v_rect.bottom = 0;

  /* "mujoco_py/mjrendercontext.pyx":135
 *         rect.left = 0
 *         rect.bottom = 0
 *         rect.width = width             # <<<<<<<<<<<<<<
 *         rect.height = height
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_width); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 135, __pyx_L1_error)
  __pyx_v_rect.width = __pyx_t_1;

  /* "mujoco_py/mjrendercontext.pyx":136
 *         rect.bottom = 0
 *         rect.width = width
 *         rect.height = height             # <<<<<<<<<<<<<<
 * 
 *         if self.sim.render_callback is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_height); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 136, __pyx_L1_error)
  __pyx_v_rect.height = __pyx_t_1;

  /* "mujoco_py/mjrendercontext.pyx":138
 *         rect.height = height
 * 
 *         if self.sim.render_callback is not None:             # <<<<<<<<<<<<<<
 *             self.sim.render_callback(self.sim, self)
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->sim, __pyx_n_s_render_callback); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = (__pyx_t_2 != Py_None);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "mujoco_py/mjrendercontext.pyx":139
 * 
 *         if self.sim.render_callback is not None:
 *             self.sim.render_callback(self.sim, self)             # <<<<<<<<<<<<<<
 * 
 *         # Sometimes buffers are too small.
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->sim, __pyx_n_s_render_callback); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 139, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_1 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_1 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_v_self->sim, ((PyObject *)__pyx_v_self)};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_1, 2+__pyx_t_1);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 139, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "mujoco_py/mjrendercontext.pyx":138
 *         rect.height = height
 * 
 *         if self.sim.render_callback is not None:             # <<<<<<<<<<<<<<
 *             self.sim.render_callback(self.sim, self)
 * 
 */
  }

  /* "mujoco_py/mjrendercontext.pyx":142
 * 
 *         # Sometimes buffers are too small.
 *         if width > self._con.offWidth or height > self._con.offHeight:             # <<<<<<<<<<<<<<
 *             new_width = max(width, self._model_ptr.vis.global_.offwidth)
 *             new_height = max(height, self._model_ptr.vis.global_.offheight)
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->_con.offWidth); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_v_width, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 142, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(1, 142, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (!__pyx_t_6) {
  } else {
    __pyx_t_3 = __pyx_t_6;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_self->_con.offHeight); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_height, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 142, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(1, 142, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __pyx_t_6;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_3) {

    /* "mujoco_py/mjrendercontext.pyx":143
 *         # Sometimes buffers are too small.
 *         if width > self._con.offWidth or height > self._con.offHeight:
 *             new_width = max(width, self._model_ptr.vis.global_.offwidth)             # <<<<<<<<<<<<<<
 *             new_height = max(height, self._model_ptr.vis.global_.offheight)
 *             self.update_offscreen_size(new_width, new_height)
 */
    __pyx_t_1 = __pyx_v_self->_model_ptr->vis.global.offwidth;
    __Pyx_INCREF(__pyx_v_width);
    __pyx_t_2 = __pyx_v_width;
    __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_5, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 143, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 143, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_3) {
      __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = __pyx_t_7;
      __pyx_t_7 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_4 = __pyx_t_2;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __pyx_t_4;
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_new_width = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "mujoco_py/mjrendercontext.pyx":144
 *         if width > self._con.offWidth or height > self._con.offHeight:
 *             new_width = max(width, self._model_ptr.vis.global_.offwidth)
 *             new_height = max(height, self._model_ptr.vis.global_.offheight)             # <<<<<<<<<<<<<<
 *             self.update_offscreen_size(new_width, new_height)
 * 
 */
    __pyx_t_1 = __pyx_v_self->_model_ptr->vis.global.offheight;
    __Pyx_INCREF(__pyx_v_height);
    __pyx_t_2 = __pyx_v_height;
    __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = PyObject_RichCompare(__pyx_t_7, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 144, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 144, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_3) {
      __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 144, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = __pyx_t_5;
      __pyx_t_5 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_4 = __pyx_t_2;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __pyx_t_4;
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_new_height = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "mujoco_py/mjrendercontext.pyx":145
 *             new_width = max(width, self._model_ptr.vis.global_.offwidth)
 *             new_height = max(height, self._model_ptr.vis.global_.offheight)
 *             self.update_offscreen_size(new_width, new_height)             # <<<<<<<<<<<<<<
 * 
 *         if camera_id is not None:
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_update_offscreen_size); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 145, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_1 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_1 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_v_new_width, __pyx_v_new_height};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_1, 2+__pyx_t_1);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 145, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "mujoco_py/mjrendercontext.pyx":142
 * 
 *         # Sometimes buffers are too small.
 *         if width > self._con.offWidth or height > self._con.offHeight:             # <<<<<<<<<<<<<<
 *             new_width = max(width, self._model_ptr.vis.global_.offwidth)
 *             new_height = max(height, self._model_ptr.vis.global_.offheight)
 */
  }

  /* "mujoco_py/mjrendercontext.pyx":147
 *             self.update_offscreen_size(new_width, new_height)
 * 
 *         if camera_id is not None:             # <<<<<<<<<<<<<<
 *             if camera_id == -1:
 *                 self.cam.type = const.CAMERA_FREE
 */
  __pyx_t_3 = (__pyx_v_camera_id != Py_None);
  if (__pyx_t_3) {

    /* "mujoco_py/mjrendercontext.pyx":148
 * 
 *         if camera_id is not None:
 *             if camera_id == -1:             # <<<<<<<<<<<<<<
 *                 self.cam.type = const.CAMERA_FREE
 *             else:
 */
    __pyx_t_3 = (__Pyx_PyInt_BoolEqObjC(__pyx_v_camera_id, __pyx_int_neg_1, -1L, 0)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 148, __pyx_L1_error)
    if (__pyx_t_3) {

      /* "mujoco_py/mjrendercontext.pyx":149
 *         if camera_id is not None:
 *             if camera_id == -1:
 *                 self.cam.type = const.CAMERA_FREE             # <<<<<<<<<<<<<<
 *             else:
 *                 self.cam.type = const.CAMERA_FIXED
 */
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_const); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 149, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_CAMERA_FREE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 149, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->cam), __pyx_n_s_type, __pyx_t_4) < 0) __PYX_ERR(1, 149, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "mujoco_py/mjrendercontext.pyx":148
 * 
 *         if camera_id is not None:
 *             if camera_id == -1:             # <<<<<<<<<<<<<<
 *                 self.cam.type = const.CAMERA_FREE
 *             else:
 */
      goto __pyx_L8;
    }

    /* "mujoco_py/mjrendercontext.pyx":151
 *                 self.cam.type = const.CAMERA_FREE
 *             else:
 *                 self.cam.type = const.CAMERA_FIXED             # <<<<<<<<<<<<<<
 *             self.cam.fixedcamid = camera_id
 * 
 */
    /*else*/ {
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_const); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_CAMERA_FIXED); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->cam), __pyx_n_s_type, __pyx_t_2) < 0) __PYX_ERR(1, 151, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_L8:;

    /* "mujoco_py/mjrendercontext.pyx":152
 *             else:
 *                 self.cam.type = const.CAMERA_FIXED
 *             self.cam.fixedcamid = camera_id             # <<<<<<<<<<<<<<
 * 
 *         # This doesn't really do anything else rather than checking for the size of buffer
 */
    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->cam), __pyx_n_s_fixedcamid, __pyx_v_camera_id) < 0) __PYX_ERR(1, 152, __pyx_L1_error)

    /* "mujoco_py/mjrendercontext.pyx":147
 *             self.update_offscreen_size(new_width, new_height)
 * 
 *         if camera_id is not None:             # <<<<<<<<<<<<<<
 *             if camera_id == -1:
 *                 self.cam.type = const.CAMERA_FREE
 */
  }

  /* "mujoco_py/mjrendercontext.pyx":158
 *         # self.opengl_context.set_buffer_size(width, height)
 * 
 *         mjv_updateScene(self._model_ptr, self._data_ptr, &self._vopt,             # <<<<<<<<<<<<<<
 *                         &self._pert, &self._cam, mjCAT_ALL, &self._scn)
 * 
 */
  mjv_updateScene(__pyx_v_self->_model_ptr, __pyx_v_self->_data_ptr, (&__pyx_v_self->_vopt), (&__pyx_v_self->_pert), (&__pyx_v_self->_cam), mjCAT_ALL, (&__pyx_v_self->_scn));

  /* "mujoco_py/mjrendercontext.pyx":161
 *                         &self._pert, &self._cam, mjCAT_ALL, &self._scn)
 * 
 *         if segmentation:             # <<<<<<<<<<<<<<
 *             self._scn.flags[const.RND_SEGMENT] = 1
 *             self._scn.flags[const.RND_IDCOLOR] = 1
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_segmentation); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 161, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "mujoco_py/mjrendercontext.pyx":162
 * 
 *         if segmentation:
 *             self._scn.flags[const.RND_SEGMENT] = 1             # <<<<<<<<<<<<<<
 *             self._scn.flags[const.RND_IDCOLOR] = 1
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_const); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 162, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_RND_SEGMENT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 162, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 162, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    (__pyx_v_self->_scn.flags[__pyx_t_8]) = 1;

    /* "mujoco_py/mjrendercontext.pyx":163
 *         if segmentation:
 *             self._scn.flags[const.RND_SEGMENT] = 1
 *             self._scn.flags[const.RND_IDCOLOR] = 1             # <<<<<<<<<<<<<<
 * 
 *         for marker_params in self._markers:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_const); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_RND_IDCOLOR); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 163, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    (__pyx_v_self->_scn.flags[__pyx_t_8]) = 1;

    /* "mujoco_py/mjrendercontext.pyx":161
 *                         &self._pert, &self._cam, mjCAT_ALL, &self._scn)
 * 
 *         if segmentation:             # <<<<<<<<<<<<<<
 *             self._scn.flags[const.RND_SEGMENT] = 1
 *             self._scn.flags[const.RND_IDCOLOR] = 1
 */
  }

  /* "mujoco_py/mjrendercontext.pyx":165
 *             self._scn.flags[const.RND_IDCOLOR] = 1
 * 
 *         for marker_params in self._markers:             # <<<<<<<<<<<<<<
 *             self._add_marker_to_scene(marker_params)
 * 
 */
  if (unlikely(__pyx_v_self->_markers == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 165, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_v_self->_markers; __Pyx_INCREF(__pyx_t_2);
  __pyx_t_8 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
      #if !CYTHON_ASSUME_SAFE_MACROS
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 165, __pyx_L1_error)
      #endif
      if (__pyx_t_8 >= __pyx_temp) break;
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(1, 165, __pyx_L1_error)
    #else
    __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_marker_params, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "mujoco_py/mjrendercontext.pyx":166
 * 
 *         for marker_params in self._markers:
 *             self._add_marker_to_scene(marker_params)             # <<<<<<<<<<<<<<
 * 
 *         mjr_render(rect, &self._scn, &self._con)
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_add_marker_to_scene); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    __pyx_t_1 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_1 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_marker_params};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 166, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "mujoco_py/mjrendercontext.pyx":165
 *             self._scn.flags[const.RND_IDCOLOR] = 1
 * 
 *         for marker_params in self._markers:             # <<<<<<<<<<<<<<
 *             self._add_marker_to_scene(marker_params)
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":168
 *             self._add_marker_to_scene(marker_params)
 * 
 *         mjr_render(rect, &self._scn, &self._con)             # <<<<<<<<<<<<<<
 *         for gridpos, (text1, text2) in self._overlay.items():
 *             mjr_overlay(const.FONTSCALE_150, gridpos, rect, text1.encode(), text2.encode(), &self._con)
 */
  mjr_render(__pyx_v_rect, (&__pyx_v_self->_scn), (&__pyx_v_self->_con));

  /* "mujoco_py/mjrendercontext.pyx":169
 * 
 *         mjr_render(rect, &self._scn, &self._con)
 *         for gridpos, (text1, text2) in self._overlay.items():             # <<<<<<<<<<<<<<
 *             mjr_overlay(const.FONTSCALE_150, gridpos, rect, text1.encode(), text2.encode(), &self._con)
 * 
 */
  __pyx_t_8 = 0;
  if (unlikely(__pyx_v_self->_overlay == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
    __PYX_ERR(1, 169, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_dict_iterator(__pyx_v_self->_overlay, 1, __pyx_n_s_items, (&__pyx_t_9), (&__pyx_t_1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_2);
  __pyx_t_2 = __pyx_t_4;
  __pyx_t_4 = 0;
  while (1) {
    __pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_9, &__pyx_t_8, &__pyx_t_4, &__pyx_t_5, NULL, __pyx_t_1);
    if (unlikely(__pyx_t_10 == 0)) break;
    if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(1, 169, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XDECREF_SET(__pyx_v_gridpos, __pyx_t_4);
    __pyx_t_4 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
      PyObject* sequence = __pyx_t_5;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(1, 169, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_7 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_7);
      #else
      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 169, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 169, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      #endif
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_11 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 169, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_12 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_11);
      index = 0; __pyx_t_4 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_4)) goto __pyx_L15_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      index = 1; __pyx_t_7 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_7)) goto __pyx_L15_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) __PYX_ERR(1, 169, __pyx_L1_error)
      __pyx_t_12 = NULL;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      goto __pyx_L16_unpacking_done;
      __pyx_L15_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_12 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(1, 169, __pyx_L1_error)
      __pyx_L16_unpacking_done:;
    }
    __Pyx_XDECREF_SET(__pyx_v_text1, __pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_XDECREF_SET(__pyx_v_text2, __pyx_t_7);
    __pyx_t_7 = 0;

    /* "mujoco_py/mjrendercontext.pyx":170
 *         mjr_render(rect, &self._scn, &self._con)
 *         for gridpos, (text1, text2) in self._overlay.items():
 *             mjr_overlay(const.FONTSCALE_150, gridpos, rect, text1.encode(), text2.encode(), &self._con)             # <<<<<<<<<<<<<<
 * 
 *         if segmentation:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_const); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_FONTSCALE_150); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 170, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_13 = __Pyx_PyInt_As_int(__pyx_v_gridpos); if (unlikely((__pyx_t_13 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 170, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_text1, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = NULL;
    __pyx_t_14 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_14 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_14, 0+__pyx_t_14);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 170, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __pyx_t_15 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_15) && PyErr_Occurred())) __PYX_ERR(1, 170, __pyx_L1_error)
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_text2, __pyx_n_s_encode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 170, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_11 = NULL;
    __pyx_t_14 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_11)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_14 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
      __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_14, 0+__pyx_t_14);
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 170, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_t_16 = __Pyx_PyObject_AsString(__pyx_t_5); if (unlikely((!__pyx_t_16) && PyErr_Occurred())) __PYX_ERR(1, 170, __pyx_L1_error)
    mjr_overlay(__pyx_t_10, __pyx_t_13, __pyx_v_rect, __pyx_t_15, __pyx_t_16, (&__pyx_v_self->_con));
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":172
 *             mjr_overlay(const.FONTSCALE_150, gridpos, rect, text1.encode(), text2.encode(), &self._con)
 * 
 *         if segmentation:             # <<<<<<<<<<<<<<
 *             self._scn.flags[const.RND_SEGMENT] = 0
 *             self._scn.flags[const.RND_IDCOLOR] = 0
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_segmentation); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 172, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "mujoco_py/mjrendercontext.pyx":173
 * 
 *         if segmentation:
 *             self._scn.flags[const.RND_SEGMENT] = 0             # <<<<<<<<<<<<<<
 *             self._scn.flags[const.RND_IDCOLOR] = 0
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_const); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 173, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_RND_SEGMENT); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 173, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 173, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    (__pyx_v_self->_scn.flags[__pyx_t_9]) = 0;

    /* "mujoco_py/mjrendercontext.pyx":174
 *         if segmentation:
 *             self._scn.flags[const.RND_SEGMENT] = 0
 *             self._scn.flags[const.RND_IDCOLOR] = 0             # <<<<<<<<<<<<<<
 * 
 *     def read_pixels(self, width, height, depth=True, segmentation=False):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_const); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_RND_IDCOLOR); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 174, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    (__pyx_v_self->_scn.flags[__pyx_t_9]) = 0;

    /* "mujoco_py/mjrendercontext.pyx":172
 *             mjr_overlay(const.FONTSCALE_150, gridpos, rect, text1.encode(), text2.encode(), &self._con)
 * 
 *         if segmentation:             # <<<<<<<<<<<<<<
 *             self._scn.flags[const.RND_SEGMENT] = 0
 *             self._scn.flags[const.RND_IDCOLOR] = 0
 */
  }

  /* "mujoco_py/mjrendercontext.pyx":131
 *             self._set_mujoco_buffers()
 * 
 *     def render(self, width, height, camera_id=None, segmentation=False):             # <<<<<<<<<<<<<<
 *         cdef mjrRect rect
 *         rect.left = 0
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_new_width);
  __Pyx_XDECREF(__pyx_v_new_height);
  __Pyx_XDECREF(__pyx_v_marker_params);
  __Pyx_XDECREF(__pyx_v_gridpos);
  __Pyx_XDECREF(__pyx_v_text1);
  __Pyx_XDECREF(__pyx_v_text2);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":176
 *             self._scn.flags[const.RND_IDCOLOR] = 0
 * 
 *     def read_pixels(self, width, height, depth=True, segmentation=False):             # <<<<<<<<<<<<<<
 *         cdef mjrRect rect
 *         rect.left = 0
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_17read_pixels(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_17read_pixels = {"read_pixels", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_17read_pixels, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_17read_pixels(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_height = 0;
  PyObject *__pyx_v_depth = 0;
  PyObject *__pyx_v_segmentation = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("read_pixels (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_width,&__pyx_n_s_height,&__pyx_n_s_depth,&__pyx_n_s_segmentation,0};
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_True));
    values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_False));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_width)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 176, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_height)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 176, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("read_pixels", 0, 2, 4, 1); __PYX_ERR(1, 176, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_depth);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 176, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_segmentation);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 176, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "read_pixels") < 0)) __PYX_ERR(1, 176, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_width = values[0];
    __pyx_v_height = values[1];
    __pyx_v_depth = values[2];
    __pyx_v_segmentation = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("read_pixels", 0, 2, 4, __pyx_nargs); __PYX_ERR(1, 176, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.read_pixels", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_16read_pixels(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), __pyx_v_width, __pyx_v_height, __pyx_v_depth, __pyx_v_segmentation);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_16read_pixels(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_height, PyObject *__pyx_v_depth, PyObject *__pyx_v_segmentation) {
  mjrRect __pyx_v_rect;
  PyObject *__pyx_v_rgb_arr = NULL;
  PyObject *__pyx_v_depth_arr = NULL;
  __Pyx_memviewslice __pyx_v_rgb_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_depth_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_v_rgb_img = NULL;
  PyArrayObject *__pyx_v_seg_img = 0;
  PyArrayObject *__pyx_v_seg_ids = 0;
  PyObject *__pyx_v_ret_img = NULL;
  int __pyx_v_i;
  mjvGeom __pyx_v_geom;
  PyObject *__pyx_v_depth_img = NULL;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_seg_ids;
  __Pyx_Buffer __pyx_pybuffer_seg_ids;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_seg_img;
  __Pyx_Buffer __pyx_pybuffer_seg_img;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_memviewslice __pyx_t_7 = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_t_8 = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  int __pyx_t_11;
  PyArrayObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyArrayObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  int __pyx_t_18;
  int __pyx_t_19;
  int __pyx_t_20;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("read_pixels", 1);
  __pyx_pybuffer_seg_img.pybuffer.buf = NULL;
  __pyx_pybuffer_seg_img.refcount = 0;
  __pyx_pybuffernd_seg_img.data = NULL;
  __pyx_pybuffernd_seg_img.rcbuffer = &__pyx_pybuffer_seg_img;
  __pyx_pybuffer_seg_ids.pybuffer.buf = NULL;
  __pyx_pybuffer_seg_ids.refcount = 0;
  __pyx_pybuffernd_seg_ids.data = NULL;
  __pyx_pybuffernd_seg_ids.rcbuffer = &__pyx_pybuffer_seg_ids;

  /* "mujoco_py/mjrendercontext.pyx":178
 *     def read_pixels(self, width, height, depth=True, segmentation=False):
 *         cdef mjrRect rect
 *         rect.left = 0             # <<<<<<<<<<<<<<
 *         rect.bottom = 0
 *         rect.width = width
 */
  __pyx_v_rect.left = 0;

  /* "mujoco_py/mjrendercontext.pyx":179
 *         cdef mjrRect rect
 *         rect.left = 0
 *         rect.bottom = 0             # <<<<<<<<<<<<<<
 *         rect.width = width
 *         rect.height = height
 */
  __pyx_v_rect.bottom = 0;

  /* "mujoco_py/mjrendercontext.pyx":180
 *         rect.left = 0
 *         rect.bottom = 0
 *         rect.width = width             # <<<<<<<<<<<<<<
 *         rect.height = height
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_width); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 180, __pyx_L1_error)
  __pyx_v_rect.width = __pyx_t_1;

  /* "mujoco_py/mjrendercontext.pyx":181
 *         rect.bottom = 0
 *         rect.width = width
 *         rect.height = height             # <<<<<<<<<<<<<<
 * 
 *         rgb_arr = np.zeros(3 * rect.width * rect.height, dtype=np.uint8)
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_height); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 181, __pyx_L1_error)
  __pyx_v_rect.height = __pyx_t_1;

  /* "mujoco_py/mjrendercontext.pyx":183
 *         rect.height = height
 * 
 *         rgb_arr = np.zeros(3 * rect.width * rect.height, dtype=np.uint8)             # <<<<<<<<<<<<<<
 *         depth_arr = np.zeros(rect.width * rect.height, dtype=np.float32)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyInt_From_long(((3 * __pyx_v_rect.width) * __pyx_v_rect.height)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2)) __PYX_ERR(1, 183, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_uint8); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(1, 183, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_rgb_arr = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "mujoco_py/mjrendercontext.pyx":184
 * 
 *         rgb_arr = np.zeros(3 * rect.width * rect.height, dtype=np.uint8)
 *         depth_arr = np.zeros(rect.width * rect.height, dtype=np.float32)             # <<<<<<<<<<<<<<
 * 
 *         cdef unsigned char[::view.contiguous] rgb_view = rgb_arr
 */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyInt_From_int((__pyx_v_rect.width * __pyx_v_rect.height)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6)) __PYX_ERR(1, 184, __pyx_L1_error);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_float32); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(1, 184, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_v_depth_arr = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "mujoco_py/mjrendercontext.pyx":186
 *         depth_arr = np.zeros(rect.width * rect.height, dtype=np.float32)
 * 
 *         cdef unsigned char[::view.contiguous] rgb_view = rgb_arr             # <<<<<<<<<<<<<<
 *         cdef float[::view.contiguous] depth_view = depth_arr
 *         mjr_readPixels(&rgb_view[0], &depth_view[0], rect, &self._con)
 */
  __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_dc_unsigned_char(__pyx_v_rgb_arr, PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(1, 186, __pyx_L1_error)
  __pyx_v_rgb_view = __pyx_t_7;
  __pyx_t_7.memview = NULL;
  __pyx_t_7.data = NULL;

  /* "mujoco_py/mjrendercontext.pyx":187
 * 
 *         cdef unsigned char[::view.contiguous] rgb_view = rgb_arr
 *         cdef float[::view.contiguous] depth_view = depth_arr             # <<<<<<<<<<<<<<
 *         mjr_readPixels(&rgb_view[0], &depth_view[0], rect, &self._con)
 *         rgb_img = rgb_arr.reshape(rect.height, rect.width, 3)
 */
  __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_float(__pyx_v_depth_arr, PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(1, 187, __pyx_L1_error)
  __pyx_v_depth_view = __pyx_t_8;
  __pyx_t_8.memview = NULL;
  __pyx_t_8.data = NULL;

  /* "mujoco_py/mjrendercontext.pyx":188
 *         cdef unsigned char[::view.contiguous] rgb_view = rgb_arr
 *         cdef float[::view.contiguous] depth_view = depth_arr
 *         mjr_readPixels(&rgb_view[0], &depth_view[0], rect, &self._con)             # <<<<<<<<<<<<<<
 *         rgb_img = rgb_arr.reshape(rect.height, rect.width, 3)
 *         cdef np.ndarray[np.npy_uint32, ndim=2] seg_img
 */
  __pyx_t_9 = 0;
  __pyx_t_1 = -1;
  if (__pyx_t_9 < 0) {
    __pyx_t_9 += __pyx_v_rgb_view.shape[0];
    if (unlikely(__pyx_t_9 < 0)) __pyx_t_1 = 0;
  } else if (unlikely(__pyx_t_9 >= __pyx_v_rgb_view.shape[0])) __pyx_t_1 = 0;
  if (unlikely(__pyx_t_1 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_1);
    __PYX_ERR(1, 188, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_t_1 = -1;
  if (__pyx_t_10 < 0) {
    __pyx_t_10 += __pyx_v_depth_view.shape[0];
    if (unlikely(__pyx_t_10 < 0)) __pyx_t_1 = 0;
  } else if (unlikely(__pyx_t_10 >= __pyx_v_depth_view.shape[0])) __pyx_t_1 = 0;
  if (unlikely(__pyx_t_1 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_1);
    __PYX_ERR(1, 188, __pyx_L1_error)
  }
  mjr_readPixels((&(*((unsigned char *) ( /* dim=0 */ ((char *) (((unsigned char *) __pyx_v_rgb_view.data) + __pyx_t_9)) )))), (&(*((float *) ( /* dim=0 */ ((char *) (((float *) __pyx_v_depth_view.data) + __pyx_t_10)) )))), __pyx_v_rect, (&__pyx_v_self->_con));

  /* "mujoco_py/mjrendercontext.pyx":189
 *         cdef float[::view.contiguous] depth_view = depth_arr
 *         mjr_readPixels(&rgb_view[0], &depth_view[0], rect, &self._con)
 *         rgb_img = rgb_arr.reshape(rect.height, rect.width, 3)             # <<<<<<<<<<<<<<
 *         cdef np.ndarray[np.npy_uint32, ndim=2] seg_img
 *         cdef np.ndarray[np.npy_int32, ndim=2] seg_ids
 */
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_rgb_arr, __pyx_n_s_reshape); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_rect.height); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_rect.width); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_1 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_1 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_4, __pyx_t_2, __pyx_int_3};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_1, 3+__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 189, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_v_rgb_img = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "mujoco_py/mjrendercontext.pyx":193
 *         cdef np.ndarray[np.npy_int32, ndim=2] seg_ids
 * 
 *         ret_img = rgb_img             # <<<<<<<<<<<<<<
 *         if segmentation:
 *             seg_img = (rgb_img[:, :, 0] + rgb_img[:, :, 1] * (2**8) + rgb_img[:, :, 2] * (2 ** 16))
 */
  __Pyx_INCREF(__pyx_v_rgb_img);
  __pyx_v_ret_img = __pyx_v_rgb_img;

  /* "mujoco_py/mjrendercontext.pyx":194
 * 
 *         ret_img = rgb_img
 *         if segmentation:             # <<<<<<<<<<<<<<
 *             seg_img = (rgb_img[:, :, 0] + rgb_img[:, :, 1] * (2**8) + rgb_img[:, :, 2] * (2 ** 16))
 *             seg_img[seg_img >= (self._scn.ngeom + 1)] = 0
 */
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_v_segmentation); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(1, 194, __pyx_L1_error)
  if (__pyx_t_11) {

    /* "mujoco_py/mjrendercontext.pyx":195
 *         ret_img = rgb_img
 *         if segmentation:
 *             seg_img = (rgb_img[:, :, 0] + rgb_img[:, :, 1] * (2**8) + rgb_img[:, :, 2] * (2 ** 16))             # <<<<<<<<<<<<<<
 *             seg_img[seg_img >= (self._scn.ngeom + 1)] = 0
 *             seg_ids = np.full((self._scn.ngeom + 1, 2), fill_value=-1, dtype=np.int32)
 */
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_rgb_img, __pyx_tuple__49); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_rgb_img, __pyx_tuple__50); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = __Pyx_PyInt_MultiplyObjC(__pyx_t_6, __pyx_int_256, 0x100, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_rgb_img, __pyx_tuple__51); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyInt_MultiplyObjC(__pyx_t_2, __pyx_int_65536, 0x10000, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(1, 195, __pyx_L1_error)
    __pyx_t_12 = ((PyArrayObject *)__pyx_t_2);
    {
      __Pyx_BufFmt_StackElem __pyx_stack[1];
      __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_seg_img.rcbuffer->pybuffer);
      __pyx_t_1 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_seg_img.rcbuffer->pybuffer, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_nn_npy_uint32, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack);
      if (unlikely(__pyx_t_1 < 0)) {
        PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15);
        if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_seg_img.rcbuffer->pybuffer, (PyObject*)__pyx_v_seg_img, &__Pyx_TypeInfo_nn_npy_uint32, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {
          Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15);
          __Pyx_RaiseBufferFallbackError();
        } else {
          PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15);
        }
        __pyx_t_13 = __pyx_t_14 = __pyx_t_15 = 0;
      }
      __pyx_pybuffernd_seg_img.diminfo[0].strides = __pyx_pybuffernd_seg_img.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_seg_img.diminfo[0].shape = __pyx_pybuffernd_seg_img.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_seg_img.diminfo[1].strides = __pyx_pybuffernd_seg_img.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_seg_img.diminfo[1].shape = __pyx_pybuffernd_seg_img.rcbuffer->pybuffer.shape[1];
      if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 195, __pyx_L1_error)
    }
    __pyx_t_12 = 0;
    __pyx_v_seg_img = ((PyArrayObject *)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "mujoco_py/mjrendercontext.pyx":196
 *         if segmentation:
 *             seg_img = (rgb_img[:, :, 0] + rgb_img[:, :, 1] * (2**8) + rgb_img[:, :, 2] * (2 ** 16))
 *             seg_img[seg_img >= (self._scn.ngeom + 1)] = 0             # <<<<<<<<<<<<<<
 *             seg_ids = np.full((self._scn.ngeom + 1, 2), fill_value=-1, dtype=np.int32)
 * 
 */
    __pyx_t_2 = __Pyx_PyInt_From_long((__pyx_v_self->_scn.ngeom + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_v_seg_img), __pyx_t_2, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 196, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely((PyObject_SetItem(((PyObject *)__pyx_v_seg_img), __pyx_t_5, __pyx_int_0) < 0))) __PYX_ERR(1, 196, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "mujoco_py/mjrendercontext.pyx":197
 *             seg_img = (rgb_img[:, :, 0] + rgb_img[:, :, 1] * (2**8) + rgb_img[:, :, 2] * (2 ** 16))
 *             seg_img[seg_img >= (self._scn.ngeom + 1)] = 0
 *             seg_ids = np.full((self._scn.ngeom + 1, 2), fill_value=-1, dtype=np.int32)             # <<<<<<<<<<<<<<
 * 
 *             for i in range(self._scn.ngeom):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_full); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyInt_From_long((__pyx_v_self->_scn.ngeom + 1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)) __PYX_ERR(1, 197, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_2)) __PYX_ERR(1, 197, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6)) __PYX_ERR(1, 197, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_fill_value, __pyx_int_neg_1) < 0) __PYX_ERR(1, 197, __pyx_L1_error)
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int32); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(1, 197, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(1, 197, __pyx_L1_error)
    __pyx_t_16 = ((PyArrayObject *)__pyx_t_3);
    {
      __Pyx_BufFmt_StackElem __pyx_stack[1];
      __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_seg_ids.rcbuffer->pybuffer);
      __pyx_t_1 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_seg_ids.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_nn_npy_int32, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack);
      if (unlikely(__pyx_t_1 < 0)) {
        PyErr_Fetch(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13);
        if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_seg_ids.rcbuffer->pybuffer, (PyObject*)__pyx_v_seg_ids, &__Pyx_TypeInfo_nn_npy_int32, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) {
          Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13);
          __Pyx_RaiseBufferFallbackError();
        } else {
          PyErr_Restore(__pyx_t_15, __pyx_t_14, __pyx_t_13);
        }
        __pyx_t_15 = __pyx_t_14 = __pyx_t_13 = 0;
      }
      __pyx_pybuffernd_seg_ids.diminfo[0].strides = __pyx_pybuffernd_seg_ids.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_seg_ids.diminfo[0].shape = __pyx_pybuffernd_seg_ids.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_seg_ids.diminfo[1].strides = __pyx_pybuffernd_seg_ids.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_seg_ids.diminfo[1].shape = __pyx_pybuffernd_seg_ids.rcbuffer->pybuffer.shape[1];
      if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 197, __pyx_L1_error)
    }
    __pyx_t_16 = 0;
    __pyx_v_seg_ids = ((PyArrayObject *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "mujoco_py/mjrendercontext.pyx":199
 *             seg_ids = np.full((self._scn.ngeom + 1, 2), fill_value=-1, dtype=np.int32)
 * 
 *             for i in range(self._scn.ngeom):             # <<<<<<<<<<<<<<
 *                 geom = self._scn.geoms[i]
 *                 if geom.segid != -1:
 */
    __pyx_t_1 = __pyx_v_self->_scn.ngeom;
    __pyx_t_17 = __pyx_t_1;
    for (__pyx_t_18 = 0; __pyx_t_18 < __pyx_t_17; __pyx_t_18+=1) {
      __pyx_v_i = __pyx_t_18;

      /* "mujoco_py/mjrendercontext.pyx":200
 * 
 *             for i in range(self._scn.ngeom):
 *                 geom = self._scn.geoms[i]             # <<<<<<<<<<<<<<
 *                 if geom.segid != -1:
 *                     seg_ids[geom.segid + 1, 0] = geom.objtype
 */
      __pyx_v_geom = (__pyx_v_self->_scn.geoms[__pyx_v_i]);

      /* "mujoco_py/mjrendercontext.pyx":201
 *             for i in range(self._scn.ngeom):
 *                 geom = self._scn.geoms[i]
 *                 if geom.segid != -1:             # <<<<<<<<<<<<<<
 *                     seg_ids[geom.segid + 1, 0] = geom.objtype
 *                     seg_ids[geom.segid + 1, 1] = geom.objid
 */
      __pyx_t_11 = (__pyx_v_geom.segid != -1L);
      if (__pyx_t_11) {

        /* "mujoco_py/mjrendercontext.pyx":202
 *                 geom = self._scn.geoms[i]
 *                 if geom.segid != -1:
 *                     seg_ids[geom.segid + 1, 0] = geom.objtype             # <<<<<<<<<<<<<<
 *                     seg_ids[geom.segid + 1, 1] = geom.objid
 *             ret_img = seg_ids[seg_img]
 */
        __pyx_t_19 = __pyx_v_geom.objtype;
        __pyx_t_10 = (__pyx_v_geom.segid + 1);
        __pyx_t_9 = 0;
        __pyx_t_20 = -1;
        if (__pyx_t_10 < 0) {
          __pyx_t_10 += __pyx_pybuffernd_seg_ids.diminfo[0].shape;
          if (unlikely(__pyx_t_10 < 0)) __pyx_t_20 = 0;
        } else if (unlikely(__pyx_t_10 >= __pyx_pybuffernd_seg_ids.diminfo[0].shape)) __pyx_t_20 = 0;
        if (__pyx_t_9 < 0) {
          __pyx_t_9 += __pyx_pybuffernd_seg_ids.diminfo[1].shape;
          if (unlikely(__pyx_t_9 < 0)) __pyx_t_20 = 1;
        } else if (unlikely(__pyx_t_9 >= __pyx_pybuffernd_seg_ids.diminfo[1].shape)) __pyx_t_20 = 1;
        if (unlikely(__pyx_t_20 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_20);
          __PYX_ERR(1, 202, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided2d(npy_int32 *, __pyx_pybuffernd_seg_ids.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_seg_ids.diminfo[0].strides, __pyx_t_9, __pyx_pybuffernd_seg_ids.diminfo[1].strides) = __pyx_t_19;

        /* "mujoco_py/mjrendercontext.pyx":203
 *                 if geom.segid != -1:
 *                     seg_ids[geom.segid + 1, 0] = geom.objtype
 *                     seg_ids[geom.segid + 1, 1] = geom.objid             # <<<<<<<<<<<<<<
 *             ret_img = seg_ids[seg_img]
 * 
 */
        __pyx_t_19 = __pyx_v_geom.objid;
        __pyx_t_9 = (__pyx_v_geom.segid + 1);
        __pyx_t_10 = 1;
        __pyx_t_20 = -1;
        if (__pyx_t_9 < 0) {
          __pyx_t_9 += __pyx_pybuffernd_seg_ids.diminfo[0].shape;
          if (unlikely(__pyx_t_9 < 0)) __pyx_t_20 = 0;
        } else if (unlikely(__pyx_t_9 >= __pyx_pybuffernd_seg_ids.diminfo[0].shape)) __pyx_t_20 = 0;
        if (__pyx_t_10 < 0) {
          __pyx_t_10 += __pyx_pybuffernd_seg_ids.diminfo[1].shape;
          if (unlikely(__pyx_t_10 < 0)) __pyx_t_20 = 1;
        } else if (unlikely(__pyx_t_10 >= __pyx_pybuffernd_seg_ids.diminfo[1].shape)) __pyx_t_20 = 1;
        if (unlikely(__pyx_t_20 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_20);
          __PYX_ERR(1, 203, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided2d(npy_int32 *, __pyx_pybuffernd_seg_ids.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_seg_ids.diminfo[0].strides, __pyx_t_10, __pyx_pybuffernd_seg_ids.diminfo[1].strides) = __pyx_t_19;

        /* "mujoco_py/mjrendercontext.pyx":201
 *             for i in range(self._scn.ngeom):
 *                 geom = self._scn.geoms[i]
 *                 if geom.segid != -1:             # <<<<<<<<<<<<<<
 *                     seg_ids[geom.segid + 1, 0] = geom.objtype
 *                     seg_ids[geom.segid + 1, 1] = geom.objid
 */
      }
    }

    /* "mujoco_py/mjrendercontext.pyx":204
 *                     seg_ids[geom.segid + 1, 0] = geom.objtype
 *                     seg_ids[geom.segid + 1, 1] = geom.objid
 *             ret_img = seg_ids[seg_img]             # <<<<<<<<<<<<<<
 * 
 *         if depth:
 */
    __pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_seg_ids), ((PyObject *)__pyx_v_seg_img)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF_SET(__pyx_v_ret_img, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "mujoco_py/mjrendercontext.pyx":194
 * 
 *         ret_img = rgb_img
 *         if segmentation:             # <<<<<<<<<<<<<<
 *             seg_img = (rgb_img[:, :, 0] + rgb_img[:, :, 1] * (2**8) + rgb_img[:, :, 2] * (2 ** 16))
 *             seg_img[seg_img >= (self._scn.ngeom + 1)] = 0
 */
  }

  /* "mujoco_py/mjrendercontext.pyx":206
 *             ret_img = seg_ids[seg_img]
 * 
 *         if depth:             # <<<<<<<<<<<<<<
 *             depth_img = depth_arr.reshape(rect.height, rect.width)
 *             return (ret_img, depth_img)
 */
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_v_depth); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(1, 206, __pyx_L1_error)
  if (__pyx_t_11) {

    /* "mujoco_py/mjrendercontext.pyx":207
 * 
 *         if depth:
 *             depth_img = depth_arr.reshape(rect.height, rect.width)             # <<<<<<<<<<<<<<
 *             return (ret_img, depth_img)
 *         else:
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_depth_arr, __pyx_n_s_reshape); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_rect.height); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_rect.width); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = NULL;
    __pyx_t_1 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_1 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_t_2};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_1, 2+__pyx_t_1);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 207, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __pyx_v_depth_img = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "mujoco_py/mjrendercontext.pyx":208
 *         if depth:
 *             depth_img = depth_arr.reshape(rect.height, rect.width)
 *             return (ret_img, depth_img)             # <<<<<<<<<<<<<<
 *         else:
 *             return ret_img
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_ret_img);
    __Pyx_GIVEREF(__pyx_v_ret_img);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_ret_img)) __PYX_ERR(1, 208, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_depth_img);
    __Pyx_GIVEREF(__pyx_v_depth_img);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_depth_img)) __PYX_ERR(1, 208, __pyx_L1_error);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "mujoco_py/mjrendercontext.pyx":206
 *             ret_img = seg_ids[seg_img]
 * 
 *         if depth:             # <<<<<<<<<<<<<<
 *             depth_img = depth_arr.reshape(rect.height, rect.width)
 *             return (ret_img, depth_img)
 */
  }

  /* "mujoco_py/mjrendercontext.pyx":210
 *             return (ret_img, depth_img)
 *         else:
 *             return ret_img             # <<<<<<<<<<<<<<
 * 
 *     def read_pixels_depth(self, np.ndarray[np.float32_t, mode="c", ndim=2] buffer):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_ret_img);
    __pyx_r = __pyx_v_ret_img;
    goto __pyx_L0;
  }

  /* "mujoco_py/mjrendercontext.pyx":176
 *             self._scn.flags[const.RND_IDCOLOR] = 0
 * 
 *     def read_pixels(self, width, height, depth=True, segmentation=False):             # <<<<<<<<<<<<<<
 *         cdef mjrRect rect
 *         rect.left = 0
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_7, 1);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_8, 1);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_seg_ids.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_seg_img.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.read_pixels", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_seg_ids.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_seg_img.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_rgb_arr);
  __Pyx_XDECREF(__pyx_v_depth_arr);
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_rgb_view, 1);
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_depth_view, 1);
  __Pyx_XDECREF(__pyx_v_rgb_img);
  __Pyx_XDECREF((PyObject *)__pyx_v_seg_img);
  __Pyx_XDECREF((PyObject *)__pyx_v_seg_ids);
  __Pyx_XDECREF(__pyx_v_ret_img);
  __Pyx_XDECREF(__pyx_v_depth_img);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":212
 *             return ret_img
 * 
 *     def read_pixels_depth(self, np.ndarray[np.float32_t, mode="c", ndim=2] buffer):             # <<<<<<<<<<<<<<
 *             ''' Read depth pixels into a preallocated buffer '''
 *             cdef mjrRect rect
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_19read_pixels_depth(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_15MjRenderContext_18read_pixels_depth, " Read depth pixels into a preallocated buffer ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_19read_pixels_depth = {"read_pixels_depth", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_19read_pixels_depth, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjRenderContext_18read_pixels_depth};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_19read_pixels_depth(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_buffer = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("read_pixels_depth (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_buffer,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_buffer)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 212, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "read_pixels_depth") < 0)) __PYX_ERR(1, 212, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_buffer = ((PyArrayObject *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("read_pixels_depth", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 212, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.read_pixels_depth", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_buffer), __pyx_ptype_5numpy_ndarray, 1, "buffer", 0))) __PYX_ERR(1, 212, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_18read_pixels_depth(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), __pyx_v_buffer);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_18read_pixels_depth(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyArrayObject *__pyx_v_buffer) {
  mjrRect __pyx_v_rect;
  __Pyx_memviewslice __pyx_v_buffer_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_LocalBuf_ND __pyx_pybuffernd_buffer;
  __Pyx_Buffer __pyx_pybuffer_buffer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("read_pixels_depth", 1);
  __pyx_pybuffer_buffer.pybuffer.buf = NULL;
  __pyx_pybuffer_buffer.refcount = 0;
  __pyx_pybuffernd_buffer.data = NULL;
  __pyx_pybuffernd_buffer.rcbuffer = &__pyx_pybuffer_buffer;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_buffer.rcbuffer->pybuffer, (PyObject*)__pyx_v_buffer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(1, 212, __pyx_L1_error)
  }
  __pyx_pybuffernd_buffer.diminfo[0].strides = __pyx_pybuffernd_buffer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_buffer.diminfo[0].shape = __pyx_pybuffernd_buffer.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_buffer.diminfo[1].strides = __pyx_pybuffernd_buffer.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_buffer.diminfo[1].shape = __pyx_pybuffernd_buffer.rcbuffer->pybuffer.shape[1];

  /* "mujoco_py/mjrendercontext.pyx":215
 *             ''' Read depth pixels into a preallocated buffer '''
 *             cdef mjrRect rect
 *             rect.left = 0             # <<<<<<<<<<<<<<
 *             rect.bottom = 0
 *             rect.width = buffer.shape[1]
 */
  __pyx_v_rect.left = 0;

  /* "mujoco_py/mjrendercontext.pyx":216
 *             cdef mjrRect rect
 *             rect.left = 0
 *             rect.bottom = 0             # <<<<<<<<<<<<<<
 *             rect.width = buffer.shape[1]
 *             rect.height = buffer.shape[0]
 */
  __pyx_v_rect.bottom = 0;

  /* "mujoco_py/mjrendercontext.pyx":217
 *             rect.left = 0
 *             rect.bottom = 0
 *             rect.width = buffer.shape[1]             # <<<<<<<<<<<<<<
 *             rect.height = buffer.shape[0]
 * 
 */
  __pyx_v_rect.width = (__pyx_f_5numpy_7ndarray_5shape_shape(((PyArrayObject *)__pyx_v_buffer))[1]);

  /* "mujoco_py/mjrendercontext.pyx":218
 *             rect.bottom = 0
 *             rect.width = buffer.shape[1]
 *             rect.height = buffer.shape[0]             # <<<<<<<<<<<<<<
 * 
 *             cdef float[::view.contiguous] buffer_view = buffer.ravel()
 */
  __pyx_v_rect.height = (__pyx_f_5numpy_7ndarray_5shape_shape(((PyArrayObject *)__pyx_v_buffer))[0]);

  /* "mujoco_py/mjrendercontext.pyx":220
 *             rect.height = buffer.shape[0]
 * 
 *             cdef float[::view.contiguous] buffer_view = buffer.ravel()             # <<<<<<<<<<<<<<
 *             mjr_readPixels(NULL, &buffer_view[0], rect, &self._con)
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_buffer), __pyx_n_s_ravel); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 220, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dc_float(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(1, 220, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_buffer_view = __pyx_t_5;
  __pyx_t_5.memview = NULL;
  __pyx_t_5.data = NULL;

  /* "mujoco_py/mjrendercontext.pyx":221
 * 
 *             cdef float[::view.contiguous] buffer_view = buffer.ravel()
 *             mjr_readPixels(NULL, &buffer_view[0], rect, &self._con)             # <<<<<<<<<<<<<<
 * 
 *     def upload_texture(self, int tex_id):
 */
  __pyx_t_6 = 0;
  __pyx_t_4 = -1;
  if (__pyx_t_6 < 0) {
    __pyx_t_6 += __pyx_v_buffer_view.shape[0];
    if (unlikely(__pyx_t_6 < 0)) __pyx_t_4 = 0;
  } else if (unlikely(__pyx_t_6 >= __pyx_v_buffer_view.shape[0])) __pyx_t_4 = 0;
  if (unlikely(__pyx_t_4 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_4);
    __PYX_ERR(1, 221, __pyx_L1_error)
  }
  mjr_readPixels(NULL, (&(*((float *) ( /* dim=0 */ ((char *) (((float *) __pyx_v_buffer_view.data) + __pyx_t_6)) )))), __pyx_v_rect, (&__pyx_v_self->_con));

  /* "mujoco_py/mjrendercontext.pyx":212
 *             return ret_img
 * 
 *     def read_pixels_depth(self, np.ndarray[np.float32_t, mode="c", ndim=2] buffer):             # <<<<<<<<<<<<<<
 *             ''' Read depth pixels into a preallocated buffer '''
 *             cdef mjrRect rect
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_5, 1);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_buffer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.read_pixels_depth", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_buffer.rcbuffer->pybuffer);
  __pyx_L2:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_buffer_view, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":223
 *             mjr_readPixels(NULL, &buffer_view[0], rect, &self._con)
 * 
 *     def upload_texture(self, int tex_id):             # <<<<<<<<<<<<<<
 *         """ Uploads given texture to the GPU. """
 *         self.opengl_context.make_context_current()
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_21upload_texture(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_15MjRenderContext_20upload_texture, " Uploads given texture to the GPU. ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_21upload_texture = {"upload_texture", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_21upload_texture, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjRenderContext_20upload_texture};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_21upload_texture(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_tex_id;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("upload_texture (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tex_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tex_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 223, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "upload_texture") < 0)) __PYX_ERR(1, 223, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_tex_id = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_tex_id == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 223, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("upload_texture", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 223, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.upload_texture", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_20upload_texture(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), __pyx_v_tex_id);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_20upload_texture(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, int __pyx_v_tex_id) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("upload_texture", 1);

  /* "mujoco_py/mjrendercontext.pyx":225
 *     def upload_texture(self, int tex_id):
 *         """ Uploads given texture to the GPU. """
 *         self.opengl_context.make_context_current()             # <<<<<<<<<<<<<<
 *         mjr_uploadTexture(self._model_ptr, &self._con, tex_id)
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->opengl_context, __pyx_n_s_make_context_current); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjrendercontext.pyx":226
 *         """ Uploads given texture to the GPU. """
 *         self.opengl_context.make_context_current()
 *         mjr_uploadTexture(self._model_ptr, &self._con, tex_id)             # <<<<<<<<<<<<<<
 * 
 *     def draw_pixels(self, np.ndarray[np.uint8_t, ndim=3] image, int left, int bottom):
 */
  mjr_uploadTexture(__pyx_v_self->_model_ptr, (&__pyx_v_self->_con), __pyx_v_tex_id);

  /* "mujoco_py/mjrendercontext.pyx":223
 *             mjr_readPixels(NULL, &buffer_view[0], rect, &self._con)
 * 
 *     def upload_texture(self, int tex_id):             # <<<<<<<<<<<<<<
 *         """ Uploads given texture to the GPU. """
 *         self.opengl_context.make_context_current()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.upload_texture", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":228
 *         mjr_uploadTexture(self._model_ptr, &self._con, tex_id)
 * 
 *     def draw_pixels(self, np.ndarray[np.uint8_t, ndim=3] image, int left, int bottom):             # <<<<<<<<<<<<<<
 *         """Draw an image into the OpenGL buffer."""
 *         cdef unsigned char[::view.contiguous] image_view = image.ravel()
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_23draw_pixels(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_15MjRenderContext_22draw_pixels, "Draw an image into the OpenGL buffer.");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_23draw_pixels = {"draw_pixels", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_23draw_pixels, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjRenderContext_22draw_pixels};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_23draw_pixels(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyArrayObject *__pyx_v_image = 0;
  int __pyx_v_left;
  int __pyx_v_bottom;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("draw_pixels (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_image,&__pyx_n_s_left,&__pyx_n_s_bottom,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 228, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 228, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("draw_pixels", 1, 3, 3, 1); __PYX_ERR(1, 228, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_bottom)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 228, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("draw_pixels", 1, 3, 3, 2); __PYX_ERR(1, 228, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw_pixels") < 0)) __PYX_ERR(1, 228, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_image = ((PyArrayObject *)values[0]);
    __pyx_v_left = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_left == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 228, __pyx_L3_error)
    __pyx_v_bottom = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_bottom == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 228, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("draw_pixels", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 228, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.draw_pixels", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_image), __pyx_ptype_5numpy_ndarray, 1, "image", 0))) __PYX_ERR(1, 228, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_22draw_pixels(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), __pyx_v_image, __pyx_v_left, __pyx_v_bottom);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_22draw_pixels(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyArrayObject *__pyx_v_image, int __pyx_v_left, int __pyx_v_bottom) {
  __Pyx_memviewslice __pyx_v_image_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  mjrRect __pyx_v_viewport;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_image;
  __Pyx_Buffer __pyx_pybuffer_image;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("draw_pixels", 1);
  __pyx_pybuffer_image.pybuffer.buf = NULL;
  __pyx_pybuffer_image.refcount = 0;
  __pyx_pybuffernd_image.data = NULL;
  __pyx_pybuffernd_image.rcbuffer = &__pyx_pybuffer_image;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_image.rcbuffer->pybuffer, (PyObject*)__pyx_v_image, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES, 3, 0, __pyx_stack) == -1)) __PYX_ERR(1, 228, __pyx_L1_error)
  }
  __pyx_pybuffernd_image.diminfo[0].strides = __pyx_pybuffernd_image.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_image.diminfo[0].shape = __pyx_pybuffernd_image.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_image.diminfo[1].strides = __pyx_pybuffernd_image.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_image.diminfo[1].shape = __pyx_pybuffernd_image.rcbuffer->pybuffer.shape[1]; __pyx_pybuffernd_image.diminfo[2].strides = __pyx_pybuffernd_image.rcbuffer->pybuffer.strides[2]; __pyx_pybuffernd_image.diminfo[2].shape = __pyx_pybuffernd_image.rcbuffer->pybuffer.shape[2];

  /* "mujoco_py/mjrendercontext.pyx":230
 *     def draw_pixels(self, np.ndarray[np.uint8_t, ndim=3] image, int left, int bottom):
 *         """Draw an image into the OpenGL buffer."""
 *         cdef unsigned char[::view.contiguous] image_view = image.ravel()             # <<<<<<<<<<<<<<
 *         cdef mjrRect viewport
 *         viewport.left = left
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_image), __pyx_n_s_ravel); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 230, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dc_unsigned_char(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(1, 230, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_image_view = __pyx_t_5;
  __pyx_t_5.memview = NULL;
  __pyx_t_5.data = NULL;

  /* "mujoco_py/mjrendercontext.pyx":232
 *         cdef unsigned char[::view.contiguous] image_view = image.ravel()
 *         cdef mjrRect viewport
 *         viewport.left = left             # <<<<<<<<<<<<<<
 *         viewport.bottom = bottom
 *         viewport.width = image.shape[1]
 */
  __pyx_v_viewport.left = __pyx_v_left;

  /* "mujoco_py/mjrendercontext.pyx":233
 *         cdef mjrRect viewport
 *         viewport.left = left
 *         viewport.bottom = bottom             # <<<<<<<<<<<<<<
 *         viewport.width = image.shape[1]
 *         viewport.height = image.shape[0]
 */
  __pyx_v_viewport.bottom = __pyx_v_bottom;

  /* "mujoco_py/mjrendercontext.pyx":234
 *         viewport.left = left
 *         viewport.bottom = bottom
 *         viewport.width = image.shape[1]             # <<<<<<<<<<<<<<
 *         viewport.height = image.shape[0]
 *         mjr_drawPixels(&image_view[0], NULL, viewport, &self._con)
 */
  __pyx_v_viewport.width = (__pyx_f_5numpy_7ndarray_5shape_shape(((PyArrayObject *)__pyx_v_image))[1]);

  /* "mujoco_py/mjrendercontext.pyx":235
 *         viewport.bottom = bottom
 *         viewport.width = image.shape[1]
 *         viewport.height = image.shape[0]             # <<<<<<<<<<<<<<
 *         mjr_drawPixels(&image_view[0], NULL, viewport, &self._con)
 * 
 */
  __pyx_v_viewport.height = (__pyx_f_5numpy_7ndarray_5shape_shape(((PyArrayObject *)__pyx_v_image))[0]);

  /* "mujoco_py/mjrendercontext.pyx":236
 *         viewport.width = image.shape[1]
 *         viewport.height = image.shape[0]
 *         mjr_drawPixels(&image_view[0], NULL, viewport, &self._con)             # <<<<<<<<<<<<<<
 * 
 *     def move_camera(self, int action, double reldx, double reldy):
 */
  __pyx_t_6 = 0;
  __pyx_t_4 = -1;
  if (__pyx_t_6 < 0) {
    __pyx_t_6 += __pyx_v_image_view.shape[0];
    if (unlikely(__pyx_t_6 < 0)) __pyx_t_4 = 0;
  } else if (unlikely(__pyx_t_6 >= __pyx_v_image_view.shape[0])) __pyx_t_4 = 0;
  if (unlikely(__pyx_t_4 != -1)) {
    __Pyx_RaiseBufferIndexError(__pyx_t_4);
    __PYX_ERR(1, 236, __pyx_L1_error)
  }
  mjr_drawPixels((&(*((unsigned char *) ( /* dim=0 */ ((char *) (((unsigned char *) __pyx_v_image_view.data) + __pyx_t_6)) )))), NULL, __pyx_v_viewport, (&__pyx_v_self->_con));

  /* "mujoco_py/mjrendercontext.pyx":228
 *         mjr_uploadTexture(self._model_ptr, &self._con, tex_id)
 * 
 *     def draw_pixels(self, np.ndarray[np.uint8_t, ndim=3] image, int left, int bottom):             # <<<<<<<<<<<<<<
 *         """Draw an image into the OpenGL buffer."""
 *         cdef unsigned char[::view.contiguous] image_view = image.ravel()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_5, 1);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_image.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.draw_pixels", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_image.rcbuffer->pybuffer);
  __pyx_L2:;
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_image_view, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":238
 *         mjr_drawPixels(&image_view[0], NULL, viewport, &self._con)
 * 
 *     def move_camera(self, int action, double reldx, double reldy):             # <<<<<<<<<<<<<<
 *         """ Moves the camera based on mouse movements. Action is one of mjMOUSE_*. """
 *         mjv_moveCamera(self._model_ptr, action, reldx, reldy, &self._scn, &self._cam)
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_25move_camera(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_15MjRenderContext_24move_camera, " Moves the camera based on mouse movements. Action is one of mjMOUSE_*. ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_25move_camera = {"move_camera", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_25move_camera, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjRenderContext_24move_camera};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_25move_camera(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_action;
  double __pyx_v_reldx;
  double __pyx_v_reldy;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("move_camera (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_action,&__pyx_n_s_reldx,&__pyx_n_s_reldy,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_action)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 238, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_reldx)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 238, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("move_camera", 1, 3, 3, 1); __PYX_ERR(1, 238, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_reldy)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 238, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("move_camera", 1, 3, 3, 2); __PYX_ERR(1, 238, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "move_camera") < 0)) __PYX_ERR(1, 238, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_action = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_action == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 238, __pyx_L3_error)
    __pyx_v_reldx = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_reldx == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 238, __pyx_L3_error)
    __pyx_v_reldy = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_reldy == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 238, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("move_camera", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 238, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.move_camera", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_24move_camera(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), __pyx_v_action, __pyx_v_reldx, __pyx_v_reldy);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_24move_camera(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, int __pyx_v_action, double __pyx_v_reldx, double __pyx_v_reldy) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("move_camera", 1);

  /* "mujoco_py/mjrendercontext.pyx":240
 *     def move_camera(self, int action, double reldx, double reldy):
 *         """ Moves the camera based on mouse movements. Action is one of mjMOUSE_*. """
 *         mjv_moveCamera(self._model_ptr, action, reldx, reldy, &self._scn, &self._cam)             # <<<<<<<<<<<<<<
 * 
 *     def add_overlay(self, int gridpos, str text1, str text2):
 */
  mjv_moveCamera(__pyx_v_self->_model_ptr, __pyx_v_action, __pyx_v_reldx, __pyx_v_reldy, (&__pyx_v_self->_scn), (&__pyx_v_self->_cam));

  /* "mujoco_py/mjrendercontext.pyx":238
 *         mjr_drawPixels(&image_view[0], NULL, viewport, &self._con)
 * 
 *     def move_camera(self, int action, double reldx, double reldy):             # <<<<<<<<<<<<<<
 *         """ Moves the camera based on mouse movements. Action is one of mjMOUSE_*. """
 *         mjv_moveCamera(self._model_ptr, action, reldx, reldy, &self._scn, &self._cam)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":242
 *         mjv_moveCamera(self._model_ptr, action, reldx, reldy, &self._scn, &self._cam)
 * 
 *     def add_overlay(self, int gridpos, str text1, str text2):             # <<<<<<<<<<<<<<
 *         """ Overlays text on the scene. """
 *         if gridpos not in self._overlay:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_27add_overlay(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_15MjRenderContext_26add_overlay, " Overlays text on the scene. ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_27add_overlay = {"add_overlay", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_27add_overlay, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjRenderContext_26add_overlay};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_27add_overlay(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_gridpos;
  PyObject *__pyx_v_text1 = 0;
  PyObject *__pyx_v_text2 = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_overlay (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gridpos,&__pyx_n_s_text1,&__pyx_n_s_text2,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gridpos)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 242, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_text1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 242, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("add_overlay", 1, 3, 3, 1); __PYX_ERR(1, 242, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_text2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 242, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("add_overlay", 1, 3, 3, 2); __PYX_ERR(1, 242, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "add_overlay") < 0)) __PYX_ERR(1, 242, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_gridpos = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_gridpos == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 242, __pyx_L3_error)
    __pyx_v_text1 = ((PyObject*)values[1]);
    __pyx_v_text2 = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_overlay", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 242, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.add_overlay", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_text1), (&PyUnicode_Type), 1, "text1", 1))) __PYX_ERR(1, 242, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_text2), (&PyUnicode_Type), 1, "text2", 1))) __PYX_ERR(1, 242, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_26add_overlay(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), __pyx_v_gridpos, __pyx_v_text1, __pyx_v_text2);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_26add_overlay(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, int __pyx_v_gridpos, PyObject *__pyx_v_text1, PyObject *__pyx_v_text2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_overlay", 1);

  /* "mujoco_py/mjrendercontext.pyx":244
 *     def add_overlay(self, int gridpos, str text1, str text2):
 *         """ Overlays text on the scene. """
 *         if gridpos not in self._overlay:             # <<<<<<<<<<<<<<
 *             self._overlay[gridpos] = ["", ""]
 *         self._overlay[gridpos][0] += text1 + "\n"
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_gridpos); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(__pyx_v_self->_overlay == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 244, __pyx_L1_error)
  }
  __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_t_1, __pyx_v_self->_overlay, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 244, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "mujoco_py/mjrendercontext.pyx":245
 *         """ Overlays text on the scene. """
 *         if gridpos not in self._overlay:
 *             self._overlay[gridpos] = ["", ""]             # <<<<<<<<<<<<<<
 *         self._overlay[gridpos][0] += text1 + "\n"
 *         self._overlay[gridpos][1] += text2 + "\n"
 */
    __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_kp_u__10);
    __Pyx_GIVEREF(__pyx_kp_u__10);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u__10)) __PYX_ERR(1, 245, __pyx_L1_error);
    __Pyx_INCREF(__pyx_kp_u__10);
    __Pyx_GIVEREF(__pyx_kp_u__10);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__10)) __PYX_ERR(1, 245, __pyx_L1_error);
    if (unlikely(__pyx_v_self->_overlay == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 245, __pyx_L1_error)
    }
    __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_gridpos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (unlikely((PyDict_SetItem(__pyx_v_self->_overlay, __pyx_t_3, __pyx_t_1) < 0))) __PYX_ERR(1, 245, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "mujoco_py/mjrendercontext.pyx":244
 *     def add_overlay(self, int gridpos, str text1, str text2):
 *         """ Overlays text on the scene. """
 *         if gridpos not in self._overlay:             # <<<<<<<<<<<<<<
 *             self._overlay[gridpos] = ["", ""]
 *         self._overlay[gridpos][0] += text1 + "\n"
 */
  }

  /* "mujoco_py/mjrendercontext.pyx":246
 *         if gridpos not in self._overlay:
 *             self._overlay[gridpos] = ["", ""]
 *         self._overlay[gridpos][0] += text1 + "\n"             # <<<<<<<<<<<<<<
 *         self._overlay[gridpos][1] += text2 + "\n"
 * 
 */
  if (unlikely(__pyx_v_self->_overlay == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 246, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_gridpos); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->_overlay, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, __pyx_t_4, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_text1, __pyx_kp_u__52); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely((__Pyx_SetItemInt(__pyx_t_3, __pyx_t_4, __pyx_t_6, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0))) __PYX_ERR(1, 246, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/mjrendercontext.pyx":247
 *             self._overlay[gridpos] = ["", ""]
 *         self._overlay[gridpos][0] += text1 + "\n"
 *         self._overlay[gridpos][1] += text2 + "\n"             # <<<<<<<<<<<<<<
 * 
 *     def add_marker(self, **marker_params):
 */
  if (unlikely(__pyx_v_self->_overlay == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 247, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_gridpos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_self->_overlay, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = 1;
  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_6, __pyx_t_4, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_text2, __pyx_kp_u__52); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely((__Pyx_SetItemInt(__pyx_t_6, __pyx_t_4, __pyx_t_1, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0))) __PYX_ERR(1, 247, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "mujoco_py/mjrendercontext.pyx":242
 *         mjv_moveCamera(self._model_ptr, action, reldx, reldy, &self._scn, &self._cam)
 * 
 *     def add_overlay(self, int gridpos, str text1, str text2):             # <<<<<<<<<<<<<<
 *         """ Overlays text on the scene. """
 *         if gridpos not in self._overlay:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.add_overlay", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":249
 *         self._overlay[gridpos][1] += text2 + "\n"
 * 
 *     def add_marker(self, **marker_params):             # <<<<<<<<<<<<<<
 *         self._markers.append(marker_params)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_29add_marker(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_29add_marker = {"add_marker", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_29add_marker, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_29add_marker(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_marker_params = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_marker (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("add_marker", 1, 0, 0, __pyx_nargs); return NULL;}
  if (__pyx_kwds && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "add_marker", 1))) return NULL;
  if (__pyx_kwds) {
    __pyx_v_marker_params = __Pyx_KwargsAsDict_FASTCALL(__pyx_kwds, __pyx_kwvalues);
    if (unlikely(!__pyx_v_marker_params)) return NULL;
    __Pyx_GOTREF(__pyx_v_marker_params);
  } else {
    __pyx_v_marker_params = PyDict_New();
    if (unlikely(!__pyx_v_marker_params)) return NULL;
    __Pyx_GOTREF(__pyx_v_marker_params);
  }
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_28add_marker(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), __pyx_v_marker_params);

  /* function exit code */
  __Pyx_DECREF(__pyx_v_marker_params);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_28add_marker(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_marker_params) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_marker", 1);

  /* "mujoco_py/mjrendercontext.pyx":250
 * 
 *     def add_marker(self, **marker_params):
 *         self._markers.append(marker_params)             # <<<<<<<<<<<<<<
 * 
 *     def _add_marker_to_scene(self, marker_params):
 */
  if (unlikely(__pyx_v_self->_markers == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(1, 250, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyList_Append(__pyx_v_self->_markers, __pyx_v_marker_params); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(1, 250, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":249
 *         self._overlay[gridpos][1] += text2 + "\n"
 * 
 *     def add_marker(self, **marker_params):             # <<<<<<<<<<<<<<
 *         self._markers.append(marker_params)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.add_marker", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":252
 *         self._markers.append(marker_params)
 * 
 *     def _add_marker_to_scene(self, marker_params):             # <<<<<<<<<<<<<<
 *         """ Adds marker to scene, and returns the corresponding object. """
 *         if self._scn.ngeom >= self._scn.maxgeom:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_31_add_marker_to_scene(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_15MjRenderContext_30_add_marker_to_scene, " Adds marker to scene, and returns the corresponding object. ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_31_add_marker_to_scene = {"_add_marker_to_scene", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_31_add_marker_to_scene, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjRenderContext_30_add_marker_to_scene};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_31_add_marker_to_scene(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_marker_params = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_add_marker_to_scene (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_marker_params,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_marker_params)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 252, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_add_marker_to_scene") < 0)) __PYX_ERR(1, 252, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_marker_params = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_add_marker_to_scene", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 252, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext._add_marker_to_scene", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_30_add_marker_to_scene(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), __pyx_v_marker_params);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_30_add_marker_to_scene(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_marker_params) {
  mjvGeom *__pyx_v_g;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *__pyx_v_wrapped = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_attr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  float __pyx_t_6[3];
  PyObject *__pyx_t_7 = NULL;
  float __pyx_t_8[9];
  float __pyx_t_9[4];
  Py_ssize_t __pyx_t_10;
  Py_ssize_t __pyx_t_11;
  int __pyx_t_12;
  int __pyx_t_13;
  int __pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  char const *__pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_add_marker_to_scene", 1);

  /* "mujoco_py/mjrendercontext.pyx":254
 *     def _add_marker_to_scene(self, marker_params):
 *         """ Adds marker to scene, and returns the corresponding object. """
 *         if self._scn.ngeom >= self._scn.maxgeom:             # <<<<<<<<<<<<<<
 *             raise RuntimeError('Ran out of geoms. maxgeom: %d' % self._scn.maxgeom)
 * 
 */
  __pyx_t_1 = (__pyx_v_self->_scn.ngeom >= __pyx_v_self->_scn.maxgeom);
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/mjrendercontext.pyx":255
 *         """ Adds marker to scene, and returns the corresponding object. """
 *         if self._scn.ngeom >= self._scn.maxgeom:
 *             raise RuntimeError('Ran out of geoms. maxgeom: %d' % self._scn.maxgeom)             # <<<<<<<<<<<<<<
 * 
 *         cdef mjvGeom *g = self._scn.geoms + self._scn.ngeom
 */
    __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->_scn.maxgeom); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_Ran_out_of_geoms_maxgeom_d, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(1, 255, __pyx_L1_error)

    /* "mujoco_py/mjrendercontext.pyx":254
 *     def _add_marker_to_scene(self, marker_params):
 *         """ Adds marker to scene, and returns the corresponding object. """
 *         if self._scn.ngeom >= self._scn.maxgeom:             # <<<<<<<<<<<<<<
 *             raise RuntimeError('Ran out of geoms. maxgeom: %d' % self._scn.maxgeom)
 * 
 */
  }

  /* "mujoco_py/mjrendercontext.pyx":257
 *             raise RuntimeError('Ran out of geoms. maxgeom: %d' % self._scn.maxgeom)
 * 
 *         cdef mjvGeom *g = self._scn.geoms + self._scn.ngeom             # <<<<<<<<<<<<<<
 * 
 *         # default values.
 */
  __pyx_v_g = (__pyx_v_self->_scn.geoms + __pyx_v_self->_scn.ngeom);

  /* "mujoco_py/mjrendercontext.pyx":260
 * 
 *         # default values.
 *         g.dataid = -1             # <<<<<<<<<<<<<<
 *         g.objtype = const.OBJ_UNKNOWN
 *         g.objid = -1
 */
  __pyx_v_g->dataid = -1;

  /* "mujoco_py/mjrendercontext.pyx":261
 *         # default values.
 *         g.dataid = -1
 *         g.objtype = const.OBJ_UNKNOWN             # <<<<<<<<<<<<<<
 *         g.objid = -1
 *         g.category = const.CAT_DECOR
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_const); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_OBJ_UNKNOWN); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 261, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_g->objtype = __pyx_t_4;

  /* "mujoco_py/mjrendercontext.pyx":262
 *         g.dataid = -1
 *         g.objtype = const.OBJ_UNKNOWN
 *         g.objid = -1             # <<<<<<<<<<<<<<
 *         g.category = const.CAT_DECOR
 *         g.texid = -1
 */
  __pyx_v_g->objid = -1;

  /* "mujoco_py/mjrendercontext.pyx":263
 *         g.objtype = const.OBJ_UNKNOWN
 *         g.objid = -1
 *         g.category = const.CAT_DECOR             # <<<<<<<<<<<<<<
 *         g.texid = -1
 *         g.texuniform = 0
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_const); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_CAT_DECOR); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_g->category = __pyx_t_4;

  /* "mujoco_py/mjrendercontext.pyx":264
 *         g.objid = -1
 *         g.category = const.CAT_DECOR
 *         g.texid = -1             # <<<<<<<<<<<<<<
 *         g.texuniform = 0
 *         g.texrepeat[0] = 1
 */
  __pyx_v_g->texid = -1;

  /* "mujoco_py/mjrendercontext.pyx":265
 *         g.category = const.CAT_DECOR
 *         g.texid = -1
 *         g.texuniform = 0             # <<<<<<<<<<<<<<
 *         g.texrepeat[0] = 1
 *         g.texrepeat[1] = 1
 */
  __pyx_v_g->texuniform = 0;

  /* "mujoco_py/mjrendercontext.pyx":266
 *         g.texid = -1
 *         g.texuniform = 0
 *         g.texrepeat[0] = 1             # <<<<<<<<<<<<<<
 *         g.texrepeat[1] = 1
 *         g.emission = 0
 */
  (__pyx_v_g->texrepeat[0]) = 1.0;

  /* "mujoco_py/mjrendercontext.pyx":267
 *         g.texuniform = 0
 *         g.texrepeat[0] = 1
 *         g.texrepeat[1] = 1             # <<<<<<<<<<<<<<
 *         g.emission = 0
 *         g.specular = 0.5
 */
  (__pyx_v_g->texrepeat[1]) = 1.0;

  /* "mujoco_py/mjrendercontext.pyx":268
 *         g.texrepeat[0] = 1
 *         g.texrepeat[1] = 1
 *         g.emission = 0             # <<<<<<<<<<<<<<
 *         g.specular = 0.5
 *         g.shininess = 0.5
 */
  __pyx_v_g->emission = 0.0;

  /* "mujoco_py/mjrendercontext.pyx":269
 *         g.texrepeat[1] = 1
 *         g.emission = 0
 *         g.specular = 0.5             # <<<<<<<<<<<<<<
 *         g.shininess = 0.5
 *         g.reflectance = 0
 */
  __pyx_v_g->specular = 0.5;

  /* "mujoco_py/mjrendercontext.pyx":270
 *         g.emission = 0
 *         g.specular = 0.5
 *         g.shininess = 0.5             # <<<<<<<<<<<<<<
 *         g.reflectance = 0
 *         g.type = const.GEOM_BOX
 */
  __pyx_v_g->shininess = 0.5;

  /* "mujoco_py/mjrendercontext.pyx":271
 *         g.specular = 0.5
 *         g.shininess = 0.5
 *         g.reflectance = 0             # <<<<<<<<<<<<<<
 *         g.type = const.GEOM_BOX
 *         g.size[:] = np.ones(3) * 0.1
 */
  __pyx_v_g->reflectance = 0.0;

  /* "mujoco_py/mjrendercontext.pyx":272
 *         g.shininess = 0.5
 *         g.reflectance = 0
 *         g.type = const.GEOM_BOX             # <<<<<<<<<<<<<<
 *         g.size[:] = np.ones(3) * 0.1
 *         g.mat[:] = np.eye(3).flatten()
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_const); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_GEOM_BOX); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 272, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_g->type = __pyx_t_4;

  /* "mujoco_py/mjrendercontext.pyx":273
 *         g.reflectance = 0
 *         g.type = const.GEOM_BOX
 *         g.size[:] = np.ones(3) * 0.1             # <<<<<<<<<<<<<<
 *         g.mat[:] = np.eye(3).flatten()
 *         g.rgba[:] = np.ones(4)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ones); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_int_3};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 273, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_3, __pyx_float_0_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely((__Pyx_carray_from_py_float(__pyx_t_5, __pyx_t_6, 3) < 0))) __PYX_ERR(1, 273, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  memcpy(&(__pyx_v_g->size[0]), __pyx_t_6, sizeof(__pyx_v_g->size[0]) * (3));

  /* "mujoco_py/mjrendercontext.pyx":274
 *         g.type = const.GEOM_BOX
 *         g.size[:] = np.ones(3) * 0.1
 *         g.mat[:] = np.eye(3).flatten()             # <<<<<<<<<<<<<<
 *         g.rgba[:] = np.ones(4)
 *         wrapped = WrapMjvGeom(g)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_eye); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_int_3};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 274, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_flatten); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 274, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  if (unlikely((__Pyx_carray_from_py_float(__pyx_t_5, __pyx_t_8, 9) < 0))) __PYX_ERR(1, 274, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  memcpy(&(__pyx_v_g->mat[0]), __pyx_t_8, sizeof(__pyx_v_g->mat[0]) * (9));

  /* "mujoco_py/mjrendercontext.pyx":275
 *         g.size[:] = np.ones(3) * 0.1
 *         g.mat[:] = np.eye(3).flatten()
 *         g.rgba[:] = np.ones(4)             # <<<<<<<<<<<<<<
 *         wrapped = WrapMjvGeom(g)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_ones); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_int_4};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if (unlikely((__Pyx_carray_from_py_float(__pyx_t_5, __pyx_t_9, 4) < 0))) __PYX_ERR(1, 275, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  memcpy(&(__pyx_v_g->rgba[0]), __pyx_t_9, sizeof(__pyx_v_g->rgba[0]) * (4));

  /* "mujoco_py/mjrendercontext.pyx":276
 *         g.mat[:] = np.eye(3).flatten()
 *         g.rgba[:] = np.ones(4)
 *         wrapped = WrapMjvGeom(g)             # <<<<<<<<<<<<<<
 * 
 *         for key, value in marker_params.items():
 */
  __pyx_t_5 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjvGeom(__pyx_v_g)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_wrapped = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "mujoco_py/mjrendercontext.pyx":278
 *         wrapped = WrapMjvGeom(g)
 * 
 *         for key, value in marker_params.items():             # <<<<<<<<<<<<<<
 *             if isinstance(value, (int, float)):
 *                 setattr(wrapped, key, value)
 */
  __pyx_t_10 = 0;
  if (unlikely(__pyx_v_marker_params == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
    __PYX_ERR(1, 278, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_dict_iterator(__pyx_v_marker_params, 0, __pyx_n_s_items, (&__pyx_t_11), (&__pyx_t_4)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __pyx_t_5 = __pyx_t_3;
  __pyx_t_3 = 0;
  while (1) {
    __pyx_t_12 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_11, &__pyx_t_10, &__pyx_t_3, &__pyx_t_7, NULL, __pyx_t_4);
    if (unlikely(__pyx_t_12 == 0)) break;
    if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(1, 278, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_3);
    __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_7);
    __pyx_t_7 = 0;

    /* "mujoco_py/mjrendercontext.pyx":279
 * 
 *         for key, value in marker_params.items():
 *             if isinstance(value, (int, float)):             # <<<<<<<<<<<<<<
 *                 setattr(wrapped, key, value)
 *             elif isinstance(value, (tuple, list, np.ndarray)):
 */
    __pyx_t_13 = PyInt_Check(__pyx_v_value); 
    if (!__pyx_t_13) {
    } else {
      __pyx_t_1 = __pyx_t_13;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_13 = PyFloat_Check(__pyx_v_value); 
    __pyx_t_1 = __pyx_t_13;
    __pyx_L7_bool_binop_done:;
    if (__pyx_t_1) {

      /* "mujoco_py/mjrendercontext.pyx":280
 *         for key, value in marker_params.items():
 *             if isinstance(value, (int, float)):
 *                 setattr(wrapped, key, value)             # <<<<<<<<<<<<<<
 *             elif isinstance(value, (tuple, list, np.ndarray)):
 *                 attr = getattr(wrapped, key)
 */
      __pyx_t_14 = PyObject_SetAttr(((PyObject *)__pyx_v_wrapped), __pyx_v_key, __pyx_v_value); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(1, 280, __pyx_L1_error)

      /* "mujoco_py/mjrendercontext.pyx":279
 * 
 *         for key, value in marker_params.items():
 *             if isinstance(value, (int, float)):             # <<<<<<<<<<<<<<
 *                 setattr(wrapped, key, value)
 *             elif isinstance(value, (tuple, list, np.ndarray)):
 */
      goto __pyx_L6;
    }

    /* "mujoco_py/mjrendercontext.pyx":281
 *             if isinstance(value, (int, float)):
 *                 setattr(wrapped, key, value)
 *             elif isinstance(value, (tuple, list, np.ndarray)):             # <<<<<<<<<<<<<<
 *                 attr = getattr(wrapped, key)
 *                 attr[:] = np.asarray(value).reshape(attr.shape)
 */
    __pyx_t_13 = PyTuple_Check(__pyx_v_value); 
    if (!__pyx_t_13) {
    } else {
      __pyx_t_1 = __pyx_t_13;
      goto __pyx_L9_bool_binop_done;
    }
    __pyx_t_13 = PyList_Check(__pyx_v_value); 
    if (!__pyx_t_13) {
    } else {
      __pyx_t_1 = __pyx_t_13;
      goto __pyx_L9_bool_binop_done;
    }
    __pyx_t_13 = __Pyx_TypeCheck(__pyx_v_value, __pyx_ptype_5numpy_ndarray); 
    __pyx_t_1 = __pyx_t_13;
    __pyx_L9_bool_binop_done:;
    if (__pyx_t_1) {

      /* "mujoco_py/mjrendercontext.pyx":282
 *                 setattr(wrapped, key, value)
 *             elif isinstance(value, (tuple, list, np.ndarray)):
 *                 attr = getattr(wrapped, key)             # <<<<<<<<<<<<<<
 *                 attr[:] = np.asarray(value).reshape(attr.shape)
 *             elif isinstance(value, str):
 */
      __pyx_t_7 = __Pyx_GetAttr(((PyObject *)__pyx_v_wrapped), __pyx_v_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 282, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_XDECREF_SET(__pyx_v_attr, __pyx_t_7);
      __pyx_t_7 = 0;

      /* "mujoco_py/mjrendercontext.pyx":283
 *             elif isinstance(value, (tuple, list, np.ndarray)):
 *                 attr = getattr(wrapped, key)
 *                 attr[:] = np.asarray(value).reshape(attr.shape)             # <<<<<<<<<<<<<<
 *             elif isinstance(value, str):
 *                 assert key == "label", "Only label is a string in mjvGeom."
 */
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 283, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 283, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = NULL;
      __pyx_t_12 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_15))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_15);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_15, function);
          __pyx_t_12 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_value};
        __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_15, __pyx_callargs+1-__pyx_t_12, 1+__pyx_t_12);
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 283, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      }
      __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_reshape); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 283, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 283, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = NULL;
      __pyx_t_12 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_15))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_15);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_15, function);
          __pyx_t_12 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
        __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_15, __pyx_callargs+1-__pyx_t_12, 1+__pyx_t_12);
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 283, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      }
      if (__Pyx_PyObject_SetSlice(__pyx_v_attr, __pyx_t_7, 0, 0, NULL, NULL, &__pyx_slice__5, 0, 0, 1) < 0) __PYX_ERR(1, 283, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "mujoco_py/mjrendercontext.pyx":281
 *             if isinstance(value, (int, float)):
 *                 setattr(wrapped, key, value)
 *             elif isinstance(value, (tuple, list, np.ndarray)):             # <<<<<<<<<<<<<<
 *                 attr = getattr(wrapped, key)
 *                 attr[:] = np.asarray(value).reshape(attr.shape)
 */
      goto __pyx_L6;
    }

    /* "mujoco_py/mjrendercontext.pyx":284
 *                 attr = getattr(wrapped, key)
 *                 attr[:] = np.asarray(value).reshape(attr.shape)
 *             elif isinstance(value, str):             # <<<<<<<<<<<<<<
 *                 assert key == "label", "Only label is a string in mjvGeom."
 *                 if value == None:
 */
    __pyx_t_1 = PyUnicode_Check(__pyx_v_value); 
    if (likely(__pyx_t_1)) {

      /* "mujoco_py/mjrendercontext.pyx":285
 *                 attr[:] = np.asarray(value).reshape(attr.shape)
 *             elif isinstance(value, str):
 *                 assert key == "label", "Only label is a string in mjvGeom."             # <<<<<<<<<<<<<<
 *                 if value == None:
 *                     g.label[0] = 0
 */
      #ifndef CYTHON_WITHOUT_ASSERTIONS
      if (unlikely(__pyx_assertions_enabled())) {
        __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_key, __pyx_n_u_label, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 285, __pyx_L1_error)
        if (unlikely(!__pyx_t_1)) {
          __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_kp_u_Only_label_is_a_string_in_mjvGeo, 0, 0);
          __PYX_ERR(1, 285, __pyx_L1_error)
        }
      }
      #else
      if ((1)); else __PYX_ERR(1, 285, __pyx_L1_error)
      #endif

      /* "mujoco_py/mjrendercontext.pyx":286
 *             elif isinstance(value, str):
 *                 assert key == "label", "Only label is a string in mjvGeom."
 *                 if value == None:             # <<<<<<<<<<<<<<
 *                     g.label[0] = 0
 *                 else:
 */
      __pyx_t_7 = PyObject_RichCompare(__pyx_v_value, Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 286, __pyx_L1_error)
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 286, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_1) {

        /* "mujoco_py/mjrendercontext.pyx":287
 *                 assert key == "label", "Only label is a string in mjvGeom."
 *                 if value == None:
 *                     g.label[0] = 0             # <<<<<<<<<<<<<<
 *                 else:
 *                     strncpy(g.label, value.encode(), 100)
 */
        (__pyx_v_g->label[0]) = 0;

        /* "mujoco_py/mjrendercontext.pyx":286
 *             elif isinstance(value, str):
 *                 assert key == "label", "Only label is a string in mjvGeom."
 *                 if value == None:             # <<<<<<<<<<<<<<
 *                     g.label[0] = 0
 *                 else:
 */
        goto __pyx_L12;
      }

      /* "mujoco_py/mjrendercontext.pyx":289
 *                     g.label[0] = 0
 *                 else:
 *                     strncpy(g.label, value.encode(), 100)             # <<<<<<<<<<<<<<
 *             elif hasattr(wrapped, key):
 *                 raise ValueError("mjvGeom has attr {} but type {} is invalid".format(key, type(value)))
 */
      /*else*/ {
        __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_encode); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 289, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_3 = NULL;
        __pyx_t_12 = 0;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_15))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_15);
          if (likely(__pyx_t_3)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_15, function);
            __pyx_t_12 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
          __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_15, __pyx_callargs+1-__pyx_t_12, 0+__pyx_t_12);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 289, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        }
        __pyx_t_16 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_16) && PyErr_Occurred())) __PYX_ERR(1, 289, __pyx_L1_error)
        (void)(strncpy(__pyx_v_g->label, __pyx_t_16, 0x64));
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      }
      __pyx_L12:;

      /* "mujoco_py/mjrendercontext.pyx":284
 *                 attr = getattr(wrapped, key)
 *                 attr[:] = np.asarray(value).reshape(attr.shape)
 *             elif isinstance(value, str):             # <<<<<<<<<<<<<<
 *                 assert key == "label", "Only label is a string in mjvGeom."
 *                 if value == None:
 */
      goto __pyx_L6;
    }

    /* "mujoco_py/mjrendercontext.pyx":290
 *                 else:
 *                     strncpy(g.label, value.encode(), 100)
 *             elif hasattr(wrapped, key):             # <<<<<<<<<<<<<<
 *                 raise ValueError("mjvGeom has attr {} but type {} is invalid".format(key, type(value)))
 *             else:
 */
    __pyx_t_1 = __Pyx_HasAttr(((PyObject *)__pyx_v_wrapped), __pyx_v_key); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(1, 290, __pyx_L1_error)
    if (unlikely(__pyx_t_1)) {

      /* "mujoco_py/mjrendercontext.pyx":291
 *                     strncpy(g.label, value.encode(), 100)
 *             elif hasattr(wrapped, key):
 *                 raise ValueError("mjvGeom has attr {} but type {} is invalid".format(key, type(value)))             # <<<<<<<<<<<<<<
 *             else:
 *                 raise ValueError("mjvGeom doesn't have field %s" % key)
 */
      __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_mjvGeom_has_attr_but_type_is_inv, __pyx_n_s_format); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_3 = NULL;
      __pyx_t_12 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_15))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_15);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_15, function);
          __pyx_t_12 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_key, ((PyObject *)Py_TYPE(__pyx_v_value))};
        __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_15, __pyx_callargs+1-__pyx_t_12, 2+__pyx_t_12);
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 291, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      }
      __pyx_t_15 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_Raise(__pyx_t_15, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __PYX_ERR(1, 291, __pyx_L1_error)

      /* "mujoco_py/mjrendercontext.pyx":290
 *                 else:
 *                     strncpy(g.label, value.encode(), 100)
 *             elif hasattr(wrapped, key):             # <<<<<<<<<<<<<<
 *                 raise ValueError("mjvGeom has attr {} but type {} is invalid".format(key, type(value)))
 *             else:
 */
    }

    /* "mujoco_py/mjrendercontext.pyx":293
 *                 raise ValueError("mjvGeom has attr {} but type {} is invalid".format(key, type(value)))
 *             else:
 *                 raise ValueError("mjvGeom doesn't have field %s" % key)             # <<<<<<<<<<<<<<
 * 
 *         self._scn.ngeom += 1
 */
    /*else*/ {
      __pyx_t_15 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_mjvGeom_doesn_t_have_field_s, __pyx_v_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 293, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 293, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_Raise(__pyx_t_7, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __PYX_ERR(1, 293, __pyx_L1_error)
    }
    __pyx_L6:;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/mjrendercontext.pyx":295
 *                 raise ValueError("mjvGeom doesn't have field %s" % key)
 * 
 *         self._scn.ngeom += 1             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->_scn.ngeom = (__pyx_v_self->_scn.ngeom + 1);

  /* "mujoco_py/mjrendercontext.pyx":252
 *         self._markers.append(marker_params)
 * 
 *     def _add_marker_to_scene(self, marker_params):             # <<<<<<<<<<<<<<
 *         """ Adds marker to scene, and returns the corresponding object. """
 *         if self._scn.ngeom >= self._scn.maxgeom:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext._add_marker_to_scene", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_wrapped);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":298
 * 
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         mjr_freeContext(&self._con)
 *         mjv_freeScene(&self._scn)
 */

/* Python wrapper */
static void __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_33__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_33__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_32__dealloc__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_32__dealloc__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {

  /* "mujoco_py/mjrendercontext.pyx":299
 * 
 *     def __dealloc__(self):
 *         mjr_freeContext(&self._con)             # <<<<<<<<<<<<<<
 *         mjv_freeScene(&self._scn)
 * 
 */
  mjr_freeContext((&__pyx_v_self->_con));

  /* "mujoco_py/mjrendercontext.pyx":300
 *     def __dealloc__(self):
 *         mjr_freeContext(&self._con)
 *         mjv_freeScene(&self._scn)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  mjv_freeScene((&__pyx_v_self->_scn));

  /* "mujoco_py/mjrendercontext.pyx":298
 * 
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         mjr_freeContext(&self._con)
 *         mjv_freeScene(&self._scn)
 */

  /* function exit code */
}

/* "mujoco_py/mjrendercontext.pyx":22
 * 
 *     # Public wrappers
 *     cdef readonly PyMjvScene scn             # <<<<<<<<<<<<<<
 *     cdef readonly PyMjvCamera cam
 *     cdef readonly PyMjvOption vopt
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3scn_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3scn_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3scn___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3scn___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->scn);
  __pyx_r = ((PyObject *)__pyx_v_self->scn);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":23
 *     # Public wrappers
 *     cdef readonly PyMjvScene scn
 *     cdef readonly PyMjvCamera cam             # <<<<<<<<<<<<<<
 *     cdef readonly PyMjvOption vopt
 *     cdef readonly PyMjvPerturb pert
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3cam_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3cam_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3cam___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3cam___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->cam);
  __pyx_r = ((PyObject *)__pyx_v_self->cam);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":24
 *     cdef readonly PyMjvScene scn
 *     cdef readonly PyMjvCamera cam
 *     cdef readonly PyMjvOption vopt             # <<<<<<<<<<<<<<
 *     cdef readonly PyMjvPerturb pert
 *     cdef readonly PyMjrContext con
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_4vopt_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_4vopt_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_4vopt___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_4vopt___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->vopt);
  __pyx_r = ((PyObject *)__pyx_v_self->vopt);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":25
 *     cdef readonly PyMjvCamera cam
 *     cdef readonly PyMjvOption vopt
 *     cdef readonly PyMjvPerturb pert             # <<<<<<<<<<<<<<
 *     cdef readonly PyMjrContext con
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_4pert_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_4pert_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_4pert___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_4pert___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->pert);
  __pyx_r = ((PyObject *)__pyx_v_self->pert);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":26
 *     cdef readonly PyMjvOption vopt
 *     cdef readonly PyMjvPerturb pert
 *     cdef readonly PyMjrContext con             # <<<<<<<<<<<<<<
 * 
 *     cdef readonly object opengl_context
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3con_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3con_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3con___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3con___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->con);
  __pyx_r = ((PyObject *)__pyx_v_self->con);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":28
 *     cdef readonly PyMjrContext con
 * 
 *     cdef readonly object opengl_context             # <<<<<<<<<<<<<<
 *     cdef readonly int _visible
 *     cdef readonly list _markers
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_14opengl_context_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_14opengl_context_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_14opengl_context___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_14opengl_context___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->opengl_context);
  __pyx_r = __pyx_v_self->opengl_context;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":29
 * 
 *     cdef readonly object opengl_context
 *     cdef readonly int _visible             # <<<<<<<<<<<<<<
 *     cdef readonly list _markers
 *     cdef readonly dict _overlay
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_8_visible_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_8_visible_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_8_visible___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_8_visible___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->_visible); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext._visible.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":30
 *     cdef readonly object opengl_context
 *     cdef readonly int _visible
 *     cdef readonly list _markers             # <<<<<<<<<<<<<<
 *     cdef readonly dict _overlay
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_8_markers_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_8_markers_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_8_markers___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_8_markers___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_markers);
  __pyx_r = __pyx_v_self->_markers;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":31
 *     cdef readonly int _visible
 *     cdef readonly list _markers
 *     cdef readonly dict _overlay             # <<<<<<<<<<<<<<
 * 
 *     cdef readonly bint offscreen
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_8_overlay_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_8_overlay_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_8_overlay___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_8_overlay___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_overlay);
  __pyx_r = __pyx_v_self->_overlay;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":33
 *     cdef readonly dict _overlay
 * 
 *     cdef readonly bint offscreen             # <<<<<<<<<<<<<<
 *     cdef public object sim
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_9offscreen_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_9offscreen_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_9offscreen___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_9offscreen___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->offscreen); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.offscreen.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":34
 * 
 *     cdef readonly bint offscreen
 *     cdef public object sim             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3sim_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3sim_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3sim___get__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3sim___get__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->sim);
  __pyx_r = __pyx_v_self->sim;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3sim_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3sim_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3sim_2__set__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3sim_2__set__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__", 1);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_GOTREF(__pyx_v_self->sim);
  __Pyx_DECREF(__pyx_v_self->sim);
  __pyx_v_self->sim = __pyx_v_value;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3sim_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3sim_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3sim_4__del__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_3sim_4__del__(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->sim);
  __Pyx_DECREF(__pyx_v_self->sim);
  __pyx_v_self->sim = Py_None;

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_35__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_35__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_35__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_35__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_34__reduce_cython__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_34__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_37__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_37__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_37__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_37__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 3, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(3, 3, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjRenderContext_36__setstate_cython__(((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjRenderContext_36__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(3, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":305
 * class MjRenderContextOffscreen(MjRenderContext):
 * 
 *     def __cinit__(self, MjSim sim, int device_id):             # <<<<<<<<<<<<<<
 *         super().__init__(sim, offscreen=True, device_id=device_id)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_24MjRenderContextOffscreen_1__cinit__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_24MjRenderContextOffscreen_1__cinit__ = {"__cinit__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_24MjRenderContextOffscreen_1__cinit__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_24MjRenderContextOffscreen_1__cinit__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_sim = 0;
  int __pyx_v_device_id;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_sim,&__pyx_n_s_device_id,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 305, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sim)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 305, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 1); __PYX_ERR(1, 305, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_device_id)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 305, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 2); __PYX_ERR(1, 305, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(1, 305, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_sim = ((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)values[1]);
    __pyx_v_device_id = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_device_id == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 305, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 305, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContextOffscreen.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sim), __pyx_ptype_9mujoco_py_4cymj_MjSim, 1, "sim", 0))) __PYX_ERR(1, 305, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_24MjRenderContextOffscreen___cinit__(__pyx_self, __pyx_v_self, __pyx_v_sim, __pyx_v_device_id);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_24MjRenderContextOffscreen___cinit__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_sim, int __pyx_v_device_id) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 1);

  /* "mujoco_py/mjrendercontext.pyx":306
 * 
 *     def __cinit__(self, MjSim sim, int device_id):
 *         super().__init__(sim, offscreen=True, device_id=device_id)             # <<<<<<<<<<<<<<
 * 
 * class MjRenderContextWindow(MjRenderContext):
 */
  __pyx_t_1 = __Pyx_CyFunction_GetClassObj(__pyx_self);
  if (!__pyx_t_1) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(1, 306, __pyx_L1_error) }
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(1, 306, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self)) __PYX_ERR(1, 306, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_init_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_v_sim);
  __Pyx_GIVEREF((PyObject *)__pyx_v_sim);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_sim))) __PYX_ERR(1, 306, __pyx_L1_error);
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_offscreen, Py_True) < 0) __PYX_ERR(1, 306, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_device_id); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_device_id, __pyx_t_4) < 0) __PYX_ERR(1, 306, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjrendercontext.pyx":305
 * class MjRenderContextOffscreen(MjRenderContext):
 * 
 *     def __cinit__(self, MjSim sim, int device_id):             # <<<<<<<<<<<<<<
 *         super().__init__(sim, offscreen=True, device_id=device_id)
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContextOffscreen.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":310
 * class MjRenderContextWindow(MjRenderContext):
 * 
 *     def __init__(self, MjSim sim):             # <<<<<<<<<<<<<<
 *         super().__init__(sim, offscreen=False)
 *         self.render_swap_callback = None
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_21MjRenderContextWindow_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_21MjRenderContextWindow_1__init__ = {"__init__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_21MjRenderContextWindow_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_21MjRenderContextWindow_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_sim = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_sim,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 310, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sim)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 310, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(1, 310, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(1, 310, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_sim = ((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 310, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContextWindow.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sim), __pyx_ptype_9mujoco_py_4cymj_MjSim, 1, "sim", 0))) __PYX_ERR(1, 310, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_21MjRenderContextWindow___init__(__pyx_self, __pyx_v_self, __pyx_v_sim);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_21MjRenderContextWindow___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, struct __pyx_obj_9mujoco_py_4cymj_MjSim *__pyx_v_sim) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "mujoco_py/mjrendercontext.pyx":311
 * 
 *     def __init__(self, MjSim sim):
 *         super().__init__(sim, offscreen=False)             # <<<<<<<<<<<<<<
 *         self.render_swap_callback = None
 * 
 */
  __pyx_t_1 = __Pyx_CyFunction_GetClassObj(__pyx_self);
  if (!__pyx_t_1) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(1, 311, __pyx_L1_error) }
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(1, 311, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self)) __PYX_ERR(1, 311, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_init_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_v_sim);
  __Pyx_GIVEREF((PyObject *)__pyx_v_sim);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_sim))) __PYX_ERR(1, 311, __pyx_L1_error);
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_offscreen, Py_False) < 0) __PYX_ERR(1, 311, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjrendercontext.pyx":312
 *     def __init__(self, MjSim sim):
 *         super().__init__(sim, offscreen=False)
 *         self.render_swap_callback = None             # <<<<<<<<<<<<<<
 * 
 *         assert isinstance(self.opengl_context, GlfwContext), (
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_render_swap_callback, Py_None) < 0) __PYX_ERR(1, 312, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":314
 *         self.render_swap_callback = None
 * 
 *         assert isinstance(self.opengl_context, GlfwContext), (             # <<<<<<<<<<<<<<
 *             "Only GlfwContext supported for windowed rendering")
 * 
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_opengl_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_GlfwContext); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyObject_IsInstance(__pyx_t_4, __pyx_t_3); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 314, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) {
      __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_kp_u_Only_GlfwContext_supported_for_w, 0, 0);
      __PYX_ERR(1, 314, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(1, 314, __pyx_L1_error)
  #endif

  /* "mujoco_py/mjrendercontext.pyx":310
 * class MjRenderContextWindow(MjRenderContext):
 * 
 *     def __init__(self, MjSim sim):             # <<<<<<<<<<<<<<
 *         super().__init__(sim, offscreen=False)
 *         self.render_swap_callback = None
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContextWindow.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":317
 *             "Only GlfwContext supported for windowed rendering")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def window(self):
 *         return self.opengl_context.window
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_21MjRenderContextWindow_3window(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_21MjRenderContextWindow_3window = {"window", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_21MjRenderContextWindow_3window, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_21MjRenderContextWindow_3window(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("window (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 317, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "window") < 0)) __PYX_ERR(1, 317, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("window", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 317, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContextWindow.window", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_21MjRenderContextWindow_2window(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_21MjRenderContextWindow_2window(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("window", 1);

  /* "mujoco_py/mjrendercontext.pyx":319
 *     @property
 *     def window(self):
 *         return self.opengl_context.window             # <<<<<<<<<<<<<<
 * 
 *     def render(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_opengl_context); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_window); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "mujoco_py/mjrendercontext.pyx":317
 *             "Only GlfwContext supported for windowed rendering")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def window(self):
 *         return self.opengl_context.window
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContextWindow.window", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjrendercontext.pyx":321
 *         return self.opengl_context.window
 * 
 *     def render(self):             # <<<<<<<<<<<<<<
 *         if self.window is None or glfw.window_should_close(self.window):
 *             return
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_21MjRenderContextWindow_5render(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_21MjRenderContextWindow_5render = {"render", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_21MjRenderContextWindow_5render, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_21MjRenderContextWindow_5render(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("render (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 321, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "render") < 0)) __PYX_ERR(1, 321, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("render", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 321, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContextWindow.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_21MjRenderContextWindow_4render(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_21MjRenderContextWindow_4render(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 1);

  /* "mujoco_py/mjrendercontext.pyx":322
 * 
 *     def render(self):
 *         if self.window is None or glfw.window_should_close(self.window):             # <<<<<<<<<<<<<<
 *             return
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_window); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = (__pyx_t_2 == Py_None);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_glfw); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_window_should_close); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_window); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_4};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 322, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 322, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "mujoco_py/mjrendercontext.pyx":323
 *     def render(self):
 *         if self.window is None or glfw.window_should_close(self.window):
 *             return             # <<<<<<<<<<<<<<
 * 
 *         glfw.make_context_current(self.window)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "mujoco_py/mjrendercontext.pyx":322
 * 
 *     def render(self):
 *         if self.window is None or glfw.window_should_close(self.window):             # <<<<<<<<<<<<<<
 *             return
 * 
 */
  }

  /* "mujoco_py/mjrendercontext.pyx":325
 *             return
 * 
 *         glfw.make_context_current(self.window)             # <<<<<<<<<<<<<<
 *         super().render(*glfw.get_framebuffer_size(self.window))
 *         if self.render_swap_callback is not None:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_glfw); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_make_context_current); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_window); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 325, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":326
 * 
 *         glfw.make_context_current(self.window)
 *         super().render(*glfw.get_framebuffer_size(self.window))             # <<<<<<<<<<<<<<
 *         if self.render_swap_callback is not None:
 *             self.render_swap_callback()
 */
  __pyx_t_2 = __Pyx_CyFunction_GetClassObj(__pyx_self);
  if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(1, 326, __pyx_L1_error) }
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2)) __PYX_ERR(1, 326, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_self)) __PYX_ERR(1, 326, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_render); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_glfw); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_get_framebuffer_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_window); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":327
 *         glfw.make_context_current(self.window)
 *         super().render(*glfw.get_framebuffer_size(self.window))
 *         if self.render_swap_callback is not None:             # <<<<<<<<<<<<<<
 *             self.render_swap_callback()
 *         glfw.swap_buffers(self.window)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_render_swap_callback); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = (__pyx_t_2 != Py_None);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_1) {

    /* "mujoco_py/mjrendercontext.pyx":328
 *         super().render(*glfw.get_framebuffer_size(self.window))
 *         if self.render_swap_callback is not None:
 *             self.render_swap_callback()             # <<<<<<<<<<<<<<
 *         glfw.swap_buffers(self.window)
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_render_swap_callback); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 328, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "mujoco_py/mjrendercontext.pyx":327
 *         glfw.make_context_current(self.window)
 *         super().render(*glfw.get_framebuffer_size(self.window))
 *         if self.render_swap_callback is not None:             # <<<<<<<<<<<<<<
 *             self.render_swap_callback()
 *         glfw.swap_buffers(self.window)
 */
  }

  /* "mujoco_py/mjrendercontext.pyx":329
 *         if self.render_swap_callback is not None:
 *             self.render_swap_callback()
 *         glfw.swap_buffers(self.window)             # <<<<<<<<<<<<<<
 */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_glfw); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_swap_buffers); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_window); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_6};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjrendercontext.pyx":321
 *         return self.opengl_context.window
 * 
 *     def render(self):             # <<<<<<<<<<<<<<
 *         if self.window is None or glfw.window_should_close(self.window):
 *             return
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("mujoco_py.cymj.MjRenderContextWindow.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjbatchrenderer.pyx":44
 *     """
 * 
 *     def __init__(self, width, height, batch_size=1, device_id=0,             # <<<<<<<<<<<<<<
 *                  depth=False, use_cuda=False):
 *         """
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer___init__, "\n        Args:\n        - width (int): Image width.\n        - height (int): Image height.\n        - batch_size (int): Size of batch to render into. Memory is\n            allocated once upon initialization of object.\n        - device_id (int): Device to use for storing the batch.\n        - depth (bool): if True, render depth in addition to RGB.\n        - use_cuda (bool): if True, use OpenGL-CUDA interop to map\n            the PBO onto a CUDA buffer.\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_1__init__ = {"__init__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer___init__};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_height = 0;
  PyObject *__pyx_v_batch_size = 0;
  PyObject *__pyx_v_device_id = 0;
  PyObject *__pyx_v_depth = 0;
  PyObject *__pyx_v_use_cuda = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[7] = {0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_width,&__pyx_n_s_height,&__pyx_n_s_batch_size,&__pyx_n_s_device_id,&__pyx_n_s_depth,&__pyx_n_s_use_cuda,0};
    values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)__pyx_int_1)));
    values[4] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)__pyx_int_0)));

    /* "mujoco_py/mjbatchrenderer.pyx":45
 * 
 *     def __init__(self, width, height, batch_size=1, device_id=0,
 *                  depth=False, use_cuda=False):             # <<<<<<<<<<<<<<
 *         """
 *         Args:
 */
    values[5] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_False)));
    values[6] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_False)));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 44, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_width)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 44, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, 1); __PYX_ERR(2, 44, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_height)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 44, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, 2); __PYX_ERR(2, 44, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_batch_size);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 44, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_device_id);
          if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 44, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_depth);
          if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 44, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_use_cuda);
          if (value) { values[6] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 44, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(2, 44, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_width = values[1];
    __pyx_v_height = values[2];
    __pyx_v_batch_size = values[3];
    __pyx_v_device_id = values[4];
    __pyx_v_depth = values[5];
    __pyx_v_use_cuda = values[6];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, __pyx_nargs); __PYX_ERR(2, 44, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer___init__(__pyx_self, __pyx_v_self, __pyx_v_width, __pyx_v_height, __pyx_v_batch_size, __pyx_v_device_id, __pyx_v_depth, __pyx_v_use_cuda);

  /* "mujoco_py/mjbatchrenderer.pyx":44
 *     """
 * 
 *     def __init__(self, width, height, batch_size=1, device_id=0,             # <<<<<<<<<<<<<<
 *                  depth=False, use_cuda=False):
 *         """
 */

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_height, PyObject *__pyx_v_batch_size, PyObject *__pyx_v_device_id, PyObject *__pyx_v_depth, PyObject *__pyx_v_use_cuda) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "mujoco_py/mjbatchrenderer.pyx":58
 *         """
 *         # Early initialization to prevent failure in __del__
 *         self._use_cuda = False             # <<<<<<<<<<<<<<
 *         self.pbo_depth, self.pbo_depth = 0, 0
 * 
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_use_cuda_2, Py_False) < 0) __PYX_ERR(2, 58, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":59
 *         # Early initialization to prevent failure in __del__
 *         self._use_cuda = False
 *         self.pbo_depth, self.pbo_depth = 0, 0             # <<<<<<<<<<<<<<
 * 
 *         if not usingEGL():
 */
  __pyx_t_1 = __pyx_int_0;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_int_0;
  __Pyx_INCREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_pbo_depth, __pyx_t_1) < 0) __PYX_ERR(2, 59, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_pbo_depth, __pyx_t_2) < 0) __PYX_ERR(2, 59, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":61
 *         self.pbo_depth, self.pbo_depth = 0, 0
 * 
 *         if not usingEGL():             # <<<<<<<<<<<<<<
 *             raise MjBatchRendererNotSupported(
 *                 "MjBatchRenderer currently only supported with EGL-backed"
 */
  __pyx_t_3 = (!(usingEGL() != 0));
  if (unlikely(__pyx_t_3)) {

    /* "mujoco_py/mjbatchrenderer.pyx":62
 * 
 *         if not usingEGL():
 *             raise MjBatchRendererNotSupported(             # <<<<<<<<<<<<<<
 *                 "MjBatchRenderer currently only supported with EGL-backed"
 *                 "rendering context.")
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_MjBatchRendererNotSupported); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 62, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_u_MjBatchRenderer_currently_only_s};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 62, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(2, 62, __pyx_L1_error)

    /* "mujoco_py/mjbatchrenderer.pyx":61
 *         self.pbo_depth, self.pbo_depth = 0, 0
 * 
 *         if not usingEGL():             # <<<<<<<<<<<<<<
 *             raise MjBatchRendererNotSupported(
 *                 "MjBatchRenderer currently only supported with EGL-backed"
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":67
 * 
 *         # Make sure OpenGL Context is available before creating PBOs
 *         initOpenGL(device_id)             # <<<<<<<<<<<<<<
 *         makeOpenGLContextCurrent(device_id)
 * 
 */
  __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_device_id); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 67, __pyx_L1_error)
  (void)(initOpenGL(__pyx_t_5));

  /* "mujoco_py/mjbatchrenderer.pyx":68
 *         # Make sure OpenGL Context is available before creating PBOs
 *         initOpenGL(device_id)
 *         makeOpenGLContextCurrent(device_id)             # <<<<<<<<<<<<<<
 * 
 *         self.pbo_rgb = createPBO(width, height, batch_size, 0)
 */
  __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_device_id); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 68, __pyx_L1_error)
  (void)(makeOpenGLContextCurrent(__pyx_t_5));

  /* "mujoco_py/mjbatchrenderer.pyx":70
 *         makeOpenGLContextCurrent(device_id)
 * 
 *         self.pbo_rgb = createPBO(width, height, batch_size, 0)             # <<<<<<<<<<<<<<
 *         self.pbo_depth = createPBO(width, height, batch_size, 1) if depth else 0
 * 
 */
  __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_width); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_height); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L1_error)
  __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_v_batch_size); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(createPBO(__pyx_t_5, __pyx_t_6, __pyx_t_7, 0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_pbo_rgb, __pyx_t_2) < 0) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":71
 * 
 *         self.pbo_rgb = createPBO(width, height, batch_size, 0)
 *         self.pbo_depth = createPBO(width, height, batch_size, 1) if depth else 0             # <<<<<<<<<<<<<<
 * 
 *         self._depth = depth
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_depth); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 71, __pyx_L1_error)
  if (__pyx_t_3) {
    __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_v_width); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 71, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_height); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 71, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_batch_size); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 71, __pyx_L1_error)
    __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(createPBO(__pyx_t_7, __pyx_t_6, __pyx_t_5, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 71, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_t_1;
    __pyx_t_1 = 0;
  } else {
    __Pyx_INCREF(__pyx_int_0);
    __pyx_t_2 = __pyx_int_0;
  }
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_pbo_depth, __pyx_t_2) < 0) __PYX_ERR(2, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":73
 *         self.pbo_depth = createPBO(width, height, batch_size, 1) if depth else 0
 * 
 *         self._depth = depth             # <<<<<<<<<<<<<<
 *         self._device_id = device_id
 *         self._width = width
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_depth_2, __pyx_v_depth) < 0) __PYX_ERR(2, 73, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":74
 * 
 *         self._depth = depth
 *         self._device_id = device_id             # <<<<<<<<<<<<<<
 *         self._width = width
 *         self._height = height
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_device_id_2, __pyx_v_device_id) < 0) __PYX_ERR(2, 74, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":75
 *         self._depth = depth
 *         self._device_id = device_id
 *         self._width = width             # <<<<<<<<<<<<<<
 *         self._height = height
 *         self._batch_size = batch_size
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_width_2, __pyx_v_width) < 0) __PYX_ERR(2, 75, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":76
 *         self._device_id = device_id
 *         self._width = width
 *         self._height = height             # <<<<<<<<<<<<<<
 *         self._batch_size = batch_size
 *         self._current_batch_offset = 0
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_height_2, __pyx_v_height) < 0) __PYX_ERR(2, 76, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":77
 *         self._width = width
 *         self._height = height
 *         self._batch_size = batch_size             # <<<<<<<<<<<<<<
 *         self._current_batch_offset = 0
 * 
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_batch_size_2, __pyx_v_batch_size) < 0) __PYX_ERR(2, 77, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":78
 *         self._height = height
 *         self._batch_size = batch_size
 *         self._current_batch_offset = 0             # <<<<<<<<<<<<<<
 * 
 *         self._use_cuda = use_cuda
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_current_batch_offset, __pyx_int_0) < 0) __PYX_ERR(2, 78, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":80
 *         self._current_batch_offset = 0
 * 
 *         self._use_cuda = use_cuda             # <<<<<<<<<<<<<<
 *         self._cuda_buffers_are_mapped = False
 *         self._cuda_rgb_ptr, self._cuda_depth_ptr = None, None
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_use_cuda_2, __pyx_v_use_cuda) < 0) __PYX_ERR(2, 80, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":81
 * 
 *         self._use_cuda = use_cuda
 *         self._cuda_buffers_are_mapped = False             # <<<<<<<<<<<<<<
 *         self._cuda_rgb_ptr, self._cuda_depth_ptr = None, None
 *         if use_cuda:
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_buffers_are_mapped, Py_False) < 0) __PYX_ERR(2, 81, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":82
 *         self._use_cuda = use_cuda
 *         self._cuda_buffers_are_mapped = False
 *         self._cuda_rgb_ptr, self._cuda_depth_ptr = None, None             # <<<<<<<<<<<<<<
 *         if use_cuda:
 *             self._init_cuda()
 */
  __pyx_t_2 = Py_None;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_1 = Py_None;
  __Pyx_INCREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_ptr, __pyx_t_2) < 0) __PYX_ERR(2, 82, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_ptr, __pyx_t_1) < 0) __PYX_ERR(2, 82, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":83
 *         self._cuda_buffers_are_mapped = False
 *         self._cuda_rgb_ptr, self._cuda_depth_ptr = None, None
 *         if use_cuda:             # <<<<<<<<<<<<<<
 *             self._init_cuda()
 * 
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_use_cuda); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 83, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "mujoco_py/mjbatchrenderer.pyx":84
 *         self._cuda_rgb_ptr, self._cuda_depth_ptr = None, None
 *         if use_cuda:
 *             self._init_cuda()             # <<<<<<<<<<<<<<
 * 
 *     def _init_cuda(self):
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_init_cuda); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 84, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":83
 *         self._cuda_buffers_are_mapped = False
 *         self._cuda_rgb_ptr, self._cuda_depth_ptr = None, None
 *         if use_cuda:             # <<<<<<<<<<<<<<
 *             self._init_cuda()
 * 
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":44
 *     """
 * 
 *     def __init__(self, width, height, batch_size=1, device_id=0,             # <<<<<<<<<<<<<<
 *                  depth=False, use_cuda=False):
 *         """
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjbatchrenderer.pyx":86
 *             self._init_cuda()
 * 
 *     def _init_cuda(self):             # <<<<<<<<<<<<<<
 *         if drv is None:
 *             raise ImportError("Failed to import pycuda.")
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_3_init_cuda(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_3_init_cuda = {"_init_cuda", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_3_init_cuda, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_3_init_cuda(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_init_cuda (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 86, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_init_cuda") < 0)) __PYX_ERR(2, 86, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_init_cuda", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 86, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer._init_cuda", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_2_init_cuda(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_2_init_cuda(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_RegisteredBuffer = NULL;
  PyObject *__pyx_v_device = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_init_cuda", 1);

  /* "mujoco_py/mjbatchrenderer.pyx":87
 * 
 *     def _init_cuda(self):
 *         if drv is None:             # <<<<<<<<<<<<<<
 *             raise ImportError("Failed to import pycuda.")
 *         # Use local imports so that we don't have to make pycuda
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_drv); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(__pyx_t_2)) {

    /* "mujoco_py/mjbatchrenderer.pyx":88
 *     def _init_cuda(self):
 *         if drv is None:
 *             raise ImportError("Failed to import pycuda.")             # <<<<<<<<<<<<<<
 *         # Use local imports so that we don't have to make pycuda
 *         # opengl interop a requirement
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__53, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 88, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(2, 88, __pyx_L1_error)

    /* "mujoco_py/mjbatchrenderer.pyx":87
 * 
 *     def _init_cuda(self):
 *         if drv is None:             # <<<<<<<<<<<<<<
 *             raise ImportError("Failed to import pycuda.")
 *         # Use local imports so that we don't have to make pycuda
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":91
 *         # Use local imports so that we don't have to make pycuda
 *         # opengl interop a requirement
 *         from pycuda.gl import RegisteredBuffer             # <<<<<<<<<<<<<<
 * 
 *         drv.init()
 */
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_RegisteredBuffer);
  __Pyx_GIVEREF(__pyx_n_s_RegisteredBuffer);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_RegisteredBuffer)) __PYX_ERR(2, 91, __pyx_L1_error);
  __pyx_t_3 = __Pyx_Import(__pyx_n_s_pycuda_gl, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_RegisteredBuffer); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_RegisteredBuffer = __pyx_t_1;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":93
 *         from pycuda.gl import RegisteredBuffer
 * 
 *         drv.init()             # <<<<<<<<<<<<<<
 *         device = drv.Device(self._device_id)
 *         self._cuda_context = device.make_context()
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_drv); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 93, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":94
 * 
 *         drv.init()
 *         device = drv.Device(self._device_id)             # <<<<<<<<<<<<<<
 *         self._cuda_context = device.make_context()
 *         self._cuda_context.push()
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_drv); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_Device); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_device_id_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_4};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_v_device = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":95
 *         drv.init()
 *         device = drv.Device(self._device_id)
 *         self._cuda_context = device.make_context()             # <<<<<<<<<<<<<<
 *         self._cuda_context.push()
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_device, __pyx_n_s_make_context); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_context, __pyx_t_3) < 0) __PYX_ERR(2, 95, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":96
 *         device = drv.Device(self._device_id)
 *         self._cuda_context = device.make_context()
 *         self._cuda_context.push()             # <<<<<<<<<<<<<<
 * 
 *         self._cuda_rgb_pbo = RegisteredBuffer(self.pbo_rgb)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_context); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_push); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 96, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":98
 *         self._cuda_context.push()
 * 
 *         self._cuda_rgb_pbo = RegisteredBuffer(self.pbo_rgb)             # <<<<<<<<<<<<<<
 *         if self._depth:
 *             self._cuda_depth_pbo = RegisteredBuffer(self.pbo_depth)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pbo_rgb); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_RegisteredBuffer);
  __pyx_t_1 = __pyx_v_RegisteredBuffer; __pyx_t_6 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_4};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 98, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_pbo, __pyx_t_3) < 0) __PYX_ERR(2, 98, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":99
 * 
 *         self._cuda_rgb_pbo = RegisteredBuffer(self.pbo_rgb)
 *         if self._depth:             # <<<<<<<<<<<<<<
 *             self._cuda_depth_pbo = RegisteredBuffer(self.pbo_depth)
 * 
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_depth_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 99, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_2) {

    /* "mujoco_py/mjbatchrenderer.pyx":100
 *         self._cuda_rgb_pbo = RegisteredBuffer(self.pbo_rgb)
 *         if self._depth:
 *             self._cuda_depth_pbo = RegisteredBuffer(self.pbo_depth)             # <<<<<<<<<<<<<<
 * 
 *     def map(self):
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pbo_depth); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_RegisteredBuffer);
    __pyx_t_4 = __pyx_v_RegisteredBuffer; __pyx_t_6 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_1};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 100, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_pbo, __pyx_t_3) < 0) __PYX_ERR(2, 100, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":99
 * 
 *         self._cuda_rgb_pbo = RegisteredBuffer(self.pbo_rgb)
 *         if self._depth:             # <<<<<<<<<<<<<<
 *             self._cuda_depth_pbo = RegisteredBuffer(self.pbo_depth)
 * 
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":86
 *             self._init_cuda()
 * 
 *     def _init_cuda(self):             # <<<<<<<<<<<<<<
 *         if drv is None:
 *             raise ImportError("Failed to import pycuda.")
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer._init_cuda", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_RegisteredBuffer);
  __Pyx_XDECREF(__pyx_v_device);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjbatchrenderer.pyx":102
 *             self._cuda_depth_pbo = RegisteredBuffer(self.pbo_depth)
 * 
 *     def map(self):             # <<<<<<<<<<<<<<
 *         """ Map OpenGL buffer to CUDA for reading. """
 *         if not self._use_cuda:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_5map(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer_4map, " Map OpenGL buffer to CUDA for reading. ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_5map = {"map", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_5map, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer_4map};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_5map(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("map (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 102, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "map") < 0)) __PYX_ERR(2, 102, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("map", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 102, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.map", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_4map(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_4map(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_ptr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *(*__pyx_t_8)(PyObject *);
  Py_ssize_t __pyx_t_9;
  Py_UCS4 __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("map", 1);

  /* "mujoco_py/mjbatchrenderer.pyx":104
 *     def map(self):
 *         """ Map OpenGL buffer to CUDA for reading. """
 *         if not self._use_cuda:             # <<<<<<<<<<<<<<
 *             raise CudaNotEnabledError()
 *         elif self._cuda_buffers_are_mapped:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_use_cuda_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 104, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (unlikely(__pyx_t_3)) {

    /* "mujoco_py/mjbatchrenderer.pyx":105
 *         """ Map OpenGL buffer to CUDA for reading. """
 *         if not self._use_cuda:
 *             raise CudaNotEnabledError()             # <<<<<<<<<<<<<<
 *         elif self._cuda_buffers_are_mapped:
 *             return  # just make it a no-op
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CudaNotEnabledError); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 105, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 105, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(2, 105, __pyx_L1_error)

    /* "mujoco_py/mjbatchrenderer.pyx":104
 *     def map(self):
 *         """ Map OpenGL buffer to CUDA for reading. """
 *         if not self._use_cuda:             # <<<<<<<<<<<<<<
 *             raise CudaNotEnabledError()
 *         elif self._cuda_buffers_are_mapped:
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":106
 *         if not self._use_cuda:
 *             raise CudaNotEnabledError()
 *         elif self._cuda_buffers_are_mapped:             # <<<<<<<<<<<<<<
 *             return  # just make it a no-op
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_buffers_are_mapped); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {

    /* "mujoco_py/mjbatchrenderer.pyx":107
 *             raise CudaNotEnabledError()
 *         elif self._cuda_buffers_are_mapped:
 *             return  # just make it a no-op             # <<<<<<<<<<<<<<
 * 
 *         self._cuda_context.push()
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "mujoco_py/mjbatchrenderer.pyx":106
 *         if not self._use_cuda:
 *             raise CudaNotEnabledError()
 *         elif self._cuda_buffers_are_mapped:             # <<<<<<<<<<<<<<
 *             return  # just make it a no-op
 * 
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":109
 *             return  # just make it a no-op
 * 
 *         self._cuda_context.push()             # <<<<<<<<<<<<<<
 *         self._cuda_rgb_mapping = self._cuda_rgb_pbo.map()
 *         ptr, self._cuda_rgb_buf_size = (
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_push); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":110
 * 
 *         self._cuda_context.push()
 *         self._cuda_rgb_mapping = self._cuda_rgb_pbo.map()             # <<<<<<<<<<<<<<
 *         ptr, self._cuda_rgb_buf_size = (
 *             self._cuda_rgb_mapping.device_ptr_and_size())
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_pbo); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_mapping, __pyx_t_1) < 0) __PYX_ERR(2, 110, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":112
 *         self._cuda_rgb_mapping = self._cuda_rgb_pbo.map()
 *         ptr, self._cuda_rgb_buf_size = (
 *             self._cuda_rgb_mapping.device_ptr_and_size())             # <<<<<<<<<<<<<<
 *         assert ptr is not None and self._cuda_rgb_buf_size > 0
 *         if self._cuda_rgb_ptr is None:
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_mapping); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_device_ptr_and_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(2, 111, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_7);
    index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_5);
    index = 1; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(2, 111, __pyx_L1_error)
    __pyx_t_8 = NULL;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L5_unpacking_done;
    __pyx_L4_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(2, 111, __pyx_L1_error)
    __pyx_L5_unpacking_done:;
  }

  /* "mujoco_py/mjbatchrenderer.pyx":111
 *         self._cuda_context.push()
 *         self._cuda_rgb_mapping = self._cuda_rgb_pbo.map()
 *         ptr, self._cuda_rgb_buf_size = (             # <<<<<<<<<<<<<<
 *             self._cuda_rgb_mapping.device_ptr_and_size())
 *         assert ptr is not None and self._cuda_rgb_buf_size > 0
 */
  __pyx_v_ptr = __pyx_t_5;
  __pyx_t_5 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_buf_size, __pyx_t_4) < 0) __PYX_ERR(2, 111, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":113
 *         ptr, self._cuda_rgb_buf_size = (
 *             self._cuda_rgb_mapping.device_ptr_and_size())
 *         assert ptr is not None and self._cuda_rgb_buf_size > 0             # <<<<<<<<<<<<<<
 *         if self._cuda_rgb_ptr is None:
 *             self._cuda_rgb_ptr = ptr
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_2 = (__pyx_v_ptr != Py_None);
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_buf_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 113, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 113, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = __pyx_t_2;
    __pyx_L6_bool_binop_done:;
    if (unlikely(!__pyx_t_3)) {
      __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
      __PYX_ERR(2, 113, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(2, 113, __pyx_L1_error)
  #endif

  /* "mujoco_py/mjbatchrenderer.pyx":114
 *             self._cuda_rgb_mapping.device_ptr_and_size())
 *         assert ptr is not None and self._cuda_rgb_buf_size > 0
 *         if self._cuda_rgb_ptr is None:             # <<<<<<<<<<<<<<
 *             self._cuda_rgb_ptr = ptr
 * 
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_ptr); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = (__pyx_t_4 == Py_None);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_3) {

    /* "mujoco_py/mjbatchrenderer.pyx":115
 *         assert ptr is not None and self._cuda_rgb_buf_size > 0
 *         if self._cuda_rgb_ptr is None:
 *             self._cuda_rgb_ptr = ptr             # <<<<<<<<<<<<<<
 * 
 *         # There doesn't seem to be a guarantee from the API that the
 */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_ptr, __pyx_v_ptr) < 0) __PYX_ERR(2, 115, __pyx_L1_error)

    /* "mujoco_py/mjbatchrenderer.pyx":114
 *             self._cuda_rgb_mapping.device_ptr_and_size())
 *         assert ptr is not None and self._cuda_rgb_buf_size > 0
 *         if self._cuda_rgb_ptr is None:             # <<<<<<<<<<<<<<
 *             self._cuda_rgb_ptr = ptr
 * 
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":122
 *         # the interface to MjBatchRenderer to make this clearer to user.
 *         # So, hopefully we won't hit this assert.
 *         assert self._cuda_rgb_ptr == ptr, (             # <<<<<<<<<<<<<<
 *             "Mapped CUDA rgb buffer pointer %d doesn't match old pointer %d" %
 *             (ptr, self._cuda_rgb_ptr))
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_ptr); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_v_ptr, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 122, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 122, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) {

      /* "mujoco_py/mjbatchrenderer.pyx":123
 *         # So, hopefully we won't hit this assert.
 *         assert self._cuda_rgb_ptr == ptr, (
 *             "Mapped CUDA rgb buffer pointer %d doesn't match old pointer %d" %             # <<<<<<<<<<<<<<
 *             (ptr, self._cuda_rgb_ptr))
 * 
 */
      __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 123, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = 0;
      __pyx_t_10 = 127;
      __Pyx_INCREF(__pyx_kp_u_Mapped_CUDA_rgb_buffer_pointer);
      __pyx_t_9 += 31;
      __Pyx_GIVEREF(__pyx_kp_u_Mapped_CUDA_rgb_buffer_pointer);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Mapped_CUDA_rgb_buffer_pointer);

      /* "mujoco_py/mjbatchrenderer.pyx":124
 *         assert self._cuda_rgb_ptr == ptr, (
 *             "Mapped CUDA rgb buffer pointer %d doesn't match old pointer %d" %
 *             (ptr, self._cuda_rgb_ptr))             # <<<<<<<<<<<<<<
 * 
 *         if self._depth:
 */
      __pyx_t_4 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_v_ptr), __pyx_n_u_d); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 124, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_10 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_10) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_10;
      __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4);
      __pyx_t_4 = 0;
      __Pyx_INCREF(__pyx_kp_u_doesn_t_match_old_pointer);
      __pyx_t_9 += 27;
      __Pyx_GIVEREF(__pyx_kp_u_doesn_t_match_old_pointer);
      PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_doesn_t_match_old_pointer);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_ptr); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 124, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_4), __pyx_n_u_d); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 124, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_10 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_10) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_10;
      __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_5);
      __pyx_t_5 = 0;

      /* "mujoco_py/mjbatchrenderer.pyx":123
 *         # So, hopefully we won't hit this assert.
 *         assert self._cuda_rgb_ptr == ptr, (
 *             "Mapped CUDA rgb buffer pointer %d doesn't match old pointer %d" %             # <<<<<<<<<<<<<<
 *             (ptr, self._cuda_rgb_ptr))
 * 
 */
      __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 123, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_t_5, 0, 0);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __PYX_ERR(2, 122, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(2, 122, __pyx_L1_error)
  #endif

  /* "mujoco_py/mjbatchrenderer.pyx":126
 *             (ptr, self._cuda_rgb_ptr))
 * 
 *         if self._depth:             # <<<<<<<<<<<<<<
 *             self._cuda_depth_mapping = self._cuda_depth_pbo.map()
 *             ptr, self._cuda_depth_buf_size = (
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_depth_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_3) {

    /* "mujoco_py/mjbatchrenderer.pyx":127
 * 
 *         if self._depth:
 *             self._cuda_depth_mapping = self._cuda_depth_pbo.map()             # <<<<<<<<<<<<<<
 *             ptr, self._cuda_depth_buf_size = (
 *                 self._cuda_depth_mapping.device_ptr_and_size())
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_pbo); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
      __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 127, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_mapping, __pyx_t_5) < 0) __PYX_ERR(2, 127, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":129
 *             self._cuda_depth_mapping = self._cuda_depth_pbo.map()
 *             ptr, self._cuda_depth_buf_size = (
 *                 self._cuda_depth_mapping.device_ptr_and_size())             # <<<<<<<<<<<<<<
 *             assert ptr is not None and self._cuda_depth_buf_size > 0
 *             if self._cuda_depth_ptr is None:
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_mapping); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_device_ptr_and_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 129, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
      PyObject* sequence = __pyx_t_5;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(2, 128, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_4);
      #else
      __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 128, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 128, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      #endif
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 128, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_7);
      index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L10_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_1);
      index = 1; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L10_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(2, 128, __pyx_L1_error)
      __pyx_t_8 = NULL;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L11_unpacking_done;
      __pyx_L10_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_8 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(2, 128, __pyx_L1_error)
      __pyx_L11_unpacking_done:;
    }

    /* "mujoco_py/mjbatchrenderer.pyx":128
 *         if self._depth:
 *             self._cuda_depth_mapping = self._cuda_depth_pbo.map()
 *             ptr, self._cuda_depth_buf_size = (             # <<<<<<<<<<<<<<
 *                 self._cuda_depth_mapping.device_ptr_and_size())
 *             assert ptr is not None and self._cuda_depth_buf_size > 0
 */
    __Pyx_DECREF_SET(__pyx_v_ptr, __pyx_t_1);
    __pyx_t_1 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_buf_size, __pyx_t_4) < 0) __PYX_ERR(2, 128, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":130
 *             ptr, self._cuda_depth_buf_size = (
 *                 self._cuda_depth_mapping.device_ptr_and_size())
 *             assert ptr is not None and self._cuda_depth_buf_size > 0             # <<<<<<<<<<<<<<
 *             if self._cuda_depth_ptr is None:
 *                 self._cuda_depth_ptr = ptr
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    if (unlikely(__pyx_assertions_enabled())) {
      __pyx_t_2 = (__pyx_v_ptr != Py_None);
      if (__pyx_t_2) {
      } else {
        __pyx_t_3 = __pyx_t_2;
        goto __pyx_L12_bool_binop_done;
      }
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_buf_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 130, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 130, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 130, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_3 = __pyx_t_2;
      __pyx_L12_bool_binop_done:;
      if (unlikely(!__pyx_t_3)) {
        __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
        __PYX_ERR(2, 130, __pyx_L1_error)
      }
    }
    #else
    if ((1)); else __PYX_ERR(2, 130, __pyx_L1_error)
    #endif

    /* "mujoco_py/mjbatchrenderer.pyx":131
 *                 self._cuda_depth_mapping.device_ptr_and_size())
 *             assert ptr is not None and self._cuda_depth_buf_size > 0
 *             if self._cuda_depth_ptr is None:             # <<<<<<<<<<<<<<
 *                 self._cuda_depth_ptr = ptr
 *             assert self._cuda_depth_ptr == ptr, (
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_ptr); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = (__pyx_t_4 == Py_None);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_3) {

      /* "mujoco_py/mjbatchrenderer.pyx":132
 *             assert ptr is not None and self._cuda_depth_buf_size > 0
 *             if self._cuda_depth_ptr is None:
 *                 self._cuda_depth_ptr = ptr             # <<<<<<<<<<<<<<
 *             assert self._cuda_depth_ptr == ptr, (
 *                 "Mapped CUDA depth buffer pointer %d doesn't match old pointer %d" %
 */
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_ptr, __pyx_v_ptr) < 0) __PYX_ERR(2, 132, __pyx_L1_error)

      /* "mujoco_py/mjbatchrenderer.pyx":131
 *                 self._cuda_depth_mapping.device_ptr_and_size())
 *             assert ptr is not None and self._cuda_depth_buf_size > 0
 *             if self._cuda_depth_ptr is None:             # <<<<<<<<<<<<<<
 *                 self._cuda_depth_ptr = ptr
 *             assert self._cuda_depth_ptr == ptr, (
 */
    }

    /* "mujoco_py/mjbatchrenderer.pyx":133
 *             if self._cuda_depth_ptr is None:
 *                 self._cuda_depth_ptr = ptr
 *             assert self._cuda_depth_ptr == ptr, (             # <<<<<<<<<<<<<<
 *                 "Mapped CUDA depth buffer pointer %d doesn't match old pointer %d" %
 *                 (ptr, self._cuda_depth_ptr))
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    if (unlikely(__pyx_assertions_enabled())) {
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_ptr); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 133, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyObject_RichCompare(__pyx_t_4, __pyx_v_ptr, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 133, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 133, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) {

        /* "mujoco_py/mjbatchrenderer.pyx":134
 *                 self._cuda_depth_ptr = ptr
 *             assert self._cuda_depth_ptr == ptr, (
 *                 "Mapped CUDA depth buffer pointer %d doesn't match old pointer %d" %             # <<<<<<<<<<<<<<
 *                 (ptr, self._cuda_depth_ptr))
 * 
 */
        __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 134, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_9 = 0;
        __pyx_t_10 = 127;
        __Pyx_INCREF(__pyx_kp_u_Mapped_CUDA_depth_buffer_pointer);
        __pyx_t_9 += 33;
        __Pyx_GIVEREF(__pyx_kp_u_Mapped_CUDA_depth_buffer_pointer);
        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_kp_u_Mapped_CUDA_depth_buffer_pointer);

        /* "mujoco_py/mjbatchrenderer.pyx":135
 *             assert self._cuda_depth_ptr == ptr, (
 *                 "Mapped CUDA depth buffer pointer %d doesn't match old pointer %d" %
 *                 (ptr, self._cuda_depth_ptr))             # <<<<<<<<<<<<<<
 * 
 *         self._cuda_buffers_are_mapped = True
 */
        __pyx_t_4 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_v_ptr), __pyx_n_u_d); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 135, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_10 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_10) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_10;
        __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
        __pyx_t_4 = 0;
        __Pyx_INCREF(__pyx_kp_u_doesn_t_match_old_pointer);
        __pyx_t_9 += 27;
        __Pyx_GIVEREF(__pyx_kp_u_doesn_t_match_old_pointer);
        PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_kp_u_doesn_t_match_old_pointer);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_ptr); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 135, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_1 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_4), __pyx_n_u_d); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 135, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_10 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_10) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_10;
        __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_1);
        __pyx_t_1 = 0;

        /* "mujoco_py/mjbatchrenderer.pyx":134
 *                 self._cuda_depth_ptr = ptr
 *             assert self._cuda_depth_ptr == ptr, (
 *                 "Mapped CUDA depth buffer pointer %d doesn't match old pointer %d" %             # <<<<<<<<<<<<<<
 *                 (ptr, self._cuda_depth_ptr))
 * 
 */
        __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_5, 4, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 134, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_t_1, 0, 0);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __PYX_ERR(2, 133, __pyx_L1_error)
      }
    }
    #else
    if ((1)); else __PYX_ERR(2, 133, __pyx_L1_error)
    #endif

    /* "mujoco_py/mjbatchrenderer.pyx":126
 *             (ptr, self._cuda_rgb_ptr))
 * 
 *         if self._depth:             # <<<<<<<<<<<<<<
 *             self._cuda_depth_mapping = self._cuda_depth_pbo.map()
 *             ptr, self._cuda_depth_buf_size = (
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":137
 *                 (ptr, self._cuda_depth_ptr))
 * 
 *         self._cuda_buffers_are_mapped = True             # <<<<<<<<<<<<<<
 * 
 *     def unmap(self):
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_buffers_are_mapped, Py_True) < 0) __PYX_ERR(2, 137, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":102
 *             self._cuda_depth_pbo = RegisteredBuffer(self.pbo_depth)
 * 
 *     def map(self):             # <<<<<<<<<<<<<<
 *         """ Map OpenGL buffer to CUDA for reading. """
 *         if not self._use_cuda:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.map", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjbatchrenderer.pyx":139
 *         self._cuda_buffers_are_mapped = True
 * 
 *     def unmap(self):             # <<<<<<<<<<<<<<
 *         """ Unmap OpenGL buffer from CUDA so that it can be rendered into. """
 *         if not self._use_cuda:
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_7unmap(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer_6unmap, " Unmap OpenGL buffer from CUDA so that it can be rendered into. ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_7unmap = {"unmap", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_7unmap, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer_6unmap};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_7unmap(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("unmap (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 139, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "unmap") < 0)) __PYX_ERR(2, 139, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("unmap", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 139, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.unmap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_6unmap(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_6unmap(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("unmap", 1);

  /* "mujoco_py/mjbatchrenderer.pyx":141
 *     def unmap(self):
 *         """ Unmap OpenGL buffer from CUDA so that it can be rendered into. """
 *         if not self._use_cuda:             # <<<<<<<<<<<<<<
 *             raise CudaNotEnabledError()
 *         elif not self._cuda_buffers_are_mapped:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_use_cuda_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 141, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (unlikely(__pyx_t_3)) {

    /* "mujoco_py/mjbatchrenderer.pyx":142
 *         """ Unmap OpenGL buffer from CUDA so that it can be rendered into. """
 *         if not self._use_cuda:
 *             raise CudaNotEnabledError()             # <<<<<<<<<<<<<<
 *         elif not self._cuda_buffers_are_mapped:
 *             return  # just make it a no-op
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CudaNotEnabledError); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 142, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 142, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(2, 142, __pyx_L1_error)

    /* "mujoco_py/mjbatchrenderer.pyx":141
 *     def unmap(self):
 *         """ Unmap OpenGL buffer from CUDA so that it can be rendered into. """
 *         if not self._use_cuda:             # <<<<<<<<<<<<<<
 *             raise CudaNotEnabledError()
 *         elif not self._cuda_buffers_are_mapped:
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":143
 *         if not self._use_cuda:
 *             raise CudaNotEnabledError()
 *         elif not self._cuda_buffers_are_mapped:             # <<<<<<<<<<<<<<
 *             return  # just make it a no-op
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_buffers_are_mapped); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 143, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = (!__pyx_t_3);
  if (__pyx_t_2) {

    /* "mujoco_py/mjbatchrenderer.pyx":144
 *             raise CudaNotEnabledError()
 *         elif not self._cuda_buffers_are_mapped:
 *             return  # just make it a no-op             # <<<<<<<<<<<<<<
 * 
 *         self._cuda_context.push()
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "mujoco_py/mjbatchrenderer.pyx":143
 *         if not self._use_cuda:
 *             raise CudaNotEnabledError()
 *         elif not self._cuda_buffers_are_mapped:             # <<<<<<<<<<<<<<
 *             return  # just make it a no-op
 * 
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":146
 *             return  # just make it a no-op
 * 
 *         self._cuda_context.push()             # <<<<<<<<<<<<<<
 *         self._cuda_rgb_mapping.unmap()
 *         self._cuda_rgb_mapping = None
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_push); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":147
 * 
 *         self._cuda_context.push()
 *         self._cuda_rgb_mapping.unmap()             # <<<<<<<<<<<<<<
 *         self._cuda_rgb_mapping = None
 *         self._cuda_rgb_ptr = None
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_mapping); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_unmap); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 147, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":148
 *         self._cuda_context.push()
 *         self._cuda_rgb_mapping.unmap()
 *         self._cuda_rgb_mapping = None             # <<<<<<<<<<<<<<
 *         self._cuda_rgb_ptr = None
 *         if self._depth:
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_mapping, Py_None) < 0) __PYX_ERR(2, 148, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":149
 *         self._cuda_rgb_mapping.unmap()
 *         self._cuda_rgb_mapping = None
 *         self._cuda_rgb_ptr = None             # <<<<<<<<<<<<<<
 *         if self._depth:
 *             self._cuda_depth_mapping.unmap()
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_ptr, Py_None) < 0) __PYX_ERR(2, 149, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":150
 *         self._cuda_rgb_mapping = None
 *         self._cuda_rgb_ptr = None
 *         if self._depth:             # <<<<<<<<<<<<<<
 *             self._cuda_depth_mapping.unmap()
 *             self._cuda_depth_mapping = None
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_depth_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 150, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "mujoco_py/mjbatchrenderer.pyx":151
 *         self._cuda_rgb_ptr = None
 *         if self._depth:
 *             self._cuda_depth_mapping.unmap()             # <<<<<<<<<<<<<<
 *             self._cuda_depth_mapping = None
 *             self._cuda_depth_ptr = None
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_mapping); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_unmap); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":152
 *         if self._depth:
 *             self._cuda_depth_mapping.unmap()
 *             self._cuda_depth_mapping = None             # <<<<<<<<<<<<<<
 *             self._cuda_depth_ptr = None
 * 
 */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_mapping, Py_None) < 0) __PYX_ERR(2, 152, __pyx_L1_error)

    /* "mujoco_py/mjbatchrenderer.pyx":153
 *             self._cuda_depth_mapping.unmap()
 *             self._cuda_depth_mapping = None
 *             self._cuda_depth_ptr = None             # <<<<<<<<<<<<<<
 * 
 *         self._cuda_buffers_are_mapped = False
 */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_ptr, Py_None) < 0) __PYX_ERR(2, 153, __pyx_L1_error)

    /* "mujoco_py/mjbatchrenderer.pyx":150
 *         self._cuda_rgb_mapping = None
 *         self._cuda_rgb_ptr = None
 *         if self._depth:             # <<<<<<<<<<<<<<
 *             self._cuda_depth_mapping.unmap()
 *             self._cuda_depth_mapping = None
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":155
 *             self._cuda_depth_ptr = None
 * 
 *         self._cuda_buffers_are_mapped = False             # <<<<<<<<<<<<<<
 * 
 *     def prepare_render_context(self, sim):
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cuda_buffers_are_mapped, Py_False) < 0) __PYX_ERR(2, 155, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":139
 *         self._cuda_buffers_are_mapped = True
 * 
 *     def unmap(self):             # <<<<<<<<<<<<<<
 *         """ Unmap OpenGL buffer from CUDA so that it can be rendered into. """
 *         if not self._use_cuda:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.unmap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjbatchrenderer.pyx":157
 *         self._cuda_buffers_are_mapped = False
 * 
 *     def prepare_render_context(self, sim):             # <<<<<<<<<<<<<<
 *         """
 *         Set up the rendering context for an MjSim. Also happens automatically
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_9prepare_render_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer_8prepare_render_context, "\n        Set up the rendering context for an MjSim. Also happens automatically\n        on `.render()`.\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_9prepare_render_context = {"prepare_render_context", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_9prepare_render_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer_8prepare_render_context};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_9prepare_render_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_sim = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("prepare_render_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_sim,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 157, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sim)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 157, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("prepare_render_context", 1, 2, 2, 1); __PYX_ERR(2, 157, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "prepare_render_context") < 0)) __PYX_ERR(2, 157, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_sim = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("prepare_render_context", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 157, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.prepare_render_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_8prepare_render_context(__pyx_self, __pyx_v_self, __pyx_v_sim);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_8prepare_render_context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_sim) {
  PyObject *__pyx_v_c = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("prepare_render_context", 1);

  /* "mujoco_py/mjbatchrenderer.pyx":162
 *         on `.render()`.
 *         """
 *         for c in sim.render_contexts:             # <<<<<<<<<<<<<<
 *             if (c.offscreen and
 *                     isinstance(c.opengl_context, OffscreenOpenGLContext) and
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_sim, __pyx_n_s_render_contexts); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 162, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 162, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 162, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(2, 162, __pyx_L1_error)
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 162, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 162, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(2, 162, __pyx_L1_error)
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 162, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(2, 162, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":163
 *         """
 *         for c in sim.render_contexts:
 *             if (c.offscreen and             # <<<<<<<<<<<<<<
 *                     isinstance(c.opengl_context, OffscreenOpenGLContext) and
 *                     c.opengl_context.device_id == self._device_id):
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_offscreen); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(2, 163, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }

    /* "mujoco_py/mjbatchrenderer.pyx":164
 *         for c in sim.render_contexts:
 *             if (c.offscreen and
 *                     isinstance(c.opengl_context, OffscreenOpenGLContext) and             # <<<<<<<<<<<<<<
 *                     c.opengl_context.device_id == self._device_id):
 *                 return c
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_opengl_context); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 164, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_OffscreenOpenGLContext); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 164, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = PyObject_IsInstance(__pyx_t_1, __pyx_t_7); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(2, 164, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }

    /* "mujoco_py/mjbatchrenderer.pyx":165
 *             if (c.offscreen and
 *                     isinstance(c.opengl_context, OffscreenOpenGLContext) and
 *                     c.opengl_context.device_id == self._device_id):             # <<<<<<<<<<<<<<
 *                 return c
 * 
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_opengl_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_device_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_device_id_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 165, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(2, 165, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_5 = __pyx_t_6;
    __pyx_L6_bool_binop_done:;

    /* "mujoco_py/mjbatchrenderer.pyx":163
 *         """
 *         for c in sim.render_contexts:
 *             if (c.offscreen and             # <<<<<<<<<<<<<<
 *                     isinstance(c.opengl_context, OffscreenOpenGLContext) and
 *                     c.opengl_context.device_id == self._device_id):
 */
    if (__pyx_t_5) {

      /* "mujoco_py/mjbatchrenderer.pyx":166
 *                     isinstance(c.opengl_context, OffscreenOpenGLContext) and
 *                     c.opengl_context.device_id == self._device_id):
 *                 return c             # <<<<<<<<<<<<<<
 * 
 *         return MjRenderContext(sim, device_id=self._device_id)
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_c);
      __pyx_r = __pyx_v_c;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "mujoco_py/mjbatchrenderer.pyx":163
 *         """
 *         for c in sim.render_contexts:
 *             if (c.offscreen and             # <<<<<<<<<<<<<<
 *                     isinstance(c.opengl_context, OffscreenOpenGLContext) and
 *                     c.opengl_context.device_id == self._device_id):
 */
    }

    /* "mujoco_py/mjbatchrenderer.pyx":162
 *         on `.render()`.
 *         """
 *         for c in sim.render_contexts:             # <<<<<<<<<<<<<<
 *             if (c.offscreen and
 *                     isinstance(c.opengl_context, OffscreenOpenGLContext) and
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":168
 *                 return c
 * 
 *         return MjRenderContext(sim, device_id=self._device_id)             # <<<<<<<<<<<<<<
 * 
 *     def render(self, sim, camera_id=None, batch_offset=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_sim);
  __Pyx_GIVEREF(__pyx_v_sim);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_sim)) __PYX_ERR(2, 168, __pyx_L1_error);
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_device_id_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_device_id, __pyx_t_7) < 0) __PYX_ERR(2, 168, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext), __pyx_t_2, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_r = __pyx_t_7;
  __pyx_t_7 = 0;
  goto __pyx_L0;

  /* "mujoco_py/mjbatchrenderer.pyx":157
 *         self._cuda_buffers_are_mapped = False
 * 
 *     def prepare_render_context(self, sim):             # <<<<<<<<<<<<<<
 *         """
 *         Set up the rendering context for an MjSim. Also happens automatically
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.prepare_render_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjbatchrenderer.pyx":170
 *         return MjRenderContext(sim, device_id=self._device_id)
 * 
 *     def render(self, sim, camera_id=None, batch_offset=None):             # <<<<<<<<<<<<<<
 *         """
 *         Render current scene from the MjSim into the buffer. By
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_11render(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer_10render, "\n        Render current scene from the MjSim into the buffer. By\n        default the batch offset is automatically incremented with\n        each call. It can be reset with the batch_offset parameter.\n\n        This method doesn't return anything. Use the `.read` method\n        to read the buffer, or access the buffer pointer directly with\n        e.g. `.cuda_rgb_buffer_pointer` accessor.\n\n        Args:\n        - sim (MjSim): The simulator to use for rendering.\n        - camera_id (int): MuJoCo id for the camera, from\n            `sim.model.camera_name2id()`.\n        - batch_offset (int): offset in batch to render to.\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_11render = {"render", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_11render, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer_10render};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_11render(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_sim = 0;
  PyObject *__pyx_v_camera_id = 0;
  PyObject *__pyx_v_batch_offset = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("render (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_sim,&__pyx_n_s_camera_id,&__pyx_n_s_batch_offset,0};
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 170, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sim)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 170, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("render", 0, 2, 4, 1); __PYX_ERR(2, 170, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_camera_id);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 170, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_batch_offset);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 170, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "render") < 0)) __PYX_ERR(2, 170, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_sim = values[1];
    __pyx_v_camera_id = values[2];
    __pyx_v_batch_offset = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("render", 0, 2, 4, __pyx_nargs); __PYX_ERR(2, 170, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_10render(__pyx_self, __pyx_v_self, __pyx_v_sim, __pyx_v_camera_id, __pyx_v_batch_offset);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_10render(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_sim, PyObject *__pyx_v_camera_id, PyObject *__pyx_v_batch_offset) {
  PyObject *__pyx_v_render_context = NULL;
  mjrRect __pyx_v_viewport;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *__pyx_v_con = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  unsigned int __pyx_t_9;
  unsigned int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("render", 1);

  /* "mujoco_py/mjbatchrenderer.pyx":186
 *         - batch_offset (int): offset in batch to render to.
 *         """
 *         if self._use_cuda and self._cuda_buffers_are_mapped:             # <<<<<<<<<<<<<<
 *             raise CudaBufferMappedError(
 *                 "CUDA buffers must be unmapped before calling render.")
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_use_cuda_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 186, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_buffers_are_mapped); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 186, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/mjbatchrenderer.pyx":187
 *         """
 *         if self._use_cuda and self._cuda_buffers_are_mapped:
 *             raise CudaBufferMappedError(             # <<<<<<<<<<<<<<
 *                 "CUDA buffers must be unmapped before calling render.")
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CudaBufferMappedError); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 187, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_kp_u_CUDA_buffers_must_be_unmapped_be};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 187, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(2, 187, __pyx_L1_error)

    /* "mujoco_py/mjbatchrenderer.pyx":186
 *         - batch_offset (int): offset in batch to render to.
 *         """
 *         if self._use_cuda and self._cuda_buffers_are_mapped:             # <<<<<<<<<<<<<<
 *             raise CudaBufferMappedError(
 *                 "CUDA buffers must be unmapped before calling render.")
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":190
 *                 "CUDA buffers must be unmapped before calling render.")
 * 
 *         if batch_offset is not None:             # <<<<<<<<<<<<<<
 *             if batch_offset < 0 or batch_offset >= self._batch_size:
 *                 raise ValueError("batch_offset out of range")
 */
  __pyx_t_1 = (__pyx_v_batch_offset != Py_None);
  if (__pyx_t_1) {

    /* "mujoco_py/mjbatchrenderer.pyx":191
 * 
 *         if batch_offset is not None:
 *             if batch_offset < 0 or batch_offset >= self._batch_size:             # <<<<<<<<<<<<<<
 *                 raise ValueError("batch_offset out of range")
 *             self._current_batch_offset = batch_offset
 */
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_batch_offset, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 191, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 191, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (!__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_batch_size_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 191, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyObject_RichCompare(__pyx_v_batch_offset, __pyx_t_2, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 191, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 191, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_1 = __pyx_t_3;
    __pyx_L8_bool_binop_done:;
    if (unlikely(__pyx_t_1)) {

      /* "mujoco_py/mjbatchrenderer.pyx":192
 *         if batch_offset is not None:
 *             if batch_offset < 0 or batch_offset >= self._batch_size:
 *                 raise ValueError("batch_offset out of range")             # <<<<<<<<<<<<<<
 *             self._current_batch_offset = batch_offset
 * 
 */
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__54, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 192, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __PYX_ERR(2, 192, __pyx_L1_error)

      /* "mujoco_py/mjbatchrenderer.pyx":191
 * 
 *         if batch_offset is not None:
 *             if batch_offset < 0 or batch_offset >= self._batch_size:             # <<<<<<<<<<<<<<
 *                 raise ValueError("batch_offset out of range")
 *             self._current_batch_offset = batch_offset
 */
    }

    /* "mujoco_py/mjbatchrenderer.pyx":193
 *             if batch_offset < 0 or batch_offset >= self._batch_size:
 *                 raise ValueError("batch_offset out of range")
 *             self._current_batch_offset = batch_offset             # <<<<<<<<<<<<<<
 * 
 *         # Ensure the correct device context is used (this takes ~1 s)
 */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_current_batch_offset, __pyx_v_batch_offset) < 0) __PYX_ERR(2, 193, __pyx_L1_error)

    /* "mujoco_py/mjbatchrenderer.pyx":190
 *                 "CUDA buffers must be unmapped before calling render.")
 * 
 *         if batch_offset is not None:             # <<<<<<<<<<<<<<
 *             if batch_offset < 0 or batch_offset >= self._batch_size:
 *                 raise ValueError("batch_offset out of range")
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":196
 * 
 *         # Ensure the correct device context is used (this takes ~1 s)
 *         makeOpenGLContextCurrent(self._device_id)             # <<<<<<<<<<<<<<
 * 
 *         render_context = self.prepare_render_context(sim)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_device_id_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 196, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 196, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  (void)(makeOpenGLContextCurrent(__pyx_t_6));

  /* "mujoco_py/mjbatchrenderer.pyx":198
 *         makeOpenGLContextCurrent(self._device_id)
 * 
 *         render_context = self.prepare_render_context(sim)             # <<<<<<<<<<<<<<
 *         render_context.update_offscreen_size(self._width, self._height)
 *         render_context.render(self._width, self._height, camera_id=camera_id)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_prepare_render_context); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_sim};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_render_context = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":199
 * 
 *         render_context = self.prepare_render_context(sim)
 *         render_context.update_offscreen_size(self._width, self._height)             # <<<<<<<<<<<<<<
 *         render_context.render(self._width, self._height, camera_id=camera_id)
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_render_context, __pyx_n_s_update_offscreen_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_width_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_height_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 199, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":200
 *         render_context = self.prepare_render_context(sim)
 *         render_context.update_offscreen_size(self._width, self._height)
 *         render_context.render(self._width, self._height, camera_id=camera_id)             # <<<<<<<<<<<<<<
 * 
 *         cdef mjrRect viewport
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_render_context, __pyx_n_s_render); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_width_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_height_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2)) __PYX_ERR(2, 200, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7)) __PYX_ERR(2, 200, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_camera_id, __pyx_v_camera_id) < 0) __PYX_ERR(2, 200, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":203
 * 
 *         cdef mjrRect viewport
 *         viewport.left = 0             # <<<<<<<<<<<<<<
 *         viewport.bottom = 0
 *         viewport.width = self._width
 */
  __pyx_v_viewport.left = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":204
 *         cdef mjrRect viewport
 *         viewport.left = 0
 *         viewport.bottom = 0             # <<<<<<<<<<<<<<
 *         viewport.width = self._width
 *         viewport.height = self._height
 */
  __pyx_v_viewport.bottom = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":205
 *         viewport.left = 0
 *         viewport.bottom = 0
 *         viewport.width = self._width             # <<<<<<<<<<<<<<
 *         viewport.height = self._height
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_width_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 205, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_viewport.width = __pyx_t_6;

  /* "mujoco_py/mjbatchrenderer.pyx":206
 *         viewport.bottom = 0
 *         viewport.width = self._width
 *         viewport.height = self._height             # <<<<<<<<<<<<<<
 * 
 *         cdef PyMjrContext con = <PyMjrContext> render_context.con
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_height_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 206, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_viewport.height = __pyx_t_6;

  /* "mujoco_py/mjbatchrenderer.pyx":208
 *         viewport.height = self._height
 * 
 *         cdef PyMjrContext con = <PyMjrContext> render_context.con             # <<<<<<<<<<<<<<
 *         copyFBOToPBO(con.ptr, self.pbo_rgb, self.pbo_depth,
 *                      viewport, self._current_batch_offset)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_render_context, __pyx_n_s_con); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __pyx_t_2;
  __Pyx_INCREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":209
 * 
 *         cdef PyMjrContext con = <PyMjrContext> render_context.con
 *         copyFBOToPBO(con.ptr, self.pbo_rgb, self.pbo_depth,             # <<<<<<<<<<<<<<
 *                      viewport, self._current_batch_offset)
 * 
 */
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pbo_rgb); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = __Pyx_PyInt_As_unsigned_int(__pyx_t_7); if (unlikely((__pyx_t_9 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(2, 209, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pbo_depth); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_10 = __Pyx_PyInt_As_unsigned_int(__pyx_t_7); if (unlikely((__pyx_t_10 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(2, 209, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":210
 *         cdef PyMjrContext con = <PyMjrContext> render_context.con
 *         copyFBOToPBO(con.ptr, self.pbo_rgb, self.pbo_depth,
 *                      viewport, self._current_batch_offset)             # <<<<<<<<<<<<<<
 * 
 *         self._current_batch_offset = (self._current_batch_offset + 1) % self._batch_size
 */
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_current_batch_offset); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 210, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":209
 * 
 *         cdef PyMjrContext con = <PyMjrContext> render_context.con
 *         copyFBOToPBO(con.ptr, self.pbo_rgb, self.pbo_depth,             # <<<<<<<<<<<<<<
 *                      viewport, self._current_batch_offset)
 * 
 */
  copyFBOToPBO(__pyx_v_con->ptr, __pyx_t_9, __pyx_t_10, __pyx_v_viewport, __pyx_t_6);

  /* "mujoco_py/mjbatchrenderer.pyx":212
 *                      viewport, self._current_batch_offset)
 * 
 *         self._current_batch_offset = (self._current_batch_offset + 1) % self._batch_size             # <<<<<<<<<<<<<<
 * 
 *     def read(self):
 */
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_current_batch_offset); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_7, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_batch_size_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = PyNumber_Remainder(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_current_batch_offset, __pyx_t_5) < 0) __PYX_ERR(2, 212, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":170
 *         return MjRenderContext(sim, device_id=self._device_id)
 * 
 *     def render(self, sim, camera_id=None, batch_offset=None):             # <<<<<<<<<<<<<<
 *         """
 *         Render current scene from the MjSim into the buffer. By
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.render", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_render_context);
  __Pyx_XDECREF((PyObject *)__pyx_v_con);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjbatchrenderer.pyx":214
 *         self._current_batch_offset = (self._current_batch_offset + 1) % self._batch_size
 * 
 *     def read(self):             # <<<<<<<<<<<<<<
 *         """
 *         Transfer a copy of the buffer from the GPU to the CPU as a numpy array.
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_13read(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer_12read, "\n        Transfer a copy of the buffer from the GPU to the CPU as a numpy array.\n\n        Returns:\n        - rgb_batch (numpy array): batch of rgb images in uint8 NHWC format\n        - depth_batch (numpy array): batch of depth images in uint16 NHWC format\n        ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_13read = {"read", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_13read, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer_12read};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_13read(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("read (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 214, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "read") < 0)) __PYX_ERR(2, 214, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("read", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 214, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.read", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_12read(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_12read(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("read", 1);

  /* "mujoco_py/mjbatchrenderer.pyx":222
 *         - depth_batch (numpy array): batch of depth images in uint16 NHWC format
 *         """
 *         if self._use_cuda:             # <<<<<<<<<<<<<<
 *             return self._read_cuda()
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_use_cuda_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 222, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "mujoco_py/mjbatchrenderer.pyx":223
 *         """
 *         if self._use_cuda:
 *             return self._read_cuda()             # <<<<<<<<<<<<<<
 *         else:
 *             return self._read_nocuda()
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_read_cuda); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 223, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "mujoco_py/mjbatchrenderer.pyx":222
 *         - depth_batch (numpy array): batch of depth images in uint16 NHWC format
 *         """
 *         if self._use_cuda:             # <<<<<<<<<<<<<<
 *             return self._read_cuda()
 *         else:
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":225
 *             return self._read_cuda()
 *         else:
 *             return self._read_nocuda()             # <<<<<<<<<<<<<<
 * 
 *     def _read_cuda(self):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_read_nocuda); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 225, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "mujoco_py/mjbatchrenderer.pyx":214
 *         self._current_batch_offset = (self._current_batch_offset + 1) % self._batch_size
 * 
 *     def read(self):             # <<<<<<<<<<<<<<
 *         """
 *         Transfer a copy of the buffer from the GPU to the CPU as a numpy array.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.read", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjbatchrenderer.pyx":227
 *             return self._read_nocuda()
 * 
 *     def _read_cuda(self):             # <<<<<<<<<<<<<<
 *         if not self._cuda_buffers_are_mapped:
 *             raise CudaBufferNotMappedError(
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_15_read_cuda(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_15_read_cuda = {"_read_cuda", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_15_read_cuda, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_15_read_cuda(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_read_cuda (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 227, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_read_cuda") < 0)) __PYX_ERR(2, 227, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_read_cuda", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 227, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer._read_cuda", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_14_read_cuda(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_14_read_cuda(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_rgb_arr = NULL;
  PyObject *__pyx_v_depth_arr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_read_cuda", 1);

  /* "mujoco_py/mjbatchrenderer.pyx":228
 * 
 *     def _read_cuda(self):
 *         if not self._cuda_buffers_are_mapped:             # <<<<<<<<<<<<<<
 *             raise CudaBufferNotMappedError(
 *                 "CUDA buffers must be mapped before reading")
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_buffers_are_mapped); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 228, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (unlikely(__pyx_t_3)) {

    /* "mujoco_py/mjbatchrenderer.pyx":229
 *     def _read_cuda(self):
 *         if not self._cuda_buffers_are_mapped:
 *             raise CudaBufferNotMappedError(             # <<<<<<<<<<<<<<
 *                 "CUDA buffers must be mapped before reading")
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CudaBufferNotMappedError); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 229, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_kp_u_CUDA_buffers_must_be_mapped_befo};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 229, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(2, 229, __pyx_L1_error)

    /* "mujoco_py/mjbatchrenderer.pyx":228
 * 
 *     def _read_cuda(self):
 *         if not self._cuda_buffers_are_mapped:             # <<<<<<<<<<<<<<
 *             raise CudaBufferNotMappedError(
 *                 "CUDA buffers must be mapped before reading")
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":232
 *                 "CUDA buffers must be mapped before reading")
 * 
 *         rgb_arr = drv.from_device(             # <<<<<<<<<<<<<<
 *             self._cuda_rgb_ptr,
 *             shape=(self._batch_size, self._height, self._width, 3),
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_drv); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_from_device); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":233
 * 
 *         rgb_arr = drv.from_device(
 *             self._cuda_rgb_ptr,             # <<<<<<<<<<<<<<
 *             shape=(self._batch_size, self._height, self._width, 3),
 *             dtype=np.uint8)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_ptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "mujoco_py/mjbatchrenderer.pyx":232
 *                 "CUDA buffers must be mapped before reading")
 * 
 *         rgb_arr = drv.from_device(             # <<<<<<<<<<<<<<
 *             self._cuda_rgb_ptr,
 *             shape=(self._batch_size, self._height, self._width, 3),
 */
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(2, 232, __pyx_L1_error);
  __pyx_t_1 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":234
 *         rgb_arr = drv.from_device(
 *             self._cuda_rgb_ptr,
 *             shape=(self._batch_size, self._height, self._width, 3),             # <<<<<<<<<<<<<<
 *             dtype=np.uint8)
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_batch_size_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_height_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_width_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = PyTuple_New(4); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7)) __PYX_ERR(2, 234, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_8);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_8)) __PYX_ERR(2, 234, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_9);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_9)) __PYX_ERR(2, 234, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 3, __pyx_int_3)) __PYX_ERR(2, 234, __pyx_L1_error);
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_t_9 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_shape, __pyx_t_10) < 0) __PYX_ERR(2, 234, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":235
 *             self._cuda_rgb_ptr,
 *             shape=(self._batch_size, self._height, self._width, 3),
 *             dtype=np.uint8)             # <<<<<<<<<<<<<<
 * 
 *         if self._depth:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_uint8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(2, 234, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":232
 *                 "CUDA buffers must be mapped before reading")
 * 
 *         rgb_arr = drv.from_device(             # <<<<<<<<<<<<<<
 *             self._cuda_rgb_ptr,
 *             shape=(self._batch_size, self._height, self._width, 3),
 */
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_rgb_arr = __pyx_t_9;
  __pyx_t_9 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":237
 *             dtype=np.uint8)
 * 
 *         if self._depth:             # <<<<<<<<<<<<<<
 *             depth_arr = drv.from_device(
 *                 self._cuda_depth_ptr,
 */
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_depth_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 237, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__pyx_t_3) {

    /* "mujoco_py/mjbatchrenderer.pyx":238
 * 
 *         if self._depth:
 *             depth_arr = drv.from_device(             # <<<<<<<<<<<<<<
 *                 self._cuda_depth_ptr,
 *                 shape=(self._batch_size, self._height, self._width),
 */
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_drv); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_from_device); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":239
 *         if self._depth:
 *             depth_arr = drv.from_device(
 *                 self._cuda_depth_ptr,             # <<<<<<<<<<<<<<
 *                 shape=(self._batch_size, self._height, self._width),
 *                 dtype=np.uint16)
 */
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_ptr); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 239, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);

    /* "mujoco_py/mjbatchrenderer.pyx":238
 * 
 *         if self._depth:
 *             depth_arr = drv.from_device(             # <<<<<<<<<<<<<<
 *                 self._cuda_depth_ptr,
 *                 shape=(self._batch_size, self._height, self._width),
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_9);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9)) __PYX_ERR(2, 238, __pyx_L1_error);
    __pyx_t_9 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":240
 *             depth_arr = drv.from_device(
 *                 self._cuda_depth_ptr,
 *                 shape=(self._batch_size, self._height, self._width),             # <<<<<<<<<<<<<<
 *                 dtype=np.uint16)
 *         else:
 */
    __pyx_t_9 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_batch_size_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_height_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_width_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4)) __PYX_ERR(2, 240, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_10);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_10)) __PYX_ERR(2, 240, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_8);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_8)) __PYX_ERR(2, 240, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_10 = 0;
    __pyx_t_8 = 0;
    if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_shape, __pyx_t_7) < 0) __PYX_ERR(2, 240, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":241
 *                 self._cuda_depth_ptr,
 *                 shape=(self._batch_size, self._height, self._width),
 *                 dtype=np.uint16)             # <<<<<<<<<<<<<<
 *         else:
 *             depth_arr = None
 */
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 241, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_uint16); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 241, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(2, 240, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":238
 * 
 *         if self._depth:
 *             depth_arr = drv.from_device(             # <<<<<<<<<<<<<<
 *                 self._cuda_depth_ptr,
 *                 shape=(self._batch_size, self._height, self._width),
 */
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_v_depth_arr = __pyx_t_8;
    __pyx_t_8 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":237
 *             dtype=np.uint8)
 * 
 *         if self._depth:             # <<<<<<<<<<<<<<
 *             depth_arr = drv.from_device(
 *                 self._cuda_depth_ptr,
 */
    goto __pyx_L4;
  }

  /* "mujoco_py/mjbatchrenderer.pyx":243
 *                 dtype=np.uint16)
 *         else:
 *             depth_arr = None             # <<<<<<<<<<<<<<
 * 
 *         return rgb_arr, depth_arr
 */
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __pyx_v_depth_arr = Py_None;
  }
  __pyx_L4:;

  /* "mujoco_py/mjbatchrenderer.pyx":245
 *             depth_arr = None
 * 
 *         return rgb_arr, depth_arr             # <<<<<<<<<<<<<<
 * 
 *     def _read_nocuda(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(__pyx_v_rgb_arr);
  __Pyx_GIVEREF(__pyx_v_rgb_arr);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_rgb_arr)) __PYX_ERR(2, 245, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_depth_arr);
  __Pyx_GIVEREF(__pyx_v_depth_arr);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_depth_arr)) __PYX_ERR(2, 245, __pyx_L1_error);
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;

  /* "mujoco_py/mjbatchrenderer.pyx":227
 *             return self._read_nocuda()
 * 
 *     def _read_cuda(self):             # <<<<<<<<<<<<<<
 *         if not self._cuda_buffers_are_mapped:
 *             raise CudaBufferNotMappedError(
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer._read_cuda", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_rgb_arr);
  __Pyx_XDECREF(__pyx_v_depth_arr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjbatchrenderer.pyx":247
 *         return rgb_arr, depth_arr
 * 
 *     def _read_nocuda(self):             # <<<<<<<<<<<<<<
 *         rgb_arr = np.zeros(3 * self._width * self._height * self._batch_size, dtype=np.uint8)
 *         cdef unsigned char[::view.contiguous] rgb_view = rgb_arr
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_17_read_nocuda(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_17_read_nocuda = {"_read_nocuda", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_17_read_nocuda, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_17_read_nocuda(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_read_nocuda (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 247, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_read_nocuda") < 0)) __PYX_ERR(2, 247, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_read_nocuda", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 247, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer._read_nocuda", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_16_read_nocuda(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_16_read_nocuda(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_rgb_arr = NULL;
  __Pyx_memviewslice __pyx_v_rgb_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_v_depth_arr = NULL;
  __Pyx_memviewslice __pyx_v_depth_view = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_memviewslice __pyx_t_6 = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_t_7 = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  int __pyx_t_10;
  Py_ssize_t __pyx_t_11;
  unsigned int __pyx_t_12;
  unsigned int __pyx_t_13;
  int __pyx_t_14;
  int __pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_read_nocuda", 1);

  /* "mujoco_py/mjbatchrenderer.pyx":248
 * 
 *     def _read_nocuda(self):
 *         rgb_arr = np.zeros(3 * self._width * self._height * self._batch_size, dtype=np.uint8)             # <<<<<<<<<<<<<<
 *         cdef unsigned char[::view.contiguous] rgb_view = rgb_arr
 *         depth_arr = np.zeros(self._width * self._height * self._batch_size, dtype=np.uint16)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_width_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_MultiplyCObj(__pyx_int_3, __pyx_t_1, 3, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_height_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_batch_size_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3)) __PYX_ERR(2, 248, __pyx_L1_error);
  __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_uint8); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(2, 248, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_rgb_arr = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":249
 *     def _read_nocuda(self):
 *         rgb_arr = np.zeros(3 * self._width * self._height * self._batch_size, dtype=np.uint8)
 *         cdef unsigned char[::view.contiguous] rgb_view = rgb_arr             # <<<<<<<<<<<<<<
 *         depth_arr = np.zeros(self._width * self._height * self._batch_size, dtype=np.uint16)
 *         cdef unsigned short[::view.contiguous] depth_view = depth_arr
 */
  __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dc_unsigned_char(__pyx_v_rgb_arr, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(2, 249, __pyx_L1_error)
  __pyx_v_rgb_view = __pyx_t_6;
  __pyx_t_6.memview = NULL;
  __pyx_t_6.data = NULL;

  /* "mujoco_py/mjbatchrenderer.pyx":250
 *         rgb_arr = np.zeros(3 * self._width * self._height * self._batch_size, dtype=np.uint8)
 *         cdef unsigned char[::view.contiguous] rgb_view = rgb_arr
 *         depth_arr = np.zeros(self._width * self._height * self._batch_size, dtype=np.uint16)             # <<<<<<<<<<<<<<
 *         cdef unsigned short[::view.contiguous] depth_view = depth_arr
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_width_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_height_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_batch_size_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5)) __PYX_ERR(2, 250, __pyx_L1_error);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_uint16); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_4) < 0) __PYX_ERR(2, 250, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_depth_arr = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":251
 *         cdef unsigned char[::view.contiguous] rgb_view = rgb_arr
 *         depth_arr = np.zeros(self._width * self._height * self._batch_size, dtype=np.uint16)
 *         cdef unsigned short[::view.contiguous] depth_view = depth_arr             # <<<<<<<<<<<<<<
 * 
 *         if self._depth:
 */
  __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_dc_unsigned_short(__pyx_v_depth_arr, PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(2, 251, __pyx_L1_error)
  __pyx_v_depth_view = __pyx_t_7;
  __pyx_t_7.memview = NULL;
  __pyx_t_7.data = NULL;

  /* "mujoco_py/mjbatchrenderer.pyx":253
 *         cdef unsigned short[::view.contiguous] depth_view = depth_arr
 * 
 *         if self._depth:             # <<<<<<<<<<<<<<
 *             readPBO(&rgb_view[0], &depth_view[0], self.pbo_rgb, self.pbo_depth,
 *                     self._width, self._height, self._batch_size)
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_depth_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 253, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_8) {

    /* "mujoco_py/mjbatchrenderer.pyx":254
 * 
 *         if self._depth:
 *             readPBO(&rgb_view[0], &depth_view[0], self.pbo_rgb, self.pbo_depth,             # <<<<<<<<<<<<<<
 *                     self._width, self._height, self._batch_size)
 *             depth_arr = depth_arr.reshape(self._batch_size, self._height, self._width)
 */
    __pyx_t_9 = 0;
    __pyx_t_10 = -1;
    if (__pyx_t_9 < 0) {
      __pyx_t_9 += __pyx_v_rgb_view.shape[0];
      if (unlikely(__pyx_t_9 < 0)) __pyx_t_10 = 0;
    } else if (unlikely(__pyx_t_9 >= __pyx_v_rgb_view.shape[0])) __pyx_t_10 = 0;
    if (unlikely(__pyx_t_10 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_10);
      __PYX_ERR(2, 254, __pyx_L1_error)
    }
    __pyx_t_11 = 0;
    __pyx_t_10 = -1;
    if (__pyx_t_11 < 0) {
      __pyx_t_11 += __pyx_v_depth_view.shape[0];
      if (unlikely(__pyx_t_11 < 0)) __pyx_t_10 = 0;
    } else if (unlikely(__pyx_t_11 >= __pyx_v_depth_view.shape[0])) __pyx_t_10 = 0;
    if (unlikely(__pyx_t_10 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_10);
      __PYX_ERR(2, 254, __pyx_L1_error)
    }
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pbo_rgb); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_12 = __Pyx_PyInt_As_unsigned_int(__pyx_t_4); if (unlikely((__pyx_t_12 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(2, 254, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pbo_depth); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_13 = __Pyx_PyInt_As_unsigned_int(__pyx_t_4); if (unlikely((__pyx_t_13 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(2, 254, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":255
 *         if self._depth:
 *             readPBO(&rgb_view[0], &depth_view[0], self.pbo_rgb, self.pbo_depth,
 *                     self._width, self._height, self._batch_size)             # <<<<<<<<<<<<<<
 *             depth_arr = depth_arr.reshape(self._batch_size, self._height, self._width)
 *         else:
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_width_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 255, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_height_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_14 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 255, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_batch_size_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 255, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":254
 * 
 *         if self._depth:
 *             readPBO(&rgb_view[0], &depth_view[0], self.pbo_rgb, self.pbo_depth,             # <<<<<<<<<<<<<<
 *                     self._width, self._height, self._batch_size)
 *             depth_arr = depth_arr.reshape(self._batch_size, self._height, self._width)
 */
    readPBO((&(*((unsigned char *) ( /* dim=0 */ ((char *) (((unsigned char *) __pyx_v_rgb_view.data) + __pyx_t_9)) )))), (&(*((unsigned short *) ( /* dim=0 */ ((char *) (((unsigned short *) __pyx_v_depth_view.data) + __pyx_t_11)) )))), __pyx_t_12, __pyx_t_13, __pyx_t_10, __pyx_t_14, __pyx_t_15);

    /* "mujoco_py/mjbatchrenderer.pyx":256
 *             readPBO(&rgb_view[0], &depth_view[0], self.pbo_rgb, self.pbo_depth,
 *                     self._width, self._height, self._batch_size)
 *             depth_arr = depth_arr.reshape(self._batch_size, self._height, self._width)             # <<<<<<<<<<<<<<
 *         else:
 *             readPBO(&rgb_view[0], NULL, self.pbo_rgb, 0,
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_depth_arr, __pyx_n_s_reshape); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 256, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_batch_size_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 256, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_height_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 256, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_width_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 256, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_16 = NULL;
    __pyx_t_15 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_16)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_16);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_15 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_16, __pyx_t_1, __pyx_t_3, __pyx_t_2};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_15, 3+__pyx_t_15);
      __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 256, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF_SET(__pyx_v_depth_arr, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":253
 *         cdef unsigned short[::view.contiguous] depth_view = depth_arr
 * 
 *         if self._depth:             # <<<<<<<<<<<<<<
 *             readPBO(&rgb_view[0], &depth_view[0], self.pbo_rgb, self.pbo_depth,
 *                     self._width, self._height, self._batch_size)
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/mjbatchrenderer.pyx":258
 *             depth_arr = depth_arr.reshape(self._batch_size, self._height, self._width)
 *         else:
 *             readPBO(&rgb_view[0], NULL, self.pbo_rgb, 0,             # <<<<<<<<<<<<<<
 *                     self._width, self._height, self._batch_size)
 *             # Fine to throw aray depth_arr above since malloc/free is cheap
 */
  /*else*/ {
    __pyx_t_11 = 0;
    __pyx_t_15 = -1;
    if (__pyx_t_11 < 0) {
      __pyx_t_11 += __pyx_v_rgb_view.shape[0];
      if (unlikely(__pyx_t_11 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_11 >= __pyx_v_rgb_view.shape[0])) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(2, 258, __pyx_L1_error)
    }
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pbo_rgb); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_13 = __Pyx_PyInt_As_unsigned_int(__pyx_t_4); if (unlikely((__pyx_t_13 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(2, 258, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":259
 *         else:
 *             readPBO(&rgb_view[0], NULL, self.pbo_rgb, 0,
 *                     self._width, self._height, self._batch_size)             # <<<<<<<<<<<<<<
 *             # Fine to throw aray depth_arr above since malloc/free is cheap
 *             depth_arr = None
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_width_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 259, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 259, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_height_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 259, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_14 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 259, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_batch_size_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 259, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 259, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":258
 *             depth_arr = depth_arr.reshape(self._batch_size, self._height, self._width)
 *         else:
 *             readPBO(&rgb_view[0], NULL, self.pbo_rgb, 0,             # <<<<<<<<<<<<<<
 *                     self._width, self._height, self._batch_size)
 *             # Fine to throw aray depth_arr above since malloc/free is cheap
 */
    readPBO((&(*((unsigned char *) ( /* dim=0 */ ((char *) (((unsigned char *) __pyx_v_rgb_view.data) + __pyx_t_11)) )))), NULL, __pyx_t_13, 0, __pyx_t_15, __pyx_t_14, __pyx_t_10);

    /* "mujoco_py/mjbatchrenderer.pyx":261
 *                     self._width, self._height, self._batch_size)
 *             # Fine to throw aray depth_arr above since malloc/free is cheap
 *             depth_arr = None             # <<<<<<<<<<<<<<
 * 
 *         rgb_arr = rgb_arr.reshape(self._batch_size, self._height, self._width, 3)
 */
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_depth_arr, Py_None);
  }
  __pyx_L3:;

  /* "mujoco_py/mjbatchrenderer.pyx":263
 *             depth_arr = None
 * 
 *         rgb_arr = rgb_arr.reshape(self._batch_size, self._height, self._width, 3)             # <<<<<<<<<<<<<<
 *         return rgb_arr, depth_arr
 * 
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_rgb_arr, __pyx_n_s_reshape); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_batch_size_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_height_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_width_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_16 = NULL;
  __pyx_t_10 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_16)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_16);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_10 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_16, __pyx_t_2, __pyx_t_3, __pyx_t_1, __pyx_int_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_10, 4+__pyx_t_10);
    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF_SET(__pyx_v_rgb_arr, __pyx_t_4);
  __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":264
 * 
 *         rgb_arr = rgb_arr.reshape(self._batch_size, self._height, self._width, 3)
 *         return rgb_arr, depth_arr             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_rgb_arr);
  __Pyx_GIVEREF(__pyx_v_rgb_arr);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_rgb_arr)) __PYX_ERR(2, 264, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_depth_arr);
  __Pyx_GIVEREF(__pyx_v_depth_arr);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_depth_arr)) __PYX_ERR(2, 264, __pyx_L1_error);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "mujoco_py/mjbatchrenderer.pyx":247
 *         return rgb_arr, depth_arr
 * 
 *     def _read_nocuda(self):             # <<<<<<<<<<<<<<
 *         rgb_arr = np.zeros(3 * self._width * self._height * self._batch_size, dtype=np.uint8)
 *         cdef unsigned char[::view.contiguous] rgb_view = rgb_arr
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_6, 1);
  __PYX_XCLEAR_MEMVIEW(&__pyx_t_7, 1);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer._read_nocuda", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_rgb_arr);
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_rgb_view, 1);
  __Pyx_XDECREF(__pyx_v_depth_arr);
  __PYX_XCLEAR_MEMVIEW(&__pyx_v_depth_view, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjbatchrenderer.pyx":266
 *         return rgb_arr, depth_arr
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def cuda_rgb_buffer_pointer(self):
 *         """ Pointer to CUDA buffer for RGB batch. """
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_19cuda_rgb_buffer_pointer(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer_18cuda_rgb_buffer_pointer, " Pointer to CUDA buffer for RGB batch. ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_19cuda_rgb_buffer_pointer = {"cuda_rgb_buffer_pointer", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_19cuda_rgb_buffer_pointer, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer_18cuda_rgb_buffer_pointer};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_19cuda_rgb_buffer_pointer(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuda_rgb_buffer_pointer (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 266, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "cuda_rgb_buffer_pointer") < 0)) __PYX_ERR(2, 266, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuda_rgb_buffer_pointer", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 266, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.cuda_rgb_buffer_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_18cuda_rgb_buffer_pointer(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_18cuda_rgb_buffer_pointer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cuda_rgb_buffer_pointer", 1);

  /* "mujoco_py/mjbatchrenderer.pyx":269
 *     def cuda_rgb_buffer_pointer(self):
 *         """ Pointer to CUDA buffer for RGB batch. """
 *         if not self._use_cuda:             # <<<<<<<<<<<<<<
 *             raise CudaNotEnabledError()
 *         elif not self._cuda_buffers_are_mapped:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_use_cuda_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 269, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (unlikely(__pyx_t_3)) {

    /* "mujoco_py/mjbatchrenderer.pyx":270
 *         """ Pointer to CUDA buffer for RGB batch. """
 *         if not self._use_cuda:
 *             raise CudaNotEnabledError()             # <<<<<<<<<<<<<<
 *         elif not self._cuda_buffers_are_mapped:
 *             raise CudaBufferNotMappedError()
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CudaNotEnabledError); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 270, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 270, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(2, 270, __pyx_L1_error)

    /* "mujoco_py/mjbatchrenderer.pyx":269
 *     def cuda_rgb_buffer_pointer(self):
 *         """ Pointer to CUDA buffer for RGB batch. """
 *         if not self._use_cuda:             # <<<<<<<<<<<<<<
 *             raise CudaNotEnabledError()
 *         elif not self._cuda_buffers_are_mapped:
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":271
 *         if not self._use_cuda:
 *             raise CudaNotEnabledError()
 *         elif not self._cuda_buffers_are_mapped:             # <<<<<<<<<<<<<<
 *             raise CudaBufferNotMappedError()
 *         return self._cuda_rgb_ptr
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_buffers_are_mapped); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 271, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = (!__pyx_t_3);
  if (unlikely(__pyx_t_2)) {

    /* "mujoco_py/mjbatchrenderer.pyx":272
 *             raise CudaNotEnabledError()
 *         elif not self._cuda_buffers_are_mapped:
 *             raise CudaBufferNotMappedError()             # <<<<<<<<<<<<<<
 *         return self._cuda_rgb_ptr
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CudaBufferNotMappedError); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 272, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 272, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(2, 272, __pyx_L1_error)

    /* "mujoco_py/mjbatchrenderer.pyx":271
 *         if not self._use_cuda:
 *             raise CudaNotEnabledError()
 *         elif not self._cuda_buffers_are_mapped:             # <<<<<<<<<<<<<<
 *             raise CudaBufferNotMappedError()
 *         return self._cuda_rgb_ptr
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":273
 *         elif not self._cuda_buffers_are_mapped:
 *             raise CudaBufferNotMappedError()
 *         return self._cuda_rgb_ptr             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_ptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/mjbatchrenderer.pyx":266
 *         return rgb_arr, depth_arr
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def cuda_rgb_buffer_pointer(self):
 *         """ Pointer to CUDA buffer for RGB batch. """
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.cuda_rgb_buffer_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjbatchrenderer.pyx":275
 *         return self._cuda_rgb_ptr
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def cuda_depth_buffer_pointer(self):
 *         """ Pointer to CUDA buffer for depth batch. """
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_21cuda_depth_buffer_pointer(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer_20cuda_depth_buffer_pointer, " Pointer to CUDA buffer for depth batch. ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_21cuda_depth_buffer_pointer = {"cuda_depth_buffer_pointer", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_21cuda_depth_buffer_pointer, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjBatchRenderer_20cuda_depth_buffer_pointer};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_21cuda_depth_buffer_pointer(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cuda_depth_buffer_pointer (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 275, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "cuda_depth_buffer_pointer") < 0)) __PYX_ERR(2, 275, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cuda_depth_buffer_pointer", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 275, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.cuda_depth_buffer_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_20cuda_depth_buffer_pointer(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_20cuda_depth_buffer_pointer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cuda_depth_buffer_pointer", 1);

  /* "mujoco_py/mjbatchrenderer.pyx":278
 *     def cuda_depth_buffer_pointer(self):
 *         """ Pointer to CUDA buffer for depth batch. """
 *         if not self._use_cuda:             # <<<<<<<<<<<<<<
 *             raise CudaNotEnabledError()
 *         elif not self._cuda_buffers_are_mapped:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_use_cuda_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 278, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (unlikely(__pyx_t_3)) {

    /* "mujoco_py/mjbatchrenderer.pyx":279
 *         """ Pointer to CUDA buffer for depth batch. """
 *         if not self._use_cuda:
 *             raise CudaNotEnabledError()             # <<<<<<<<<<<<<<
 *         elif not self._cuda_buffers_are_mapped:
 *             raise CudaBufferNotMappedError()
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CudaNotEnabledError); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(2, 279, __pyx_L1_error)

    /* "mujoco_py/mjbatchrenderer.pyx":278
 *     def cuda_depth_buffer_pointer(self):
 *         """ Pointer to CUDA buffer for depth batch. """
 *         if not self._use_cuda:             # <<<<<<<<<<<<<<
 *             raise CudaNotEnabledError()
 *         elif not self._cuda_buffers_are_mapped:
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":280
 *         if not self._use_cuda:
 *             raise CudaNotEnabledError()
 *         elif not self._cuda_buffers_are_mapped:             # <<<<<<<<<<<<<<
 *             raise CudaBufferNotMappedError()
 *         if not self._depth:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_buffers_are_mapped); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = (!__pyx_t_3);
  if (unlikely(__pyx_t_2)) {

    /* "mujoco_py/mjbatchrenderer.pyx":281
 *             raise CudaNotEnabledError()
 *         elif not self._cuda_buffers_are_mapped:
 *             raise CudaBufferNotMappedError()             # <<<<<<<<<<<<<<
 *         if not self._depth:
 *             raise RuntimeError("Depth not enabled. Use depth=True on initialization.")
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CudaBufferNotMappedError); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 281, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 281, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(2, 281, __pyx_L1_error)

    /* "mujoco_py/mjbatchrenderer.pyx":280
 *         if not self._use_cuda:
 *             raise CudaNotEnabledError()
 *         elif not self._cuda_buffers_are_mapped:             # <<<<<<<<<<<<<<
 *             raise CudaBufferNotMappedError()
 *         if not self._depth:
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":282
 *         elif not self._cuda_buffers_are_mapped:
 *             raise CudaBufferNotMappedError()
 *         if not self._depth:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("Depth not enabled. Use depth=True on initialization.")
 *         return self._cuda_depth_ptr
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_depth_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (unlikely(__pyx_t_3)) {

    /* "mujoco_py/mjbatchrenderer.pyx":283
 *             raise CudaBufferNotMappedError()
 *         if not self._depth:
 *             raise RuntimeError("Depth not enabled. Use depth=True on initialization.")             # <<<<<<<<<<<<<<
 *         return self._cuda_depth_ptr
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__55, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 283, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(2, 283, __pyx_L1_error)

    /* "mujoco_py/mjbatchrenderer.pyx":282
 *         elif not self._cuda_buffers_are_mapped:
 *             raise CudaBufferNotMappedError()
 *         if not self._depth:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("Depth not enabled. Use depth=True on initialization.")
 *         return self._cuda_depth_ptr
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":284
 *         if not self._depth:
 *             raise RuntimeError("Depth not enabled. Use depth=True on initialization.")
 *         return self._cuda_depth_ptr             # <<<<<<<<<<<<<<
 * 
 *     def __del__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_ptr); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "mujoco_py/mjbatchrenderer.pyx":275
 *         return self._cuda_rgb_ptr
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def cuda_depth_buffer_pointer(self):
 *         """ Pointer to CUDA buffer for depth batch. """
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.cuda_depth_buffer_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjbatchrenderer.pyx":286
 *         return self._cuda_depth_ptr
 * 
 *     def __del__(self):             # <<<<<<<<<<<<<<
 *         if self._use_cuda:
 *             self._cuda_context.push()
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_23__del__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_23__del__ = {"__del__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_23__del__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_15MjBatchRenderer_23__del__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 286, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__del__") < 0)) __PYX_ERR(2, 286, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__del__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 286, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_22__del__(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_15MjBatchRenderer_22__del__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  unsigned int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__del__", 1);

  /* "mujoco_py/mjbatchrenderer.pyx":287
 * 
 *     def __del__(self):
 *         if self._use_cuda:             # <<<<<<<<<<<<<<
 *             self._cuda_context.push()
 *             self.unmap()
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_use_cuda_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 287, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "mujoco_py/mjbatchrenderer.pyx":288
 *     def __del__(self):
 *         if self._use_cuda:
 *             self._cuda_context.push()             # <<<<<<<<<<<<<<
 *             self.unmap()
 *             self._cuda_rgb_pbo.unregister()
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 288, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_push); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 288, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 288, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":289
 *         if self._use_cuda:
 *             self._cuda_context.push()
 *             self.unmap()             # <<<<<<<<<<<<<<
 *             self._cuda_rgb_pbo.unregister()
 *             if self._depth:
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_unmap); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 289, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":290
 *             self._cuda_context.push()
 *             self.unmap()
 *             self._cuda_rgb_pbo.unregister()             # <<<<<<<<<<<<<<
 *             if self._depth:
 *                 self._cuda_depth_pbo.unregister()
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_rgb_pbo); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 290, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_unregister); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 290, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 290, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":291
 *             self.unmap()
 *             self._cuda_rgb_pbo.unregister()
 *             if self._depth:             # <<<<<<<<<<<<<<
 *                 self._cuda_depth_pbo.unregister()
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_depth_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 291, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 291, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_2) {

      /* "mujoco_py/mjbatchrenderer.pyx":292
 *             self._cuda_rgb_pbo.unregister()
 *             if self._depth:
 *                 self._cuda_depth_pbo.unregister()             # <<<<<<<<<<<<<<
 * 
 *             # Clean up context
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_depth_pbo); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 292, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_unregister); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 292, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = NULL;
      __pyx_t_5 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
          __pyx_t_5 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 292, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "mujoco_py/mjbatchrenderer.pyx":291
 *             self.unmap()
 *             self._cuda_rgb_pbo.unregister()
 *             if self._depth:             # <<<<<<<<<<<<<<
 *                 self._cuda_depth_pbo.unregister()
 * 
 */
    }

    /* "mujoco_py/mjbatchrenderer.pyx":295
 * 
 *             # Clean up context
 *             drv.Context.pop()             # <<<<<<<<<<<<<<
 *             self._cuda_context.detach()
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_drv); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 295, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Context); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 295, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Pop(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 295, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":296
 *             # Clean up context
 *             drv.Context.pop()
 *             self._cuda_context.detach()             # <<<<<<<<<<<<<<
 * 
 *         if self.pbo_depth:
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cuda_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_detach); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 296, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":287
 * 
 *     def __del__(self):
 *         if self._use_cuda:             # <<<<<<<<<<<<<<
 *             self._cuda_context.push()
 *             self.unmap()
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":298
 *             self._cuda_context.detach()
 * 
 *         if self.pbo_depth:             # <<<<<<<<<<<<<<
 *             freePBO(self.pbo_rgb)
 *         if self.pbo_depth:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pbo_depth); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 298, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "mujoco_py/mjbatchrenderer.pyx":299
 * 
 *         if self.pbo_depth:
 *             freePBO(self.pbo_rgb)             # <<<<<<<<<<<<<<
 *         if self.pbo_depth:
 *             freePBO(self.pbo_depth)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pbo_rgb); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyInt_As_unsigned_int(__pyx_t_1); if (unlikely((__pyx_t_6 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(2, 299, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    freePBO(__pyx_t_6);

    /* "mujoco_py/mjbatchrenderer.pyx":298
 *             self._cuda_context.detach()
 * 
 *         if self.pbo_depth:             # <<<<<<<<<<<<<<
 *             freePBO(self.pbo_rgb)
 *         if self.pbo_depth:
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":300
 *         if self.pbo_depth:
 *             freePBO(self.pbo_rgb)
 *         if self.pbo_depth:             # <<<<<<<<<<<<<<
 *             freePBO(self.pbo_depth)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pbo_depth); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 300, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "mujoco_py/mjbatchrenderer.pyx":301
 *             freePBO(self.pbo_rgb)
 *         if self.pbo_depth:
 *             freePBO(self.pbo_depth)             # <<<<<<<<<<<<<<
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pbo_depth); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyInt_As_unsigned_int(__pyx_t_1); if (unlikely((__pyx_t_6 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(2, 301, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    freePBO(__pyx_t_6);

    /* "mujoco_py/mjbatchrenderer.pyx":300
 *         if self.pbo_depth:
 *             freePBO(self.pbo_rgb)
 *         if self.pbo_depth:             # <<<<<<<<<<<<<<
 *             freePBO(self.pbo_depth)
 */
  }

  /* "mujoco_py/mjbatchrenderer.pyx":286
 *         return self._cuda_depth_ptr
 * 
 *     def __del__(self):             # <<<<<<<<<<<<<<
 *         if self._use_cuda:
 *             self._cuda_context.push()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("mujoco_py.cymj.MjBatchRenderer.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjpid.pyx":27
 *     PIDErrors previous_errors
 * 
 * cdef mjtNum c_zero_gains(const mjModel*m, const mjData*d, int id) with gil:             # <<<<<<<<<<<<<<
 *     return 0.0
 * 
 */

static mjtNum __pyx_f_9mujoco_py_4cymj_c_zero_gains(CYTHON_UNUSED mjModel const *__pyx_v_m, CYTHON_UNUSED mjData const *__pyx_v_d, CYTHON_UNUSED int __pyx_v_id) {
  mjtNum __pyx_r;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif

  /* "mujoco_py/mjpid.pyx":28
 * 
 * cdef mjtNum c_zero_gains(const mjModel*m, const mjData*d, int id) with gil:
 *     return 0.0             # <<<<<<<<<<<<<<
 * 
 * cdef PIDOutput _pid(PIDParameters parameters):
 */
  __pyx_r = 0.0;
  goto __pyx_L0;

  /* "mujoco_py/mjpid.pyx":27
 *     PIDErrors previous_errors
 * 
 * cdef mjtNum c_zero_gains(const mjModel*m, const mjData*d, int id) with gil:             # <<<<<<<<<<<<<<
 *     return 0.0
 * 
 */

  /* function exit code */
  __pyx_L0:;
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  return __pyx_r;
}

/* "mujoco_py/mjpid.pyx":30
 *     return 0.0
 * 
 * cdef PIDOutput _pid(PIDParameters parameters):             # <<<<<<<<<<<<<<
 *     """
 *     A general purpose PID controller implemented in the standard form.
 */

static struct __pyx_t_9mujoco_py_4cymj_PIDOutput __pyx_f_9mujoco_py_4cymj__pid(struct __pyx_t_9mujoco_py_4cymj_PIDParameters __pyx_v_parameters) {
  double __pyx_v_error;
  double __pyx_v_derivative_error;
  double __pyx_v_derivative_error_term;
  double __pyx_v_integral_error;
  double __pyx_v_integral_error_term;
  double __pyx_v_f;
  struct __pyx_t_9mujoco_py_4cymj_PIDOutput __pyx_r;
  int __pyx_t_1;
  double __pyx_t_2;
  struct __pyx_t_9mujoco_py_4cymj_PIDOutput __pyx_t_3;
  struct __pyx_t_9mujoco_py_4cymj_PIDErrors __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "mujoco_py/mjpid.pyx":49
 *     """
 * 
 *     cdef double error = parameters.setpoint - parameters.feedback             # <<<<<<<<<<<<<<
 * 
 *     # Clamp error that's within the error deadband
 */
  __pyx_v_error = (__pyx_v_parameters.setpoint - __pyx_v_parameters.feedback);

  /* "mujoco_py/mjpid.pyx":52
 * 
 *     # Clamp error that's within the error deadband
 *     if fabs(error) < parameters.error_deadband:             # <<<<<<<<<<<<<<
 *         error = 0.0
 * 
 */
  __pyx_t_1 = (fabs(__pyx_v_error) < __pyx_v_parameters.error_deadband);
  if (__pyx_t_1) {

    /* "mujoco_py/mjpid.pyx":53
 *     # Clamp error that's within the error deadband
 *     if fabs(error) < parameters.error_deadband:
 *         error = 0.0             # <<<<<<<<<<<<<<
 * 
 *     # Compute derivative error
 */
    __pyx_v_error = 0.0;

    /* "mujoco_py/mjpid.pyx":52
 * 
 *     # Clamp error that's within the error deadband
 *     if fabs(error) < parameters.error_deadband:             # <<<<<<<<<<<<<<
 *         error = 0.0
 * 
 */
  }

  /* "mujoco_py/mjpid.pyx":56
 * 
 *     # Compute derivative error
 *     cdef double derivative_error = (error - parameters.previous_errors.error) / parameters.dt_seconds             # <<<<<<<<<<<<<<
 * 
 *     derivative_error = (1.0 - parameters.derivative_gain_smoothing) * parameters.previous_errors.derivative_error + \
 */
  __pyx_t_2 = (__pyx_v_error - __pyx_v_parameters.previous_errors.error);
  if (unlikely(__pyx_v_parameters.dt_seconds == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(9, 56, __pyx_L1_error)
  }
  __pyx_v_derivative_error = (__pyx_t_2 / __pyx_v_parameters.dt_seconds);

  /* "mujoco_py/mjpid.pyx":58
 *     cdef double derivative_error = (error - parameters.previous_errors.error) / parameters.dt_seconds
 * 
 *     derivative_error = (1.0 - parameters.derivative_gain_smoothing) * parameters.previous_errors.derivative_error + \             # <<<<<<<<<<<<<<
 *                        parameters.derivative_gain_smoothing * derivative_error
 * 
 */
  __pyx_v_derivative_error = (((1.0 - __pyx_v_parameters.derivative_gain_smoothing) * __pyx_v_parameters.previous_errors.derivative_error) + (__pyx_v_parameters.derivative_gain_smoothing * __pyx_v_derivative_error));

  /* "mujoco_py/mjpid.pyx":61
 *                        parameters.derivative_gain_smoothing * derivative_error
 * 
 *     cdef double derivative_error_term = derivative_error * parameters.derivative_time_const             # <<<<<<<<<<<<<<
 * 
 *     # Update and clamp integral error
 */
  __pyx_v_derivative_error_term = (__pyx_v_derivative_error * __pyx_v_parameters.derivative_time_const);

  /* "mujoco_py/mjpid.pyx":64
 * 
 *     # Update and clamp integral error
 *     integral_error = parameters.previous_errors.integral_error             # <<<<<<<<<<<<<<
 *     integral_error += error * parameters.dt_seconds
 *     integral_error = fmax(-parameters.integral_max_clamp, fmin(parameters.integral_max_clamp, integral_error))
 */
  __pyx_t_2 = __pyx_v_parameters.previous_errors.integral_error;
  __pyx_v_integral_error = __pyx_t_2;

  /* "mujoco_py/mjpid.pyx":65
 *     # Update and clamp integral error
 *     integral_error = parameters.previous_errors.integral_error
 *     integral_error += error * parameters.dt_seconds             # <<<<<<<<<<<<<<
 *     integral_error = fmax(-parameters.integral_max_clamp, fmin(parameters.integral_max_clamp, integral_error))
 * 
 */
  __pyx_v_integral_error = (__pyx_v_integral_error + (__pyx_v_error * __pyx_v_parameters.dt_seconds));

  /* "mujoco_py/mjpid.pyx":66
 *     integral_error = parameters.previous_errors.integral_error
 *     integral_error += error * parameters.dt_seconds
 *     integral_error = fmax(-parameters.integral_max_clamp, fmin(parameters.integral_max_clamp, integral_error))             # <<<<<<<<<<<<<<
 * 
 *     cdef double integral_error_term = 0.0
 */
  __pyx_v_integral_error = fmax((-__pyx_v_parameters.integral_max_clamp), fmin(__pyx_v_parameters.integral_max_clamp, __pyx_v_integral_error));

  /* "mujoco_py/mjpid.pyx":68
 *     integral_error = fmax(-parameters.integral_max_clamp, fmin(parameters.integral_max_clamp, integral_error))
 * 
 *     cdef double integral_error_term = 0.0             # <<<<<<<<<<<<<<
 *     if parameters.integral_time_const != 0:
 *         integral_error_term = integral_error / parameters.integral_time_const
 */
  __pyx_v_integral_error_term = 0.0;

  /* "mujoco_py/mjpid.pyx":69
 * 
 *     cdef double integral_error_term = 0.0
 *     if parameters.integral_time_const != 0:             # <<<<<<<<<<<<<<
 *         integral_error_term = integral_error / parameters.integral_time_const
 * 
 */
  __pyx_t_1 = (__pyx_v_parameters.integral_time_const != 0.0);
  if (__pyx_t_1) {

    /* "mujoco_py/mjpid.pyx":70
 *     cdef double integral_error_term = 0.0
 *     if parameters.integral_time_const != 0:
 *         integral_error_term = integral_error / parameters.integral_time_const             # <<<<<<<<<<<<<<
 * 
 *     f = parameters.Kp * (error + integral_error_term + derivative_error_term)
 */
    if (unlikely(__pyx_v_parameters.integral_time_const == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      __PYX_ERR(9, 70, __pyx_L1_error)
    }
    __pyx_v_integral_error_term = (__pyx_v_integral_error / __pyx_v_parameters.integral_time_const);

    /* "mujoco_py/mjpid.pyx":69
 * 
 *     cdef double integral_error_term = 0.0
 *     if parameters.integral_time_const != 0:             # <<<<<<<<<<<<<<
 *         integral_error_term = integral_error / parameters.integral_time_const
 * 
 */
  }

  /* "mujoco_py/mjpid.pyx":72
 *         integral_error_term = integral_error / parameters.integral_time_const
 * 
 *     f = parameters.Kp * (error + integral_error_term + derivative_error_term)             # <<<<<<<<<<<<<<
 * 
 *     return PIDOutput(output=f, errors=PIDErrors(error=error, derivative_error=derivative_error, integral_error=integral_error))
 */
  __pyx_v_f = (__pyx_v_parameters.Kp * ((__pyx_v_error + __pyx_v_integral_error_term) + __pyx_v_derivative_error_term));

  /* "mujoco_py/mjpid.pyx":74
 *     f = parameters.Kp * (error + integral_error_term + derivative_error_term)
 * 
 *     return PIDOutput(output=f, errors=PIDErrors(error=error, derivative_error=derivative_error, integral_error=integral_error))             # <<<<<<<<<<<<<<
 * 
 * cdef enum USER_DEFINED_ACTUATOR_PARAMS:
 */
  __pyx_t_3.output = __pyx_v_f;
  __pyx_t_4.error = __pyx_v_error;
  __pyx_t_4.derivative_error = __pyx_v_derivative_error;
  __pyx_t_4.integral_error = __pyx_v_integral_error;
  __pyx_t_3.errors = __pyx_t_4;
  __pyx_r = __pyx_t_3;
  goto __pyx_L0;

  /* "mujoco_py/mjpid.pyx":30
 *     return 0.0
 * 
 * cdef PIDOutput _pid(PIDParameters parameters):             # <<<<<<<<<<<<<<
 *     """
 *     A general purpose PID controller implemented in the standard form.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("mujoco_py.cymj._pid", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  return __pyx_r;
}

/* "mujoco_py/mjpid.pyx":90
 *     NUM_USER_DATA_PER_ACT_PID = 3,
 * 
 * cdef mjtNum c_pid_bias(const mjModel*m, const mjData*d, int id):             # <<<<<<<<<<<<<<
 *     """
 *     To activate PID, set gainprm="Kp Ti Td iClamp errBand iSmooth" in a general type actuator in mujoco xml
 */

static mjtNum __pyx_f_9mujoco_py_4cymj_c_pid_bias(mjModel const *__pyx_v_m, mjData const *__pyx_v_d, int __pyx_v_id) {
  double __pyx_v_dt_in_sec;
  int __pyx_v_NGAIN;
  struct __pyx_t_9mujoco_py_4cymj_PIDOutput __pyx_v_result;
  double __pyx_v_f;
  double __pyx_v_effort_limit_low;
  double __pyx_v_effort_limit_high;
  mjtNum __pyx_r;
  __Pyx_RefNannyDeclarations
  mjtNum __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  struct __pyx_t_9mujoco_py_4cymj_PIDParameters __pyx_t_5;
  struct __pyx_t_9mujoco_py_4cymj_PIDErrors __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  Py_ssize_t __pyx_t_8;
  double __pyx_t_9;
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c_pid_bias", 1);

  /* "mujoco_py/mjpid.pyx":94
 *     To activate PID, set gainprm="Kp Ti Td iClamp errBand iSmooth" in a general type actuator in mujoco xml
 *     """
 *     cdef double dt_in_sec = m.opt.timestep             # <<<<<<<<<<<<<<
 *     cdef int NGAIN = int(const.NGAIN)
 * 
 */
  __pyx_t_1 = __pyx_v_m->opt.timestep;
  __pyx_v_dt_in_sec = __pyx_t_1;

  /* "mujoco_py/mjpid.pyx":95
 *     """
 *     cdef double dt_in_sec = m.opt.timestep
 *     cdef int NGAIN = int(const.NGAIN)             # <<<<<<<<<<<<<<
 * 
 *     result = _pid(parameters=PIDParameters(
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_const); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_NGAIN); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(9, 95, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_NGAIN = __pyx_t_4;

  /* "mujoco_py/mjpid.pyx":98
 * 
 *     result = _pid(parameters=PIDParameters(
 *         dt_seconds=dt_in_sec,             # <<<<<<<<<<<<<<
 *         setpoint=d.ctrl[id],
 *         feedback=d.actuator_length[id],
 */
  __pyx_t_5.dt_seconds = __pyx_v_dt_in_sec;

  /* "mujoco_py/mjpid.pyx":99
 *     result = _pid(parameters=PIDParameters(
 *         dt_seconds=dt_in_sec,
 *         setpoint=d.ctrl[id],             # <<<<<<<<<<<<<<
 *         feedback=d.actuator_length[id],
 *         Kp=m.actuator_gainprm[id * NGAIN + IDX_PROPORTIONAL_GAIN],
 */
  __pyx_t_5.setpoint = (__pyx_v_d->ctrl[__pyx_v_id]);

  /* "mujoco_py/mjpid.pyx":100
 *         dt_seconds=dt_in_sec,
 *         setpoint=d.ctrl[id],
 *         feedback=d.actuator_length[id],             # <<<<<<<<<<<<<<
 *         Kp=m.actuator_gainprm[id * NGAIN + IDX_PROPORTIONAL_GAIN],
 *         error_deadband=m.actuator_gainprm[id * NGAIN + IDX_ERROR_DEADBAND],
 */
  __pyx_t_5.feedback = (__pyx_v_d->actuator_length[__pyx_v_id]);

  /* "mujoco_py/mjpid.pyx":101
 *         setpoint=d.ctrl[id],
 *         feedback=d.actuator_length[id],
 *         Kp=m.actuator_gainprm[id * NGAIN + IDX_PROPORTIONAL_GAIN],             # <<<<<<<<<<<<<<
 *         error_deadband=m.actuator_gainprm[id * NGAIN + IDX_ERROR_DEADBAND],
 *         integral_max_clamp=m.actuator_gainprm[id * NGAIN + IDX_INTEGRAL_MAX_CLAMP],
 */
  __pyx_t_5.Kp = (__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_PROPORTIONAL_GAIN)]);

  /* "mujoco_py/mjpid.pyx":102
 *         feedback=d.actuator_length[id],
 *         Kp=m.actuator_gainprm[id * NGAIN + IDX_PROPORTIONAL_GAIN],
 *         error_deadband=m.actuator_gainprm[id * NGAIN + IDX_ERROR_DEADBAND],             # <<<<<<<<<<<<<<
 *         integral_max_clamp=m.actuator_gainprm[id * NGAIN + IDX_INTEGRAL_MAX_CLAMP],
 *         integral_time_const=m.actuator_gainprm[id * NGAIN + IDX_INTEGRAL_TIME_CONSTANT],
 */
  __pyx_t_5.error_deadband = (__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_ERROR_DEADBAND)]);

  /* "mujoco_py/mjpid.pyx":103
 *         Kp=m.actuator_gainprm[id * NGAIN + IDX_PROPORTIONAL_GAIN],
 *         error_deadband=m.actuator_gainprm[id * NGAIN + IDX_ERROR_DEADBAND],
 *         integral_max_clamp=m.actuator_gainprm[id * NGAIN + IDX_INTEGRAL_MAX_CLAMP],             # <<<<<<<<<<<<<<
 *         integral_time_const=m.actuator_gainprm[id * NGAIN + IDX_INTEGRAL_TIME_CONSTANT],
 *         derivative_gain_smoothing=m.actuator_gainprm[id * NGAIN + IDX_DERIVATIVE_GAIN_SMOOTHING],
 */
  __pyx_t_5.integral_max_clamp = (__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_INTEGRAL_MAX_CLAMP)]);

  /* "mujoco_py/mjpid.pyx":104
 *         error_deadband=m.actuator_gainprm[id * NGAIN + IDX_ERROR_DEADBAND],
 *         integral_max_clamp=m.actuator_gainprm[id * NGAIN + IDX_INTEGRAL_MAX_CLAMP],
 *         integral_time_const=m.actuator_gainprm[id * NGAIN + IDX_INTEGRAL_TIME_CONSTANT],             # <<<<<<<<<<<<<<
 *         derivative_gain_smoothing=m.actuator_gainprm[id * NGAIN + IDX_DERIVATIVE_GAIN_SMOOTHING],
 *         derivative_time_const=m.actuator_gainprm[id * NGAIN + IDX_DERIVATIVE_TIME_CONSTANT],
 */
  __pyx_t_5.integral_time_const = (__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_INTEGRAL_TIME_CONSTANT)]);

  /* "mujoco_py/mjpid.pyx":105
 *         integral_max_clamp=m.actuator_gainprm[id * NGAIN + IDX_INTEGRAL_MAX_CLAMP],
 *         integral_time_const=m.actuator_gainprm[id * NGAIN + IDX_INTEGRAL_TIME_CONSTANT],
 *         derivative_gain_smoothing=m.actuator_gainprm[id * NGAIN + IDX_DERIVATIVE_GAIN_SMOOTHING],             # <<<<<<<<<<<<<<
 *         derivative_time_const=m.actuator_gainprm[id * NGAIN + IDX_DERIVATIVE_TIME_CONSTANT],
 *         previous_errors=PIDErrors(
 */
  __pyx_t_5.derivative_gain_smoothing = (__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_DERIVATIVE_GAIN_SMOOTHING)]);

  /* "mujoco_py/mjpid.pyx":106
 *         integral_time_const=m.actuator_gainprm[id * NGAIN + IDX_INTEGRAL_TIME_CONSTANT],
 *         derivative_gain_smoothing=m.actuator_gainprm[id * NGAIN + IDX_DERIVATIVE_GAIN_SMOOTHING],
 *         derivative_time_const=m.actuator_gainprm[id * NGAIN + IDX_DERIVATIVE_TIME_CONSTANT],             # <<<<<<<<<<<<<<
 *         previous_errors=PIDErrors(
 *             error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_ERROR],
 */
  __pyx_t_5.derivative_time_const = (__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_DERIVATIVE_TIME_CONSTANT)]);

  /* "mujoco_py/mjpid.pyx":108
 *         derivative_time_const=m.actuator_gainprm[id * NGAIN + IDX_DERIVATIVE_TIME_CONSTANT],
 *         previous_errors=PIDErrors(
 *             error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_ERROR],             # <<<<<<<<<<<<<<
 *             derivative_error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_DERIVATIVE_ERROR],
 *             integral_error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_INTEGRAL_ERROR],
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID(__pyx_e_9mujoco_py_4cymj_IDX_ERROR); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = PyNumber_Add(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_7); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_6.error = (__pyx_v_d->userdata[__pyx_t_8]);

  /* "mujoco_py/mjpid.pyx":109
 *         previous_errors=PIDErrors(
 *             error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_ERROR],
 *             derivative_error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_DERIVATIVE_ERROR],             # <<<<<<<<<<<<<<
 *             integral_error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_INTEGRAL_ERROR],
 *         )))
 */
  __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_7, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID(__pyx_e_9mujoco_py_4cymj_IDX_DERIVATIVE_ERROR); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6.derivative_error = (__pyx_v_d->userdata[__pyx_t_8]);

  /* "mujoco_py/mjpid.pyx":110
 *             error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_ERROR],
 *             derivative_error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_DERIVATIVE_ERROR],
 *             integral_error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_INTEGRAL_ERROR],             # <<<<<<<<<<<<<<
 *         )))
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = PyNumber_Multiply(__pyx_t_3, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID(__pyx_e_9mujoco_py_4cymj_IDX_INTEGRAL_ERROR); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyNumber_Add(__pyx_t_7, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 110, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6.integral_error = (__pyx_v_d->userdata[__pyx_t_8]);
  __pyx_t_5.previous_errors = __pyx_t_6;

  /* "mujoco_py/mjpid.pyx":97
 *     cdef int NGAIN = int(const.NGAIN)
 * 
 *     result = _pid(parameters=PIDParameters(             # <<<<<<<<<<<<<<
 *         dt_seconds=dt_in_sec,
 *         setpoint=d.ctrl[id],
 */
  __pyx_v_result = __pyx_f_9mujoco_py_4cymj__pid(__pyx_t_5);

  /* "mujoco_py/mjpid.pyx":113
 *         )))
 * 
 *     d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_ERROR] = result.errors.error             # <<<<<<<<<<<<<<
 *     d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_DERIVATIVE_ERROR] = result.errors.derivative_error
 *     d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_INTEGRAL_ERROR] = result.errors.integral_error
 */
  __pyx_t_9 = __pyx_v_result.errors.error;
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID(__pyx_e_9mujoco_py_4cymj_IDX_ERROR); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = PyNumber_Add(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_7); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  (__pyx_v_d->userdata[__pyx_t_8]) = __pyx_t_9;

  /* "mujoco_py/mjpid.pyx":114
 * 
 *     d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_ERROR] = result.errors.error
 *     d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_DERIVATIVE_ERROR] = result.errors.derivative_error             # <<<<<<<<<<<<<<
 *     d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_INTEGRAL_ERROR] = result.errors.integral_error
 * 
 */
  __pyx_t_9 = __pyx_v_result.errors.derivative_error;
  __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_7, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID(__pyx_e_9mujoco_py_4cymj_IDX_DERIVATIVE_ERROR); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  (__pyx_v_d->userdata[__pyx_t_8]) = __pyx_t_9;

  /* "mujoco_py/mjpid.pyx":115
 *     d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_ERROR] = result.errors.error
 *     d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_DERIVATIVE_ERROR] = result.errors.derivative_error
 *     d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_INTEGRAL_ERROR] = result.errors.integral_error             # <<<<<<<<<<<<<<
 * 
 *     f = result.output
 */
  __pyx_t_9 = __pyx_v_result.errors.integral_error;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = PyNumber_Multiply(__pyx_t_3, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID(__pyx_e_9mujoco_py_4cymj_IDX_INTEGRAL_ERROR); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyNumber_Add(__pyx_t_7, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 115, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  (__pyx_v_d->userdata[__pyx_t_8]) = __pyx_t_9;

  /* "mujoco_py/mjpid.pyx":117
 *     d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_INTEGRAL_ERROR] = result.errors.integral_error
 * 
 *     f = result.output             # <<<<<<<<<<<<<<
 * 
 *     cdef double effort_limit_low = m.actuator_forcerange[id * 2]
 */
  __pyx_t_9 = __pyx_v_result.output;
  __pyx_v_f = __pyx_t_9;

  /* "mujoco_py/mjpid.pyx":119
 *     f = result.output
 * 
 *     cdef double effort_limit_low = m.actuator_forcerange[id * 2]             # <<<<<<<<<<<<<<
 *     cdef double effort_limit_high = m.actuator_forcerange[id * 2 + 1]
 * 
 */
  __pyx_v_effort_limit_low = (__pyx_v_m->actuator_forcerange[(__pyx_v_id * 2)]);

  /* "mujoco_py/mjpid.pyx":120
 * 
 *     cdef double effort_limit_low = m.actuator_forcerange[id * 2]
 *     cdef double effort_limit_high = m.actuator_forcerange[id * 2 + 1]             # <<<<<<<<<<<<<<
 * 
 *     if effort_limit_low != 0.0 or effort_limit_high != 0.0:
 */
  __pyx_v_effort_limit_high = (__pyx_v_m->actuator_forcerange[((__pyx_v_id * 2) + 1)]);

  /* "mujoco_py/mjpid.pyx":122
 *     cdef double effort_limit_high = m.actuator_forcerange[id * 2 + 1]
 * 
 *     if effort_limit_low != 0.0 or effort_limit_high != 0.0:             # <<<<<<<<<<<<<<
 *         f = fmax(effort_limit_low, fmin(effort_limit_high, f))
 *     return f
 */
  __pyx_t_11 = (__pyx_v_effort_limit_low != 0.0);
  if (!__pyx_t_11) {
  } else {
    __pyx_t_10 = __pyx_t_11;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_11 = (__pyx_v_effort_limit_high != 0.0);
  __pyx_t_10 = __pyx_t_11;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_10) {

    /* "mujoco_py/mjpid.pyx":123
 * 
 *     if effort_limit_low != 0.0 or effort_limit_high != 0.0:
 *         f = fmax(effort_limit_low, fmin(effort_limit_high, f))             # <<<<<<<<<<<<<<
 *     return f
 * 
 */
    __pyx_v_f = fmax(__pyx_v_effort_limit_low, fmin(__pyx_v_effort_limit_high, __pyx_v_f));

    /* "mujoco_py/mjpid.pyx":122
 *     cdef double effort_limit_high = m.actuator_forcerange[id * 2 + 1]
 * 
 *     if effort_limit_low != 0.0 or effort_limit_high != 0.0:             # <<<<<<<<<<<<<<
 *         f = fmax(effort_limit_low, fmin(effort_limit_high, f))
 *     return f
 */
  }

  /* "mujoco_py/mjpid.pyx":124
 *     if effort_limit_low != 0.0 or effort_limit_high != 0.0:
 *         f = fmax(effort_limit_low, fmin(effort_limit_high, f))
 *     return f             # <<<<<<<<<<<<<<
 * 
 * cdef enum USER_DEFINED_ACTUATOR_PARAMS_CASCADE:
 */
  __pyx_r = __pyx_v_f;
  goto __pyx_L0;

  /* "mujoco_py/mjpid.pyx":90
 *     NUM_USER_DATA_PER_ACT_PID = 3,
 * 
 * cdef mjtNum c_pid_bias(const mjModel*m, const mjData*d, int id):             # <<<<<<<<<<<<<<
 *     """
 *     To activate PID, set gainprm="Kp Ti Td iClamp errBand iSmooth" in a general type actuator in mujoco xml
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_WriteUnraisable("mujoco_py.cymj.c_pid_bias", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjpid.pyx":148
 * cdef NUM_USER_DATA_PER_ACT = max(int(NUM_USER_DATA_PER_ACT_PID), int(NUM_USER_DATA_PER_ACT_CAS))
 * 
 * cdef mjtNum c_pi_cascade_bias(const mjModel*m, const mjData*d, int id):             # <<<<<<<<<<<<<<
 *     """
 *     A cascaded PID-PI controller implementation that can control position
 */

static mjtNum __pyx_f_9mujoco_py_4cymj_c_pi_cascade_bias(mjModel const *__pyx_v_m, mjData const *__pyx_v_d, int __pyx_v_id) {
  double __pyx_v_dt_in_sec;
  int __pyx_v_NGAIN;
  double __pyx_v_smooth_pos_setpoint;
  double __pyx_v_Kp_cas;
  PyObject *__pyx_v_ctrl_ema = NULL;
  PyObject *__pyx_v_smoothing_factor = NULL;
  struct __pyx_t_9mujoco_py_4cymj_PIDOutput __pyx_v_pos_output;
  PyObject *__pyx_v_des_vel = NULL;
  PyObject *__pyx_v_max_qvel = NULL;
  struct __pyx_t_9mujoco_py_4cymj_PIDOutput __pyx_v_vel_output;
  double __pyx_v_effort_limit_low;
  double __pyx_v_effort_limit_high;
  PyObject *__pyx_v_f = NULL;
  mjtNum __pyx_r;
  __Pyx_RefNannyDeclarations
  mjtNum __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  double __pyx_t_9;
  struct __pyx_t_9mujoco_py_4cymj_PIDParameters __pyx_t_10;
  struct __pyx_t_9mujoco_py_4cymj_PIDErrors __pyx_t_11;
  double __pyx_t_12;
  double __pyx_t_13;
  int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c_pi_cascade_bias", 1);

  /* "mujoco_py/mjpid.pyx":170
 *                 max_vel"`           -> Clamped velocity limit (applied in positive and negative direction)
 *     """
 *     cdef double dt_in_sec = m.opt.timestep             # <<<<<<<<<<<<<<
 *     cdef int NGAIN = int(const.NGAIN)
 *     cdef double smooth_pos_setpoint;
 */
  __pyx_t_1 = __pyx_v_m->opt.timestep;
  __pyx_v_dt_in_sec = __pyx_t_1;

  /* "mujoco_py/mjpid.pyx":171
 *     """
 *     cdef double dt_in_sec = m.opt.timestep
 *     cdef int NGAIN = int(const.NGAIN)             # <<<<<<<<<<<<<<
 *     cdef double smooth_pos_setpoint;
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_const); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_NGAIN); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(9, 171, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_NGAIN = __pyx_t_4;

  /* "mujoco_py/mjpid.pyx":174
 *     cdef double smooth_pos_setpoint;
 * 
 *     cdef double Kp_cas = m.actuator_gainprm[id * NGAIN + IDX_CAS_PROPORTIONAL_GAIN]             # <<<<<<<<<<<<<<
 * 
 *     # Apply Exponential Moving Average smoothing to the position setpoint, applying warmstart
 */
  __pyx_v_Kp_cas = (__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_CAS_PROPORTIONAL_GAIN)]);

  /* "mujoco_py/mjpid.pyx":178
 *     # Apply Exponential Moving Average smoothing to the position setpoint, applying warmstart
 *     # on the first iteration.
 *     if d.time > 0.0:             # <<<<<<<<<<<<<<
 *         ctrl_ema = d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_STORED_EMA_SMOOTH]
 *         smoothing_factor = m.actuator_gainprm[id * NGAIN + IDX_CAS_EMA_SMOOTH]
 */
  __pyx_t_5 = (__pyx_v_d->time > 0.0);
  if (__pyx_t_5) {

    /* "mujoco_py/mjpid.pyx":179
 *     # on the first iteration.
 *     if d.time > 0.0:
 *         ctrl_ema = d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_STORED_EMA_SMOOTH]             # <<<<<<<<<<<<<<
 *         smoothing_factor = m.actuator_gainprm[id * NGAIN + IDX_CAS_EMA_SMOOTH]
 *         smooth_pos_setpoint = (smoothing_factor * ctrl_ema) + (1 - smoothing_factor) * d.ctrl[id]
 */
    __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 179, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 179, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE(__pyx_e_9mujoco_py_4cymj_IDX_CAS_STORED_EMA_SMOOTH); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 179, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PyNumber_Add(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 179, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 179, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyFloat_FromDouble((__pyx_v_d->userdata[__pyx_t_7])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 179, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_ctrl_ema = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "mujoco_py/mjpid.pyx":180
 *     if d.time > 0.0:
 *         ctrl_ema = d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_STORED_EMA_SMOOTH]
 *         smoothing_factor = m.actuator_gainprm[id * NGAIN + IDX_CAS_EMA_SMOOTH]             # <<<<<<<<<<<<<<
 *         smooth_pos_setpoint = (smoothing_factor * ctrl_ema) + (1 - smoothing_factor) * d.ctrl[id]
 *     else:
 */
    __pyx_t_6 = PyFloat_FromDouble((__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_CAS_EMA_SMOOTH)])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_smoothing_factor = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "mujoco_py/mjpid.pyx":181
 *         ctrl_ema = d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_STORED_EMA_SMOOTH]
 *         smoothing_factor = m.actuator_gainprm[id * NGAIN + IDX_CAS_EMA_SMOOTH]
 *         smooth_pos_setpoint = (smoothing_factor * ctrl_ema) + (1 - smoothing_factor) * d.ctrl[id]             # <<<<<<<<<<<<<<
 *     else:
 *         smooth_pos_setpoint = d.ctrl[id]
 */
    __pyx_t_6 = PyNumber_Multiply(__pyx_v_smoothing_factor, __pyx_v_ctrl_ema); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_v_smoothing_factor, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyFloat_FromDouble((__pyx_v_d->ctrl[__pyx_v_id])); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = PyNumber_Multiply(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_Add(__pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(9, 181, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_smooth_pos_setpoint = __pyx_t_9;

    /* "mujoco_py/mjpid.pyx":178
 *     # Apply Exponential Moving Average smoothing to the position setpoint, applying warmstart
 *     # on the first iteration.
 *     if d.time > 0.0:             # <<<<<<<<<<<<<<
 *         ctrl_ema = d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_STORED_EMA_SMOOTH]
 *         smoothing_factor = m.actuator_gainprm[id * NGAIN + IDX_CAS_EMA_SMOOTH]
 */
    goto __pyx_L3;
  }

  /* "mujoco_py/mjpid.pyx":183
 *         smooth_pos_setpoint = (smoothing_factor * ctrl_ema) + (1 - smoothing_factor) * d.ctrl[id]
 *     else:
 *         smooth_pos_setpoint = d.ctrl[id]             # <<<<<<<<<<<<<<
 *     d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_STORED_EMA_SMOOTH] = smooth_pos_setpoint
 * 
 */
  /*else*/ {
    __pyx_v_smooth_pos_setpoint = (__pyx_v_d->ctrl[__pyx_v_id]);
  }
  __pyx_L3:;

  /* "mujoco_py/mjpid.pyx":184
 *     else:
 *         smooth_pos_setpoint = d.ctrl[id]
 *     d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_STORED_EMA_SMOOTH] = smooth_pos_setpoint             # <<<<<<<<<<<<<<
 * 
 *     if Kp_cas != 0:
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = PyNumber_Multiply(__pyx_t_3, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE(__pyx_e_9mujoco_py_4cymj_IDX_CAS_STORED_EMA_SMOOTH); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = PyNumber_Add(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 184, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  (__pyx_v_d->userdata[__pyx_t_7]) = __pyx_v_smooth_pos_setpoint;

  /* "mujoco_py/mjpid.pyx":186
 *     d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_STORED_EMA_SMOOTH] = smooth_pos_setpoint
 * 
 *     if Kp_cas != 0:             # <<<<<<<<<<<<<<
 *         # Run a position PID loop and use the result to set a desired velocity signal
 *         pos_output = _pid(parameters=PIDParameters(
 */
  __pyx_t_5 = (__pyx_v_Kp_cas != 0.0);
  if (__pyx_t_5) {

    /* "mujoco_py/mjpid.pyx":189
 *         # Run a position PID loop and use the result to set a desired velocity signal
 *         pos_output = _pid(parameters=PIDParameters(
 *             dt_seconds=dt_in_sec,             # <<<<<<<<<<<<<<
 *             setpoint=smooth_pos_setpoint,
 *             feedback=d.actuator_length[id],
 */
    __pyx_t_10.dt_seconds = __pyx_v_dt_in_sec;

    /* "mujoco_py/mjpid.pyx":190
 *         pos_output = _pid(parameters=PIDParameters(
 *             dt_seconds=dt_in_sec,
 *             setpoint=smooth_pos_setpoint,             # <<<<<<<<<<<<<<
 *             feedback=d.actuator_length[id],
 *             Kp=Kp_cas,
 */
    __pyx_t_10.setpoint = __pyx_v_smooth_pos_setpoint;

    /* "mujoco_py/mjpid.pyx":191
 *             dt_seconds=dt_in_sec,
 *             setpoint=smooth_pos_setpoint,
 *             feedback=d.actuator_length[id],             # <<<<<<<<<<<<<<
 *             Kp=Kp_cas,
 *             error_deadband=0.0,
 */
    __pyx_t_10.feedback = (__pyx_v_d->actuator_length[__pyx_v_id]);

    /* "mujoco_py/mjpid.pyx":192
 *             setpoint=smooth_pos_setpoint,
 *             feedback=d.actuator_length[id],
 *             Kp=Kp_cas,             # <<<<<<<<<<<<<<
 *             error_deadband=0.0,
 *             integral_max_clamp=m.actuator_gainprm[id * NGAIN + IDX_CAS_INTEGRAL_MAX_CLAMP],
 */
    __pyx_t_10.Kp = __pyx_v_Kp_cas;
    __pyx_t_10.error_deadband = 0.0;

    /* "mujoco_py/mjpid.pyx":194
 *             Kp=Kp_cas,
 *             error_deadband=0.0,
 *             integral_max_clamp=m.actuator_gainprm[id * NGAIN + IDX_CAS_INTEGRAL_MAX_CLAMP],             # <<<<<<<<<<<<<<
 *             integral_time_const=m.actuator_gainprm[id * NGAIN + IDX_CAS_INTEGRAL_TIME_CONSTANT],
 *             derivative_gain_smoothing=m.actuator_gainprm[id * NGAIN + IDX_CAS_DERIVATIVE_GAIN_SMOOTHING],
 */
    __pyx_t_10.integral_max_clamp = (__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_CAS_INTEGRAL_MAX_CLAMP)]);

    /* "mujoco_py/mjpid.pyx":195
 *             error_deadband=0.0,
 *             integral_max_clamp=m.actuator_gainprm[id * NGAIN + IDX_CAS_INTEGRAL_MAX_CLAMP],
 *             integral_time_const=m.actuator_gainprm[id * NGAIN + IDX_CAS_INTEGRAL_TIME_CONSTANT],             # <<<<<<<<<<<<<<
 *             derivative_gain_smoothing=m.actuator_gainprm[id * NGAIN + IDX_CAS_DERIVATIVE_GAIN_SMOOTHING],
 *             derivative_time_const=m.actuator_gainprm[id * NGAIN + IDX_CAS_DERIVATIVE_TIME_CONSTANT],
 */
    __pyx_t_10.integral_time_const = (__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_CAS_INTEGRAL_TIME_CONSTANT)]);

    /* "mujoco_py/mjpid.pyx":196
 *             integral_max_clamp=m.actuator_gainprm[id * NGAIN + IDX_CAS_INTEGRAL_MAX_CLAMP],
 *             integral_time_const=m.actuator_gainprm[id * NGAIN + IDX_CAS_INTEGRAL_TIME_CONSTANT],
 *             derivative_gain_smoothing=m.actuator_gainprm[id * NGAIN + IDX_CAS_DERIVATIVE_GAIN_SMOOTHING],             # <<<<<<<<<<<<<<
 *             derivative_time_const=m.actuator_gainprm[id * NGAIN + IDX_CAS_DERIVATIVE_TIME_CONSTANT],
 *             previous_errors=PIDErrors(
 */
    __pyx_t_10.derivative_gain_smoothing = (__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_CAS_DERIVATIVE_GAIN_SMOOTHING)]);

    /* "mujoco_py/mjpid.pyx":197
 *             integral_time_const=m.actuator_gainprm[id * NGAIN + IDX_CAS_INTEGRAL_TIME_CONSTANT],
 *             derivative_gain_smoothing=m.actuator_gainprm[id * NGAIN + IDX_CAS_DERIVATIVE_GAIN_SMOOTHING],
 *             derivative_time_const=m.actuator_gainprm[id * NGAIN + IDX_CAS_DERIVATIVE_TIME_CONSTANT],             # <<<<<<<<<<<<<<
 *             previous_errors=PIDErrors(
 *                 error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_ERROR],
 */
    __pyx_t_10.derivative_time_const = (__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_CAS_DERIVATIVE_TIME_CONSTANT)]);

    /* "mujoco_py/mjpid.pyx":199
 *             derivative_time_const=m.actuator_gainprm[id * NGAIN + IDX_CAS_DERIVATIVE_TIME_CONSTANT],
 *             previous_errors=PIDErrors(
 *                 error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_ERROR],             # <<<<<<<<<<<<<<
 *                 derivative_error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_DERIVATIVE_ERROR],
 *                 integral_error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_INTEGRAL_ERROR],
 */
    __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 199, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PyNumber_Multiply(__pyx_t_6, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 199, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE(__pyx_e_9mujoco_py_4cymj_IDX_CAS_ERROR); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 199, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = PyNumber_Add(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 199, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 199, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_11.error = (__pyx_v_d->userdata[__pyx_t_7]);

    /* "mujoco_py/mjpid.pyx":200
 *             previous_errors=PIDErrors(
 *                 error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_ERROR],
 *                 derivative_error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_DERIVATIVE_ERROR],             # <<<<<<<<<<<<<<
 *                 integral_error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_INTEGRAL_ERROR],
 *             )))
 */
    __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 200, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_6 = PyNumber_Multiply(__pyx_t_8, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 200, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE(__pyx_e_9mujoco_py_4cymj_IDX_CAS_DERIVATIVE_ERROR); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 200, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_3 = PyNumber_Add(__pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 200, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 200, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_11.derivative_error = (__pyx_v_d->userdata[__pyx_t_7]);

    /* "mujoco_py/mjpid.pyx":201
 *                 error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_ERROR],
 *                 derivative_error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_DERIVATIVE_ERROR],
 *                 integral_error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_INTEGRAL_ERROR],             # <<<<<<<<<<<<<<
 *             )))
 * 
 */
    __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = PyNumber_Multiply(__pyx_t_3, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE(__pyx_e_9mujoco_py_4cymj_IDX_CAS_INTEGRAL_ERROR); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = PyNumber_Add(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 201, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_11.integral_error = (__pyx_v_d->userdata[__pyx_t_7]);
    __pyx_t_10.previous_errors = __pyx_t_11;

    /* "mujoco_py/mjpid.pyx":188
 *     if Kp_cas != 0:
 *         # Run a position PID loop and use the result to set a desired velocity signal
 *         pos_output = _pid(parameters=PIDParameters(             # <<<<<<<<<<<<<<
 *             dt_seconds=dt_in_sec,
 *             setpoint=smooth_pos_setpoint,
 */
    __pyx_v_pos_output = __pyx_f_9mujoco_py_4cymj__pid(__pyx_t_10);

    /* "mujoco_py/mjpid.pyx":205
 * 
 *         # Save errors
 *         d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_ERROR] = pos_output.errors.error             # <<<<<<<<<<<<<<
 *         d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_DERIVATIVE_ERROR] = pos_output.errors.derivative_error
 *         d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_INTEGRAL_ERROR] = pos_output.errors.integral_error
 */
    __pyx_t_9 = __pyx_v_pos_output.errors.error;
    __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 205, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PyNumber_Multiply(__pyx_t_6, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 205, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE(__pyx_e_9mujoco_py_4cymj_IDX_CAS_ERROR); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 205, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = PyNumber_Add(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 205, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 205, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    (__pyx_v_d->userdata[__pyx_t_7]) = __pyx_t_9;

    /* "mujoco_py/mjpid.pyx":206
 *         # Save errors
 *         d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_ERROR] = pos_output.errors.error
 *         d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_DERIVATIVE_ERROR] = pos_output.errors.derivative_error             # <<<<<<<<<<<<<<
 *         d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_INTEGRAL_ERROR] = pos_output.errors.integral_error
 *         des_vel = pos_output.output
 */
    __pyx_t_9 = __pyx_v_pos_output.errors.derivative_error;
    __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_6 = PyNumber_Multiply(__pyx_t_8, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE(__pyx_e_9mujoco_py_4cymj_IDX_CAS_DERIVATIVE_ERROR); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_3 = PyNumber_Add(__pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 206, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    (__pyx_v_d->userdata[__pyx_t_7]) = __pyx_t_9;

    /* "mujoco_py/mjpid.pyx":207
 *         d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_ERROR] = pos_output.errors.error
 *         d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_DERIVATIVE_ERROR] = pos_output.errors.derivative_error
 *         d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_INTEGRAL_ERROR] = pos_output.errors.integral_error             # <<<<<<<<<<<<<<
 *         des_vel = pos_output.output
 *     else:
 */
    __pyx_t_9 = __pyx_v_pos_output.errors.integral_error;
    __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = PyNumber_Multiply(__pyx_t_3, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE(__pyx_e_9mujoco_py_4cymj_IDX_CAS_INTEGRAL_ERROR); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = PyNumber_Add(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 207, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    (__pyx_v_d->userdata[__pyx_t_7]) = __pyx_t_9;

    /* "mujoco_py/mjpid.pyx":208
 *         d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_DERIVATIVE_ERROR] = pos_output.errors.derivative_error
 *         d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_INTEGRAL_ERROR] = pos_output.errors.integral_error
 *         des_vel = pos_output.output             # <<<<<<<<<<<<<<
 *     else:
 *         # If P gain on position loop is zero, only use the velocity controller
 */
    __pyx_t_6 = PyFloat_FromDouble(__pyx_v_pos_output.output); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_des_vel = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "mujoco_py/mjpid.pyx":186
 *     d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_STORED_EMA_SMOOTH] = smooth_pos_setpoint
 * 
 *     if Kp_cas != 0:             # <<<<<<<<<<<<<<
 *         # Run a position PID loop and use the result to set a desired velocity signal
 *         pos_output = _pid(parameters=PIDParameters(
 */
    goto __pyx_L4;
  }

  /* "mujoco_py/mjpid.pyx":211
 *     else:
 *         # If P gain on position loop is zero, only use the velocity controller
 *         des_vel = d.ctrl[id]             # <<<<<<<<<<<<<<
 * 
 *     # Clamp max angular velocity
 */
  /*else*/ {
    __pyx_t_6 = PyFloat_FromDouble((__pyx_v_d->ctrl[__pyx_v_id])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 211, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_des_vel = __pyx_t_6;
    __pyx_t_6 = 0;
  }
  __pyx_L4:;

  /* "mujoco_py/mjpid.pyx":214
 * 
 *     # Clamp max angular velocity
 *     max_qvel = m.actuator_gainprm[id * NGAIN + IDX_CAS_MAX_VEL]             # <<<<<<<<<<<<<<
 *     des_vel = fmax(-max_qvel, fmin(max_qvel, des_vel))
 * 
 */
  __pyx_t_6 = PyFloat_FromDouble((__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_CAS_MAX_VEL)])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_max_qvel = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "mujoco_py/mjpid.pyx":215
 *     # Clamp max angular velocity
 *     max_qvel = m.actuator_gainprm[id * NGAIN + IDX_CAS_MAX_VEL]
 *     des_vel = fmax(-max_qvel, fmin(max_qvel, des_vel))             # <<<<<<<<<<<<<<
 * 
 *     vel_output = _pid(parameters=PIDParameters(
 */
  __pyx_t_6 = PyNumber_Negative(__pyx_v_max_qvel); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(9, 215, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_v_max_qvel); if (unlikely((__pyx_t_12 == (double)-1) && PyErr_Occurred())) __PYX_ERR(9, 215, __pyx_L1_error)
  __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_v_des_vel); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(9, 215, __pyx_L1_error)
  __pyx_t_6 = PyFloat_FromDouble(fmax(__pyx_t_9, fmin(__pyx_t_12, __pyx_t_13))); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF_SET(__pyx_v_des_vel, __pyx_t_6);
  __pyx_t_6 = 0;

  /* "mujoco_py/mjpid.pyx":218
 * 
 *     vel_output = _pid(parameters=PIDParameters(
 *         dt_seconds=dt_in_sec,             # <<<<<<<<<<<<<<
 *         setpoint=des_vel,
 *         feedback=d.actuator_velocity[id],
 */
  __pyx_t_10.dt_seconds = __pyx_v_dt_in_sec;

  /* "mujoco_py/mjpid.pyx":219
 *     vel_output = _pid(parameters=PIDParameters(
 *         dt_seconds=dt_in_sec,
 *         setpoint=des_vel,             # <<<<<<<<<<<<<<
 *         feedback=d.actuator_velocity[id],
 *         Kp=m.actuator_gainprm[id * NGAIN + IDX_CAS_PROPORTIONAL_GAIN_V],
 */
  __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_v_des_vel); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(9, 219, __pyx_L1_error)
  __pyx_t_10.setpoint = __pyx_t_13;

  /* "mujoco_py/mjpid.pyx":220
 *         dt_seconds=dt_in_sec,
 *         setpoint=des_vel,
 *         feedback=d.actuator_velocity[id],             # <<<<<<<<<<<<<<
 *         Kp=m.actuator_gainprm[id * NGAIN + IDX_CAS_PROPORTIONAL_GAIN_V],
 *         error_deadband=0.0,
 */
  __pyx_t_10.feedback = (__pyx_v_d->actuator_velocity[__pyx_v_id]);

  /* "mujoco_py/mjpid.pyx":221
 *         setpoint=des_vel,
 *         feedback=d.actuator_velocity[id],
 *         Kp=m.actuator_gainprm[id * NGAIN + IDX_CAS_PROPORTIONAL_GAIN_V],             # <<<<<<<<<<<<<<
 *         error_deadband=0.0,
 *         integral_max_clamp=m.actuator_gainprm[id * NGAIN + IDX_CAS_INTEGRAL_MAX_CLAMP_V],
 */
  __pyx_t_10.Kp = (__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_CAS_PROPORTIONAL_GAIN_V)]);
  __pyx_t_10.error_deadband = 0.0;

  /* "mujoco_py/mjpid.pyx":223
 *         Kp=m.actuator_gainprm[id * NGAIN + IDX_CAS_PROPORTIONAL_GAIN_V],
 *         error_deadband=0.0,
 *         integral_max_clamp=m.actuator_gainprm[id * NGAIN + IDX_CAS_INTEGRAL_MAX_CLAMP_V],             # <<<<<<<<<<<<<<
 *         integral_time_const=m.actuator_gainprm[id * NGAIN + IDX_CAS_INTEGRAL_TIME_CONSTANT_V],
 *         derivative_gain_smoothing=0.0,
 */
  __pyx_t_10.integral_max_clamp = (__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_CAS_INTEGRAL_MAX_CLAMP_V)]);

  /* "mujoco_py/mjpid.pyx":224
 *         error_deadband=0.0,
 *         integral_max_clamp=m.actuator_gainprm[id * NGAIN + IDX_CAS_INTEGRAL_MAX_CLAMP_V],
 *         integral_time_const=m.actuator_gainprm[id * NGAIN + IDX_CAS_INTEGRAL_TIME_CONSTANT_V],             # <<<<<<<<<<<<<<
 *         derivative_gain_smoothing=0.0,
 *         derivative_time_const=0.0,
 */
  __pyx_t_10.integral_time_const = (__pyx_v_m->actuator_gainprm[((__pyx_v_id * __pyx_v_NGAIN) + __pyx_e_9mujoco_py_4cymj_IDX_CAS_INTEGRAL_TIME_CONSTANT_V)]);
  __pyx_t_10.derivative_gain_smoothing = 0.0;
  __pyx_t_10.derivative_time_const = 0.0;

  /* "mujoco_py/mjpid.pyx":227
 *         derivative_gain_smoothing=0.0,
 *         derivative_time_const=0.0,
 *         previous_errors=PIDErrors(             # <<<<<<<<<<<<<<
 *             error=0.0,
 *             derivative_error=0.0,
 */
  __pyx_t_11.error = 0.0;
  __pyx_t_11.derivative_error = 0.0;

  /* "mujoco_py/mjpid.pyx":230
 *             error=0.0,
 *             derivative_error=0.0,
 *             integral_error=d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_INTEGRAL_ERROR_V],             # <<<<<<<<<<<<<<
 *         )))
 * 
 */
  __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_6, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE(__pyx_e_9mujoco_py_4cymj_IDX_CAS_INTEGRAL_ERROR_V); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = PyNumber_Add(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 230, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_11.integral_error = (__pyx_v_d->userdata[__pyx_t_7]);
  __pyx_t_10.previous_errors = __pyx_t_11;

  /* "mujoco_py/mjpid.pyx":217
 *     des_vel = fmax(-max_qvel, fmin(max_qvel, des_vel))
 * 
 *     vel_output = _pid(parameters=PIDParameters(             # <<<<<<<<<<<<<<
 *         dt_seconds=dt_in_sec,
 *         setpoint=des_vel,
 */
  __pyx_v_vel_output = __pyx_f_9mujoco_py_4cymj__pid(__pyx_t_10);

  /* "mujoco_py/mjpid.pyx":234
 * 
 *     # Save errors
 *     d.userdata[id * NUM_USER_DATA_PER_ACT + IDX_CAS_INTEGRAL_ERROR_V] = vel_output.errors.integral_error             # <<<<<<<<<<<<<<
 * 
 *     # Limit max torque at the output
 */
  __pyx_t_13 = __pyx_v_vel_output.errors.integral_error;
  __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_id); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_6 = PyNumber_Multiply(__pyx_t_8, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE(__pyx_e_9mujoco_py_4cymj_IDX_CAS_INTEGRAL_ERROR_V); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_3 = PyNumber_Add(__pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(9, 234, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  (__pyx_v_d->userdata[__pyx_t_7]) = __pyx_t_13;

  /* "mujoco_py/mjpid.pyx":237
 * 
 *     # Limit max torque at the output
 *     cdef double effort_limit_low = m.actuator_forcerange[id * 2]             # <<<<<<<<<<<<<<
 *     cdef double effort_limit_high = m.actuator_forcerange[id * 2 + 1]
 * 
 */
  __pyx_v_effort_limit_low = (__pyx_v_m->actuator_forcerange[(__pyx_v_id * 2)]);

  /* "mujoco_py/mjpid.pyx":238
 *     # Limit max torque at the output
 *     cdef double effort_limit_low = m.actuator_forcerange[id * 2]
 *     cdef double effort_limit_high = m.actuator_forcerange[id * 2 + 1]             # <<<<<<<<<<<<<<
 * 
 *     f = vel_output.output
 */
  __pyx_v_effort_limit_high = (__pyx_v_m->actuator_forcerange[((__pyx_v_id * 2) + 1)]);

  /* "mujoco_py/mjpid.pyx":240
 *     cdef double effort_limit_high = m.actuator_forcerange[id * 2 + 1]
 * 
 *     f = vel_output.output             # <<<<<<<<<<<<<<
 * 
 *     # Gravity compensation
 */
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_vel_output.output); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_f = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "mujoco_py/mjpid.pyx":243
 * 
 *     # Gravity compensation
 *     f += d.qfrc_bias[id]             # <<<<<<<<<<<<<<
 * 
 *     if effort_limit_low != 0.0 or effort_limit_high != 0.0:
 */
  __pyx_t_3 = PyFloat_FromDouble((__pyx_v_d->qfrc_bias[__pyx_v_id])); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_f, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF_SET(__pyx_v_f, __pyx_t_8);
  __pyx_t_8 = 0;

  /* "mujoco_py/mjpid.pyx":245
 *     f += d.qfrc_bias[id]
 * 
 *     if effort_limit_low != 0.0 or effort_limit_high != 0.0:             # <<<<<<<<<<<<<<
 *         f = fmax(effort_limit_low, fmin(effort_limit_high, f))
 * 
 */
  __pyx_t_14 = (__pyx_v_effort_limit_low != 0.0);
  if (!__pyx_t_14) {
  } else {
    __pyx_t_5 = __pyx_t_14;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_14 = (__pyx_v_effort_limit_high != 0.0);
  __pyx_t_5 = __pyx_t_14;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_5) {

    /* "mujoco_py/mjpid.pyx":246
 * 
 *     if effort_limit_low != 0.0 or effort_limit_high != 0.0:
 *         f = fmax(effort_limit_low, fmin(effort_limit_high, f))             # <<<<<<<<<<<<<<
 * 
 *     return f
 */
    __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_v_f); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(9, 246, __pyx_L1_error)
    __pyx_t_8 = PyFloat_FromDouble(fmax(__pyx_v_effort_limit_low, fmin(__pyx_v_effort_limit_high, __pyx_t_13))); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 246, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF_SET(__pyx_v_f, __pyx_t_8);
    __pyx_t_8 = 0;

    /* "mujoco_py/mjpid.pyx":245
 *     f += d.qfrc_bias[id]
 * 
 *     if effort_limit_low != 0.0 or effort_limit_high != 0.0:             # <<<<<<<<<<<<<<
 *         f = fmax(effort_limit_low, fmin(effort_limit_high, f))
 * 
 */
  }

  /* "mujoco_py/mjpid.pyx":248
 *         f = fmax(effort_limit_low, fmin(effort_limit_high, f))
 * 
 *     return f             # <<<<<<<<<<<<<<
 * 
 * cdef enum USER_DEFINED_ACTUATOR_DATA:
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_f); if (unlikely((__pyx_t_1 == ((mjtNum)-1)) && PyErr_Occurred())) __PYX_ERR(9, 248, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "mujoco_py/mjpid.pyx":148
 * cdef NUM_USER_DATA_PER_ACT = max(int(NUM_USER_DATA_PER_ACT_PID), int(NUM_USER_DATA_PER_ACT_CAS))
 * 
 * cdef mjtNum c_pi_cascade_bias(const mjModel*m, const mjData*d, int id):             # <<<<<<<<<<<<<<
 *     """
 *     A cascaded PID-PI controller implementation that can control position
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_WriteUnraisable("mujoco_py.cymj.c_pi_cascade_bias", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ctrl_ema);
  __Pyx_XDECREF(__pyx_v_smoothing_factor);
  __Pyx_XDECREF(__pyx_v_des_vel);
  __Pyx_XDECREF(__pyx_v_max_qvel);
  __Pyx_XDECREF(__pyx_v_f);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/mjpid.pyx":254
 *     NUM_ACTUATOR_DATA = 1
 * 
 * cdef mjtNum c_custom_bias(const mjModel*m, const mjData*d, int id) with gil:             # <<<<<<<<<<<<<<
 *     """
 *     Switches between PID and Cascaded PID-PI type custom bias computation based on the
 */

static mjtNum __pyx_f_9mujoco_py_4cymj_c_custom_bias(mjModel const *__pyx_v_m, mjData const *__pyx_v_d, int __pyx_v_id) {
  PyObject *__pyx_v_controller_type = NULL;
  mjtNum __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("c_custom_bias", 0);

  /* "mujoco_py/mjpid.pyx":265
 *     :return: Custom actuator force
 *     """
 *     controller_type = int(m.actuator_user[id * m.nuser_actuator + IDX_CONTROLLER_TYPE])             # <<<<<<<<<<<<<<
 * 
 *     if controller_type == CONTROLLER_TYPE_PI_CASCADE:
 */
  __pyx_t_1 = __Pyx_PyInt_FromDouble((__pyx_v_m->actuator_user[((__pyx_v_id * __pyx_v_m->nuser_actuator) + __pyx_e_9mujoco_py_4cymj_IDX_CONTROLLER_TYPE)])); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_controller_type = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "mujoco_py/mjpid.pyx":267
 *     controller_type = int(m.actuator_user[id * m.nuser_actuator + IDX_CONTROLLER_TYPE])
 * 
 *     if controller_type == CONTROLLER_TYPE_PI_CASCADE:             # <<<<<<<<<<<<<<
 *         return c_pi_cascade_bias(m, d, id)
 *     return c_pid_bias(m, d, id)
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_9mujoco_py_4cymj_CONTROLLER_TYPE_PI_CASCADE); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_controller_type, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 267, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(9, 267, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "mujoco_py/mjpid.pyx":268
 * 
 *     if controller_type == CONTROLLER_TYPE_PI_CASCADE:
 *         return c_pi_cascade_bias(m, d, id)             # <<<<<<<<<<<<<<
 *     return c_pid_bias(m, d, id)
 * 
 */
    __pyx_r = __pyx_f_9mujoco_py_4cymj_c_pi_cascade_bias(__pyx_v_m, __pyx_v_d, __pyx_v_id);
    goto __pyx_L0;

    /* "mujoco_py/mjpid.pyx":267
 *     controller_type = int(m.actuator_user[id * m.nuser_actuator + IDX_CONTROLLER_TYPE])
 * 
 *     if controller_type == CONTROLLER_TYPE_PI_CASCADE:             # <<<<<<<<<<<<<<
 *         return c_pi_cascade_bias(m, d, id)
 *     return c_pid_bias(m, d, id)
 */
  }

  /* "mujoco_py/mjpid.pyx":269
 *     if controller_type == CONTROLLER_TYPE_PI_CASCADE:
 *         return c_pi_cascade_bias(m, d, id)
 *     return c_pid_bias(m, d, id)             # <<<<<<<<<<<<<<
 * 
 * def set_pid_control(m, d):
 */
  __pyx_r = __pyx_f_9mujoco_py_4cymj_c_pid_bias(__pyx_v_m, __pyx_v_d, __pyx_v_id);
  goto __pyx_L0;

  /* "mujoco_py/mjpid.pyx":254
 *     NUM_ACTUATOR_DATA = 1
 * 
 * cdef mjtNum c_custom_bias(const mjModel*m, const mjData*d, int id) with gil:             # <<<<<<<<<<<<<<
 *     """
 *     Switches between PID and Cascaded PID-PI type custom bias computation based on the
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_WriteUnraisable("mujoco_py.cymj.c_custom_bias", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_controller_type);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
  return __pyx_r;
}

/* "mujoco_py/mjpid.pyx":271
 *     return c_pid_bias(m, d, id)
 * 
 * def set_pid_control(m, d):             # <<<<<<<<<<<<<<
 *     global mjcb_act_gain
 *     global mjcb_act_bias
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_495set_pid_control(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_495set_pid_control = {"set_pid_control", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_495set_pid_control, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_495set_pid_control(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_m = 0;
  PyObject *__pyx_v_d = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_pid_control (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_m,&__pyx_n_s_d,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_m)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 271, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_d)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 271, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("set_pid_control", 1, 2, 2, 1); __PYX_ERR(9, 271, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_pid_control") < 0)) __PYX_ERR(9, 271, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_m = values[0];
    __pyx_v_d = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_pid_control", 1, 2, 2, __pyx_nargs); __PYX_ERR(9, 271, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.set_pid_control", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_494set_pid_control(__pyx_self, __pyx_v_m, __pyx_v_d);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_494set_pid_control(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_m, PyObject *__pyx_v_d) {
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_pid_control", 1);

  /* "mujoco_py/mjpid.pyx":275
 *     global mjcb_act_bias
 * 
 *     if m.nuserdata < m.nu * NUM_USER_DATA_PER_ACT:             # <<<<<<<<<<<<<<
 *         raise Exception('nuserdata is not set large enough to store PID internal states.')
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_nuserdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_nu); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 275, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(9, 275, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(__pyx_t_4)) {

    /* "mujoco_py/mjpid.pyx":276
 * 
 *     if m.nuserdata < m.nu * NUM_USER_DATA_PER_ACT:
 *         raise Exception('nuserdata is not set large enough to store PID internal states.')             # <<<<<<<<<<<<<<
 * 
 *     if m.nuser_actuator < m.nu * NUM_ACTUATOR_DATA:
 */
    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__56, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(9, 276, __pyx_L1_error)

    /* "mujoco_py/mjpid.pyx":275
 *     global mjcb_act_bias
 * 
 *     if m.nuserdata < m.nu * NUM_USER_DATA_PER_ACT:             # <<<<<<<<<<<<<<
 *         raise Exception('nuserdata is not set large enough to store PID internal states.')
 * 
 */
  }

  /* "mujoco_py/mjpid.pyx":278
 *         raise Exception('nuserdata is not set large enough to store PID internal states.')
 * 
 *     if m.nuser_actuator < m.nu * NUM_ACTUATOR_DATA:             # <<<<<<<<<<<<<<
 *         raise Exception('nuser_actuator is not set large enough to store controller types')
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_nuser_actuator); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_nu); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA(__pyx_e_9mujoco_py_4cymj_NUM_ACTUATOR_DATA); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 278, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(9, 278, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(__pyx_t_4)) {

    /* "mujoco_py/mjpid.pyx":279
 * 
 *     if m.nuser_actuator < m.nu * NUM_ACTUATOR_DATA:
 *         raise Exception('nuser_actuator is not set large enough to store controller types')             # <<<<<<<<<<<<<<
 * 
 *     for i in range(m.nuserdata):
 */
    __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__57, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(9, 279, __pyx_L1_error)

    /* "mujoco_py/mjpid.pyx":278
 *         raise Exception('nuserdata is not set large enough to store PID internal states.')
 * 
 *     if m.nuser_actuator < m.nu * NUM_ACTUATOR_DATA:             # <<<<<<<<<<<<<<
 *         raise Exception('nuser_actuator is not set large enough to store controller types')
 * 
 */
  }

  /* "mujoco_py/mjpid.pyx":281
 *         raise Exception('nuser_actuator is not set large enough to store controller types')
 * 
 *     for i in range(m.nuserdata):             # <<<<<<<<<<<<<<
 *         d.userdata[i] = 0.0
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_nuserdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_6 = 0;
    __pyx_t_7 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 281, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 281, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(!__pyx_t_7)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(9, 281, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(9, 281, __pyx_L1_error)
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 281, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(9, 281, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(9, 281, __pyx_L1_error)
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 281, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_7(__pyx_t_1);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(9, 281, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "mujoco_py/mjpid.pyx":282
 * 
 *     for i in range(m.nuserdata):
 *         d.userdata[i] = 0.0             # <<<<<<<<<<<<<<
 * 
 *     mjcb_act_gain = c_zero_gains
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_d, __pyx_n_s_userdata); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_v_i, __pyx_float_0_0) < 0))) __PYX_ERR(9, 282, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "mujoco_py/mjpid.pyx":281
 *         raise Exception('nuser_actuator is not set large enough to store controller types')
 * 
 *     for i in range(m.nuserdata):             # <<<<<<<<<<<<<<
 *         d.userdata[i] = 0.0
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "mujoco_py/mjpid.pyx":284
 *         d.userdata[i] = 0.0
 * 
 *     mjcb_act_gain = c_zero_gains             # <<<<<<<<<<<<<<
 *     mjcb_act_bias = c_custom_bias
 */
  mjcb_act_gain = __pyx_f_9mujoco_py_4cymj_c_zero_gains;

  /* "mujoco_py/mjpid.pyx":285
 * 
 *     mjcb_act_gain = c_zero_gains
 *     mjcb_act_bias = c_custom_bias             # <<<<<<<<<<<<<<
 */
  mjcb_act_bias = __pyx_f_9mujoco_py_4cymj_c_custom_bias;

  /* "mujoco_py/mjpid.pyx":271
 *     return c_pid_bias(m, d, id)
 * 
 * def set_pid_control(m, d):             # <<<<<<<<<<<<<<
 *     global mjcb_act_gain
 *     global mjcb_act_bias
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("mujoco_py.cymj.set_pid_control", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/cymj.pyx":67
 * 
 * 
 * cdef void c_warning_callback(const char *msg) with gil:             # <<<<<<<<<<<<<<
 *     '''
 *     Wraps the warning callback so we can raise exceptions.
 */

static void __pyx_f_9mujoco_py_4cymj_c_warning_callback(char const *__pyx_v_msg) {
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("c_warning_callback", 0);

  /* "mujoco_py/cymj.pyx":76
 *     '''
 *     global py_warning_callback
 *     try:             # <<<<<<<<<<<<<<
 *         (<object> py_warning_callback)(msg)
 *     except Exception as e:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "mujoco_py/cymj.pyx":77
 *     global py_warning_callback
 *     try:
 *         (<object> py_warning_callback)(msg)             # <<<<<<<<<<<<<<
 *     except Exception as e:
 *         global py_warning_exception
 */
      __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_msg); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 77, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(((PyObject *)__pyx_v_9mujoco_py_4cymj_py_warning_callback));
      __pyx_t_6 = __pyx_v_9mujoco_py_4cymj_py_warning_callback; __pyx_t_7 = NULL;
      __pyx_t_8 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
          __pyx_t_8 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 77, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "mujoco_py/cymj.pyx":76
 *     '''
 *     global py_warning_callback
 *     try:             # <<<<<<<<<<<<<<
 *         (<object> py_warning_callback)(msg)
 *     except Exception as e:
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "mujoco_py/cymj.pyx":78
 *     try:
 *         (<object> py_warning_callback)(msg)
 *     except Exception as e:             # <<<<<<<<<<<<<<
 *         global py_warning_exception
 *         py_warning_exception = e
 */
    __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
    if (__pyx_t_8) {
      __Pyx_AddTraceback("mujoco_py.cymj.c_warning_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(7, 78, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "mujoco_py/cymj.pyx":80
 *     except Exception as e:
 *         global py_warning_exception
 *         py_warning_exception = e             # <<<<<<<<<<<<<<
 * 
 * 
 */
        __Pyx_INCREF(__pyx_v_e);
        __Pyx_XGOTREF(__pyx_v_9mujoco_py_4cymj_py_warning_exception);
        __Pyx_DECREF_SET(__pyx_v_9mujoco_py_4cymj_py_warning_exception, __pyx_v_e);
        __Pyx_GIVEREF(__pyx_v_e);
      }

      /* "mujoco_py/cymj.pyx":78
 *     try:
 *         (<object> py_warning_callback)(msg)
 *     except Exception as e:             # <<<<<<<<<<<<<<
 *         global py_warning_exception
 *         py_warning_exception = e
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0;
          goto __pyx_L15;
        }
        __pyx_L15:;
      }
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "mujoco_py/cymj.pyx":76
 *     '''
 *     global py_warning_callback
 *     try:             # <<<<<<<<<<<<<<
 *         (<object> py_warning_callback)(msg)
 *     except Exception as e:
 */
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "mujoco_py/cymj.pyx":67
 * 
 * 
 * cdef void c_warning_callback(const char *msg) with gil:             # <<<<<<<<<<<<<<
 *     '''
 *     Wraps the warning callback so we can raise exceptions.
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_WriteUnraisable("mujoco_py.cymj.c_warning_callback", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "mujoco_py/cymj.pyx":83
 * 
 * 
 * def set_warning_callback(warn):             # <<<<<<<<<<<<<<
 *     '''
 *     Set a user-defined warning callback.  It should take in a string message
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_497set_warning_callback(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_496set_warning_callback, "\n    Set a user-defined warning callback.  It should take in a string message\n        (the warning string) and raise an Exception.\n    See c_warning_callback, which is the C wrapper to the user defined function\n    ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_497set_warning_callback = {"set_warning_callback", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_497set_warning_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_496set_warning_callback};
static PyObject *__pyx_pw_9mujoco_py_4cymj_497set_warning_callback(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_warn = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_warning_callback (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_warn,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_warn)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 83, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_warning_callback") < 0)) __PYX_ERR(7, 83, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_warn = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_warning_callback", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 83, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.set_warning_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_496set_warning_callback(__pyx_self, __pyx_v_warn);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_496set_warning_callback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_warn) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_warning_callback", 1);

  /* "mujoco_py/cymj.pyx":91
 *     global py_warning_callback
 *     global mju_user_warning
 *     py_warning_callback = warn             # <<<<<<<<<<<<<<
 *     mju_user_warning = c_warning_callback
 * 
 */
  __Pyx_INCREF(__pyx_v_warn);
  __Pyx_XGOTREF(__pyx_v_9mujoco_py_4cymj_py_warning_callback);
  __Pyx_DECREF_SET(__pyx_v_9mujoco_py_4cymj_py_warning_callback, __pyx_v_warn);
  __Pyx_GIVEREF(__pyx_v_warn);

  /* "mujoco_py/cymj.pyx":92
 *     global mju_user_warning
 *     py_warning_callback = warn
 *     mju_user_warning = c_warning_callback             # <<<<<<<<<<<<<<
 * 
 * 
 */
  mju_user_warning = __pyx_f_9mujoco_py_4cymj_c_warning_callback;

  /* "mujoco_py/cymj.pyx":83
 * 
 * 
 * def set_warning_callback(warn):             # <<<<<<<<<<<<<<
 *     '''
 *     Set a user-defined warning callback.  It should take in a string message
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/cymj.pyx":95
 * 
 * 
 * def get_warning_callback():             # <<<<<<<<<<<<<<
 *     '''
 *     Returns the user-defined warning callback, for use in e.g. a context
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_499get_warning_callback(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_498get_warning_callback, "\n    Returns the user-defined warning callback, for use in e.g. a context\n    manager.\n    ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_499get_warning_callback = {"get_warning_callback", (PyCFunction)__pyx_pw_9mujoco_py_4cymj_499get_warning_callback, METH_NOARGS, __pyx_doc_9mujoco_py_4cymj_498get_warning_callback};
static PyObject *__pyx_pw_9mujoco_py_4cymj_499get_warning_callback(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_warning_callback (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_498get_warning_callback(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_498get_warning_callback(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_warning_callback", 1);

  /* "mujoco_py/cymj.pyx":101
 *     '''
 *     global py_warning_callback
 *     return py_warning_callback             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_9mujoco_py_4cymj_py_warning_callback);
  __pyx_r = __pyx_v_9mujoco_py_4cymj_py_warning_callback;
  goto __pyx_L0;

  /* "mujoco_py/cymj.pyx":95
 * 
 * 
 * def get_warning_callback():             # <<<<<<<<<<<<<<
 *     '''
 *     Returns the user-defined warning callback, for use in e.g. a context
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/cymj.pyx":104
 * 
 * 
 * cdef void c_error_callback(const char *msg) with gil:             # <<<<<<<<<<<<<<
 *     '''
 *     Wraps the error callback so that we can pass a python function to the callback.
 */

static void __pyx_f_9mujoco_py_4cymj_c_error_callback(char const *__pyx_v_msg) {
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("c_error_callback", 0);

  /* "mujoco_py/cymj.pyx":111
 *     global py_error_callback
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         (<object> py_error_callback)(msg)
 *     except Exception as e:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "mujoco_py/cymj.pyx":112
 * 
 *     try:
 *         (<object> py_error_callback)(msg)             # <<<<<<<<<<<<<<
 *     except Exception as e:
 *         global py_error_exception
 */
      __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_msg); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 112, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(((PyObject *)__pyx_v_9mujoco_py_4cymj_py_error_callback));
      __pyx_t_6 = __pyx_v_9mujoco_py_4cymj_py_error_callback; __pyx_t_7 = NULL;
      __pyx_t_8 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
          __pyx_t_8 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 112, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "mujoco_py/cymj.pyx":111
 *     global py_error_callback
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         (<object> py_error_callback)(msg)
 *     except Exception as e:
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "mujoco_py/cymj.pyx":113
 *     try:
 *         (<object> py_error_callback)(msg)
 *     except Exception as e:             # <<<<<<<<<<<<<<
 *         global py_error_exception
 *         py_error_exception = e
 */
    __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
    if (__pyx_t_8) {
      __Pyx_AddTraceback("mujoco_py.cymj.c_error_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(7, 113, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "mujoco_py/cymj.pyx":115
 *     except Exception as e:
 *         global py_error_exception
 *         py_error_exception = e             # <<<<<<<<<<<<<<
 * 
 * 
 */
        __Pyx_INCREF(__pyx_v_e);
        __Pyx_XGOTREF(__pyx_v_9mujoco_py_4cymj_py_error_exception);
        __Pyx_DECREF_SET(__pyx_v_9mujoco_py_4cymj_py_error_exception, __pyx_v_e);
        __Pyx_GIVEREF(__pyx_v_e);
      }

      /* "mujoco_py/cymj.pyx":113
 *     try:
 *         (<object> py_error_callback)(msg)
 *     except Exception as e:             # <<<<<<<<<<<<<<
 *         global py_error_exception
 *         py_error_exception = e
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0;
          goto __pyx_L15;
        }
        __pyx_L15:;
      }
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "mujoco_py/cymj.pyx":111
 *     global py_error_callback
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         (<object> py_error_callback)(msg)
 *     except Exception as e:
 */
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "mujoco_py/cymj.pyx":104
 * 
 * 
 * cdef void c_error_callback(const char *msg) with gil:             # <<<<<<<<<<<<<<
 *     '''
 *     Wraps the error callback so that we can pass a python function to the callback.
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_WriteUnraisable("mujoco_py.cymj.c_error_callback", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "mujoco_py/cymj.pyx":118
 * 
 * 
 * def set_error_callback(err_callback):             # <<<<<<<<<<<<<<
 *     '''
 *     Set a user-defined error callback.  It should take in a string message
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_501set_error_callback(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_500set_error_callback, "\n    Set a user-defined error callback.  It should take in a string message\n        (the warning string) and terminate the program.\n    See c_warning_callback, which is the C wrapper to the user defined function\n    ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_501set_error_callback = {"set_error_callback", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_501set_error_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_500set_error_callback};
static PyObject *__pyx_pw_9mujoco_py_4cymj_501set_error_callback(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_err_callback = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_error_callback (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_err_callback,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_err_callback)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 118, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_error_callback") < 0)) __PYX_ERR(7, 118, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_err_callback = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_error_callback", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 118, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.set_error_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_500set_error_callback(__pyx_self, __pyx_v_err_callback);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_500set_error_callback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_err_callback) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_error_callback", 1);

  /* "mujoco_py/cymj.pyx":126
 *     global py_error_callback
 *     global mju_user_error
 *     py_error_callback = err_callback             # <<<<<<<<<<<<<<
 *     mju_user_error = c_error_callback
 * 
 */
  __Pyx_INCREF(__pyx_v_err_callback);
  __Pyx_XGOTREF(__pyx_v_9mujoco_py_4cymj_py_error_callback);
  __Pyx_DECREF_SET(__pyx_v_9mujoco_py_4cymj_py_error_callback, __pyx_v_err_callback);
  __Pyx_GIVEREF(__pyx_v_err_callback);

  /* "mujoco_py/cymj.pyx":127
 *     global mju_user_error
 *     py_error_callback = err_callback
 *     mju_user_error = c_error_callback             # <<<<<<<<<<<<<<
 * 
 * 
 */
  mju_user_error = __pyx_f_9mujoco_py_4cymj_c_error_callback;

  /* "mujoco_py/cymj.pyx":118
 * 
 * 
 * def set_error_callback(err_callback):             # <<<<<<<<<<<<<<
 *     '''
 *     Set a user-defined error callback.  It should take in a string message
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/cymj.pyx":130
 * 
 * 
 * def get_error_callback():             # <<<<<<<<<<<<<<
 *     '''
 *     Returns the user-defined warning callback, for use in e.g. a context
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_503get_error_callback(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_502get_error_callback, "\n    Returns the user-defined warning callback, for use in e.g. a context\n    manager.\n    ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_503get_error_callback = {"get_error_callback", (PyCFunction)__pyx_pw_9mujoco_py_4cymj_503get_error_callback, METH_NOARGS, __pyx_doc_9mujoco_py_4cymj_502get_error_callback};
static PyObject *__pyx_pw_9mujoco_py_4cymj_503get_error_callback(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_error_callback (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_502get_error_callback(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_502get_error_callback(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_error_callback", 1);

  /* "mujoco_py/cymj.pyx":136
 *     '''
 *     global py_error_callback
 *     return py_error_callback             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_9mujoco_py_4cymj_py_error_callback);
  __pyx_r = __pyx_v_9mujoco_py_4cymj_py_error_callback;
  goto __pyx_L0;

  /* "mujoco_py/cymj.pyx":130
 * 
 * 
 * def get_error_callback():             # <<<<<<<<<<<<<<
 *     '''
 *     Returns the user-defined warning callback, for use in e.g. a context
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/cymj.pyx":146
 *             mj_somefunc()
 *     '''
 *     def __enter__(self):             # <<<<<<<<<<<<<<
 *         global py_warning_exception
 *         py_warning_exception = None
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_19wrap_mujoco_warning_1__enter__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_19wrap_mujoco_warning_1__enter__ = {"__enter__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_19wrap_mujoco_warning_1__enter__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_19wrap_mujoco_warning_1__enter__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__enter__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 146, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__enter__") < 0)) __PYX_ERR(7, 146, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__enter__", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 146, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.wrap_mujoco_warning.__enter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_19wrap_mujoco_warning___enter__(__pyx_self, __pyx_v_self);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_19wrap_mujoco_warning___enter__(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__enter__", 1);

  /* "mujoco_py/cymj.pyx":148
 *     def __enter__(self):
 *         global py_warning_exception
 *         py_warning_exception = None             # <<<<<<<<<<<<<<
 *         global py_error_exception
 *         py_error_exception = None
 */
  __Pyx_INCREF(Py_None);
  __Pyx_XGOTREF(__pyx_v_9mujoco_py_4cymj_py_warning_exception);
  __Pyx_DECREF_SET(__pyx_v_9mujoco_py_4cymj_py_warning_exception, Py_None);
  __Pyx_GIVEREF(Py_None);

  /* "mujoco_py/cymj.pyx":150
 *         py_warning_exception = None
 *         global py_error_exception
 *         py_error_exception = None             # <<<<<<<<<<<<<<
 *     def __exit__(self, type, value, traceback):
 *         global py_warning_exception
 */
  __Pyx_INCREF(Py_None);
  __Pyx_XGOTREF(__pyx_v_9mujoco_py_4cymj_py_error_exception);
  __Pyx_DECREF_SET(__pyx_v_9mujoco_py_4cymj_py_error_exception, Py_None);
  __Pyx_GIVEREF(Py_None);

  /* "mujoco_py/cymj.pyx":146
 *             mj_somefunc()
 *     '''
 *     def __enter__(self):             # <<<<<<<<<<<<<<
 *         global py_warning_exception
 *         py_warning_exception = None
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/cymj.pyx":151
 *         global py_error_exception
 *         py_error_exception = None
 *     def __exit__(self, type, value, traceback):             # <<<<<<<<<<<<<<
 *         global py_warning_exception
 *         global py_error_exception
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_19wrap_mujoco_warning_3__exit__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_19wrap_mujoco_warning_3__exit__ = {"__exit__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_19wrap_mujoco_warning_3__exit__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9mujoco_py_4cymj_19wrap_mujoco_warning_3__exit__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
  CYTHON_UNUSED PyObject *__pyx_v_type = 0;
  CYTHON_UNUSED PyObject *__pyx_v_value = 0;
  CYTHON_UNUSED PyObject *__pyx_v_traceback = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__exit__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_type,&__pyx_n_s_value,&__pyx_n_s_traceback,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 151, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 151, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__exit__", 1, 4, 4, 1); __PYX_ERR(7, 151, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_value)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 151, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__exit__", 1, 4, 4, 2); __PYX_ERR(7, 151, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_traceback)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 151, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__exit__", 1, 4, 4, 3); __PYX_ERR(7, 151, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__exit__") < 0)) __PYX_ERR(7, 151, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
      values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_type = values[1];
    __pyx_v_value = values[2];
    __pyx_v_traceback = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__exit__", 1, 4, 4, __pyx_nargs); __PYX_ERR(7, 151, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.wrap_mujoco_warning.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_19wrap_mujoco_warning_2__exit__(__pyx_self, __pyx_v_self, __pyx_v_type, __pyx_v_value, __pyx_v_traceback);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_19wrap_mujoco_warning_2__exit__(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_type, CYTHON_UNUSED PyObject *__pyx_v_value, CYTHON_UNUSED PyObject *__pyx_v_traceback) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__exit__", 1);

  /* "mujoco_py/cymj.pyx":155
 *         global py_error_exception
 * 
 *         if py_warning_exception is not None:             # <<<<<<<<<<<<<<
 *             raise py_warning_exception
 * 
 */
  __pyx_t_1 = (__pyx_v_9mujoco_py_4cymj_py_warning_exception != Py_None);
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/cymj.pyx":156
 * 
 *         if py_warning_exception is not None:
 *             raise py_warning_exception             # <<<<<<<<<<<<<<
 * 
 *         if py_error_exception is not None:
 */
    __Pyx_Raise(__pyx_v_9mujoco_py_4cymj_py_warning_exception, 0, 0, 0);
    __PYX_ERR(7, 156, __pyx_L1_error)

    /* "mujoco_py/cymj.pyx":155
 *         global py_error_exception
 * 
 *         if py_warning_exception is not None:             # <<<<<<<<<<<<<<
 *             raise py_warning_exception
 * 
 */
  }

  /* "mujoco_py/cymj.pyx":158
 *             raise py_warning_exception
 * 
 *         if py_error_exception is not None:             # <<<<<<<<<<<<<<
 *             raise py_error_exception
 * 
 */
  __pyx_t_1 = (__pyx_v_9mujoco_py_4cymj_py_error_exception != Py_None);
  if (unlikely(__pyx_t_1)) {

    /* "mujoco_py/cymj.pyx":159
 * 
 *         if py_error_exception is not None:
 *             raise py_error_exception             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_Raise(__pyx_v_9mujoco_py_4cymj_py_error_exception, 0, 0, 0);
    __PYX_ERR(7, 159, __pyx_L1_error)

    /* "mujoco_py/cymj.pyx":158
 *             raise py_warning_exception
 * 
 *         if py_error_exception is not None:             # <<<<<<<<<<<<<<
 *             raise py_error_exception
 * 
 */
  }

  /* "mujoco_py/cymj.pyx":151
 *         global py_error_exception
 *         py_error_exception = None
 *     def __exit__(self, type, value, traceback):             # <<<<<<<<<<<<<<
 *         global py_warning_exception
 *         global py_error_exception
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("mujoco_py.cymj.wrap_mujoco_warning.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/cymj.pyx":162
 * 
 * 
 * def load_model_from_path(str path):             # <<<<<<<<<<<<<<
 *     """Loads model from path."""
 *     cdef char errstr[300]
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_505load_model_from_path(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_504load_model_from_path, "Loads model from path.");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_505load_model_from_path = {"load_model_from_path", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_505load_model_from_path, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_504load_model_from_path};
static PyObject *__pyx_pw_9mujoco_py_4cymj_505load_model_from_path(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_path = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("load_model_from_path (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_path,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_path)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 162, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "load_model_from_path") < 0)) __PYX_ERR(7, 162, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_path = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("load_model_from_path", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 162, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.load_model_from_path", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_path), (&PyUnicode_Type), 1, "path", 1))) __PYX_ERR(7, 162, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_504load_model_from_path(__pyx_self, __pyx_v_path);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_504load_model_from_path(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path) {
  char __pyx_v_errstr[0x12C];
  mjModel *__pyx_v_model;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  char const *__pyx_t_11;
  char const *__pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  Py_UCS4 __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("load_model_from_path", 1);

  /* "mujoco_py/cymj.pyx":166
 *     cdef char errstr[300]
 *     cdef mjModel *model
 *     with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *         if (path.endswith(".mjb")):
 *             model = mj_loadModel(path.encode(), NULL)
 */
  /*with:*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_wrap_mujoco_warning); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 166, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 166, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 166, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {

          /* "mujoco_py/cymj.pyx":167
 *     cdef mjModel *model
 *     with wrap_mujoco_warning():
 *         if (path.endswith(".mjb")):             # <<<<<<<<<<<<<<
 *             model = mj_loadModel(path.encode(), NULL)
 *         elif (path.endswith(".xml")):
 */
          if (unlikely(__pyx_v_path == Py_None)) {
            PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "endswith");
            __PYX_ERR(7, 167, __pyx_L7_error)
          }
          __pyx_t_10 = __Pyx_PyUnicode_Tailmatch(__pyx_v_path, __pyx_kp_u_mjb_2, 0, PY_SSIZE_T_MAX, 1); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(7, 167, __pyx_L7_error)
          if (__pyx_t_10) {

            /* "mujoco_py/cymj.pyx":168
 *     with wrap_mujoco_warning():
 *         if (path.endswith(".mjb")):
 *             model = mj_loadModel(path.encode(), NULL)             # <<<<<<<<<<<<<<
 *         elif (path.endswith(".xml")):
 *             model = mj_loadXML(path.encode(), NULL, errstr, 300)
 */
            if (unlikely(__pyx_v_path == Py_None)) {
              PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
              __PYX_ERR(7, 168, __pyx_L7_error)
            }
            __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_path, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 168, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_11 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_11) && PyErr_Occurred())) __PYX_ERR(7, 168, __pyx_L7_error)
            __pyx_v_model = mj_loadModel(__pyx_t_11, NULL);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

            /* "mujoco_py/cymj.pyx":167
 *     cdef mjModel *model
 *     with wrap_mujoco_warning():
 *         if (path.endswith(".mjb")):             # <<<<<<<<<<<<<<
 *             model = mj_loadModel(path.encode(), NULL)
 *         elif (path.endswith(".xml")):
 */
            goto __pyx_L13;
          }

          /* "mujoco_py/cymj.pyx":169
 *         if (path.endswith(".mjb")):
 *             model = mj_loadModel(path.encode(), NULL)
 *         elif (path.endswith(".xml")):             # <<<<<<<<<<<<<<
 *             model = mj_loadXML(path.encode(), NULL, errstr, 300)
 *         else:
 */
          if (unlikely(__pyx_v_path == Py_None)) {
            PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "endswith");
            __PYX_ERR(7, 169, __pyx_L7_error)
          }
          __pyx_t_10 = __Pyx_PyUnicode_Tailmatch(__pyx_v_path, __pyx_kp_u_xml_2, 0, PY_SSIZE_T_MAX, 1); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(7, 169, __pyx_L7_error)
          if (likely(__pyx_t_10)) {

            /* "mujoco_py/cymj.pyx":170
 *             model = mj_loadModel(path.encode(), NULL)
 *         elif (path.endswith(".xml")):
 *             model = mj_loadXML(path.encode(), NULL, errstr, 300)             # <<<<<<<<<<<<<<
 *         else:
 *             raise RuntimeError("Unrecognized extension for %s. Expected .xml or .mjb" % path)
 */
            if (unlikely(__pyx_v_path == Py_None)) {
              PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
              __PYX_ERR(7, 170, __pyx_L7_error)
            }
            __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_path, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 170, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_12 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_12) && PyErr_Occurred())) __PYX_ERR(7, 170, __pyx_L7_error)
            __pyx_v_model = mj_loadXML(__pyx_t_12, NULL, __pyx_v_errstr, 0x12C);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

            /* "mujoco_py/cymj.pyx":169
 *         if (path.endswith(".mjb")):
 *             model = mj_loadModel(path.encode(), NULL)
 *         elif (path.endswith(".xml")):             # <<<<<<<<<<<<<<
 *             model = mj_loadXML(path.encode(), NULL, errstr, 300)
 *         else:
 */
            goto __pyx_L13;
          }

          /* "mujoco_py/cymj.pyx":172
 *             model = mj_loadXML(path.encode(), NULL, errstr, 300)
 *         else:
 *             raise RuntimeError("Unrecognized extension for %s. Expected .xml or .mjb" % path)             # <<<<<<<<<<<<<<
 * 
 *     if model == NULL:
 */
          /*else*/ {
            __pyx_t_1 = PyUnicode_Format(__pyx_kp_u_Unrecognized_extension_for_s_Exp, __pyx_v_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 172, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 172, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_Raise(__pyx_t_2, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __PYX_ERR(7, 172, __pyx_L7_error)
          }
          __pyx_L13:;

          /* "mujoco_py/cymj.pyx":166
 *     cdef char errstr[300]
 *     cdef mjModel *model
 *     with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *         if (path.endswith(".mjb")):
 *             model = mj_loadModel(path.encode(), NULL)
 */
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("mujoco_py.cymj.load_model_from_path", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(7, 166, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_6 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 166, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(7, 166, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (__pyx_t_10 < 0) __PYX_ERR(7, 166, __pyx_L9_except_error)
          __pyx_t_14 = (!__pyx_t_10);
          if (unlikely(__pyx_t_14)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_XGIVEREF(__pyx_t_3);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_3);
            __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0; 
            __PYX_ERR(7, 166, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_5) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__17, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L17;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L1_error;
    __pyx_L17:;
  }

  /* "mujoco_py/cymj.pyx":174
 *             raise RuntimeError("Unrecognized extension for %s. Expected .xml or .mjb" % path)
 * 
 *     if model == NULL:             # <<<<<<<<<<<<<<
 *         raise Exception('Failed to load XML file: %s. mj_loadXML error: %s' % (path, errstr,))
 *     return WrapMjModel(model)
 */
  __pyx_t_14 = (__pyx_v_model == NULL);
  if (unlikely(__pyx_t_14)) {

    /* "mujoco_py/cymj.pyx":175
 * 
 *     if model == NULL:
 *         raise Exception('Failed to load XML file: %s. mj_loadXML error: %s' % (path, errstr,))             # <<<<<<<<<<<<<<
 *     return WrapMjModel(model)
 * 
 */
    __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_15 = 0;
    __pyx_t_16 = 127;
    __Pyx_INCREF(__pyx_kp_u_Failed_to_load_XML_file);
    __pyx_t_15 += 25;
    __Pyx_GIVEREF(__pyx_kp_u_Failed_to_load_XML_file);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_Failed_to_load_XML_file);
    __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_16 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_16) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_16;
    __pyx_t_15 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
    __pyx_t_1 = 0;
    __Pyx_INCREF(__pyx_kp_u_mj_loadXML_error);
    __pyx_t_15 += 20;
    __Pyx_GIVEREF(__pyx_kp_u_mj_loadXML_error);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_mj_loadXML_error);
    __pyx_t_1 = __Pyx_PyObject_FromString(__pyx_v_errstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_1), __pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_16 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_16) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_16;
    __pyx_t_15 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, __pyx_t_15, __pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(7, 175, __pyx_L1_error)

    /* "mujoco_py/cymj.pyx":174
 *             raise RuntimeError("Unrecognized extension for %s. Expected .xml or .mjb" % path)
 * 
 *     if model == NULL:             # <<<<<<<<<<<<<<
 *         raise Exception('Failed to load XML file: %s. mj_loadXML error: %s' % (path, errstr,))
 *     return WrapMjModel(model)
 */
  }

  /* "mujoco_py/cymj.pyx":176
 *     if model == NULL:
 *         raise Exception('Failed to load XML file: %s. mj_loadXML error: %s' % (path, errstr,))
 *     return WrapMjModel(model)             # <<<<<<<<<<<<<<
 * 
 * def load_model_from_xml(str xml_str):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjModel(__pyx_v_model)); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/cymj.pyx":162
 * 
 * 
 * def load_model_from_path(str path):             # <<<<<<<<<<<<<<
 *     """Loads model from path."""
 *     cdef char errstr[300]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.load_model_from_path", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/cymj.pyx":178
 *     return WrapMjModel(model)
 * 
 * def load_model_from_xml(str xml_str):             # <<<<<<<<<<<<<<
 *     """
 *     Loads and returns a PyMjModel model from a string containing XML markup.
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_507load_model_from_xml(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_506load_model_from_xml, "\n    Loads and returns a PyMjModel model from a string containing XML markup.\n    Saves the XML string used to create the returned model in `model.xml`.\n    ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_507load_model_from_xml = {"load_model_from_xml", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_507load_model_from_xml, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_506load_model_from_xml};
static PyObject *__pyx_pw_9mujoco_py_4cymj_507load_model_from_xml(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_xml_str = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("load_model_from_xml (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_xml_str,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_xml_str)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 178, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "load_model_from_xml") < 0)) __PYX_ERR(7, 178, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_xml_str = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("load_model_from_xml", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 178, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.load_model_from_xml", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xml_str), (&PyUnicode_Type), 1, "xml_str", 1))) __PYX_ERR(7, 178, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_506load_model_from_xml(__pyx_self, __pyx_v_xml_str);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_506load_model_from_xml(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_xml_str) {
  char __pyx_v_errstr[0x12C];
  mjModel *__pyx_v_model;
  PyObject *__pyx_v_fp = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  char const *__pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  int __pyx_t_16;
  int __pyx_t_17;
  Py_ssize_t __pyx_t_18;
  Py_UCS4 __pyx_t_19;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("load_model_from_xml", 1);

  /* "mujoco_py/cymj.pyx":185
 *     cdef char errstr[300]
 *     cdef mjModel *model
 *     with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *         with tempfile.NamedTemporaryFile(suffix=".xml", delete=True) as fp:
 *             fp.write(xml_str.encode())
 */
  /*with:*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_wrap_mujoco_warning); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 185, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 185, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 185, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 185, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 185, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {

          /* "mujoco_py/cymj.pyx":186
 *     cdef mjModel *model
 *     with wrap_mujoco_warning():
 *         with tempfile.NamedTemporaryFile(suffix=".xml", delete=True) as fp:             # <<<<<<<<<<<<<<
 *             fp.write(xml_str.encode())
 *             fp.flush()
 */
          /*with:*/ {
            __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_tempfile); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 186, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_NamedTemporaryFile); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 186, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 186, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_suffix, __pyx_kp_u_xml_2) < 0) __PYX_ERR(7, 186, __pyx_L7_error)
            if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_delete, Py_True) < 0) __PYX_ERR(7, 186, __pyx_L7_error)
            __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 186, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_10 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_10)) __PYX_ERR(7, 186, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 186, __pyx_L13_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_6 = NULL;
            __pyx_t_4 = 0;
            #if CYTHON_UNPACK_METHODS
            if (likely(PyMethod_Check(__pyx_t_2))) {
              __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
              if (likely(__pyx_t_6)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
                __Pyx_INCREF(__pyx_t_6);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_2, function);
                __pyx_t_4 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
              __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 186, __pyx_L13_error)
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            }
            __pyx_t_2 = __pyx_t_1;
            __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            /*try:*/ {
              {
                __Pyx_PyThreadState_declare
                __Pyx_PyThreadState_assign
                __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
                __Pyx_XGOTREF(__pyx_t_11);
                __Pyx_XGOTREF(__pyx_t_12);
                __Pyx_XGOTREF(__pyx_t_13);
                /*try:*/ {
                  __pyx_v_fp = __pyx_t_2;
                  __pyx_t_2 = 0;

                  /* "mujoco_py/cymj.pyx":187
 *     with wrap_mujoco_warning():
 *         with tempfile.NamedTemporaryFile(suffix=".xml", delete=True) as fp:
 *             fp.write(xml_str.encode())             # <<<<<<<<<<<<<<
 *             fp.flush()
 *             model = mj_loadXML(fp.name.encode(), NULL, errstr, 300)
 */
                  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_fp, __pyx_n_s_write); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 187, __pyx_L17_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  if (unlikely(__pyx_v_xml_str == Py_None)) {
                    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
                    __PYX_ERR(7, 187, __pyx_L17_error)
                  }
                  __pyx_t_1 = PyUnicode_AsEncodedString(__pyx_v_xml_str, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 187, __pyx_L17_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __pyx_t_6 = NULL;
                  __pyx_t_4 = 0;
                  #if CYTHON_UNPACK_METHODS
                  if (likely(PyMethod_Check(__pyx_t_3))) {
                    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
                    if (likely(__pyx_t_6)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
                      __Pyx_INCREF(__pyx_t_6);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_3, function);
                      __pyx_t_4 = 1;
                    }
                  }
                  #endif
                  {
                    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_1};
                    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
                    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 187, __pyx_L17_error)
                    __Pyx_GOTREF(__pyx_t_2);
                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                  }
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

                  /* "mujoco_py/cymj.pyx":188
 *         with tempfile.NamedTemporaryFile(suffix=".xml", delete=True) as fp:
 *             fp.write(xml_str.encode())
 *             fp.flush()             # <<<<<<<<<<<<<<
 *             model = mj_loadXML(fp.name.encode(), NULL, errstr, 300)
 *     if model == NULL:
 */
                  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_fp, __pyx_n_s_flush); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 188, __pyx_L17_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  __pyx_t_1 = NULL;
                  __pyx_t_4 = 0;
                  #if CYTHON_UNPACK_METHODS
                  if (likely(PyMethod_Check(__pyx_t_3))) {
                    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
                    if (likely(__pyx_t_1)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
                      __Pyx_INCREF(__pyx_t_1);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_3, function);
                      __pyx_t_4 = 1;
                    }
                  }
                  #endif
                  {
                    PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
                    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
                    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 188, __pyx_L17_error)
                    __Pyx_GOTREF(__pyx_t_2);
                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                  }
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

                  /* "mujoco_py/cymj.pyx":189
 *             fp.write(xml_str.encode())
 *             fp.flush()
 *             model = mj_loadXML(fp.name.encode(), NULL, errstr, 300)             # <<<<<<<<<<<<<<
 *     if model == NULL:
 *         raise Exception('%s\nFailed to load XML from string. mj_loadXML error: %s' % (xml_str, errstr,))
 */
                  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_fp, __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 189, __pyx_L17_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_encode); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 189, __pyx_L17_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                  __pyx_t_3 = NULL;
                  __pyx_t_4 = 0;
                  #if CYTHON_UNPACK_METHODS
                  if (likely(PyMethod_Check(__pyx_t_1))) {
                    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
                    if (likely(__pyx_t_3)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                      __Pyx_INCREF(__pyx_t_3);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_1, function);
                      __pyx_t_4 = 1;
                    }
                  }
                  #endif
                  {
                    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
                    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
                    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                    if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 189, __pyx_L17_error)
                    __Pyx_GOTREF(__pyx_t_2);
                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  }
                  __pyx_t_14 = __Pyx_PyObject_AsString(__pyx_t_2); if (unlikely((!__pyx_t_14) && PyErr_Occurred())) __PYX_ERR(7, 189, __pyx_L17_error)
                  __pyx_v_model = mj_loadXML(__pyx_t_14, NULL, __pyx_v_errstr, 0x12C);
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

                  /* "mujoco_py/cymj.pyx":186
 *     cdef mjModel *model
 *     with wrap_mujoco_warning():
 *         with tempfile.NamedTemporaryFile(suffix=".xml", delete=True) as fp:             # <<<<<<<<<<<<<<
 *             fp.write(xml_str.encode())
 *             fp.flush()
 */
                }
                __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                goto __pyx_L22_try_end;
                __pyx_L17_error:;
                __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                /*except:*/ {
                  __Pyx_AddTraceback("mujoco_py.cymj.load_model_from_xml", __pyx_clineno, __pyx_lineno, __pyx_filename);
                  if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(7, 186, __pyx_L19_except_error)
                  __Pyx_XGOTREF(__pyx_t_2);
                  __Pyx_XGOTREF(__pyx_t_1);
                  __Pyx_XGOTREF(__pyx_t_3);
                  __pyx_t_6 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 186, __pyx_L19_except_error)
                  __Pyx_GOTREF(__pyx_t_6);
                  __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_6, NULL);
                  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                  if (unlikely(!__pyx_t_15)) __PYX_ERR(7, 186, __pyx_L19_except_error)
                  __Pyx_GOTREF(__pyx_t_15);
                  __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_15);
                  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
                  if (__pyx_t_16 < 0) __PYX_ERR(7, 186, __pyx_L19_except_error)
                  __pyx_t_17 = (!__pyx_t_16);
                  if (unlikely(__pyx_t_17)) {
                    __Pyx_GIVEREF(__pyx_t_2);
                    __Pyx_GIVEREF(__pyx_t_1);
                    __Pyx_XGIVEREF(__pyx_t_3);
                    __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_3);
                    __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0; 
                    __PYX_ERR(7, 186, __pyx_L19_except_error)
                  }
                  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                  goto __pyx_L18_exception_handled;
                }
                __pyx_L19_except_error:;
                __Pyx_XGIVEREF(__pyx_t_11);
                __Pyx_XGIVEREF(__pyx_t_12);
                __Pyx_XGIVEREF(__pyx_t_13);
                __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
                goto __pyx_L7_error;
                __pyx_L18_exception_handled:;
                __Pyx_XGIVEREF(__pyx_t_11);
                __Pyx_XGIVEREF(__pyx_t_12);
                __Pyx_XGIVEREF(__pyx_t_13);
                __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
                __pyx_L22_try_end:;
              }
            }
            /*finally:*/ {
              /*normal exit:*/{
                if (__pyx_t_10) {
                  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_tuple__17, NULL);
                  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                  if (unlikely(!__pyx_t_13)) __PYX_ERR(7, 186, __pyx_L7_error)
                  __Pyx_GOTREF(__pyx_t_13);
                  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                }
                goto __pyx_L16;
              }
              __pyx_L16:;
            }
            goto __pyx_L26;
            __pyx_L13_error:;
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            goto __pyx_L7_error;
            __pyx_L26:;
          }

          /* "mujoco_py/cymj.pyx":185
 *     cdef char errstr[300]
 *     cdef mjModel *model
 *     with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *         with tempfile.NamedTemporaryFile(suffix=".xml", delete=True) as fp:
 *             fp.write(xml_str.encode())
 */
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("mujoco_py.cymj.load_model_from_xml", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(7, 185, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_6 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 185, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_10)) __PYX_ERR(7, 185, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (__pyx_t_17 < 0) __PYX_ERR(7, 185, __pyx_L9_except_error)
          __pyx_t_16 = (!__pyx_t_17);
          if (unlikely(__pyx_t_16)) {
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_XGIVEREF(__pyx_t_2);
            __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_1, __pyx_t_2);
            __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0; 
            __PYX_ERR(7, 185, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_5) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__17, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 185, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L30;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L1_error;
    __pyx_L30:;
  }

  /* "mujoco_py/cymj.pyx":190
 *             fp.flush()
 *             model = mj_loadXML(fp.name.encode(), NULL, errstr, 300)
 *     if model == NULL:             # <<<<<<<<<<<<<<
 *         raise Exception('%s\nFailed to load XML from string. mj_loadXML error: %s' % (xml_str, errstr,))
 *     return WrapMjModel(model)
 */
  __pyx_t_16 = (__pyx_v_model == NULL);
  if (unlikely(__pyx_t_16)) {

    /* "mujoco_py/cymj.pyx":191
 *             model = mj_loadXML(fp.name.encode(), NULL, errstr, 300)
 *     if model == NULL:
 *         raise Exception('%s\nFailed to load XML from string. mj_loadXML error: %s' % (xml_str, errstr,))             # <<<<<<<<<<<<<<
 *     return WrapMjModel(model)
 * 
 */
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 191, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_18 = 0;
    __pyx_t_19 = 127;
    __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_xml_str); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 191, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_19 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_19) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_19;
    __pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __pyx_t_1 = 0;
    __Pyx_INCREF(__pyx_kp_u_Failed_to_load_XML_from_string);
    __pyx_t_18 += 51;
    __Pyx_GIVEREF(__pyx_kp_u_Failed_to_load_XML_from_string);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_kp_u_Failed_to_load_XML_from_string);
    __pyx_t_1 = __Pyx_PyObject_FromString(__pyx_v_errstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 191, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_1), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 191, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_19 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_19) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_19;
    __pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, __pyx_t_18, __pyx_t_19); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 191, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 191, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(7, 191, __pyx_L1_error)

    /* "mujoco_py/cymj.pyx":190
 *             fp.flush()
 *             model = mj_loadXML(fp.name.encode(), NULL, errstr, 300)
 *     if model == NULL:             # <<<<<<<<<<<<<<
 *         raise Exception('%s\nFailed to load XML from string. mj_loadXML error: %s' % (xml_str, errstr,))
 *     return WrapMjModel(model)
 */
  }

  /* "mujoco_py/cymj.pyx":192
 *     if model == NULL:
 *         raise Exception('%s\nFailed to load XML from string. mj_loadXML error: %s' % (xml_str, errstr,))
 *     return WrapMjModel(model)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjModel(__pyx_v_model)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "mujoco_py/cymj.pyx":178
 *     return WrapMjModel(model)
 * 
 * def load_model_from_xml(str xml_str):             # <<<<<<<<<<<<<<
 *     """
 *     Loads and returns a PyMjModel model from a string containing XML markup.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.load_model_from_xml", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_fp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "mujoco_py/cymj.pyx":195
 * 
 * 
 * def load_model_from_mjb(bytes mjb_bytes):             # <<<<<<<<<<<<<<
 *     """
 *     Loads and returns a PyMjModel model from bytes encoded MJB.
 */

/* Python wrapper */
static PyObject *__pyx_pw_9mujoco_py_4cymj_509load_model_from_mjb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9mujoco_py_4cymj_508load_model_from_mjb, "\n    Loads and returns a PyMjModel model from bytes encoded MJB.\n    MJB is a MuJoCo-custom format that includes assets like meshes/textures.\n    ");
static PyMethodDef __pyx_mdef_9mujoco_py_4cymj_509load_model_from_mjb = {"load_model_from_mjb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_509load_model_from_mjb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_508load_model_from_mjb};
static PyObject *__pyx_pw_9mujoco_py_4cymj_509load_model_from_mjb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_mjb_bytes = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("load_model_from_mjb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mjb_bytes,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mjb_bytes)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 195, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "load_model_from_mjb") < 0)) __PYX_ERR(7, 195, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_mjb_bytes = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("load_model_from_mjb", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 195, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("mujoco_py.cymj.load_model_from_mjb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mjb_bytes), (&PyBytes_Type), 1, "mjb_bytes", 1))) __PYX_ERR(7, 195, __pyx_L1_error)
  __pyx_r = __pyx_pf_9mujoco_py_4cymj_508load_model_from_mjb(__pyx_self, __pyx_v_mjb_bytes);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9mujoco_py_4cymj_508load_model_from_mjb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_mjb_bytes) {
  mjModel *__pyx_v_model;
  PyObject *__pyx_v_td = NULL;
  PyObject *__pyx_v_filename = NULL;
  PyObject *__pyx_v_f = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  int __pyx_t_19;
  int __pyx_t_20;
  char const *__pyx_t_21;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("load_model_from_mjb", 1);

  /* "mujoco_py/cymj.pyx":201
 *     """
 *     cdef mjModel *model
 *     with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.mjb')
 */
  /*with:*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_wrap_mujoco_warning); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 201, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 201, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 201, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {

          /* "mujoco_py/cymj.pyx":202
 *     cdef mjModel *model
 *     with wrap_mujoco_warning():
 *         with TemporaryDirectory() as td:             # <<<<<<<<<<<<<<
 *             filename = os.path.join(td, 'model.mjb')
 *             with open(filename, 'wb') as f:
 */
          /*with:*/ {
            __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_TemporaryDirectory); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 202, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_3 = NULL;
            __pyx_t_4 = 0;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_2))) {
              __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
              if (likely(__pyx_t_3)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
                __Pyx_INCREF(__pyx_t_3);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_2, function);
                __pyx_t_4 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
              __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
              __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
              if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 202, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            }
            __pyx_t_10 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_10)) __PYX_ERR(7, 202, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 202, __pyx_L13_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_6 = NULL;
            __pyx_t_4 = 0;
            #if CYTHON_UNPACK_METHODS
            if (likely(PyMethod_Check(__pyx_t_3))) {
              __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
              if (likely(__pyx_t_6)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
                __Pyx_INCREF(__pyx_t_6);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_3, function);
                __pyx_t_4 = 1;
              }
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
              __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 202, __pyx_L13_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            }
            __pyx_t_3 = __pyx_t_2;
            __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            /*try:*/ {
              {
                __Pyx_PyThreadState_declare
                __Pyx_PyThreadState_assign
                __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
                __Pyx_XGOTREF(__pyx_t_11);
                __Pyx_XGOTREF(__pyx_t_12);
                __Pyx_XGOTREF(__pyx_t_13);
                /*try:*/ {
                  __pyx_v_td = __pyx_t_3;
                  __pyx_t_3 = 0;

                  /* "mujoco_py/cymj.pyx":203
 *     with wrap_mujoco_warning():
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.mjb')             # <<<<<<<<<<<<<<
 *             with open(filename, 'wb') as f:
 *                 f.write(mjb_bytes)
 */
                  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 203, __pyx_L17_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 203, __pyx_L17_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_join); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 203, __pyx_L17_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __pyx_t_2 = NULL;
                  __pyx_t_4 = 0;
                  #if CYTHON_UNPACK_METHODS
                  if (likely(PyMethod_Check(__pyx_t_1))) {
                    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
                    if (likely(__pyx_t_2)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                      __Pyx_INCREF(__pyx_t_2);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_1, function);
                      __pyx_t_4 = 1;
                    }
                  }
                  #endif
                  {
                    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_td, __pyx_kp_u_model_mjb};
                    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
                    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                    if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 203, __pyx_L17_error)
                    __Pyx_GOTREF(__pyx_t_3);
                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  }
                  __pyx_v_filename = __pyx_t_3;
                  __pyx_t_3 = 0;

                  /* "mujoco_py/cymj.pyx":204
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.mjb')
 *             with open(filename, 'wb') as f:             # <<<<<<<<<<<<<<
 *                 f.write(mjb_bytes)
 *             model = mj_loadModel(filename.encode(), NULL)
 */
                  /*with:*/ {
                    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 204, __pyx_L17_error)
                    __Pyx_GOTREF(__pyx_t_3);
                    __Pyx_INCREF(__pyx_v_filename);
                    __Pyx_GIVEREF(__pyx_v_filename);
                    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_filename)) __PYX_ERR(7, 204, __pyx_L17_error);
                    __Pyx_INCREF(__pyx_n_u_wb);
                    __Pyx_GIVEREF(__pyx_n_u_wb);
                    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_wb)) __PYX_ERR(7, 204, __pyx_L17_error);
                    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_open, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 204, __pyx_L17_error)
                    __Pyx_GOTREF(__pyx_t_1);
                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                    __pyx_t_14 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_14)) __PYX_ERR(7, 204, __pyx_L17_error)
                    __Pyx_GOTREF(__pyx_t_14);
                    __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 204, __pyx_L23_error)
                    __Pyx_GOTREF(__pyx_t_2);
                    __pyx_t_6 = NULL;
                    __pyx_t_4 = 0;
                    #if CYTHON_UNPACK_METHODS
                    if (likely(PyMethod_Check(__pyx_t_2))) {
                      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
                      if (likely(__pyx_t_6)) {
                        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
                        __Pyx_INCREF(__pyx_t_6);
                        __Pyx_INCREF(function);
                        __Pyx_DECREF_SET(__pyx_t_2, function);
                        __pyx_t_4 = 1;
                      }
                    }
                    #endif
                    {
                      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
                      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
                      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                      if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 204, __pyx_L23_error)
                      __Pyx_GOTREF(__pyx_t_3);
                      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                    }
                    __pyx_t_2 = __pyx_t_3;
                    __pyx_t_3 = 0;
                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                    /*try:*/ {
                      {
                        __Pyx_PyThreadState_declare
                        __Pyx_PyThreadState_assign
                        __Pyx_ExceptionSave(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
                        __Pyx_XGOTREF(__pyx_t_15);
                        __Pyx_XGOTREF(__pyx_t_16);
                        __Pyx_XGOTREF(__pyx_t_17);
                        /*try:*/ {
                          __pyx_v_f = __pyx_t_2;
                          __pyx_t_2 = 0;

                          /* "mujoco_py/cymj.pyx":205
 *             filename = os.path.join(td, 'model.mjb')
 *             with open(filename, 'wb') as f:
 *                 f.write(mjb_bytes)             # <<<<<<<<<<<<<<
 *             model = mj_loadModel(filename.encode(), NULL)
 *     if model == NULL:
 */
                          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_write); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 205, __pyx_L27_error)
                          __Pyx_GOTREF(__pyx_t_1);
                          __pyx_t_3 = NULL;
                          __pyx_t_4 = 0;
                          #if CYTHON_UNPACK_METHODS
                          if (likely(PyMethod_Check(__pyx_t_1))) {
                            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
                            if (likely(__pyx_t_3)) {
                              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                              __Pyx_INCREF(__pyx_t_3);
                              __Pyx_INCREF(function);
                              __Pyx_DECREF_SET(__pyx_t_1, function);
                              __pyx_t_4 = 1;
                            }
                          }
                          #endif
                          {
                            PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_mjb_bytes};
                            __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
                            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                            if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 205, __pyx_L27_error)
                            __Pyx_GOTREF(__pyx_t_2);
                            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                          }
                          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

                          /* "mujoco_py/cymj.pyx":204
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.mjb')
 *             with open(filename, 'wb') as f:             # <<<<<<<<<<<<<<
 *                 f.write(mjb_bytes)
 *             model = mj_loadModel(filename.encode(), NULL)
 */
                        }
                        __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
                        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                        __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
                        goto __pyx_L32_try_end;
                        __pyx_L27_error:;
                        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                        /*except:*/ {
                          __Pyx_AddTraceback("mujoco_py.cymj.load_model_from_mjb", __pyx_clineno, __pyx_lineno, __pyx_filename);
                          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(7, 204, __pyx_L29_except_error)
                          __Pyx_XGOTREF(__pyx_t_2);
                          __Pyx_XGOTREF(__pyx_t_1);
                          __Pyx_XGOTREF(__pyx_t_3);
                          __pyx_t_6 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 204, __pyx_L29_except_error)
                          __Pyx_GOTREF(__pyx_t_6);
                          __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_6, NULL);
                          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                          if (unlikely(!__pyx_t_18)) __PYX_ERR(7, 204, __pyx_L29_except_error)
                          __Pyx_GOTREF(__pyx_t_18);
                          __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_t_18);
                          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                          if (__pyx_t_19 < 0) __PYX_ERR(7, 204, __pyx_L29_except_error)
                          __pyx_t_20 = (!__pyx_t_19);
                          if (unlikely(__pyx_t_20)) {
                            __Pyx_GIVEREF(__pyx_t_2);
                            __Pyx_GIVEREF(__pyx_t_1);
                            __Pyx_XGIVEREF(__pyx_t_3);
                            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_3);
                            __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0; 
                            __PYX_ERR(7, 204, __pyx_L29_except_error)
                          }
                          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                          goto __pyx_L28_exception_handled;
                        }
                        __pyx_L29_except_error:;
                        __Pyx_XGIVEREF(__pyx_t_15);
                        __Pyx_XGIVEREF(__pyx_t_16);
                        __Pyx_XGIVEREF(__pyx_t_17);
                        __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
                        goto __pyx_L17_error;
                        __pyx_L28_exception_handled:;
                        __Pyx_XGIVEREF(__pyx_t_15);
                        __Pyx_XGIVEREF(__pyx_t_16);
                        __Pyx_XGIVEREF(__pyx_t_17);
                        __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
                        __pyx_L32_try_end:;
                      }
                    }
                    /*finally:*/ {
                      /*normal exit:*/{
                        if (__pyx_t_14) {
                          __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_tuple__17, NULL);
                          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                          if (unlikely(!__pyx_t_17)) __PYX_ERR(7, 204, __pyx_L17_error)
                          __Pyx_GOTREF(__pyx_t_17);
                          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                        }
                        goto __pyx_L26;
                      }
                      __pyx_L26:;
                    }
                    goto __pyx_L36;
                    __pyx_L23_error:;
                    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                    goto __pyx_L17_error;
                    __pyx_L36:;
                  }

                  /* "mujoco_py/cymj.pyx":206
 *             with open(filename, 'wb') as f:
 *                 f.write(mjb_bytes)
 *             model = mj_loadModel(filename.encode(), NULL)             # <<<<<<<<<<<<<<
 *     if model == NULL:
 *         raise Exception('%s\nFailed to load MJB')
 */
                  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_filename, __pyx_n_s_encode); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 206, __pyx_L17_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __pyx_t_2 = NULL;
                  __pyx_t_4 = 0;
                  #if CYTHON_UNPACK_METHODS
                  if (likely(PyMethod_Check(__pyx_t_1))) {
                    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
                    if (likely(__pyx_t_2)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                      __Pyx_INCREF(__pyx_t_2);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_1, function);
                      __pyx_t_4 = 1;
                    }
                  }
                  #endif
                  {
                    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
                    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
                    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                    if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 206, __pyx_L17_error)
                    __Pyx_GOTREF(__pyx_t_3);
                    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  }
                  __pyx_t_21 = __Pyx_PyObject_AsString(__pyx_t_3); if (unlikely((!__pyx_t_21) && PyErr_Occurred())) __PYX_ERR(7, 206, __pyx_L17_error)
                  __pyx_v_model = mj_loadModel(__pyx_t_21, NULL);
                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

                  /* "mujoco_py/cymj.pyx":202
 *     cdef mjModel *model
 *     with wrap_mujoco_warning():
 *         with TemporaryDirectory() as td:             # <<<<<<<<<<<<<<
 *             filename = os.path.join(td, 'model.mjb')
 *             with open(filename, 'wb') as f:
 */
                }
                __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                goto __pyx_L22_try_end;
                __pyx_L17_error:;
                __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                /*except:*/ {
                  __Pyx_AddTraceback("mujoco_py.cymj.load_model_from_mjb", __pyx_clineno, __pyx_lineno, __pyx_filename);
                  if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(7, 202, __pyx_L19_except_error)
                  __Pyx_XGOTREF(__pyx_t_3);
                  __Pyx_XGOTREF(__pyx_t_1);
                  __Pyx_XGOTREF(__pyx_t_2);
                  __pyx_t_6 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 202, __pyx_L19_except_error)
                  __Pyx_GOTREF(__pyx_t_6);
                  __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_6, NULL);
                  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                  if (unlikely(!__pyx_t_14)) __PYX_ERR(7, 202, __pyx_L19_except_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_14);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  if (__pyx_t_20 < 0) __PYX_ERR(7, 202, __pyx_L19_except_error)
                  __pyx_t_19 = (!__pyx_t_20);
                  if (unlikely(__pyx_t_19)) {
                    __Pyx_GIVEREF(__pyx_t_3);
                    __Pyx_GIVEREF(__pyx_t_1);
                    __Pyx_XGIVEREF(__pyx_t_2);
                    __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_1, __pyx_t_2);
                    __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0; 
                    __PYX_ERR(7, 202, __pyx_L19_except_error)
                  }
                  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                  goto __pyx_L18_exception_handled;
                }
                __pyx_L19_except_error:;
                __Pyx_XGIVEREF(__pyx_t_11);
                __Pyx_XGIVEREF(__pyx_t_12);
                __Pyx_XGIVEREF(__pyx_t_13);
                __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
                goto __pyx_L7_error;
                __pyx_L18_exception_handled:;
                __Pyx_XGIVEREF(__pyx_t_11);
                __Pyx_XGIVEREF(__pyx_t_12);
                __Pyx_XGIVEREF(__pyx_t_13);
                __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
                __pyx_L22_try_end:;
              }
            }
            /*finally:*/ {
              /*normal exit:*/{
                if (__pyx_t_10) {
                  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_tuple__17, NULL);
                  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                  if (unlikely(!__pyx_t_13)) __PYX_ERR(7, 202, __pyx_L7_error)
                  __Pyx_GOTREF(__pyx_t_13);
                  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                }
                goto __pyx_L16;
              }
              __pyx_L16:;
            }
            goto __pyx_L40;
            __pyx_L13_error:;
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            goto __pyx_L7_error;
            __pyx_L40:;
          }

          /* "mujoco_py/cymj.pyx":201
 *     """
 *     cdef mjModel *model
 *     with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.mjb')
 */
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("mujoco_py.cymj.load_model_from_mjb", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(7, 201, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_6 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 201, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_10)) __PYX_ERR(7, 201, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (__pyx_t_19 < 0) __PYX_ERR(7, 201, __pyx_L9_except_error)
          __pyx_t_20 = (!__pyx_t_19);
          if (unlikely(__pyx_t_20)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_XGIVEREF(__pyx_t_3);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_3);
            __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0; 
            __PYX_ERR(7, 201, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_5) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__17, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L44;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L1_error;
    __pyx_L44:;
  }

  /* "mujoco_py/cymj.pyx":207
 *                 f.write(mjb_bytes)
 *             model = mj_loadModel(filename.encode(), NULL)
 *     if model == NULL:             # <<<<<<<<<<<<<<
 *         raise Exception('%s\nFailed to load MJB')
 *     return WrapMjModel(model)
 */
  __pyx_t_20 = (__pyx_v_model == NULL);
  if (unlikely(__pyx_t_20)) {

    /* "mujoco_py/cymj.pyx":208
 *             model = mj_loadModel(filename.encode(), NULL)
 *     if model == NULL:
 *         raise Exception('%s\nFailed to load MJB')             # <<<<<<<<<<<<<<
 *     return WrapMjModel(model)
 */
    __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__58, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(7, 208, __pyx_L1_error)

    /* "mujoco_py/cymj.pyx":207
 *                 f.write(mjb_bytes)
 *             model = mj_loadModel(filename.encode(), NULL)
 *     if model == NULL:             # <<<<<<<<<<<<<<
 *         raise Exception('%s\nFailed to load MJB')
 *     return WrapMjModel(model)
 */
  }

  /* "mujoco_py/cymj.pyx":209
 *     if model == NULL:
 *         raise Exception('%s\nFailed to load MJB')
 *     return WrapMjModel(model)             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = ((PyObject *)__pyx_f_9mujoco_py_4cymj_WrapMjModel(__pyx_v_model)); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "mujoco_py/cymj.pyx":195
 * 
 * 
 * def load_model_from_mjb(bytes mjb_bytes):             # <<<<<<<<<<<<<<
 *     """
 *     Loads and returns a PyMjModel model from bytes encoded MJB.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("mujoco_py.cymj.load_model_from_mjb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_td);
  __Pyx_XDECREF(__pyx_v_filename);
  __Pyx_XDECREF(__pyx_v_f);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjLROpt __pyx_vtable_9mujoco_py_4cymj_PyMjLROpt;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjLROpt(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjLROpt;
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjLROpt(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjLROpt) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_mode(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_4mode_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_mode(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_4mode_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_useexisting(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_11useexisting_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_useexisting(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_11useexisting_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_uselimit(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8uselimit_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_uselimit(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8uselimit_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_accel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_5accel_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_accel(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_5accel_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_maxforce(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8maxforce_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_maxforce(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8maxforce_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_timeconst(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_9timeconst_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_timeconst(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_9timeconst_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_timestep(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8timestep_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_timestep(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8timestep_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_inttotal(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8inttotal_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_inttotal(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8inttotal_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_inteval(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_7inteval_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_inteval(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_7inteval_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_tolrange(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8tolrange_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_tolrange(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_8tolrange_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjLROpt[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjLROpt_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjLROpt[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_uintptr, 0, (char *)0, 0},
  {(char *)"mode", __pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_mode, __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_mode, (char *)0, 0},
  {(char *)"useexisting", __pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_useexisting, __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_useexisting, (char *)0, 0},
  {(char *)"uselimit", __pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_uselimit, __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_uselimit, (char *)0, 0},
  {(char *)"accel", __pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_accel, __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_accel, (char *)0, 0},
  {(char *)"maxforce", __pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_maxforce, __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_maxforce, (char *)0, 0},
  {(char *)"timeconst", __pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_timeconst, __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_timeconst, (char *)0, 0},
  {(char *)"timestep", __pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_timestep, __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_timestep, (char *)0, 0},
  {(char *)"inttotal", __pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_inttotal, __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_inttotal, (char *)0, 0},
  {(char *)"inteval", __pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_inteval, __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_inteval, (char *)0, 0},
  {(char *)"tolrange", __pyx_getprop_9mujoco_py_4cymj_9PyMjLROpt_tolrange, __pyx_setprop_9mujoco_py_4cymj_9PyMjLROpt_tolrange, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjLROpt_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjLROpt},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjLROpt},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjLROpt},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjLROpt},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjLROpt_spec = {
  "mujoco_py.cymj.PyMjLROpt",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_9mujoco_py_4cymj_PyMjLROpt_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjLROpt = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjLROpt", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjLROpt, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjLROpt, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjLROpt, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjLROpt, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVFS __pyx_vtable_9mujoco_py_4cymj_PyMjVFS;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVFS(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjVFS;
  p->_filesize = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_filename = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVFS(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVFS) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_9mujoco_py_4cymj_7PyMjVFS_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_filesize);
  Py_CLEAR(p->_filename);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjVFS(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)o;
  if (p->_filesize) {
    e = (*v)(((PyObject *)p->_filesize), a); if (e) return e;
  }
  if (p->_filename) {
    e = (*v)(((PyObject *)p->_filename), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjVFS(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *)o;
  tmp = ((PyObject*)p->_filesize);
  p->_filesize = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_filename);
  p->_filename = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_7PyMjVFS_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_7PyMjVFS_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_7PyMjVFS_nfile(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_7PyMjVFS_5nfile_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_7PyMjVFS_nfile(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_7PyMjVFS_5nfile_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_7PyMjVFS_filesize(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_7PyMjVFS_8filesize_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_7PyMjVFS_filename(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_7PyMjVFS_8filename_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjVFS[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_7PyMjVFS_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjVFS[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_7PyMjVFS_uintptr, 0, (char *)0, 0},
  {(char *)"nfile", __pyx_getprop_9mujoco_py_4cymj_7PyMjVFS_nfile, __pyx_setprop_9mujoco_py_4cymj_7PyMjVFS_nfile, (char *)0, 0},
  {(char *)"filesize", __pyx_getprop_9mujoco_py_4cymj_7PyMjVFS_filesize, 0, (char *)0, 0},
  {(char *)"filename", __pyx_getprop_9mujoco_py_4cymj_7PyMjVFS_filename, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjVFS_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVFS},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjVFS},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjVFS},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjVFS},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjVFS},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjVFS},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjVFS_spec = {
  "mujoco_py.cymj.PyMjVFS",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjVFS_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjVFS = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjVFS", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVFS, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjVFS, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjVFS, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjVFS, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjVFS, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjVFS, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjOption __pyx_vtable_9mujoco_py_4cymj_PyMjOption;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjOption(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjOption;
  p->_gravity = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_wind = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_magnetic = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_o_solref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_o_solimp = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_10PyMjOption_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjOption(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjOption) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_gravity);
  Py_CLEAR(p->_wind);
  Py_CLEAR(p->_magnetic);
  Py_CLEAR(p->_o_solref);
  Py_CLEAR(p->_o_solimp);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjOption(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)o;
  if (p->_gravity) {
    e = (*v)(((PyObject *)p->_gravity), a); if (e) return e;
  }
  if (p->_wind) {
    e = (*v)(((PyObject *)p->_wind), a); if (e) return e;
  }
  if (p->_magnetic) {
    e = (*v)(((PyObject *)p->_magnetic), a); if (e) return e;
  }
  if (p->_o_solref) {
    e = (*v)(((PyObject *)p->_o_solref), a); if (e) return e;
  }
  if (p->_o_solimp) {
    e = (*v)(((PyObject *)p->_o_solimp), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjOption(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)o;
  tmp = ((PyObject*)p->_gravity);
  p->_gravity = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_wind);
  p->_wind = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_magnetic);
  p->_magnetic = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_o_solref);
  p->_o_solref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_o_solimp);
  p->_o_solimp = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_timestep(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8timestep_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_timestep(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8timestep_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_apirate(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_7apirate_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_apirate(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_7apirate_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_impratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8impratio_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_impratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8impratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_tolerance(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_9tolerance_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_tolerance(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_9tolerance_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_noslip_tolerance(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_16noslip_tolerance_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_noslip_tolerance(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_16noslip_tolerance_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_mpr_tolerance(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_13mpr_tolerance_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_mpr_tolerance(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_13mpr_tolerance_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_density(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_7density_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_density(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_7density_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_viscosity(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_9viscosity_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_viscosity(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_9viscosity_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_o_margin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8o_margin_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_o_margin(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8o_margin_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_integrator(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_10integrator_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_integrator(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_10integrator_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_collision(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_9collision_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_collision(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_9collision_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_cone(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_4cone_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_cone(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_4cone_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_jacobian(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8jacobian_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_jacobian(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8jacobian_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_solver(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_6solver_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_solver(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_6solver_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_iterations(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_10iterations_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_iterations(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_10iterations_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_noslip_iterations(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_17noslip_iterations_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_noslip_iterations(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_17noslip_iterations_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_mpr_iterations(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_14mpr_iterations_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_mpr_iterations(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_14mpr_iterations_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_disableflags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_12disableflags_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_disableflags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_12disableflags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_enableflags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_11enableflags_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_enableflags(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_11enableflags_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_gravity(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_7gravity_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_wind(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_4wind_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_magnetic(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8magnetic_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_o_solref(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8o_solref_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjOption_o_solimp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjOption_8o_solimp_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjOption[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjOption_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjOption_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjOption[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_uintptr, 0, (char *)0, 0},
  {(char *)"timestep", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_timestep, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_timestep, (char *)0, 0},
  {(char *)"apirate", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_apirate, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_apirate, (char *)0, 0},
  {(char *)"impratio", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_impratio, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_impratio, (char *)0, 0},
  {(char *)"tolerance", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_tolerance, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_tolerance, (char *)0, 0},
  {(char *)"noslip_tolerance", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_noslip_tolerance, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_noslip_tolerance, (char *)0, 0},
  {(char *)"mpr_tolerance", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_mpr_tolerance, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_mpr_tolerance, (char *)0, 0},
  {(char *)"density", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_density, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_density, (char *)0, 0},
  {(char *)"viscosity", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_viscosity, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_viscosity, (char *)0, 0},
  {(char *)"o_margin", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_o_margin, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_o_margin, (char *)0, 0},
  {(char *)"integrator", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_integrator, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_integrator, (char *)0, 0},
  {(char *)"collision", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_collision, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_collision, (char *)0, 0},
  {(char *)"cone", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_cone, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_cone, (char *)0, 0},
  {(char *)"jacobian", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_jacobian, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_jacobian, (char *)0, 0},
  {(char *)"solver", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_solver, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_solver, (char *)0, 0},
  {(char *)"iterations", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_iterations, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_iterations, (char *)0, 0},
  {(char *)"noslip_iterations", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_noslip_iterations, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_noslip_iterations, (char *)0, 0},
  {(char *)"mpr_iterations", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_mpr_iterations, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_mpr_iterations, (char *)0, 0},
  {(char *)"disableflags", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_disableflags, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_disableflags, (char *)0, 0},
  {(char *)"enableflags", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_enableflags, __pyx_setprop_9mujoco_py_4cymj_10PyMjOption_enableflags, (char *)0, 0},
  {(char *)"gravity", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_gravity, 0, (char *)0, 0},
  {(char *)"wind", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_wind, 0, (char *)0, 0},
  {(char *)"magnetic", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_magnetic, 0, (char *)0, 0},
  {(char *)"o_solref", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_o_solref, 0, (char *)0, 0},
  {(char *)"o_solimp", __pyx_getprop_9mujoco_py_4cymj_10PyMjOption_o_solimp, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjOption_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjOption},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjOption},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjOption},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjOption},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjOption},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjOption},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjOption_spec = {
  "mujoco_py.cymj.PyMjOption",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjOption_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjOption = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjOption", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjOption, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjOption, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjOption, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjOption, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjOption, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjOption, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual __pyx_vtable_9mujoco_py_4cymj_PyMjVisual;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual;
  p->_global_ = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)Py_None); Py_INCREF(Py_None);
  p->_quality = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)Py_None); Py_INCREF(Py_None);
  p->_headlight = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)Py_None); Py_INCREF(Py_None);
  p->_map = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)Py_None); Py_INCREF(Py_None);
  p->_scale = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)Py_None); Py_INCREF(Py_None);
  p->_rgba = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_global_);
  Py_CLEAR(p->_quality);
  Py_CLEAR(p->_headlight);
  Py_CLEAR(p->_map);
  Py_CLEAR(p->_scale);
  Py_CLEAR(p->_rgba);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjVisual(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)o;
  if (p->_global_) {
    e = (*v)(((PyObject *)p->_global_), a); if (e) return e;
  }
  if (p->_quality) {
    e = (*v)(((PyObject *)p->_quality), a); if (e) return e;
  }
  if (p->_headlight) {
    e = (*v)(((PyObject *)p->_headlight), a); if (e) return e;
  }
  if (p->_map) {
    e = (*v)(((PyObject *)p->_map), a); if (e) return e;
  }
  if (p->_scale) {
    e = (*v)(((PyObject *)p->_scale), a); if (e) return e;
  }
  if (p->_rgba) {
    e = (*v)(((PyObject *)p->_rgba), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjVisual(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)o;
  tmp = ((PyObject*)p->_global_);
  p->_global_ = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_quality);
  p->_quality = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_headlight);
  p->_headlight = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_map);
  p->_map = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_scale);
  p->_scale = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_rgba);
  p->_rgba = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjVisual_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjVisual_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjVisual_global_(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjVisual_7global__1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjVisual_quality(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjVisual_7quality_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjVisual_headlight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjVisual_9headlight_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjVisual_map(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjVisual_3map_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjVisual_scale(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjVisual_5scale_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjVisual_rgba(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjVisual_4rgba_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjVisual[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjVisual_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjVisual[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_10PyMjVisual_uintptr, 0, (char *)0, 0},
  {(char *)"global_", __pyx_getprop_9mujoco_py_4cymj_10PyMjVisual_global_, 0, (char *)0, 0},
  {(char *)"quality", __pyx_getprop_9mujoco_py_4cymj_10PyMjVisual_quality, 0, (char *)0, 0},
  {(char *)"headlight", __pyx_getprop_9mujoco_py_4cymj_10PyMjVisual_headlight, 0, (char *)0, 0},
  {(char *)"map", __pyx_getprop_9mujoco_py_4cymj_10PyMjVisual_map, 0, (char *)0, 0},
  {(char *)"scale", __pyx_getprop_9mujoco_py_4cymj_10PyMjVisual_scale, 0, (char *)0, 0},
  {(char *)"rgba", __pyx_getprop_9mujoco_py_4cymj_10PyMjVisual_rgba, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjVisual_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjVisual},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjVisual},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjVisual},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjVisual},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjVisual_spec = {
  "mujoco_py.cymj.PyMjVisual",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjVisual_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjVisual = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjVisual", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjVisual, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjVisual, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjVisual, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjVisual, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjVisual, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_global_ __pyx_vtable_9mujoco_py_4cymj_PyMjVisual_global_;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_global_(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_global_;
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_global_(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_global_) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_global__uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_global__fovy(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__4fovy_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_global__fovy(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__4fovy_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_global__ipd(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__3ipd_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_global__ipd(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__3ipd_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_global__linewidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__9linewidth_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_global__linewidth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__9linewidth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_global__glow(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__4glow_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_global__glow(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__4glow_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_global__offwidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__8offwidth_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_global__offwidth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__8offwidth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_global__offheight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__9offheight_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_global__offheight(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__9offheight_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjVisual_global_[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_global__5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjVisual_global_[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_global__uintptr, 0, (char *)0, 0},
  {(char *)"fovy", __pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_global__fovy, __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_global__fovy, (char *)0, 0},
  {(char *)"ipd", __pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_global__ipd, __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_global__ipd, (char *)0, 0},
  {(char *)"linewidth", __pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_global__linewidth, __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_global__linewidth, (char *)0, 0},
  {(char *)"glow", __pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_global__glow, __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_global__glow, (char *)0, 0},
  {(char *)"offwidth", __pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_global__offwidth, __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_global__offwidth, (char *)0, 0},
  {(char *)"offheight", __pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_global__offheight, __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_global__offheight, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjVisual_global__slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_global_},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjVisual_global_},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjVisual_global_},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_global_},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjVisual_global__spec = {
  "mujoco_py.cymj.PyMjVisual_global_",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_9mujoco_py_4cymj_PyMjVisual_global__slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjVisual_global_ = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjVisual_global_", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_global_, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjVisual_global_, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjVisual_global_, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_global_, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_quality __pyx_vtable_9mujoco_py_4cymj_PyMjVisual_quality;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_quality(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_quality;
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_quality(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_quality) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_quality_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_quality_shadowsize(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_10shadowsize_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_quality_shadowsize(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_10shadowsize_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_quality_offsamples(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_10offsamples_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_quality_offsamples(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_10offsamples_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_quality_numslices(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_9numslices_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_quality_numslices(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_9numslices_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_quality_numstacks(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_9numstacks_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_quality_numstacks(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_9numstacks_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_quality_numquads(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_8numquads_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_quality_numquads(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_8numquads_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjVisual_quality[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_18PyMjVisual_quality_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjVisual_quality[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_quality_uintptr, 0, (char *)0, 0},
  {(char *)"shadowsize", __pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_quality_shadowsize, __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_quality_shadowsize, (char *)0, 0},
  {(char *)"offsamples", __pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_quality_offsamples, __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_quality_offsamples, (char *)0, 0},
  {(char *)"numslices", __pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_quality_numslices, __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_quality_numslices, (char *)0, 0},
  {(char *)"numstacks", __pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_quality_numstacks, __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_quality_numstacks, (char *)0, 0},
  {(char *)"numquads", __pyx_getprop_9mujoco_py_4cymj_18PyMjVisual_quality_numquads, __pyx_setprop_9mujoco_py_4cymj_18PyMjVisual_quality_numquads, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjVisual_quality_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_quality},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjVisual_quality},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjVisual_quality},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_quality},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjVisual_quality_spec = {
  "mujoco_py.cymj.PyMjVisual_quality",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_9mujoco_py_4cymj_PyMjVisual_quality_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjVisual_quality = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjVisual_quality", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_quality, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjVisual_quality, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjVisual_quality, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_quality, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_headlight __pyx_vtable_9mujoco_py_4cymj_PyMjVisual_headlight;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_headlight(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_headlight;
  p->_ambient = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_diffuse = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_specular = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_headlight(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_headlight) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_ambient);
  Py_CLEAR(p->_diffuse);
  Py_CLEAR(p->_specular);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjVisual_headlight(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)o;
  if (p->_ambient) {
    e = (*v)(((PyObject *)p->_ambient), a); if (e) return e;
  }
  if (p->_diffuse) {
    e = (*v)(((PyObject *)p->_diffuse), a); if (e) return e;
  }
  if (p->_specular) {
    e = (*v)(((PyObject *)p->_specular), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjVisual_headlight(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *)o;
  tmp = ((PyObject*)p->_ambient);
  p->_ambient = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_diffuse);
  p->_diffuse = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_specular);
  p->_specular = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_20PyMjVisual_headlight_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_20PyMjVisual_headlight_active(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_6active_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_20PyMjVisual_headlight_active(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_6active_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_20PyMjVisual_headlight_ambient(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_7ambient_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_20PyMjVisual_headlight_diffuse(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_7diffuse_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_20PyMjVisual_headlight_specular(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_8specular_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjVisual_headlight[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_20PyMjVisual_headlight_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjVisual_headlight[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_20PyMjVisual_headlight_uintptr, 0, (char *)0, 0},
  {(char *)"active", __pyx_getprop_9mujoco_py_4cymj_20PyMjVisual_headlight_active, __pyx_setprop_9mujoco_py_4cymj_20PyMjVisual_headlight_active, (char *)0, 0},
  {(char *)"ambient", __pyx_getprop_9mujoco_py_4cymj_20PyMjVisual_headlight_ambient, 0, (char *)0, 0},
  {(char *)"diffuse", __pyx_getprop_9mujoco_py_4cymj_20PyMjVisual_headlight_diffuse, 0, (char *)0, 0},
  {(char *)"specular", __pyx_getprop_9mujoco_py_4cymj_20PyMjVisual_headlight_specular, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjVisual_headlight_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_headlight},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjVisual_headlight},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjVisual_headlight},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjVisual_headlight},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjVisual_headlight},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_headlight},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjVisual_headlight_spec = {
  "mujoco_py.cymj.PyMjVisual_headlight",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjVisual_headlight_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjVisual_headlight = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjVisual_headlight", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_headlight, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjVisual_headlight, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjVisual_headlight, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjVisual_headlight, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjVisual_headlight, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_headlight, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_map __pyx_vtable_9mujoco_py_4cymj_PyMjVisual_map;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_map(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_map;
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_map(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_map) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_stiffness(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_9stiffness_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_stiffness(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_9stiffness_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_stiffnessrot(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_12stiffnessrot_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_stiffnessrot(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_12stiffnessrot_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_force(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5force_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_force(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5force_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_torque(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_6torque_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_torque(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_6torque_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_alpha(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5alpha_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_alpha(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5alpha_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_fogstart(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_8fogstart_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_fogstart(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_8fogstart_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_fogend(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_6fogend_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_fogend(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_6fogend_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_znear(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5znear_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_znear(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5znear_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_zfar(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_4zfar_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_zfar(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_4zfar_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_haze(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_4haze_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_haze(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_4haze_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_shadowclip(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_10shadowclip_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_shadowclip(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_10shadowclip_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_shadowscale(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_11shadowscale_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_shadowscale(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_11shadowscale_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_actuatortendon(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_14actuatortendon_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_actuatortendon(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_14actuatortendon_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjVisual_map[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_14PyMjVisual_map_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjVisual_map[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_uintptr, 0, (char *)0, 0},
  {(char *)"stiffness", __pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_stiffness, __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_stiffness, (char *)0, 0},
  {(char *)"stiffnessrot", __pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_stiffnessrot, __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_stiffnessrot, (char *)0, 0},
  {(char *)"force", __pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_force, __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_force, (char *)0, 0},
  {(char *)"torque", __pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_torque, __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_torque, (char *)0, 0},
  {(char *)"alpha", __pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_alpha, __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_alpha, (char *)0, 0},
  {(char *)"fogstart", __pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_fogstart, __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_fogstart, (char *)0, 0},
  {(char *)"fogend", __pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_fogend, __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_fogend, (char *)0, 0},
  {(char *)"znear", __pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_znear, __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_znear, (char *)0, 0},
  {(char *)"zfar", __pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_zfar, __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_zfar, (char *)0, 0},
  {(char *)"haze", __pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_haze, __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_haze, (char *)0, 0},
  {(char *)"shadowclip", __pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_shadowclip, __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_shadowclip, (char *)0, 0},
  {(char *)"shadowscale", __pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_shadowscale, __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_shadowscale, (char *)0, 0},
  {(char *)"actuatortendon", __pyx_getprop_9mujoco_py_4cymj_14PyMjVisual_map_actuatortendon, __pyx_setprop_9mujoco_py_4cymj_14PyMjVisual_map_actuatortendon, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjVisual_map_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_map},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjVisual_map},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjVisual_map},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_map},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjVisual_map_spec = {
  "mujoco_py.cymj.PyMjVisual_map",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_9mujoco_py_4cymj_PyMjVisual_map_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjVisual_map = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjVisual_map", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_map, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjVisual_map, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjVisual_map, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_map, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_scale __pyx_vtable_9mujoco_py_4cymj_PyMjVisual_scale;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_scale(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_scale;
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_scale(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_scale) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_forcewidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10forcewidth_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_forcewidth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10forcewidth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_contactwidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_12contactwidth_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_contactwidth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_12contactwidth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_contactheight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_13contactheight_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_contactheight(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_13contactheight_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_connect(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_7connect_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_connect(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_7connect_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_com(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_3com_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_com(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_3com_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_camera(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_6camera_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_camera(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_6camera_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_light(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_5light_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_light(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_5light_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_selectpoint(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11selectpoint_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_selectpoint(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11selectpoint_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_jointlength(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11jointlength_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_jointlength(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11jointlength_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_jointwidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10jointwidth_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_jointwidth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10jointwidth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_actuatorlength(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_14actuatorlength_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_actuatorlength(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_14actuatorlength_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_actuatorwidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_13actuatorwidth_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_actuatorwidth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_13actuatorwidth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_framelength(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11framelength_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_framelength(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11framelength_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_framewidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10framewidth_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_framewidth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10framewidth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_constraint(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10constraint_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_constraint(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_10constraint_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_slidercrank(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11slidercrank_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_slidercrank(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_11slidercrank_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjVisual_scale[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_16PyMjVisual_scale_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjVisual_scale[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_uintptr, 0, (char *)0, 0},
  {(char *)"forcewidth", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_forcewidth, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_forcewidth, (char *)0, 0},
  {(char *)"contactwidth", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_contactwidth, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_contactwidth, (char *)0, 0},
  {(char *)"contactheight", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_contactheight, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_contactheight, (char *)0, 0},
  {(char *)"connect", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_connect, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_connect, (char *)0, 0},
  {(char *)"com", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_com, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_com, (char *)0, 0},
  {(char *)"camera", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_camera, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_camera, (char *)0, 0},
  {(char *)"light", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_light, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_light, (char *)0, 0},
  {(char *)"selectpoint", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_selectpoint, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_selectpoint, (char *)0, 0},
  {(char *)"jointlength", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_jointlength, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_jointlength, (char *)0, 0},
  {(char *)"jointwidth", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_jointwidth, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_jointwidth, (char *)0, 0},
  {(char *)"actuatorlength", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_actuatorlength, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_actuatorlength, (char *)0, 0},
  {(char *)"actuatorwidth", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_actuatorwidth, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_actuatorwidth, (char *)0, 0},
  {(char *)"framelength", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_framelength, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_framelength, (char *)0, 0},
  {(char *)"framewidth", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_framewidth, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_framewidth, (char *)0, 0},
  {(char *)"constraint", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_constraint, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_constraint, (char *)0, 0},
  {(char *)"slidercrank", __pyx_getprop_9mujoco_py_4cymj_16PyMjVisual_scale_slidercrank, __pyx_setprop_9mujoco_py_4cymj_16PyMjVisual_scale_slidercrank, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjVisual_scale_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_scale},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjVisual_scale},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjVisual_scale},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_scale},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjVisual_scale_spec = {
  "mujoco_py.cymj.PyMjVisual_scale",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_9mujoco_py_4cymj_PyMjVisual_scale_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjVisual_scale = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjVisual_scale", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_scale, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjVisual_scale, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjVisual_scale, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_scale, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjVisual_rgba __pyx_vtable_9mujoco_py_4cymj_PyMjVisual_rgba;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_rgba(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_rgba;
  p->_fog = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_haze = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_force = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_inertia = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_joint = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuatornegative = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuatorpositive = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_com = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_camera = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_selectpoint = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_connect = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_contactpoint = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_contactforce = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_contactfriction = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_contacttorque = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_contactgap = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_rangefinder = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_constraint = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_slidercrank = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_crankbroken = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_rgba(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_rgba) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_fog);
  Py_CLEAR(p->_haze);
  Py_CLEAR(p->_force);
  Py_CLEAR(p->_inertia);
  Py_CLEAR(p->_joint);
  Py_CLEAR(p->_actuator);
  Py_CLEAR(p->_actuatornegative);
  Py_CLEAR(p->_actuatorpositive);
  Py_CLEAR(p->_com);
  Py_CLEAR(p->_camera);
  Py_CLEAR(p->_light);
  Py_CLEAR(p->_selectpoint);
  Py_CLEAR(p->_connect);
  Py_CLEAR(p->_contactpoint);
  Py_CLEAR(p->_contactforce);
  Py_CLEAR(p->_contactfriction);
  Py_CLEAR(p->_contacttorque);
  Py_CLEAR(p->_contactgap);
  Py_CLEAR(p->_rangefinder);
  Py_CLEAR(p->_constraint);
  Py_CLEAR(p->_slidercrank);
  Py_CLEAR(p->_crankbroken);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjVisual_rgba(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)o;
  if (p->_fog) {
    e = (*v)(((PyObject *)p->_fog), a); if (e) return e;
  }
  if (p->_haze) {
    e = (*v)(((PyObject *)p->_haze), a); if (e) return e;
  }
  if (p->_force) {
    e = (*v)(((PyObject *)p->_force), a); if (e) return e;
  }
  if (p->_inertia) {
    e = (*v)(((PyObject *)p->_inertia), a); if (e) return e;
  }
  if (p->_joint) {
    e = (*v)(((PyObject *)p->_joint), a); if (e) return e;
  }
  if (p->_actuator) {
    e = (*v)(((PyObject *)p->_actuator), a); if (e) return e;
  }
  if (p->_actuatornegative) {
    e = (*v)(((PyObject *)p->_actuatornegative), a); if (e) return e;
  }
  if (p->_actuatorpositive) {
    e = (*v)(((PyObject *)p->_actuatorpositive), a); if (e) return e;
  }
  if (p->_com) {
    e = (*v)(((PyObject *)p->_com), a); if (e) return e;
  }
  if (p->_camera) {
    e = (*v)(((PyObject *)p->_camera), a); if (e) return e;
  }
  if (p->_light) {
    e = (*v)(((PyObject *)p->_light), a); if (e) return e;
  }
  if (p->_selectpoint) {
    e = (*v)(((PyObject *)p->_selectpoint), a); if (e) return e;
  }
  if (p->_connect) {
    e = (*v)(((PyObject *)p->_connect), a); if (e) return e;
  }
  if (p->_contactpoint) {
    e = (*v)(((PyObject *)p->_contactpoint), a); if (e) return e;
  }
  if (p->_contactforce) {
    e = (*v)(((PyObject *)p->_contactforce), a); if (e) return e;
  }
  if (p->_contactfriction) {
    e = (*v)(((PyObject *)p->_contactfriction), a); if (e) return e;
  }
  if (p->_contacttorque) {
    e = (*v)(((PyObject *)p->_contacttorque), a); if (e) return e;
  }
  if (p->_contactgap) {
    e = (*v)(((PyObject *)p->_contactgap), a); if (e) return e;
  }
  if (p->_rangefinder) {
    e = (*v)(((PyObject *)p->_rangefinder), a); if (e) return e;
  }
  if (p->_constraint) {
    e = (*v)(((PyObject *)p->_constraint), a); if (e) return e;
  }
  if (p->_slidercrank) {
    e = (*v)(((PyObject *)p->_slidercrank), a); if (e) return e;
  }
  if (p->_crankbroken) {
    e = (*v)(((PyObject *)p->_crankbroken), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjVisual_rgba(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *)o;
  tmp = ((PyObject*)p->_fog);
  p->_fog = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_haze);
  p->_haze = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_force);
  p->_force = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_inertia);
  p->_inertia = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_joint);
  p->_joint = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator);
  p->_actuator = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuatornegative);
  p->_actuatornegative = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuatorpositive);
  p->_actuatorpositive = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_com);
  p->_com = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_camera);
  p->_camera = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light);
  p->_light = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_selectpoint);
  p->_selectpoint = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_connect);
  p->_connect = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_contactpoint);
  p->_contactpoint = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_contactforce);
  p->_contactforce = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_contactfriction);
  p->_contactfriction = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_contacttorque);
  p->_contacttorque = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_contactgap);
  p->_contactgap = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_rangefinder);
  p->_rangefinder = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_constraint);
  p->_constraint = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_slidercrank);
  p->_slidercrank = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_crankbroken);
  p->_crankbroken = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_fog(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_3fog_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_haze(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_4haze_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_force(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_5force_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_inertia(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_7inertia_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_joint(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_5joint_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_actuator(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_8actuator_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_actuatornegative(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_16actuatornegative_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_actuatorpositive(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_16actuatorpositive_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_com(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_3com_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_camera(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_6camera_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_light(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_5light_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_selectpoint(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_11selectpoint_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_connect(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_7connect_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_contactpoint(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_12contactpoint_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_contactforce(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_12contactforce_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_contactfriction(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_15contactfriction_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_contacttorque(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_13contacttorque_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_contactgap(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_10contactgap_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_rangefinder(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_11rangefinder_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_constraint(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_10constraint_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_slidercrank(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_11slidercrank_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_crankbroken(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_11crankbroken_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjVisual_rgba[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15PyMjVisual_rgba_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjVisual_rgba[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_uintptr, 0, (char *)0, 0},
  {(char *)"fog", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_fog, 0, (char *)0, 0},
  {(char *)"haze", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_haze, 0, (char *)0, 0},
  {(char *)"force", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_force, 0, (char *)0, 0},
  {(char *)"inertia", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_inertia, 0, (char *)0, 0},
  {(char *)"joint", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_joint, 0, (char *)0, 0},
  {(char *)"actuator", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_actuator, 0, (char *)0, 0},
  {(char *)"actuatornegative", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_actuatornegative, 0, (char *)0, 0},
  {(char *)"actuatorpositive", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_actuatorpositive, 0, (char *)0, 0},
  {(char *)"com", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_com, 0, (char *)0, 0},
  {(char *)"camera", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_camera, 0, (char *)0, 0},
  {(char *)"light", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_light, 0, (char *)0, 0},
  {(char *)"selectpoint", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_selectpoint, 0, (char *)0, 0},
  {(char *)"connect", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_connect, 0, (char *)0, 0},
  {(char *)"contactpoint", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_contactpoint, 0, (char *)0, 0},
  {(char *)"contactforce", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_contactforce, 0, (char *)0, 0},
  {(char *)"contactfriction", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_contactfriction, 0, (char *)0, 0},
  {(char *)"contacttorque", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_contacttorque, 0, (char *)0, 0},
  {(char *)"contactgap", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_contactgap, 0, (char *)0, 0},
  {(char *)"rangefinder", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_rangefinder, 0, (char *)0, 0},
  {(char *)"constraint", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_constraint, 0, (char *)0, 0},
  {(char *)"slidercrank", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_slidercrank, 0, (char *)0, 0},
  {(char *)"crankbroken", __pyx_getprop_9mujoco_py_4cymj_15PyMjVisual_rgba_crankbroken, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjVisual_rgba_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_rgba},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjVisual_rgba},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjVisual_rgba},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjVisual_rgba},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjVisual_rgba},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_rgba},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjVisual_rgba_spec = {
  "mujoco_py.cymj.PyMjVisual_rgba",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjVisual_rgba_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjVisual_rgba = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjVisual_rgba", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjVisual_rgba, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjVisual_rgba, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjVisual_rgba, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjVisual_rgba, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjVisual_rgba, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjVisual_rgba, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjStatistic __pyx_vtable_9mujoco_py_4cymj_PyMjStatistic;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjStatistic(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjStatistic;
  p->_center = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjStatistic(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjStatistic) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_center);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjStatistic(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)o;
  if (p->_center) {
    e = (*v)(((PyObject *)p->_center), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjStatistic(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)o;
  tmp = ((PyObject*)p->_center);
  p->_center = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjStatistic_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjStatistic_meaninertia(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_11meaninertia_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_13PyMjStatistic_meaninertia(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_11meaninertia_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjStatistic_meanmass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_8meanmass_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_13PyMjStatistic_meanmass(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_8meanmass_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjStatistic_meansize(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_8meansize_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_13PyMjStatistic_meansize(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_8meansize_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjStatistic_extent(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_6extent_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_13PyMjStatistic_extent(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_6extent_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjStatistic_center(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_6center_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjStatistic[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjStatistic_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjStatistic[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_13PyMjStatistic_uintptr, 0, (char *)0, 0},
  {(char *)"meaninertia", __pyx_getprop_9mujoco_py_4cymj_13PyMjStatistic_meaninertia, __pyx_setprop_9mujoco_py_4cymj_13PyMjStatistic_meaninertia, (char *)0, 0},
  {(char *)"meanmass", __pyx_getprop_9mujoco_py_4cymj_13PyMjStatistic_meanmass, __pyx_setprop_9mujoco_py_4cymj_13PyMjStatistic_meanmass, (char *)0, 0},
  {(char *)"meansize", __pyx_getprop_9mujoco_py_4cymj_13PyMjStatistic_meansize, __pyx_setprop_9mujoco_py_4cymj_13PyMjStatistic_meansize, (char *)0, 0},
  {(char *)"extent", __pyx_getprop_9mujoco_py_4cymj_13PyMjStatistic_extent, __pyx_setprop_9mujoco_py_4cymj_13PyMjStatistic_extent, (char *)0, 0},
  {(char *)"center", __pyx_getprop_9mujoco_py_4cymj_13PyMjStatistic_center, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjStatistic_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjStatistic},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjStatistic},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjStatistic},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjStatistic},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjStatistic},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjStatistic},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjStatistic_spec = {
  "mujoco_py.cymj.PyMjStatistic",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjStatistic_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjStatistic = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjStatistic", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjStatistic, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjStatistic, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjStatistic, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjStatistic, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjStatistic, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjStatistic, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjModel __pyx_vtable_9mujoco_py_4cymj_PyMjModel;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjModel(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjModel;
  p->_opt = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)Py_None); Py_INCREF(Py_None);
  p->_vis = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)Py_None); Py_INCREF(Py_None);
  p->_stat = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)Py_None); Py_INCREF(Py_None);
  p->_qpos0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qpos_spring = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_parentid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_rootid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_weldid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_mocapid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_jntnum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_jntadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_dofnum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_dofadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_geomnum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_geomadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_simple = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_sameframe = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_quat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_ipos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_iquat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_mass = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_subtreemass = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_inertia = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_invweight0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_body_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_jnt_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_jnt_qposadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_jnt_dofadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_jnt_bodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_jnt_group = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_jnt_limited = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_jnt_solref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_jnt_solimp = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_jnt_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_jnt_axis = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_jnt_stiffness = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_jnt_range = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_jnt_margin = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_jnt_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_dof_bodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_dof_jntid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_dof_parentid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_dof_Madr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_dof_simplenum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_dof_solref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_dof_solimp = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_dof_frictionloss = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_dof_armature = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_dof_damping = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_dof_invweight0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_dof_M0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_contype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_conaffinity = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_condim = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_bodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_dataid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_matid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_group = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_priority = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_sameframe = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_solmix = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_solref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_solimp = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_size = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_rbound = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_quat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_friction = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_margin = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_gap = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_rgba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_site_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_site_bodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_site_matid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_site_group = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_site_sameframe = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_site_size = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_site_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_site_quat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_site_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_site_rgba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cam_mode = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cam_bodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cam_targetbodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cam_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cam_quat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cam_poscom0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cam_pos0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cam_mat0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cam_fovy = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cam_ipd = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cam_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_mode = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_bodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_targetbodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_directional = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_castshadow = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_active = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_dir = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_poscom0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_pos0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_dir0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_attenuation = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_cutoff = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_exponent = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_ambient = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_diffuse = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_specular = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mesh_vertadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mesh_vertnum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mesh_texcoordadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mesh_faceadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mesh_facenum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mesh_graphadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mesh_vert = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mesh_normal = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mesh_texcoord = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mesh_face = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mesh_graph = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_matid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_rgba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_inflate = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_vertadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_vertnum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_texcoordadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_faceadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_facenum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_boneadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_bonenum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_vert = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_texcoord = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_face = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_bonevertadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_bonevertnum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_bonebindpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_bonebindquat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_bonebodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_bonevertid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_skin_bonevertweight = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_hfield_size = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_hfield_nrow = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_hfield_ncol = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_hfield_adr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_hfield_data = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tex_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tex_height = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tex_width = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tex_adr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tex_rgb = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mat_texid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mat_texuniform = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mat_texrepeat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mat_emission = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mat_specular = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mat_shininess = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mat_reflectance = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mat_rgba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_pair_dim = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_pair_geom1 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_pair_geom2 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_pair_signature = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_pair_solref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_pair_solimp = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_pair_margin = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_pair_gap = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_pair_friction = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_exclude_signature = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_eq_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_eq_obj1id = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_eq_obj2id = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_eq_active = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_eq_solref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_eq_solimp = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_eq_data = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_adr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_num = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_matid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_group = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_limited = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_width = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_solref_lim = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_solimp_lim = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_solref_fri = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_solimp_fri = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_range = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_margin = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_stiffness = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_damping = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_frictionloss = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_lengthspring = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_length0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_invweight0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendon_rgba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_wrap_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_wrap_objid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_wrap_prm = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_trntype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_dyntype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_gaintype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_biastype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_trnid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_group = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_ctrllimited = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_forcelimited = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_dynprm = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_gainprm = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_biasprm = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_ctrlrange = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_forcerange = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_gear = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_cranklength = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_acc0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_length0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_lengthrange = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sensor_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sensor_datatype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sensor_needstage = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sensor_objtype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sensor_objid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sensor_dim = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sensor_adr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sensor_cutoff = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sensor_noise = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sensor_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_numeric_adr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_numeric_size = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_numeric_data = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_text_adr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_text_size = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_text_data = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tuple_adr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tuple_size = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tuple_objtype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tuple_objid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tuple_objprm = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_key_time = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_key_qpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_key_qvel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_key_act = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_key_mpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_key_mquat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_bodyadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_jntadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_geomadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_siteadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_camadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_lightadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_meshadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_skinadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_hfieldadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_texadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_matadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_pairadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_excludeadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_eqadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_tendonadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_actuatoradr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_sensoradr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_numericadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_textadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_tupleadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_name_keyadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_names = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->body_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->joint_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->geom_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->site_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->light_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->camera_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->actuator_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->sensor_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->tendon_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->mesh_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_body_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_joint_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_geom_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_site_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_light_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_camera_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_actuator_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_sensor_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_tendon_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_mesh_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_body_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_joint_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_geom_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_site_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_light_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_camera_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_actuator_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_sensor_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_tendon_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_mesh_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->userdata_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_userdata_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_userdata_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjModel(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjModel) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_9mujoco_py_4cymj_9PyMjModel_51__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_opt);
  Py_CLEAR(p->_vis);
  Py_CLEAR(p->_stat);
  Py_CLEAR(p->_qpos0);
  Py_CLEAR(p->_qpos_spring);
  Py_CLEAR(p->_body_parentid);
  Py_CLEAR(p->_body_rootid);
  Py_CLEAR(p->_body_weldid);
  Py_CLEAR(p->_body_mocapid);
  Py_CLEAR(p->_body_jntnum);
  Py_CLEAR(p->_body_jntadr);
  Py_CLEAR(p->_body_dofnum);
  Py_CLEAR(p->_body_dofadr);
  Py_CLEAR(p->_body_geomnum);
  Py_CLEAR(p->_body_geomadr);
  Py_CLEAR(p->_body_simple);
  Py_CLEAR(p->_body_sameframe);
  Py_CLEAR(p->_body_pos);
  Py_CLEAR(p->_body_quat);
  Py_CLEAR(p->_body_ipos);
  Py_CLEAR(p->_body_iquat);
  Py_CLEAR(p->_body_mass);
  Py_CLEAR(p->_body_subtreemass);
  Py_CLEAR(p->_body_inertia);
  Py_CLEAR(p->_body_invweight0);
  Py_CLEAR(p->_body_user);
  Py_CLEAR(p->_jnt_type);
  Py_CLEAR(p->_jnt_qposadr);
  Py_CLEAR(p->_jnt_dofadr);
  Py_CLEAR(p->_jnt_bodyid);
  Py_CLEAR(p->_jnt_group);
  Py_CLEAR(p->_jnt_limited);
  Py_CLEAR(p->_jnt_solref);
  Py_CLEAR(p->_jnt_solimp);
  Py_CLEAR(p->_jnt_pos);
  Py_CLEAR(p->_jnt_axis);
  Py_CLEAR(p->_jnt_stiffness);
  Py_CLEAR(p->_jnt_range);
  Py_CLEAR(p->_jnt_margin);
  Py_CLEAR(p->_jnt_user);
  Py_CLEAR(p->_dof_bodyid);
  Py_CLEAR(p->_dof_jntid);
  Py_CLEAR(p->_dof_parentid);
  Py_CLEAR(p->_dof_Madr);
  Py_CLEAR(p->_dof_simplenum);
  Py_CLEAR(p->_dof_solref);
  Py_CLEAR(p->_dof_solimp);
  Py_CLEAR(p->_dof_frictionloss);
  Py_CLEAR(p->_dof_armature);
  Py_CLEAR(p->_dof_damping);
  Py_CLEAR(p->_dof_invweight0);
  Py_CLEAR(p->_dof_M0);
  Py_CLEAR(p->_geom_type);
  Py_CLEAR(p->_geom_contype);
  Py_CLEAR(p->_geom_conaffinity);
  Py_CLEAR(p->_geom_condim);
  Py_CLEAR(p->_geom_bodyid);
  Py_CLEAR(p->_geom_dataid);
  Py_CLEAR(p->_geom_matid);
  Py_CLEAR(p->_geom_group);
  Py_CLEAR(p->_geom_priority);
  Py_CLEAR(p->_geom_sameframe);
  Py_CLEAR(p->_geom_solmix);
  Py_CLEAR(p->_geom_solref);
  Py_CLEAR(p->_geom_solimp);
  Py_CLEAR(p->_geom_size);
  Py_CLEAR(p->_geom_rbound);
  Py_CLEAR(p->_geom_pos);
  Py_CLEAR(p->_geom_quat);
  Py_CLEAR(p->_geom_friction);
  Py_CLEAR(p->_geom_margin);
  Py_CLEAR(p->_geom_gap);
  Py_CLEAR(p->_geom_user);
  Py_CLEAR(p->_geom_rgba);
  Py_CLEAR(p->_site_type);
  Py_CLEAR(p->_site_bodyid);
  Py_CLEAR(p->_site_matid);
  Py_CLEAR(p->_site_group);
  Py_CLEAR(p->_site_sameframe);
  Py_CLEAR(p->_site_size);
  Py_CLEAR(p->_site_pos);
  Py_CLEAR(p->_site_quat);
  Py_CLEAR(p->_site_user);
  Py_CLEAR(p->_site_rgba);
  Py_CLEAR(p->_cam_mode);
  Py_CLEAR(p->_cam_bodyid);
  Py_CLEAR(p->_cam_targetbodyid);
  Py_CLEAR(p->_cam_pos);
  Py_CLEAR(p->_cam_quat);
  Py_CLEAR(p->_cam_poscom0);
  Py_CLEAR(p->_cam_pos0);
  Py_CLEAR(p->_cam_mat0);
  Py_CLEAR(p->_cam_fovy);
  Py_CLEAR(p->_cam_ipd);
  Py_CLEAR(p->_cam_user);
  Py_CLEAR(p->_light_mode);
  Py_CLEAR(p->_light_bodyid);
  Py_CLEAR(p->_light_targetbodyid);
  Py_CLEAR(p->_light_directional);
  Py_CLEAR(p->_light_castshadow);
  Py_CLEAR(p->_light_active);
  Py_CLEAR(p->_light_pos);
  Py_CLEAR(p->_light_dir);
  Py_CLEAR(p->_light_poscom0);
  Py_CLEAR(p->_light_pos0);
  Py_CLEAR(p->_light_dir0);
  Py_CLEAR(p->_light_attenuation);
  Py_CLEAR(p->_light_cutoff);
  Py_CLEAR(p->_light_exponent);
  Py_CLEAR(p->_light_ambient);
  Py_CLEAR(p->_light_diffuse);
  Py_CLEAR(p->_light_specular);
  Py_CLEAR(p->_mesh_vertadr);
  Py_CLEAR(p->_mesh_vertnum);
  Py_CLEAR(p->_mesh_texcoordadr);
  Py_CLEAR(p->_mesh_faceadr);
  Py_CLEAR(p->_mesh_facenum);
  Py_CLEAR(p->_mesh_graphadr);
  Py_CLEAR(p->_mesh_vert);
  Py_CLEAR(p->_mesh_normal);
  Py_CLEAR(p->_mesh_texcoord);
  Py_CLEAR(p->_mesh_face);
  Py_CLEAR(p->_mesh_graph);
  Py_CLEAR(p->_skin_matid);
  Py_CLEAR(p->_skin_rgba);
  Py_CLEAR(p->_skin_inflate);
  Py_CLEAR(p->_skin_vertadr);
  Py_CLEAR(p->_skin_vertnum);
  Py_CLEAR(p->_skin_texcoordadr);
  Py_CLEAR(p->_skin_faceadr);
  Py_CLEAR(p->_skin_facenum);
  Py_CLEAR(p->_skin_boneadr);
  Py_CLEAR(p->_skin_bonenum);
  Py_CLEAR(p->_skin_vert);
  Py_CLEAR(p->_skin_texcoord);
  Py_CLEAR(p->_skin_face);
  Py_CLEAR(p->_skin_bonevertadr);
  Py_CLEAR(p->_skin_bonevertnum);
  Py_CLEAR(p->_skin_bonebindpos);
  Py_CLEAR(p->_skin_bonebindquat);
  Py_CLEAR(p->_skin_bonebodyid);
  Py_CLEAR(p->_skin_bonevertid);
  Py_CLEAR(p->_skin_bonevertweight);
  Py_CLEAR(p->_hfield_size);
  Py_CLEAR(p->_hfield_nrow);
  Py_CLEAR(p->_hfield_ncol);
  Py_CLEAR(p->_hfield_adr);
  Py_CLEAR(p->_hfield_data);
  Py_CLEAR(p->_tex_type);
  Py_CLEAR(p->_tex_height);
  Py_CLEAR(p->_tex_width);
  Py_CLEAR(p->_tex_adr);
  Py_CLEAR(p->_tex_rgb);
  Py_CLEAR(p->_mat_texid);
  Py_CLEAR(p->_mat_texuniform);
  Py_CLEAR(p->_mat_texrepeat);
  Py_CLEAR(p->_mat_emission);
  Py_CLEAR(p->_mat_specular);
  Py_CLEAR(p->_mat_shininess);
  Py_CLEAR(p->_mat_reflectance);
  Py_CLEAR(p->_mat_rgba);
  Py_CLEAR(p->_pair_dim);
  Py_CLEAR(p->_pair_geom1);
  Py_CLEAR(p->_pair_geom2);
  Py_CLEAR(p->_pair_signature);
  Py_CLEAR(p->_pair_solref);
  Py_CLEAR(p->_pair_solimp);
  Py_CLEAR(p->_pair_margin);
  Py_CLEAR(p->_pair_gap);
  Py_CLEAR(p->_pair_friction);
  Py_CLEAR(p->_exclude_signature);
  Py_CLEAR(p->_eq_type);
  Py_CLEAR(p->_eq_obj1id);
  Py_CLEAR(p->_eq_obj2id);
  Py_CLEAR(p->_eq_active);
  Py_CLEAR(p->_eq_solref);
  Py_CLEAR(p->_eq_solimp);
  Py_CLEAR(p->_eq_data);
  Py_CLEAR(p->_tendon_adr);
  Py_CLEAR(p->_tendon_num);
  Py_CLEAR(p->_tendon_matid);
  Py_CLEAR(p->_tendon_group);
  Py_CLEAR(p->_tendon_limited);
  Py_CLEAR(p->_tendon_width);
  Py_CLEAR(p->_tendon_solref_lim);
  Py_CLEAR(p->_tendon_solimp_lim);
  Py_CLEAR(p->_tendon_solref_fri);
  Py_CLEAR(p->_tendon_solimp_fri);
  Py_CLEAR(p->_tendon_range);
  Py_CLEAR(p->_tendon_margin);
  Py_CLEAR(p->_tendon_stiffness);
  Py_CLEAR(p->_tendon_damping);
  Py_CLEAR(p->_tendon_frictionloss);
  Py_CLEAR(p->_tendon_lengthspring);
  Py_CLEAR(p->_tendon_length0);
  Py_CLEAR(p->_tendon_invweight0);
  Py_CLEAR(p->_tendon_user);
  Py_CLEAR(p->_tendon_rgba);
  Py_CLEAR(p->_wrap_type);
  Py_CLEAR(p->_wrap_objid);
  Py_CLEAR(p->_wrap_prm);
  Py_CLEAR(p->_actuator_trntype);
  Py_CLEAR(p->_actuator_dyntype);
  Py_CLEAR(p->_actuator_gaintype);
  Py_CLEAR(p->_actuator_biastype);
  Py_CLEAR(p->_actuator_trnid);
  Py_CLEAR(p->_actuator_group);
  Py_CLEAR(p->_actuator_ctrllimited);
  Py_CLEAR(p->_actuator_forcelimited);
  Py_CLEAR(p->_actuator_dynprm);
  Py_CLEAR(p->_actuator_gainprm);
  Py_CLEAR(p->_actuator_biasprm);
  Py_CLEAR(p->_actuator_ctrlrange);
  Py_CLEAR(p->_actuator_forcerange);
  Py_CLEAR(p->_actuator_gear);
  Py_CLEAR(p->_actuator_cranklength);
  Py_CLEAR(p->_actuator_acc0);
  Py_CLEAR(p->_actuator_length0);
  Py_CLEAR(p->_actuator_lengthrange);
  Py_CLEAR(p->_actuator_user);
  Py_CLEAR(p->_sensor_type);
  Py_CLEAR(p->_sensor_datatype);
  Py_CLEAR(p->_sensor_needstage);
  Py_CLEAR(p->_sensor_objtype);
  Py_CLEAR(p->_sensor_objid);
  Py_CLEAR(p->_sensor_dim);
  Py_CLEAR(p->_sensor_adr);
  Py_CLEAR(p->_sensor_cutoff);
  Py_CLEAR(p->_sensor_noise);
  Py_CLEAR(p->_sensor_user);
  Py_CLEAR(p->_numeric_adr);
  Py_CLEAR(p->_numeric_size);
  Py_CLEAR(p->_numeric_data);
  Py_CLEAR(p->_text_adr);
  Py_CLEAR(p->_text_size);
  Py_CLEAR(p->_text_data);
  Py_CLEAR(p->_tuple_adr);
  Py_CLEAR(p->_tuple_size);
  Py_CLEAR(p->_tuple_objtype);
  Py_CLEAR(p->_tuple_objid);
  Py_CLEAR(p->_tuple_objprm);
  Py_CLEAR(p->_key_time);
  Py_CLEAR(p->_key_qpos);
  Py_CLEAR(p->_key_qvel);
  Py_CLEAR(p->_key_act);
  Py_CLEAR(p->_key_mpos);
  Py_CLEAR(p->_key_mquat);
  Py_CLEAR(p->_name_bodyadr);
  Py_CLEAR(p->_name_jntadr);
  Py_CLEAR(p->_name_geomadr);
  Py_CLEAR(p->_name_siteadr);
  Py_CLEAR(p->_name_camadr);
  Py_CLEAR(p->_name_lightadr);
  Py_CLEAR(p->_name_meshadr);
  Py_CLEAR(p->_name_skinadr);
  Py_CLEAR(p->_name_hfieldadr);
  Py_CLEAR(p->_name_texadr);
  Py_CLEAR(p->_name_matadr);
  Py_CLEAR(p->_name_pairadr);
  Py_CLEAR(p->_name_excludeadr);
  Py_CLEAR(p->_name_eqadr);
  Py_CLEAR(p->_name_tendonadr);
  Py_CLEAR(p->_name_actuatoradr);
  Py_CLEAR(p->_name_sensoradr);
  Py_CLEAR(p->_name_numericadr);
  Py_CLEAR(p->_name_textadr);
  Py_CLEAR(p->_name_tupleadr);
  Py_CLEAR(p->_name_keyadr);
  Py_CLEAR(p->_names);
  Py_CLEAR(p->body_names);
  Py_CLEAR(p->joint_names);
  Py_CLEAR(p->geom_names);
  Py_CLEAR(p->site_names);
  Py_CLEAR(p->light_names);
  Py_CLEAR(p->camera_names);
  Py_CLEAR(p->actuator_names);
  Py_CLEAR(p->sensor_names);
  Py_CLEAR(p->tendon_names);
  Py_CLEAR(p->mesh_names);
  Py_CLEAR(p->_body_id2name);
  Py_CLEAR(p->_joint_id2name);
  Py_CLEAR(p->_geom_id2name);
  Py_CLEAR(p->_site_id2name);
  Py_CLEAR(p->_light_id2name);
  Py_CLEAR(p->_camera_id2name);
  Py_CLEAR(p->_actuator_id2name);
  Py_CLEAR(p->_sensor_id2name);
  Py_CLEAR(p->_tendon_id2name);
  Py_CLEAR(p->_mesh_id2name);
  Py_CLEAR(p->_body_name2id);
  Py_CLEAR(p->_joint_name2id);
  Py_CLEAR(p->_geom_name2id);
  Py_CLEAR(p->_site_name2id);
  Py_CLEAR(p->_light_name2id);
  Py_CLEAR(p->_camera_name2id);
  Py_CLEAR(p->_actuator_name2id);
  Py_CLEAR(p->_sensor_name2id);
  Py_CLEAR(p->_tendon_name2id);
  Py_CLEAR(p->_mesh_name2id);
  Py_CLEAR(p->userdata_names);
  Py_CLEAR(p->_userdata_id2name);
  Py_CLEAR(p->_userdata_name2id);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjModel(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)o;
  if (p->_opt) {
    e = (*v)(((PyObject *)p->_opt), a); if (e) return e;
  }
  if (p->_vis) {
    e = (*v)(((PyObject *)p->_vis), a); if (e) return e;
  }
  if (p->_stat) {
    e = (*v)(((PyObject *)p->_stat), a); if (e) return e;
  }
  if (p->_qpos0) {
    e = (*v)(((PyObject *)p->_qpos0), a); if (e) return e;
  }
  if (p->_qpos_spring) {
    e = (*v)(((PyObject *)p->_qpos_spring), a); if (e) return e;
  }
  if (p->_body_parentid) {
    e = (*v)(((PyObject *)p->_body_parentid), a); if (e) return e;
  }
  if (p->_body_rootid) {
    e = (*v)(((PyObject *)p->_body_rootid), a); if (e) return e;
  }
  if (p->_body_weldid) {
    e = (*v)(((PyObject *)p->_body_weldid), a); if (e) return e;
  }
  if (p->_body_mocapid) {
    e = (*v)(((PyObject *)p->_body_mocapid), a); if (e) return e;
  }
  if (p->_body_jntnum) {
    e = (*v)(((PyObject *)p->_body_jntnum), a); if (e) return e;
  }
  if (p->_body_jntadr) {
    e = (*v)(((PyObject *)p->_body_jntadr), a); if (e) return e;
  }
  if (p->_body_dofnum) {
    e = (*v)(((PyObject *)p->_body_dofnum), a); if (e) return e;
  }
  if (p->_body_dofadr) {
    e = (*v)(((PyObject *)p->_body_dofadr), a); if (e) return e;
  }
  if (p->_body_geomnum) {
    e = (*v)(((PyObject *)p->_body_geomnum), a); if (e) return e;
  }
  if (p->_body_geomadr) {
    e = (*v)(((PyObject *)p->_body_geomadr), a); if (e) return e;
  }
  if (p->_body_simple) {
    e = (*v)(((PyObject *)p->_body_simple), a); if (e) return e;
  }
  if (p->_body_sameframe) {
    e = (*v)(((PyObject *)p->_body_sameframe), a); if (e) return e;
  }
  if (p->_body_pos) {
    e = (*v)(((PyObject *)p->_body_pos), a); if (e) return e;
  }
  if (p->_body_quat) {
    e = (*v)(((PyObject *)p->_body_quat), a); if (e) return e;
  }
  if (p->_body_ipos) {
    e = (*v)(((PyObject *)p->_body_ipos), a); if (e) return e;
  }
  if (p->_body_iquat) {
    e = (*v)(((PyObject *)p->_body_iquat), a); if (e) return e;
  }
  if (p->_body_mass) {
    e = (*v)(((PyObject *)p->_body_mass), a); if (e) return e;
  }
  if (p->_body_subtreemass) {
    e = (*v)(((PyObject *)p->_body_subtreemass), a); if (e) return e;
  }
  if (p->_body_inertia) {
    e = (*v)(((PyObject *)p->_body_inertia), a); if (e) return e;
  }
  if (p->_body_invweight0) {
    e = (*v)(((PyObject *)p->_body_invweight0), a); if (e) return e;
  }
  if (p->_body_user) {
    e = (*v)(((PyObject *)p->_body_user), a); if (e) return e;
  }
  if (p->_jnt_type) {
    e = (*v)(((PyObject *)p->_jnt_type), a); if (e) return e;
  }
  if (p->_jnt_qposadr) {
    e = (*v)(((PyObject *)p->_jnt_qposadr), a); if (e) return e;
  }
  if (p->_jnt_dofadr) {
    e = (*v)(((PyObject *)p->_jnt_dofadr), a); if (e) return e;
  }
  if (p->_jnt_bodyid) {
    e = (*v)(((PyObject *)p->_jnt_bodyid), a); if (e) return e;
  }
  if (p->_jnt_group) {
    e = (*v)(((PyObject *)p->_jnt_group), a); if (e) return e;
  }
  if (p->_jnt_limited) {
    e = (*v)(((PyObject *)p->_jnt_limited), a); if (e) return e;
  }
  if (p->_jnt_solref) {
    e = (*v)(((PyObject *)p->_jnt_solref), a); if (e) return e;
  }
  if (p->_jnt_solimp) {
    e = (*v)(((PyObject *)p->_jnt_solimp), a); if (e) return e;
  }
  if (p->_jnt_pos) {
    e = (*v)(((PyObject *)p->_jnt_pos), a); if (e) return e;
  }
  if (p->_jnt_axis) {
    e = (*v)(((PyObject *)p->_jnt_axis), a); if (e) return e;
  }
  if (p->_jnt_stiffness) {
    e = (*v)(((PyObject *)p->_jnt_stiffness), a); if (e) return e;
  }
  if (p->_jnt_range) {
    e = (*v)(((PyObject *)p->_jnt_range), a); if (e) return e;
  }
  if (p->_jnt_margin) {
    e = (*v)(((PyObject *)p->_jnt_margin), a); if (e) return e;
  }
  if (p->_jnt_user) {
    e = (*v)(((PyObject *)p->_jnt_user), a); if (e) return e;
  }
  if (p->_dof_bodyid) {
    e = (*v)(((PyObject *)p->_dof_bodyid), a); if (e) return e;
  }
  if (p->_dof_jntid) {
    e = (*v)(((PyObject *)p->_dof_jntid), a); if (e) return e;
  }
  if (p->_dof_parentid) {
    e = (*v)(((PyObject *)p->_dof_parentid), a); if (e) return e;
  }
  if (p->_dof_Madr) {
    e = (*v)(((PyObject *)p->_dof_Madr), a); if (e) return e;
  }
  if (p->_dof_simplenum) {
    e = (*v)(((PyObject *)p->_dof_simplenum), a); if (e) return e;
  }
  if (p->_dof_solref) {
    e = (*v)(((PyObject *)p->_dof_solref), a); if (e) return e;
  }
  if (p->_dof_solimp) {
    e = (*v)(((PyObject *)p->_dof_solimp), a); if (e) return e;
  }
  if (p->_dof_frictionloss) {
    e = (*v)(((PyObject *)p->_dof_frictionloss), a); if (e) return e;
  }
  if (p->_dof_armature) {
    e = (*v)(((PyObject *)p->_dof_armature), a); if (e) return e;
  }
  if (p->_dof_damping) {
    e = (*v)(((PyObject *)p->_dof_damping), a); if (e) return e;
  }
  if (p->_dof_invweight0) {
    e = (*v)(((PyObject *)p->_dof_invweight0), a); if (e) return e;
  }
  if (p->_dof_M0) {
    e = (*v)(((PyObject *)p->_dof_M0), a); if (e) return e;
  }
  if (p->_geom_type) {
    e = (*v)(((PyObject *)p->_geom_type), a); if (e) return e;
  }
  if (p->_geom_contype) {
    e = (*v)(((PyObject *)p->_geom_contype), a); if (e) return e;
  }
  if (p->_geom_conaffinity) {
    e = (*v)(((PyObject *)p->_geom_conaffinity), a); if (e) return e;
  }
  if (p->_geom_condim) {
    e = (*v)(((PyObject *)p->_geom_condim), a); if (e) return e;
  }
  if (p->_geom_bodyid) {
    e = (*v)(((PyObject *)p->_geom_bodyid), a); if (e) return e;
  }
  if (p->_geom_dataid) {
    e = (*v)(((PyObject *)p->_geom_dataid), a); if (e) return e;
  }
  if (p->_geom_matid) {
    e = (*v)(((PyObject *)p->_geom_matid), a); if (e) return e;
  }
  if (p->_geom_group) {
    e = (*v)(((PyObject *)p->_geom_group), a); if (e) return e;
  }
  if (p->_geom_priority) {
    e = (*v)(((PyObject *)p->_geom_priority), a); if (e) return e;
  }
  if (p->_geom_sameframe) {
    e = (*v)(((PyObject *)p->_geom_sameframe), a); if (e) return e;
  }
  if (p->_geom_solmix) {
    e = (*v)(((PyObject *)p->_geom_solmix), a); if (e) return e;
  }
  if (p->_geom_solref) {
    e = (*v)(((PyObject *)p->_geom_solref), a); if (e) return e;
  }
  if (p->_geom_solimp) {
    e = (*v)(((PyObject *)p->_geom_solimp), a); if (e) return e;
  }
  if (p->_geom_size) {
    e = (*v)(((PyObject *)p->_geom_size), a); if (e) return e;
  }
  if (p->_geom_rbound) {
    e = (*v)(((PyObject *)p->_geom_rbound), a); if (e) return e;
  }
  if (p->_geom_pos) {
    e = (*v)(((PyObject *)p->_geom_pos), a); if (e) return e;
  }
  if (p->_geom_quat) {
    e = (*v)(((PyObject *)p->_geom_quat), a); if (e) return e;
  }
  if (p->_geom_friction) {
    e = (*v)(((PyObject *)p->_geom_friction), a); if (e) return e;
  }
  if (p->_geom_margin) {
    e = (*v)(((PyObject *)p->_geom_margin), a); if (e) return e;
  }
  if (p->_geom_gap) {
    e = (*v)(((PyObject *)p->_geom_gap), a); if (e) return e;
  }
  if (p->_geom_user) {
    e = (*v)(((PyObject *)p->_geom_user), a); if (e) return e;
  }
  if (p->_geom_rgba) {
    e = (*v)(((PyObject *)p->_geom_rgba), a); if (e) return e;
  }
  if (p->_site_type) {
    e = (*v)(((PyObject *)p->_site_type), a); if (e) return e;
  }
  if (p->_site_bodyid) {
    e = (*v)(((PyObject *)p->_site_bodyid), a); if (e) return e;
  }
  if (p->_site_matid) {
    e = (*v)(((PyObject *)p->_site_matid), a); if (e) return e;
  }
  if (p->_site_group) {
    e = (*v)(((PyObject *)p->_site_group), a); if (e) return e;
  }
  if (p->_site_sameframe) {
    e = (*v)(((PyObject *)p->_site_sameframe), a); if (e) return e;
  }
  if (p->_site_size) {
    e = (*v)(((PyObject *)p->_site_size), a); if (e) return e;
  }
  if (p->_site_pos) {
    e = (*v)(((PyObject *)p->_site_pos), a); if (e) return e;
  }
  if (p->_site_quat) {
    e = (*v)(((PyObject *)p->_site_quat), a); if (e) return e;
  }
  if (p->_site_user) {
    e = (*v)(((PyObject *)p->_site_user), a); if (e) return e;
  }
  if (p->_site_rgba) {
    e = (*v)(((PyObject *)p->_site_rgba), a); if (e) return e;
  }
  if (p->_cam_mode) {
    e = (*v)(((PyObject *)p->_cam_mode), a); if (e) return e;
  }
  if (p->_cam_bodyid) {
    e = (*v)(((PyObject *)p->_cam_bodyid), a); if (e) return e;
  }
  if (p->_cam_targetbodyid) {
    e = (*v)(((PyObject *)p->_cam_targetbodyid), a); if (e) return e;
  }
  if (p->_cam_pos) {
    e = (*v)(((PyObject *)p->_cam_pos), a); if (e) return e;
  }
  if (p->_cam_quat) {
    e = (*v)(((PyObject *)p->_cam_quat), a); if (e) return e;
  }
  if (p->_cam_poscom0) {
    e = (*v)(((PyObject *)p->_cam_poscom0), a); if (e) return e;
  }
  if (p->_cam_pos0) {
    e = (*v)(((PyObject *)p->_cam_pos0), a); if (e) return e;
  }
  if (p->_cam_mat0) {
    e = (*v)(((PyObject *)p->_cam_mat0), a); if (e) return e;
  }
  if (p->_cam_fovy) {
    e = (*v)(((PyObject *)p->_cam_fovy), a); if (e) return e;
  }
  if (p->_cam_ipd) {
    e = (*v)(((PyObject *)p->_cam_ipd), a); if (e) return e;
  }
  if (p->_cam_user) {
    e = (*v)(((PyObject *)p->_cam_user), a); if (e) return e;
  }
  if (p->_light_mode) {
    e = (*v)(((PyObject *)p->_light_mode), a); if (e) return e;
  }
  if (p->_light_bodyid) {
    e = (*v)(((PyObject *)p->_light_bodyid), a); if (e) return e;
  }
  if (p->_light_targetbodyid) {
    e = (*v)(((PyObject *)p->_light_targetbodyid), a); if (e) return e;
  }
  if (p->_light_directional) {
    e = (*v)(((PyObject *)p->_light_directional), a); if (e) return e;
  }
  if (p->_light_castshadow) {
    e = (*v)(((PyObject *)p->_light_castshadow), a); if (e) return e;
  }
  if (p->_light_active) {
    e = (*v)(((PyObject *)p->_light_active), a); if (e) return e;
  }
  if (p->_light_pos) {
    e = (*v)(((PyObject *)p->_light_pos), a); if (e) return e;
  }
  if (p->_light_dir) {
    e = (*v)(((PyObject *)p->_light_dir), a); if (e) return e;
  }
  if (p->_light_poscom0) {
    e = (*v)(((PyObject *)p->_light_poscom0), a); if (e) return e;
  }
  if (p->_light_pos0) {
    e = (*v)(((PyObject *)p->_light_pos0), a); if (e) return e;
  }
  if (p->_light_dir0) {
    e = (*v)(((PyObject *)p->_light_dir0), a); if (e) return e;
  }
  if (p->_light_attenuation) {
    e = (*v)(((PyObject *)p->_light_attenuation), a); if (e) return e;
  }
  if (p->_light_cutoff) {
    e = (*v)(((PyObject *)p->_light_cutoff), a); if (e) return e;
  }
  if (p->_light_exponent) {
    e = (*v)(((PyObject *)p->_light_exponent), a); if (e) return e;
  }
  if (p->_light_ambient) {
    e = (*v)(((PyObject *)p->_light_ambient), a); if (e) return e;
  }
  if (p->_light_diffuse) {
    e = (*v)(((PyObject *)p->_light_diffuse), a); if (e) return e;
  }
  if (p->_light_specular) {
    e = (*v)(((PyObject *)p->_light_specular), a); if (e) return e;
  }
  if (p->_mesh_vertadr) {
    e = (*v)(((PyObject *)p->_mesh_vertadr), a); if (e) return e;
  }
  if (p->_mesh_vertnum) {
    e = (*v)(((PyObject *)p->_mesh_vertnum), a); if (e) return e;
  }
  if (p->_mesh_texcoordadr) {
    e = (*v)(((PyObject *)p->_mesh_texcoordadr), a); if (e) return e;
  }
  if (p->_mesh_faceadr) {
    e = (*v)(((PyObject *)p->_mesh_faceadr), a); if (e) return e;
  }
  if (p->_mesh_facenum) {
    e = (*v)(((PyObject *)p->_mesh_facenum), a); if (e) return e;
  }
  if (p->_mesh_graphadr) {
    e = (*v)(((PyObject *)p->_mesh_graphadr), a); if (e) return e;
  }
  if (p->_mesh_vert) {
    e = (*v)(((PyObject *)p->_mesh_vert), a); if (e) return e;
  }
  if (p->_mesh_normal) {
    e = (*v)(((PyObject *)p->_mesh_normal), a); if (e) return e;
  }
  if (p->_mesh_texcoord) {
    e = (*v)(((PyObject *)p->_mesh_texcoord), a); if (e) return e;
  }
  if (p->_mesh_face) {
    e = (*v)(((PyObject *)p->_mesh_face), a); if (e) return e;
  }
  if (p->_mesh_graph) {
    e = (*v)(((PyObject *)p->_mesh_graph), a); if (e) return e;
  }
  if (p->_skin_matid) {
    e = (*v)(((PyObject *)p->_skin_matid), a); if (e) return e;
  }
  if (p->_skin_rgba) {
    e = (*v)(((PyObject *)p->_skin_rgba), a); if (e) return e;
  }
  if (p->_skin_inflate) {
    e = (*v)(((PyObject *)p->_skin_inflate), a); if (e) return e;
  }
  if (p->_skin_vertadr) {
    e = (*v)(((PyObject *)p->_skin_vertadr), a); if (e) return e;
  }
  if (p->_skin_vertnum) {
    e = (*v)(((PyObject *)p->_skin_vertnum), a); if (e) return e;
  }
  if (p->_skin_texcoordadr) {
    e = (*v)(((PyObject *)p->_skin_texcoordadr), a); if (e) return e;
  }
  if (p->_skin_faceadr) {
    e = (*v)(((PyObject *)p->_skin_faceadr), a); if (e) return e;
  }
  if (p->_skin_facenum) {
    e = (*v)(((PyObject *)p->_skin_facenum), a); if (e) return e;
  }
  if (p->_skin_boneadr) {
    e = (*v)(((PyObject *)p->_skin_boneadr), a); if (e) return e;
  }
  if (p->_skin_bonenum) {
    e = (*v)(((PyObject *)p->_skin_bonenum), a); if (e) return e;
  }
  if (p->_skin_vert) {
    e = (*v)(((PyObject *)p->_skin_vert), a); if (e) return e;
  }
  if (p->_skin_texcoord) {
    e = (*v)(((PyObject *)p->_skin_texcoord), a); if (e) return e;
  }
  if (p->_skin_face) {
    e = (*v)(((PyObject *)p->_skin_face), a); if (e) return e;
  }
  if (p->_skin_bonevertadr) {
    e = (*v)(((PyObject *)p->_skin_bonevertadr), a); if (e) return e;
  }
  if (p->_skin_bonevertnum) {
    e = (*v)(((PyObject *)p->_skin_bonevertnum), a); if (e) return e;
  }
  if (p->_skin_bonebindpos) {
    e = (*v)(((PyObject *)p->_skin_bonebindpos), a); if (e) return e;
  }
  if (p->_skin_bonebindquat) {
    e = (*v)(((PyObject *)p->_skin_bonebindquat), a); if (e) return e;
  }
  if (p->_skin_bonebodyid) {
    e = (*v)(((PyObject *)p->_skin_bonebodyid), a); if (e) return e;
  }
  if (p->_skin_bonevertid) {
    e = (*v)(((PyObject *)p->_skin_bonevertid), a); if (e) return e;
  }
  if (p->_skin_bonevertweight) {
    e = (*v)(((PyObject *)p->_skin_bonevertweight), a); if (e) return e;
  }
  if (p->_hfield_size) {
    e = (*v)(((PyObject *)p->_hfield_size), a); if (e) return e;
  }
  if (p->_hfield_nrow) {
    e = (*v)(((PyObject *)p->_hfield_nrow), a); if (e) return e;
  }
  if (p->_hfield_ncol) {
    e = (*v)(((PyObject *)p->_hfield_ncol), a); if (e) return e;
  }
  if (p->_hfield_adr) {
    e = (*v)(((PyObject *)p->_hfield_adr), a); if (e) return e;
  }
  if (p->_hfield_data) {
    e = (*v)(((PyObject *)p->_hfield_data), a); if (e) return e;
  }
  if (p->_tex_type) {
    e = (*v)(((PyObject *)p->_tex_type), a); if (e) return e;
  }
  if (p->_tex_height) {
    e = (*v)(((PyObject *)p->_tex_height), a); if (e) return e;
  }
  if (p->_tex_width) {
    e = (*v)(((PyObject *)p->_tex_width), a); if (e) return e;
  }
  if (p->_tex_adr) {
    e = (*v)(((PyObject *)p->_tex_adr), a); if (e) return e;
  }
  if (p->_tex_rgb) {
    e = (*v)(((PyObject *)p->_tex_rgb), a); if (e) return e;
  }
  if (p->_mat_texid) {
    e = (*v)(((PyObject *)p->_mat_texid), a); if (e) return e;
  }
  if (p->_mat_texuniform) {
    e = (*v)(((PyObject *)p->_mat_texuniform), a); if (e) return e;
  }
  if (p->_mat_texrepeat) {
    e = (*v)(((PyObject *)p->_mat_texrepeat), a); if (e) return e;
  }
  if (p->_mat_emission) {
    e = (*v)(((PyObject *)p->_mat_emission), a); if (e) return e;
  }
  if (p->_mat_specular) {
    e = (*v)(((PyObject *)p->_mat_specular), a); if (e) return e;
  }
  if (p->_mat_shininess) {
    e = (*v)(((PyObject *)p->_mat_shininess), a); if (e) return e;
  }
  if (p->_mat_reflectance) {
    e = (*v)(((PyObject *)p->_mat_reflectance), a); if (e) return e;
  }
  if (p->_mat_rgba) {
    e = (*v)(((PyObject *)p->_mat_rgba), a); if (e) return e;
  }
  if (p->_pair_dim) {
    e = (*v)(((PyObject *)p->_pair_dim), a); if (e) return e;
  }
  if (p->_pair_geom1) {
    e = (*v)(((PyObject *)p->_pair_geom1), a); if (e) return e;
  }
  if (p->_pair_geom2) {
    e = (*v)(((PyObject *)p->_pair_geom2), a); if (e) return e;
  }
  if (p->_pair_signature) {
    e = (*v)(((PyObject *)p->_pair_signature), a); if (e) return e;
  }
  if (p->_pair_solref) {
    e = (*v)(((PyObject *)p->_pair_solref), a); if (e) return e;
  }
  if (p->_pair_solimp) {
    e = (*v)(((PyObject *)p->_pair_solimp), a); if (e) return e;
  }
  if (p->_pair_margin) {
    e = (*v)(((PyObject *)p->_pair_margin), a); if (e) return e;
  }
  if (p->_pair_gap) {
    e = (*v)(((PyObject *)p->_pair_gap), a); if (e) return e;
  }
  if (p->_pair_friction) {
    e = (*v)(((PyObject *)p->_pair_friction), a); if (e) return e;
  }
  if (p->_exclude_signature) {
    e = (*v)(((PyObject *)p->_exclude_signature), a); if (e) return e;
  }
  if (p->_eq_type) {
    e = (*v)(((PyObject *)p->_eq_type), a); if (e) return e;
  }
  if (p->_eq_obj1id) {
    e = (*v)(((PyObject *)p->_eq_obj1id), a); if (e) return e;
  }
  if (p->_eq_obj2id) {
    e = (*v)(((PyObject *)p->_eq_obj2id), a); if (e) return e;
  }
  if (p->_eq_active) {
    e = (*v)(((PyObject *)p->_eq_active), a); if (e) return e;
  }
  if (p->_eq_solref) {
    e = (*v)(((PyObject *)p->_eq_solref), a); if (e) return e;
  }
  if (p->_eq_solimp) {
    e = (*v)(((PyObject *)p->_eq_solimp), a); if (e) return e;
  }
  if (p->_eq_data) {
    e = (*v)(((PyObject *)p->_eq_data), a); if (e) return e;
  }
  if (p->_tendon_adr) {
    e = (*v)(((PyObject *)p->_tendon_adr), a); if (e) return e;
  }
  if (p->_tendon_num) {
    e = (*v)(((PyObject *)p->_tendon_num), a); if (e) return e;
  }
  if (p->_tendon_matid) {
    e = (*v)(((PyObject *)p->_tendon_matid), a); if (e) return e;
  }
  if (p->_tendon_group) {
    e = (*v)(((PyObject *)p->_tendon_group), a); if (e) return e;
  }
  if (p->_tendon_limited) {
    e = (*v)(((PyObject *)p->_tendon_limited), a); if (e) return e;
  }
  if (p->_tendon_width) {
    e = (*v)(((PyObject *)p->_tendon_width), a); if (e) return e;
  }
  if (p->_tendon_solref_lim) {
    e = (*v)(((PyObject *)p->_tendon_solref_lim), a); if (e) return e;
  }
  if (p->_tendon_solimp_lim) {
    e = (*v)(((PyObject *)p->_tendon_solimp_lim), a); if (e) return e;
  }
  if (p->_tendon_solref_fri) {
    e = (*v)(((PyObject *)p->_tendon_solref_fri), a); if (e) return e;
  }
  if (p->_tendon_solimp_fri) {
    e = (*v)(((PyObject *)p->_tendon_solimp_fri), a); if (e) return e;
  }
  if (p->_tendon_range) {
    e = (*v)(((PyObject *)p->_tendon_range), a); if (e) return e;
  }
  if (p->_tendon_margin) {
    e = (*v)(((PyObject *)p->_tendon_margin), a); if (e) return e;
  }
  if (p->_tendon_stiffness) {
    e = (*v)(((PyObject *)p->_tendon_stiffness), a); if (e) return e;
  }
  if (p->_tendon_damping) {
    e = (*v)(((PyObject *)p->_tendon_damping), a); if (e) return e;
  }
  if (p->_tendon_frictionloss) {
    e = (*v)(((PyObject *)p->_tendon_frictionloss), a); if (e) return e;
  }
  if (p->_tendon_lengthspring) {
    e = (*v)(((PyObject *)p->_tendon_lengthspring), a); if (e) return e;
  }
  if (p->_tendon_length0) {
    e = (*v)(((PyObject *)p->_tendon_length0), a); if (e) return e;
  }
  if (p->_tendon_invweight0) {
    e = (*v)(((PyObject *)p->_tendon_invweight0), a); if (e) return e;
  }
  if (p->_tendon_user) {
    e = (*v)(((PyObject *)p->_tendon_user), a); if (e) return e;
  }
  if (p->_tendon_rgba) {
    e = (*v)(((PyObject *)p->_tendon_rgba), a); if (e) return e;
  }
  if (p->_wrap_type) {
    e = (*v)(((PyObject *)p->_wrap_type), a); if (e) return e;
  }
  if (p->_wrap_objid) {
    e = (*v)(((PyObject *)p->_wrap_objid), a); if (e) return e;
  }
  if (p->_wrap_prm) {
    e = (*v)(((PyObject *)p->_wrap_prm), a); if (e) return e;
  }
  if (p->_actuator_trntype) {
    e = (*v)(((PyObject *)p->_actuator_trntype), a); if (e) return e;
  }
  if (p->_actuator_dyntype) {
    e = (*v)(((PyObject *)p->_actuator_dyntype), a); if (e) return e;
  }
  if (p->_actuator_gaintype) {
    e = (*v)(((PyObject *)p->_actuator_gaintype), a); if (e) return e;
  }
  if (p->_actuator_biastype) {
    e = (*v)(((PyObject *)p->_actuator_biastype), a); if (e) return e;
  }
  if (p->_actuator_trnid) {
    e = (*v)(((PyObject *)p->_actuator_trnid), a); if (e) return e;
  }
  if (p->_actuator_group) {
    e = (*v)(((PyObject *)p->_actuator_group), a); if (e) return e;
  }
  if (p->_actuator_ctrllimited) {
    e = (*v)(((PyObject *)p->_actuator_ctrllimited), a); if (e) return e;
  }
  if (p->_actuator_forcelimited) {
    e = (*v)(((PyObject *)p->_actuator_forcelimited), a); if (e) return e;
  }
  if (p->_actuator_dynprm) {
    e = (*v)(((PyObject *)p->_actuator_dynprm), a); if (e) return e;
  }
  if (p->_actuator_gainprm) {
    e = (*v)(((PyObject *)p->_actuator_gainprm), a); if (e) return e;
  }
  if (p->_actuator_biasprm) {
    e = (*v)(((PyObject *)p->_actuator_biasprm), a); if (e) return e;
  }
  if (p->_actuator_ctrlrange) {
    e = (*v)(((PyObject *)p->_actuator_ctrlrange), a); if (e) return e;
  }
  if (p->_actuator_forcerange) {
    e = (*v)(((PyObject *)p->_actuator_forcerange), a); if (e) return e;
  }
  if (p->_actuator_gear) {
    e = (*v)(((PyObject *)p->_actuator_gear), a); if (e) return e;
  }
  if (p->_actuator_cranklength) {
    e = (*v)(((PyObject *)p->_actuator_cranklength), a); if (e) return e;
  }
  if (p->_actuator_acc0) {
    e = (*v)(((PyObject *)p->_actuator_acc0), a); if (e) return e;
  }
  if (p->_actuator_length0) {
    e = (*v)(((PyObject *)p->_actuator_length0), a); if (e) return e;
  }
  if (p->_actuator_lengthrange) {
    e = (*v)(((PyObject *)p->_actuator_lengthrange), a); if (e) return e;
  }
  if (p->_actuator_user) {
    e = (*v)(((PyObject *)p->_actuator_user), a); if (e) return e;
  }
  if (p->_sensor_type) {
    e = (*v)(((PyObject *)p->_sensor_type), a); if (e) return e;
  }
  if (p->_sensor_datatype) {
    e = (*v)(((PyObject *)p->_sensor_datatype), a); if (e) return e;
  }
  if (p->_sensor_needstage) {
    e = (*v)(((PyObject *)p->_sensor_needstage), a); if (e) return e;
  }
  if (p->_sensor_objtype) {
    e = (*v)(((PyObject *)p->_sensor_objtype), a); if (e) return e;
  }
  if (p->_sensor_objid) {
    e = (*v)(((PyObject *)p->_sensor_objid), a); if (e) return e;
  }
  if (p->_sensor_dim) {
    e = (*v)(((PyObject *)p->_sensor_dim), a); if (e) return e;
  }
  if (p->_sensor_adr) {
    e = (*v)(((PyObject *)p->_sensor_adr), a); if (e) return e;
  }
  if (p->_sensor_cutoff) {
    e = (*v)(((PyObject *)p->_sensor_cutoff), a); if (e) return e;
  }
  if (p->_sensor_noise) {
    e = (*v)(((PyObject *)p->_sensor_noise), a); if (e) return e;
  }
  if (p->_sensor_user) {
    e = (*v)(((PyObject *)p->_sensor_user), a); if (e) return e;
  }
  if (p->_numeric_adr) {
    e = (*v)(((PyObject *)p->_numeric_adr), a); if (e) return e;
  }
  if (p->_numeric_size) {
    e = (*v)(((PyObject *)p->_numeric_size), a); if (e) return e;
  }
  if (p->_numeric_data) {
    e = (*v)(((PyObject *)p->_numeric_data), a); if (e) return e;
  }
  if (p->_text_adr) {
    e = (*v)(((PyObject *)p->_text_adr), a); if (e) return e;
  }
  if (p->_text_size) {
    e = (*v)(((PyObject *)p->_text_size), a); if (e) return e;
  }
  if (p->_text_data) {
    e = (*v)(((PyObject *)p->_text_data), a); if (e) return e;
  }
  if (p->_tuple_adr) {
    e = (*v)(((PyObject *)p->_tuple_adr), a); if (e) return e;
  }
  if (p->_tuple_size) {
    e = (*v)(((PyObject *)p->_tuple_size), a); if (e) return e;
  }
  if (p->_tuple_objtype) {
    e = (*v)(((PyObject *)p->_tuple_objtype), a); if (e) return e;
  }
  if (p->_tuple_objid) {
    e = (*v)(((PyObject *)p->_tuple_objid), a); if (e) return e;
  }
  if (p->_tuple_objprm) {
    e = (*v)(((PyObject *)p->_tuple_objprm), a); if (e) return e;
  }
  if (p->_key_time) {
    e = (*v)(((PyObject *)p->_key_time), a); if (e) return e;
  }
  if (p->_key_qpos) {
    e = (*v)(((PyObject *)p->_key_qpos), a); if (e) return e;
  }
  if (p->_key_qvel) {
    e = (*v)(((PyObject *)p->_key_qvel), a); if (e) return e;
  }
  if (p->_key_act) {
    e = (*v)(((PyObject *)p->_key_act), a); if (e) return e;
  }
  if (p->_key_mpos) {
    e = (*v)(((PyObject *)p->_key_mpos), a); if (e) return e;
  }
  if (p->_key_mquat) {
    e = (*v)(((PyObject *)p->_key_mquat), a); if (e) return e;
  }
  if (p->_name_bodyadr) {
    e = (*v)(((PyObject *)p->_name_bodyadr), a); if (e) return e;
  }
  if (p->_name_jntadr) {
    e = (*v)(((PyObject *)p->_name_jntadr), a); if (e) return e;
  }
  if (p->_name_geomadr) {
    e = (*v)(((PyObject *)p->_name_geomadr), a); if (e) return e;
  }
  if (p->_name_siteadr) {
    e = (*v)(((PyObject *)p->_name_siteadr), a); if (e) return e;
  }
  if (p->_name_camadr) {
    e = (*v)(((PyObject *)p->_name_camadr), a); if (e) return e;
  }
  if (p->_name_lightadr) {
    e = (*v)(((PyObject *)p->_name_lightadr), a); if (e) return e;
  }
  if (p->_name_meshadr) {
    e = (*v)(((PyObject *)p->_name_meshadr), a); if (e) return e;
  }
  if (p->_name_skinadr) {
    e = (*v)(((PyObject *)p->_name_skinadr), a); if (e) return e;
  }
  if (p->_name_hfieldadr) {
    e = (*v)(((PyObject *)p->_name_hfieldadr), a); if (e) return e;
  }
  if (p->_name_texadr) {
    e = (*v)(((PyObject *)p->_name_texadr), a); if (e) return e;
  }
  if (p->_name_matadr) {
    e = (*v)(((PyObject *)p->_name_matadr), a); if (e) return e;
  }
  if (p->_name_pairadr) {
    e = (*v)(((PyObject *)p->_name_pairadr), a); if (e) return e;
  }
  if (p->_name_excludeadr) {
    e = (*v)(((PyObject *)p->_name_excludeadr), a); if (e) return e;
  }
  if (p->_name_eqadr) {
    e = (*v)(((PyObject *)p->_name_eqadr), a); if (e) return e;
  }
  if (p->_name_tendonadr) {
    e = (*v)(((PyObject *)p->_name_tendonadr), a); if (e) return e;
  }
  if (p->_name_actuatoradr) {
    e = (*v)(((PyObject *)p->_name_actuatoradr), a); if (e) return e;
  }
  if (p->_name_sensoradr) {
    e = (*v)(((PyObject *)p->_name_sensoradr), a); if (e) return e;
  }
  if (p->_name_numericadr) {
    e = (*v)(((PyObject *)p->_name_numericadr), a); if (e) return e;
  }
  if (p->_name_textadr) {
    e = (*v)(((PyObject *)p->_name_textadr), a); if (e) return e;
  }
  if (p->_name_tupleadr) {
    e = (*v)(((PyObject *)p->_name_tupleadr), a); if (e) return e;
  }
  if (p->_name_keyadr) {
    e = (*v)(((PyObject *)p->_name_keyadr), a); if (e) return e;
  }
  if (p->_names) {
    e = (*v)(((PyObject *)p->_names), a); if (e) return e;
  }
  if (p->body_names) {
    e = (*v)(p->body_names, a); if (e) return e;
  }
  if (p->joint_names) {
    e = (*v)(p->joint_names, a); if (e) return e;
  }
  if (p->geom_names) {
    e = (*v)(p->geom_names, a); if (e) return e;
  }
  if (p->site_names) {
    e = (*v)(p->site_names, a); if (e) return e;
  }
  if (p->light_names) {
    e = (*v)(p->light_names, a); if (e) return e;
  }
  if (p->camera_names) {
    e = (*v)(p->camera_names, a); if (e) return e;
  }
  if (p->actuator_names) {
    e = (*v)(p->actuator_names, a); if (e) return e;
  }
  if (p->sensor_names) {
    e = (*v)(p->sensor_names, a); if (e) return e;
  }
  if (p->tendon_names) {
    e = (*v)(p->tendon_names, a); if (e) return e;
  }
  if (p->mesh_names) {
    e = (*v)(p->mesh_names, a); if (e) return e;
  }
  if (p->_body_id2name) {
    e = (*v)(p->_body_id2name, a); if (e) return e;
  }
  if (p->_joint_id2name) {
    e = (*v)(p->_joint_id2name, a); if (e) return e;
  }
  if (p->_geom_id2name) {
    e = (*v)(p->_geom_id2name, a); if (e) return e;
  }
  if (p->_site_id2name) {
    e = (*v)(p->_site_id2name, a); if (e) return e;
  }
  if (p->_light_id2name) {
    e = (*v)(p->_light_id2name, a); if (e) return e;
  }
  if (p->_camera_id2name) {
    e = (*v)(p->_camera_id2name, a); if (e) return e;
  }
  if (p->_actuator_id2name) {
    e = (*v)(p->_actuator_id2name, a); if (e) return e;
  }
  if (p->_sensor_id2name) {
    e = (*v)(p->_sensor_id2name, a); if (e) return e;
  }
  if (p->_tendon_id2name) {
    e = (*v)(p->_tendon_id2name, a); if (e) return e;
  }
  if (p->_mesh_id2name) {
    e = (*v)(p->_mesh_id2name, a); if (e) return e;
  }
  if (p->_body_name2id) {
    e = (*v)(p->_body_name2id, a); if (e) return e;
  }
  if (p->_joint_name2id) {
    e = (*v)(p->_joint_name2id, a); if (e) return e;
  }
  if (p->_geom_name2id) {
    e = (*v)(p->_geom_name2id, a); if (e) return e;
  }
  if (p->_site_name2id) {
    e = (*v)(p->_site_name2id, a); if (e) return e;
  }
  if (p->_light_name2id) {
    e = (*v)(p->_light_name2id, a); if (e) return e;
  }
  if (p->_camera_name2id) {
    e = (*v)(p->_camera_name2id, a); if (e) return e;
  }
  if (p->_actuator_name2id) {
    e = (*v)(p->_actuator_name2id, a); if (e) return e;
  }
  if (p->_sensor_name2id) {
    e = (*v)(p->_sensor_name2id, a); if (e) return e;
  }
  if (p->_tendon_name2id) {
    e = (*v)(p->_tendon_name2id, a); if (e) return e;
  }
  if (p->_mesh_name2id) {
    e = (*v)(p->_mesh_name2id, a); if (e) return e;
  }
  if (p->userdata_names) {
    e = (*v)(p->userdata_names, a); if (e) return e;
  }
  if (p->_userdata_id2name) {
    e = (*v)(p->_userdata_id2name, a); if (e) return e;
  }
  if (p->_userdata_name2id) {
    e = (*v)(p->_userdata_name2id, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjModel(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)o;
  tmp = ((PyObject*)p->_opt);
  p->_opt = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_vis);
  p->_vis = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_stat);
  p->_stat = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qpos0);
  p->_qpos0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qpos_spring);
  p->_qpos_spring = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_parentid);
  p->_body_parentid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_rootid);
  p->_body_rootid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_weldid);
  p->_body_weldid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_mocapid);
  p->_body_mocapid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_jntnum);
  p->_body_jntnum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_jntadr);
  p->_body_jntadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_dofnum);
  p->_body_dofnum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_dofadr);
  p->_body_dofadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_geomnum);
  p->_body_geomnum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_geomadr);
  p->_body_geomadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_simple);
  p->_body_simple = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_sameframe);
  p->_body_sameframe = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_pos);
  p->_body_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_quat);
  p->_body_quat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_ipos);
  p->_body_ipos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_iquat);
  p->_body_iquat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_mass);
  p->_body_mass = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_subtreemass);
  p->_body_subtreemass = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_inertia);
  p->_body_inertia = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_invweight0);
  p->_body_invweight0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_user);
  p->_body_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_jnt_type);
  p->_jnt_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_jnt_qposadr);
  p->_jnt_qposadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_jnt_dofadr);
  p->_jnt_dofadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_jnt_bodyid);
  p->_jnt_bodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_jnt_group);
  p->_jnt_group = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_jnt_limited);
  p->_jnt_limited = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_jnt_solref);
  p->_jnt_solref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_jnt_solimp);
  p->_jnt_solimp = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_jnt_pos);
  p->_jnt_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_jnt_axis);
  p->_jnt_axis = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_jnt_stiffness);
  p->_jnt_stiffness = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_jnt_range);
  p->_jnt_range = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_jnt_margin);
  p->_jnt_margin = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_jnt_user);
  p->_jnt_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dof_bodyid);
  p->_dof_bodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dof_jntid);
  p->_dof_jntid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dof_parentid);
  p->_dof_parentid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dof_Madr);
  p->_dof_Madr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dof_simplenum);
  p->_dof_simplenum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dof_solref);
  p->_dof_solref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dof_solimp);
  p->_dof_solimp = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dof_frictionloss);
  p->_dof_frictionloss = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dof_armature);
  p->_dof_armature = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dof_damping);
  p->_dof_damping = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dof_invweight0);
  p->_dof_invweight0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dof_M0);
  p->_dof_M0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_type);
  p->_geom_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_contype);
  p->_geom_contype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_conaffinity);
  p->_geom_conaffinity = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_condim);
  p->_geom_condim = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_bodyid);
  p->_geom_bodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_dataid);
  p->_geom_dataid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_matid);
  p->_geom_matid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_group);
  p->_geom_group = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_priority);
  p->_geom_priority = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_sameframe);
  p->_geom_sameframe = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_solmix);
  p->_geom_solmix = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_solref);
  p->_geom_solref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_solimp);
  p->_geom_solimp = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_size);
  p->_geom_size = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_rbound);
  p->_geom_rbound = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_pos);
  p->_geom_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_quat);
  p->_geom_quat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_friction);
  p->_geom_friction = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_margin);
  p->_geom_margin = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_gap);
  p->_geom_gap = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_user);
  p->_geom_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_rgba);
  p->_geom_rgba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_site_type);
  p->_site_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_site_bodyid);
  p->_site_bodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_site_matid);
  p->_site_matid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_site_group);
  p->_site_group = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_site_sameframe);
  p->_site_sameframe = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_site_size);
  p->_site_size = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_site_pos);
  p->_site_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_site_quat);
  p->_site_quat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_site_user);
  p->_site_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_site_rgba);
  p->_site_rgba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cam_mode);
  p->_cam_mode = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cam_bodyid);
  p->_cam_bodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cam_targetbodyid);
  p->_cam_targetbodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cam_pos);
  p->_cam_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cam_quat);
  p->_cam_quat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cam_poscom0);
  p->_cam_poscom0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cam_pos0);
  p->_cam_pos0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cam_mat0);
  p->_cam_mat0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cam_fovy);
  p->_cam_fovy = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cam_ipd);
  p->_cam_ipd = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cam_user);
  p->_cam_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_mode);
  p->_light_mode = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_bodyid);
  p->_light_bodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_targetbodyid);
  p->_light_targetbodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_directional);
  p->_light_directional = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_castshadow);
  p->_light_castshadow = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_active);
  p->_light_active = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_pos);
  p->_light_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_dir);
  p->_light_dir = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_poscom0);
  p->_light_poscom0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_pos0);
  p->_light_pos0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_dir0);
  p->_light_dir0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_attenuation);
  p->_light_attenuation = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_cutoff);
  p->_light_cutoff = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_exponent);
  p->_light_exponent = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_ambient);
  p->_light_ambient = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_diffuse);
  p->_light_diffuse = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_specular);
  p->_light_specular = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mesh_vertadr);
  p->_mesh_vertadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mesh_vertnum);
  p->_mesh_vertnum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mesh_texcoordadr);
  p->_mesh_texcoordadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mesh_faceadr);
  p->_mesh_faceadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mesh_facenum);
  p->_mesh_facenum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mesh_graphadr);
  p->_mesh_graphadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mesh_vert);
  p->_mesh_vert = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mesh_normal);
  p->_mesh_normal = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mesh_texcoord);
  p->_mesh_texcoord = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mesh_face);
  p->_mesh_face = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mesh_graph);
  p->_mesh_graph = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_matid);
  p->_skin_matid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_rgba);
  p->_skin_rgba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_inflate);
  p->_skin_inflate = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_vertadr);
  p->_skin_vertadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_vertnum);
  p->_skin_vertnum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_texcoordadr);
  p->_skin_texcoordadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_faceadr);
  p->_skin_faceadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_facenum);
  p->_skin_facenum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_boneadr);
  p->_skin_boneadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_bonenum);
  p->_skin_bonenum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_vert);
  p->_skin_vert = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_texcoord);
  p->_skin_texcoord = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_face);
  p->_skin_face = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_bonevertadr);
  p->_skin_bonevertadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_bonevertnum);
  p->_skin_bonevertnum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_bonebindpos);
  p->_skin_bonebindpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_bonebindquat);
  p->_skin_bonebindquat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_bonebodyid);
  p->_skin_bonebodyid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_bonevertid);
  p->_skin_bonevertid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_skin_bonevertweight);
  p->_skin_bonevertweight = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_hfield_size);
  p->_hfield_size = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_hfield_nrow);
  p->_hfield_nrow = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_hfield_ncol);
  p->_hfield_ncol = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_hfield_adr);
  p->_hfield_adr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_hfield_data);
  p->_hfield_data = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tex_type);
  p->_tex_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tex_height);
  p->_tex_height = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tex_width);
  p->_tex_width = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tex_adr);
  p->_tex_adr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tex_rgb);
  p->_tex_rgb = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mat_texid);
  p->_mat_texid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mat_texuniform);
  p->_mat_texuniform = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mat_texrepeat);
  p->_mat_texrepeat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mat_emission);
  p->_mat_emission = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mat_specular);
  p->_mat_specular = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mat_shininess);
  p->_mat_shininess = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mat_reflectance);
  p->_mat_reflectance = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mat_rgba);
  p->_mat_rgba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_pair_dim);
  p->_pair_dim = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_pair_geom1);
  p->_pair_geom1 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_pair_geom2);
  p->_pair_geom2 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_pair_signature);
  p->_pair_signature = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_pair_solref);
  p->_pair_solref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_pair_solimp);
  p->_pair_solimp = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_pair_margin);
  p->_pair_margin = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_pair_gap);
  p->_pair_gap = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_pair_friction);
  p->_pair_friction = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_exclude_signature);
  p->_exclude_signature = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_eq_type);
  p->_eq_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_eq_obj1id);
  p->_eq_obj1id = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_eq_obj2id);
  p->_eq_obj2id = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_eq_active);
  p->_eq_active = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_eq_solref);
  p->_eq_solref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_eq_solimp);
  p->_eq_solimp = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_eq_data);
  p->_eq_data = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_adr);
  p->_tendon_adr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_num);
  p->_tendon_num = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_matid);
  p->_tendon_matid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_group);
  p->_tendon_group = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_limited);
  p->_tendon_limited = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_width);
  p->_tendon_width = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_solref_lim);
  p->_tendon_solref_lim = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_solimp_lim);
  p->_tendon_solimp_lim = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_solref_fri);
  p->_tendon_solref_fri = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_solimp_fri);
  p->_tendon_solimp_fri = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_range);
  p->_tendon_range = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_margin);
  p->_tendon_margin = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_stiffness);
  p->_tendon_stiffness = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_damping);
  p->_tendon_damping = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_frictionloss);
  p->_tendon_frictionloss = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_lengthspring);
  p->_tendon_lengthspring = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_length0);
  p->_tendon_length0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_invweight0);
  p->_tendon_invweight0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_user);
  p->_tendon_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_rgba);
  p->_tendon_rgba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_wrap_type);
  p->_wrap_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_wrap_objid);
  p->_wrap_objid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_wrap_prm);
  p->_wrap_prm = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_trntype);
  p->_actuator_trntype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_dyntype);
  p->_actuator_dyntype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_gaintype);
  p->_actuator_gaintype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_biastype);
  p->_actuator_biastype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_trnid);
  p->_actuator_trnid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_group);
  p->_actuator_group = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_ctrllimited);
  p->_actuator_ctrllimited = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_forcelimited);
  p->_actuator_forcelimited = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_dynprm);
  p->_actuator_dynprm = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_gainprm);
  p->_actuator_gainprm = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_biasprm);
  p->_actuator_biasprm = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_ctrlrange);
  p->_actuator_ctrlrange = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_forcerange);
  p->_actuator_forcerange = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_gear);
  p->_actuator_gear = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_cranklength);
  p->_actuator_cranklength = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_acc0);
  p->_actuator_acc0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_length0);
  p->_actuator_length0 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_lengthrange);
  p->_actuator_lengthrange = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_user);
  p->_actuator_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sensor_type);
  p->_sensor_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sensor_datatype);
  p->_sensor_datatype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sensor_needstage);
  p->_sensor_needstage = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sensor_objtype);
  p->_sensor_objtype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sensor_objid);
  p->_sensor_objid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sensor_dim);
  p->_sensor_dim = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sensor_adr);
  p->_sensor_adr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sensor_cutoff);
  p->_sensor_cutoff = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sensor_noise);
  p->_sensor_noise = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sensor_user);
  p->_sensor_user = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_numeric_adr);
  p->_numeric_adr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_numeric_size);
  p->_numeric_size = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_numeric_data);
  p->_numeric_data = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_text_adr);
  p->_text_adr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_text_size);
  p->_text_size = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_text_data);
  p->_text_data = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tuple_adr);
  p->_tuple_adr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tuple_size);
  p->_tuple_size = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tuple_objtype);
  p->_tuple_objtype = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tuple_objid);
  p->_tuple_objid = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tuple_objprm);
  p->_tuple_objprm = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_key_time);
  p->_key_time = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_key_qpos);
  p->_key_qpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_key_qvel);
  p->_key_qvel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_key_act);
  p->_key_act = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_key_mpos);
  p->_key_mpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_key_mquat);
  p->_key_mquat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_bodyadr);
  p->_name_bodyadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_jntadr);
  p->_name_jntadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_geomadr);
  p->_name_geomadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_siteadr);
  p->_name_siteadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_camadr);
  p->_name_camadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_lightadr);
  p->_name_lightadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_meshadr);
  p->_name_meshadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_skinadr);
  p->_name_skinadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_hfieldadr);
  p->_name_hfieldadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_texadr);
  p->_name_texadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_matadr);
  p->_name_matadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_pairadr);
  p->_name_pairadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_excludeadr);
  p->_name_excludeadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_eqadr);
  p->_name_eqadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_tendonadr);
  p->_name_tendonadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_actuatoradr);
  p->_name_actuatoradr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_sensoradr);
  p->_name_sensoradr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_numericadr);
  p->_name_numericadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_textadr);
  p->_name_textadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_tupleadr);
  p->_name_tupleadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name_keyadr);
  p->_name_keyadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_names);
  p->_names = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->body_names);
  p->body_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->joint_names);
  p->joint_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->geom_names);
  p->geom_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->site_names);
  p->site_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->light_names);
  p->light_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->camera_names);
  p->camera_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->actuator_names);
  p->actuator_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->sensor_names);
  p->sensor_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->tendon_names);
  p->tendon_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->mesh_names);
  p->mesh_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_id2name);
  p->_body_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_joint_id2name);
  p->_joint_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_id2name);
  p->_geom_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_site_id2name);
  p->_site_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_id2name);
  p->_light_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_camera_id2name);
  p->_camera_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_id2name);
  p->_actuator_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sensor_id2name);
  p->_sensor_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_id2name);
  p->_tendon_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mesh_id2name);
  p->_mesh_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_body_name2id);
  p->_body_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_joint_name2id);
  p->_joint_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_name2id);
  p->_geom_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_site_name2id);
  p->_site_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_name2id);
  p->_light_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_camera_name2id);
  p->_camera_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_name2id);
  p->_actuator_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sensor_name2id);
  p->_sensor_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendon_name2id);
  p->_tendon_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mesh_name2id);
  p->_mesh_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->userdata_names);
  p->userdata_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_userdata_id2name);
  p->_userdata_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_userdata_name2id);
  p->_userdata_name2id = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nq(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nq_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nq(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nq_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nv(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nv_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nv(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nv_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nu(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nu_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nu(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nu_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_na(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2na_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_na(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2na_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nbody(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nbody_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nbody(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nbody_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_njnt(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4njnt_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_njnt(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4njnt_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ngeom(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5ngeom_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ngeom(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5ngeom_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nsite(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nsite_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nsite(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nsite_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ncam(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4ncam_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ncam(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4ncam_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nlight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nlight_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nlight(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nlight_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nmesh(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nmesh_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nmesh(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nmesh_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nmeshvert(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nmeshvert_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nmeshvert(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nmeshvert_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nmeshtexvert(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nmeshtexvert_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nmeshtexvert(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nmeshtexvert_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nmeshface(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nmeshface_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nmeshface(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nmeshface_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nmeshgraph(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nmeshgraph_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nmeshgraph(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nmeshgraph_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nskin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nskin_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nskin(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nskin_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nskinvert(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinvert_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nskinvert(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinvert_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nskintexvert(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nskintexvert_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nskintexvert(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nskintexvert_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nskinface(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinface_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nskinface(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinface_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nskinbone(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinbone_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nskinbone(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nskinbone_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nskinbonevert(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13nskinbonevert_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nskinbonevert(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13nskinbonevert_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nhfield(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nhfield_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nhfield(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nhfield_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nhfielddata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11nhfielddata_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nhfielddata(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11nhfielddata_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ntex(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4ntex_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ntex(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4ntex_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ntexdata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8ntexdata_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ntexdata(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8ntexdata_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nmat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4nmat_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nmat(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4nmat_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_npair(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5npair_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_npair(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5npair_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nexclude(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8nexclude_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nexclude(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8nexclude_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_neq(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_3neq_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_neq(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_3neq_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ntendon(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7ntendon_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ntendon(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7ntendon_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nwrap(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nwrap_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nwrap(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nwrap_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nsensor(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nsensor_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nsensor(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nsensor_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nnumeric(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8nnumeric_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nnumeric(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8nnumeric_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nnumericdata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nnumericdata_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nnumericdata(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nnumericdata_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ntext(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5ntext_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ntext(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5ntext_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ntextdata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9ntextdata_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ntextdata(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9ntextdata_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ntuple(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6ntuple_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ntuple(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6ntuple_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ntupledata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10ntupledata_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ntupledata(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10ntupledata_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nkey(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4nkey_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nkey(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4nkey_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nmocap(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nmocap_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nmocap(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nmocap_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_body(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_body_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_body(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_body_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_jnt(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuser_jnt_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_jnt(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuser_jnt_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_geom(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_geom_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_geom(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_geom_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_site(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_site_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_site(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10nuser_site_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_cam(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuser_cam_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_cam(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuser_cam_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_tendon(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nuser_tendon_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_tendon(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nuser_tendon_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_actuator(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14nuser_actuator_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_actuator(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14nuser_actuator_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_sensor(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nuser_sensor_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_sensor(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12nuser_sensor_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nnames(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nnames_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nnames(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nnames_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nM(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nM_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nM(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_2nM_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nemax(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nemax_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nemax(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5nemax_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_njmax(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5njmax_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_njmax(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5njmax_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nconmax(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nconmax_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nconmax(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nconmax_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nstack(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nstack_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nstack(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6nstack_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuserdata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuserdata_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuserdata(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9nuserdata_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nsensordata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11nsensordata_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nsensordata(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11nsensordata_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nbuffer(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nbuffer_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nbuffer(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7nbuffer_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_opt(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_3opt_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_vis(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_3vis_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_stat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_4stat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_qpos0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5qpos0_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_qpos_spring(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11qpos_spring_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_parentid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13body_parentid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_rootid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_rootid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_weldid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_weldid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_mocapid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12body_mocapid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_jntnum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_jntnum_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_jntadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_jntadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_dofnum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_dofnum_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_dofadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_dofadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_geomnum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12body_geomnum_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_geomadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12body_geomadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_simple(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11body_simple_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_sameframe(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14body_sameframe_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_pos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8body_pos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_quat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9body_quat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_ipos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9body_ipos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_iquat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10body_iquat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_mass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9body_mass_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_subtreemass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16body_subtreemass_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_inertia(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12body_inertia_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_invweight0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_15body_invweight0_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_user(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9body_user_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8jnt_type_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_qposadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11jnt_qposadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_dofadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10jnt_dofadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_bodyid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10jnt_bodyid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_group(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9jnt_group_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_limited(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11jnt_limited_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_solref(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10jnt_solref_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_solimp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10jnt_solimp_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_pos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7jnt_pos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_axis(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8jnt_axis_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_stiffness(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13jnt_stiffness_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_range(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9jnt_range_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_margin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10jnt_margin_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_user(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8jnt_user_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_bodyid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10dof_bodyid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_jntid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9dof_jntid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_parentid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12dof_parentid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_Madr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8dof_Madr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_simplenum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13dof_simplenum_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_solref(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10dof_solref_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_solimp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10dof_solimp_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_frictionloss(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16dof_frictionloss_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_armature(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12dof_armature_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_damping(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11dof_damping_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_invweight0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14dof_invweight0_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_M0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_6dof_M0_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_type_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_contype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12geom_contype_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_conaffinity(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16geom_conaffinity_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_condim(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_condim_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_bodyid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_bodyid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_dataid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_dataid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_matid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10geom_matid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_group(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10geom_group_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_priority(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13geom_priority_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_sameframe(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14geom_sameframe_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_solmix(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_solmix_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_solref(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_solref_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_solimp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_solimp_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_size(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_size_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_rbound(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_rbound_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_pos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8geom_pos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_quat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_quat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_friction(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13geom_friction_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_margin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_margin_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_gap(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8geom_gap_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_user(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_user_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_rgba(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_rgba_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9site_type_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_bodyid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11site_bodyid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_matid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10site_matid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_group(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10site_group_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_sameframe(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14site_sameframe_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_size(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9site_size_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_pos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8site_pos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_quat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9site_quat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_user(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9site_user_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_rgba(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9site_rgba_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_mode(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_mode_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_bodyid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10cam_bodyid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_targetbodyid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16cam_targetbodyid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_pos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7cam_pos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_quat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_quat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_poscom0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11cam_poscom0_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_pos0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_pos0_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_mat0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_mat0_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_fovy(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_fovy_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_ipd(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7cam_ipd_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_user(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8cam_user_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_mode(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10light_mode_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_bodyid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12light_bodyid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_targetbodyid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_18light_targetbodyid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_directional(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17light_directional_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_castshadow(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16light_castshadow_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_active(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12light_active_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_pos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9light_pos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_dir(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9light_dir_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_poscom0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13light_poscom0_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_pos0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10light_pos0_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_dir0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10light_dir0_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_attenuation(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17light_attenuation_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_cutoff(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12light_cutoff_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_exponent(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14light_exponent_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_ambient(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13light_ambient_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_diffuse(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13light_diffuse_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_specular(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14light_specular_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_vertadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mesh_vertadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_vertnum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mesh_vertnum_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_texcoordadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16mesh_texcoordadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_faceadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mesh_faceadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_facenum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mesh_facenum_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_graphadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13mesh_graphadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_vert(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9mesh_vert_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_normal(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11mesh_normal_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_texcoord(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13mesh_texcoord_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_face(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9mesh_face_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_graph(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10mesh_graph_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_matid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10skin_matid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_rgba(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9skin_rgba_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_inflate(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_inflate_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_vertadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_vertadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_vertnum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_vertnum_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_texcoordadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16skin_texcoordadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_faceadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_faceadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_facenum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_facenum_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_boneadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_boneadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonenum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12skin_bonenum_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_vert(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9skin_vert_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_texcoord(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13skin_texcoord_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_face(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9skin_face_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonevertadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16skin_bonevertadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonevertnum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16skin_bonevertnum_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonebindpos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16skin_bonebindpos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonebindquat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17skin_bonebindquat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonebodyid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_15skin_bonebodyid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonevertid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_15skin_bonevertid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonevertweight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_19skin_bonevertweight_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_hfield_size(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11hfield_size_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_hfield_nrow(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11hfield_nrow_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_hfield_ncol(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11hfield_ncol_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_hfield_adr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10hfield_adr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_hfield_data(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11hfield_data_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tex_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8tex_type_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tex_height(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10tex_height_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tex_width(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9tex_width_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tex_adr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7tex_adr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tex_rgb(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7tex_rgb_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_texid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9mat_texid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_texuniform(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14mat_texuniform_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_texrepeat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13mat_texrepeat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_emission(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mat_emission_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_specular(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12mat_specular_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_shininess(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13mat_shininess_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_reflectance(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_15mat_reflectance_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_rgba(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8mat_rgba_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_dim(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8pair_dim_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_geom1(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10pair_geom1_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_geom2(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10pair_geom2_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_signature(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14pair_signature_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_solref(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11pair_solref_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_solimp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11pair_solimp_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_margin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11pair_margin_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_gap(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8pair_gap_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_friction(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13pair_friction_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_exclude_signature(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17exclude_signature_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_eq_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7eq_type_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_eq_obj1id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9eq_obj1id_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_eq_obj2id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9eq_obj2id_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_eq_active(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9eq_active_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_eq_solref(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9eq_solref_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_eq_solimp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9eq_solimp_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_eq_data(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7eq_data_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_adr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10tendon_adr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_num(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10tendon_num_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_matid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tendon_matid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_group(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tendon_group_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_limited(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14tendon_limited_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_width(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tendon_width_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_solref_lim(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17tendon_solref_lim_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_solimp_lim(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17tendon_solimp_lim_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_solref_fri(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17tendon_solref_fri_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_solimp_fri(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17tendon_solimp_fri_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_range(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tendon_range_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_margin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13tendon_margin_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_stiffness(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16tendon_stiffness_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_damping(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14tendon_damping_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_frictionloss(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_19tendon_frictionloss_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_lengthspring(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_19tendon_lengthspring_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_length0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14tendon_length0_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_invweight0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17tendon_invweight0_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_user(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11tendon_user_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_rgba(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11tendon_rgba_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_wrap_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9wrap_type_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_wrap_objid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10wrap_objid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_wrap_prm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8wrap_prm_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_trntype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16actuator_trntype_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_dyntype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16actuator_dyntype_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_gaintype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17actuator_gaintype_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_biastype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17actuator_biastype_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_trnid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14actuator_trnid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_group(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14actuator_group_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_ctrllimited(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_20actuator_ctrllimited_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_forcelimited(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_21actuator_forcelimited_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_dynprm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_15actuator_dynprm_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_gainprm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16actuator_gainprm_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_biasprm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16actuator_biasprm_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_ctrlrange(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_18actuator_ctrlrange_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_forcerange(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_19actuator_forcerange_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_gear(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13actuator_gear_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_cranklength(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_20actuator_cranklength_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_acc0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13actuator_acc0_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_length0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16actuator_length0_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_lengthrange(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_20actuator_lengthrange_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_user(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13actuator_user_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11sensor_type_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_datatype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_15sensor_datatype_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_needstage(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16sensor_needstage_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_objtype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14sensor_objtype_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_objid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12sensor_objid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_dim(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10sensor_dim_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_adr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10sensor_adr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_cutoff(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13sensor_cutoff_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_noise(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12sensor_noise_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_user(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11sensor_user_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_numeric_adr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11numeric_adr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_numeric_size(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12numeric_size_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_numeric_data(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12numeric_data_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_text_adr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8text_adr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_text_size(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9text_size_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_text_data(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9text_data_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tuple_adr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9tuple_adr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tuple_size(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10tuple_size_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tuple_objtype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13tuple_objtype_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tuple_objid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11tuple_objid_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tuple_objprm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tuple_objprm_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_key_time(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8key_time_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_key_qpos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8key_qpos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_key_qvel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8key_qvel_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_key_act(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_7key_act_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_key_mpos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_8key_mpos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_key_mquat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_9key_mquat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_bodyadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_bodyadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_jntadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11name_jntadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_geomadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_geomadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_siteadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_siteadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_camadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11name_camadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_lightadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13name_lightadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_meshadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_meshadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_skinadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_skinadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_hfieldadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14name_hfieldadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_texadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11name_texadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_matadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11name_matadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_pairadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_pairadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_excludeadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_15name_excludeadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_eqadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10name_eqadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_tendonadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14name_tendonadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_actuatoradr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_16name_actuatoradr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_sensoradr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14name_sensoradr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_numericadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_15name_numericadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_textadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12name_textadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_tupleadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13name_tupleadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_keyadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11name_keyadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_names(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_5names_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_names(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10body_names_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_joint_names(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11joint_names_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_names(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10geom_names_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_names(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10site_names_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_names(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_11light_names_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_camera_names(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12camera_names_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_names(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14actuator_names_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_names(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12sensor_names_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_names(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_12tendon_names_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_names(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_10mesh_names_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__body_id2name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_body_id2name_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__joint_id2name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14_joint_id2name_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__geom_id2name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_geom_id2name_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__site_id2name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_site_id2name_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__light_id2name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14_light_id2name_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__camera_id2name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_camera_id2name_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__actuator_id2name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_actuator_id2name_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__sensor_id2name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_sensor_id2name_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__tendon_id2name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_tendon_id2name_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__mesh_id2name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_mesh_id2name_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__body_name2id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_body_name2id_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__joint_name2id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14_joint_name2id_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__geom_name2id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_geom_name2id_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__site_name2id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_site_name2id_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__light_name2id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14_light_name2id_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__camera_name2id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_camera_name2id_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__actuator_name2id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_actuator_name2id_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__sensor_name2id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_sensor_name2id_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__tendon_name2id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_15_tendon_name2id_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__mesh_name2id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_13_mesh_name2id_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel_userdata_names(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14userdata_names_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_userdata_names(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14userdata_names_3__set__(o, v);
  }
  else {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_14userdata_names_5__del__(o);
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__userdata_id2name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel__userdata_id2name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name_3__set__(o, v);
  }
  else {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_id2name_5__del__(o);
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjModel__userdata_name2id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjModel__userdata_name2id(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id_3__set__(o, v);
  }
  else {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjModel_17_userdata_name2id_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjModel[] = {
  {"body_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_1body_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"body_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_3body_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"joint_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_5joint_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"joint_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_7joint_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"geom_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_9geom_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"geom_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_11geom_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"site_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_13site_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"site_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_15site_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"light_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_17light_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"light_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_19light_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"camera_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_21camera_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"camera_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_23camera_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"actuator_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_25actuator_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"actuator_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_27actuator_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"sensor_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_29sensor_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"sensor_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_31sensor_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"tendon_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_33tendon_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"tendon_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_35tendon_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"mesh_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_37mesh_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"mesh_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_39mesh_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"userdata_id2name", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_41userdata_id2name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"userdata_name2id", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_43userdata_name2id, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_xml", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_45get_xml, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_mjb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_47get_mjb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_userdata_names", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_49set_userdata_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_joint_qpos_addr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_53get_joint_qpos_addr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_9PyMjModel_52get_joint_qpos_addr},
  {"get_joint_qvel_addr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_55get_joint_qvel_addr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_9PyMjModel_54get_joint_qvel_addr},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_57__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjModel_59__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjModel[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_uintptr, 0, (char *)0, 0},
  {(char *)"nq", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nq, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nq, (char *)0, 0},
  {(char *)"nv", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nv, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nv, (char *)0, 0},
  {(char *)"nu", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nu, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nu, (char *)0, 0},
  {(char *)"na", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_na, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_na, (char *)0, 0},
  {(char *)"nbody", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nbody, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nbody, (char *)0, 0},
  {(char *)"njnt", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_njnt, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_njnt, (char *)0, 0},
  {(char *)"ngeom", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ngeom, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ngeom, (char *)0, 0},
  {(char *)"nsite", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nsite, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nsite, (char *)0, 0},
  {(char *)"ncam", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ncam, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ncam, (char *)0, 0},
  {(char *)"nlight", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nlight, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nlight, (char *)0, 0},
  {(char *)"nmesh", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nmesh, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nmesh, (char *)0, 0},
  {(char *)"nmeshvert", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nmeshvert, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nmeshvert, (char *)0, 0},
  {(char *)"nmeshtexvert", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nmeshtexvert, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nmeshtexvert, (char *)0, 0},
  {(char *)"nmeshface", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nmeshface, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nmeshface, (char *)0, 0},
  {(char *)"nmeshgraph", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nmeshgraph, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nmeshgraph, (char *)0, 0},
  {(char *)"nskin", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nskin, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nskin, (char *)0, 0},
  {(char *)"nskinvert", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nskinvert, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nskinvert, (char *)0, 0},
  {(char *)"nskintexvert", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nskintexvert, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nskintexvert, (char *)0, 0},
  {(char *)"nskinface", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nskinface, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nskinface, (char *)0, 0},
  {(char *)"nskinbone", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nskinbone, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nskinbone, (char *)0, 0},
  {(char *)"nskinbonevert", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nskinbonevert, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nskinbonevert, (char *)0, 0},
  {(char *)"nhfield", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nhfield, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nhfield, (char *)0, 0},
  {(char *)"nhfielddata", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nhfielddata, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nhfielddata, (char *)0, 0},
  {(char *)"ntex", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ntex, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ntex, (char *)0, 0},
  {(char *)"ntexdata", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ntexdata, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ntexdata, (char *)0, 0},
  {(char *)"nmat", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nmat, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nmat, (char *)0, 0},
  {(char *)"npair", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_npair, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_npair, (char *)0, 0},
  {(char *)"nexclude", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nexclude, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nexclude, (char *)0, 0},
  {(char *)"neq", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_neq, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_neq, (char *)0, 0},
  {(char *)"ntendon", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ntendon, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ntendon, (char *)0, 0},
  {(char *)"nwrap", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nwrap, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nwrap, (char *)0, 0},
  {(char *)"nsensor", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nsensor, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nsensor, (char *)0, 0},
  {(char *)"nnumeric", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nnumeric, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nnumeric, (char *)0, 0},
  {(char *)"nnumericdata", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nnumericdata, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nnumericdata, (char *)0, 0},
  {(char *)"ntext", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ntext, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ntext, (char *)0, 0},
  {(char *)"ntextdata", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ntextdata, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ntextdata, (char *)0, 0},
  {(char *)"ntuple", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ntuple, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ntuple, (char *)0, 0},
  {(char *)"ntupledata", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_ntupledata, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_ntupledata, (char *)0, 0},
  {(char *)"nkey", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nkey, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nkey, (char *)0, 0},
  {(char *)"nmocap", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nmocap, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nmocap, (char *)0, 0},
  {(char *)"nuser_body", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_body, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_body, (char *)0, 0},
  {(char *)"nuser_jnt", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_jnt, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_jnt, (char *)0, 0},
  {(char *)"nuser_geom", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_geom, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_geom, (char *)0, 0},
  {(char *)"nuser_site", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_site, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_site, (char *)0, 0},
  {(char *)"nuser_cam", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_cam, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_cam, (char *)0, 0},
  {(char *)"nuser_tendon", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_tendon, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_tendon, (char *)0, 0},
  {(char *)"nuser_actuator", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_actuator, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_actuator, (char *)0, 0},
  {(char *)"nuser_sensor", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuser_sensor, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuser_sensor, (char *)0, 0},
  {(char *)"nnames", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nnames, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nnames, (char *)0, 0},
  {(char *)"nM", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nM, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nM, (char *)0, 0},
  {(char *)"nemax", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nemax, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nemax, (char *)0, 0},
  {(char *)"njmax", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_njmax, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_njmax, (char *)0, 0},
  {(char *)"nconmax", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nconmax, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nconmax, (char *)0, 0},
  {(char *)"nstack", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nstack, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nstack, (char *)0, 0},
  {(char *)"nuserdata", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nuserdata, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nuserdata, (char *)0, 0},
  {(char *)"nsensordata", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nsensordata, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nsensordata, (char *)0, 0},
  {(char *)"nbuffer", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_nbuffer, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_nbuffer, (char *)0, 0},
  {(char *)"opt", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_opt, 0, (char *)0, 0},
  {(char *)"vis", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_vis, 0, (char *)0, 0},
  {(char *)"stat", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_stat, 0, (char *)0, 0},
  {(char *)"qpos0", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_qpos0, 0, (char *)0, 0},
  {(char *)"qpos_spring", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_qpos_spring, 0, (char *)0, 0},
  {(char *)"body_parentid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_parentid, 0, (char *)0, 0},
  {(char *)"body_rootid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_rootid, 0, (char *)0, 0},
  {(char *)"body_weldid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_weldid, 0, (char *)0, 0},
  {(char *)"body_mocapid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_mocapid, 0, (char *)0, 0},
  {(char *)"body_jntnum", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_jntnum, 0, (char *)0, 0},
  {(char *)"body_jntadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_jntadr, 0, (char *)0, 0},
  {(char *)"body_dofnum", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_dofnum, 0, (char *)0, 0},
  {(char *)"body_dofadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_dofadr, 0, (char *)0, 0},
  {(char *)"body_geomnum", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_geomnum, 0, (char *)0, 0},
  {(char *)"body_geomadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_geomadr, 0, (char *)0, 0},
  {(char *)"body_simple", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_simple, 0, (char *)0, 0},
  {(char *)"body_sameframe", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_sameframe, 0, (char *)0, 0},
  {(char *)"body_pos", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_pos, 0, (char *)0, 0},
  {(char *)"body_quat", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_quat, 0, (char *)0, 0},
  {(char *)"body_ipos", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_ipos, 0, (char *)0, 0},
  {(char *)"body_iquat", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_iquat, 0, (char *)0, 0},
  {(char *)"body_mass", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_mass, 0, (char *)0, 0},
  {(char *)"body_subtreemass", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_subtreemass, 0, (char *)0, 0},
  {(char *)"body_inertia", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_inertia, 0, (char *)0, 0},
  {(char *)"body_invweight0", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_invweight0, 0, (char *)0, 0},
  {(char *)"body_user", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_user, 0, (char *)0, 0},
  {(char *)"jnt_type", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_type, 0, (char *)0, 0},
  {(char *)"jnt_qposadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_qposadr, 0, (char *)0, 0},
  {(char *)"jnt_dofadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_dofadr, 0, (char *)0, 0},
  {(char *)"jnt_bodyid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_bodyid, 0, (char *)0, 0},
  {(char *)"jnt_group", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_group, 0, (char *)0, 0},
  {(char *)"jnt_limited", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_limited, 0, (char *)0, 0},
  {(char *)"jnt_solref", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_solref, 0, (char *)0, 0},
  {(char *)"jnt_solimp", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_solimp, 0, (char *)0, 0},
  {(char *)"jnt_pos", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_pos, 0, (char *)0, 0},
  {(char *)"jnt_axis", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_axis, 0, (char *)0, 0},
  {(char *)"jnt_stiffness", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_stiffness, 0, (char *)0, 0},
  {(char *)"jnt_range", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_range, 0, (char *)0, 0},
  {(char *)"jnt_margin", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_margin, 0, (char *)0, 0},
  {(char *)"jnt_user", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_jnt_user, 0, (char *)0, 0},
  {(char *)"dof_bodyid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_bodyid, 0, (char *)0, 0},
  {(char *)"dof_jntid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_jntid, 0, (char *)0, 0},
  {(char *)"dof_parentid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_parentid, 0, (char *)0, 0},
  {(char *)"dof_Madr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_Madr, 0, (char *)0, 0},
  {(char *)"dof_simplenum", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_simplenum, 0, (char *)0, 0},
  {(char *)"dof_solref", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_solref, 0, (char *)0, 0},
  {(char *)"dof_solimp", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_solimp, 0, (char *)0, 0},
  {(char *)"dof_frictionloss", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_frictionloss, 0, (char *)0, 0},
  {(char *)"dof_armature", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_armature, 0, (char *)0, 0},
  {(char *)"dof_damping", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_damping, 0, (char *)0, 0},
  {(char *)"dof_invweight0", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_invweight0, 0, (char *)0, 0},
  {(char *)"dof_M0", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_dof_M0, 0, (char *)0, 0},
  {(char *)"geom_type", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_type, 0, (char *)0, 0},
  {(char *)"geom_contype", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_contype, 0, (char *)0, 0},
  {(char *)"geom_conaffinity", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_conaffinity, 0, (char *)0, 0},
  {(char *)"geom_condim", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_condim, 0, (char *)0, 0},
  {(char *)"geom_bodyid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_bodyid, 0, (char *)0, 0},
  {(char *)"geom_dataid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_dataid, 0, (char *)0, 0},
  {(char *)"geom_matid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_matid, 0, (char *)0, 0},
  {(char *)"geom_group", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_group, 0, (char *)0, 0},
  {(char *)"geom_priority", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_priority, 0, (char *)0, 0},
  {(char *)"geom_sameframe", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_sameframe, 0, (char *)0, 0},
  {(char *)"geom_solmix", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_solmix, 0, (char *)0, 0},
  {(char *)"geom_solref", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_solref, 0, (char *)0, 0},
  {(char *)"geom_solimp", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_solimp, 0, (char *)0, 0},
  {(char *)"geom_size", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_size, 0, (char *)0, 0},
  {(char *)"geom_rbound", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_rbound, 0, (char *)0, 0},
  {(char *)"geom_pos", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_pos, 0, (char *)0, 0},
  {(char *)"geom_quat", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_quat, 0, (char *)0, 0},
  {(char *)"geom_friction", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_friction, 0, (char *)0, 0},
  {(char *)"geom_margin", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_margin, 0, (char *)0, 0},
  {(char *)"geom_gap", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_gap, 0, (char *)0, 0},
  {(char *)"geom_user", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_user, 0, (char *)0, 0},
  {(char *)"geom_rgba", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_rgba, 0, (char *)0, 0},
  {(char *)"site_type", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_type, 0, (char *)0, 0},
  {(char *)"site_bodyid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_bodyid, 0, (char *)0, 0},
  {(char *)"site_matid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_matid, 0, (char *)0, 0},
  {(char *)"site_group", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_group, 0, (char *)0, 0},
  {(char *)"site_sameframe", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_sameframe, 0, (char *)0, 0},
  {(char *)"site_size", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_size, 0, (char *)0, 0},
  {(char *)"site_pos", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_pos, 0, (char *)0, 0},
  {(char *)"site_quat", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_quat, 0, (char *)0, 0},
  {(char *)"site_user", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_user, 0, (char *)0, 0},
  {(char *)"site_rgba", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_rgba, 0, (char *)0, 0},
  {(char *)"cam_mode", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_mode, 0, (char *)0, 0},
  {(char *)"cam_bodyid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_bodyid, 0, (char *)0, 0},
  {(char *)"cam_targetbodyid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_targetbodyid, 0, (char *)0, 0},
  {(char *)"cam_pos", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_pos, 0, (char *)0, 0},
  {(char *)"cam_quat", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_quat, 0, (char *)0, 0},
  {(char *)"cam_poscom0", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_poscom0, 0, (char *)0, 0},
  {(char *)"cam_pos0", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_pos0, 0, (char *)0, 0},
  {(char *)"cam_mat0", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_mat0, 0, (char *)0, 0},
  {(char *)"cam_fovy", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_fovy, 0, (char *)0, 0},
  {(char *)"cam_ipd", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_ipd, 0, (char *)0, 0},
  {(char *)"cam_user", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_cam_user, 0, (char *)0, 0},
  {(char *)"light_mode", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_mode, 0, (char *)0, 0},
  {(char *)"light_bodyid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_bodyid, 0, (char *)0, 0},
  {(char *)"light_targetbodyid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_targetbodyid, 0, (char *)0, 0},
  {(char *)"light_directional", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_directional, 0, (char *)0, 0},
  {(char *)"light_castshadow", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_castshadow, 0, (char *)0, 0},
  {(char *)"light_active", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_active, 0, (char *)0, 0},
  {(char *)"light_pos", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_pos, 0, (char *)0, 0},
  {(char *)"light_dir", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_dir, 0, (char *)0, 0},
  {(char *)"light_poscom0", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_poscom0, 0, (char *)0, 0},
  {(char *)"light_pos0", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_pos0, 0, (char *)0, 0},
  {(char *)"light_dir0", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_dir0, 0, (char *)0, 0},
  {(char *)"light_attenuation", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_attenuation, 0, (char *)0, 0},
  {(char *)"light_cutoff", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_cutoff, 0, (char *)0, 0},
  {(char *)"light_exponent", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_exponent, 0, (char *)0, 0},
  {(char *)"light_ambient", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_ambient, 0, (char *)0, 0},
  {(char *)"light_diffuse", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_diffuse, 0, (char *)0, 0},
  {(char *)"light_specular", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_specular, 0, (char *)0, 0},
  {(char *)"mesh_vertadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_vertadr, 0, (char *)0, 0},
  {(char *)"mesh_vertnum", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_vertnum, 0, (char *)0, 0},
  {(char *)"mesh_texcoordadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_texcoordadr, 0, (char *)0, 0},
  {(char *)"mesh_faceadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_faceadr, 0, (char *)0, 0},
  {(char *)"mesh_facenum", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_facenum, 0, (char *)0, 0},
  {(char *)"mesh_graphadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_graphadr, 0, (char *)0, 0},
  {(char *)"mesh_vert", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_vert, 0, (char *)0, 0},
  {(char *)"mesh_normal", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_normal, 0, (char *)0, 0},
  {(char *)"mesh_texcoord", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_texcoord, 0, (char *)0, 0},
  {(char *)"mesh_face", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_face, 0, (char *)0, 0},
  {(char *)"mesh_graph", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_graph, 0, (char *)0, 0},
  {(char *)"skin_matid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_matid, 0, (char *)0, 0},
  {(char *)"skin_rgba", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_rgba, 0, (char *)0, 0},
  {(char *)"skin_inflate", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_inflate, 0, (char *)0, 0},
  {(char *)"skin_vertadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_vertadr, 0, (char *)0, 0},
  {(char *)"skin_vertnum", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_vertnum, 0, (char *)0, 0},
  {(char *)"skin_texcoordadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_texcoordadr, 0, (char *)0, 0},
  {(char *)"skin_faceadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_faceadr, 0, (char *)0, 0},
  {(char *)"skin_facenum", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_facenum, 0, (char *)0, 0},
  {(char *)"skin_boneadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_boneadr, 0, (char *)0, 0},
  {(char *)"skin_bonenum", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonenum, 0, (char *)0, 0},
  {(char *)"skin_vert", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_vert, 0, (char *)0, 0},
  {(char *)"skin_texcoord", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_texcoord, 0, (char *)0, 0},
  {(char *)"skin_face", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_face, 0, (char *)0, 0},
  {(char *)"skin_bonevertadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonevertadr, 0, (char *)0, 0},
  {(char *)"skin_bonevertnum", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonevertnum, 0, (char *)0, 0},
  {(char *)"skin_bonebindpos", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonebindpos, 0, (char *)0, 0},
  {(char *)"skin_bonebindquat", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonebindquat, 0, (char *)0, 0},
  {(char *)"skin_bonebodyid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonebodyid, 0, (char *)0, 0},
  {(char *)"skin_bonevertid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonevertid, 0, (char *)0, 0},
  {(char *)"skin_bonevertweight", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_skin_bonevertweight, 0, (char *)0, 0},
  {(char *)"hfield_size", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_hfield_size, 0, (char *)0, 0},
  {(char *)"hfield_nrow", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_hfield_nrow, 0, (char *)0, 0},
  {(char *)"hfield_ncol", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_hfield_ncol, 0, (char *)0, 0},
  {(char *)"hfield_adr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_hfield_adr, 0, (char *)0, 0},
  {(char *)"hfield_data", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_hfield_data, 0, (char *)0, 0},
  {(char *)"tex_type", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tex_type, 0, (char *)0, 0},
  {(char *)"tex_height", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tex_height, 0, (char *)0, 0},
  {(char *)"tex_width", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tex_width, 0, (char *)0, 0},
  {(char *)"tex_adr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tex_adr, 0, (char *)0, 0},
  {(char *)"tex_rgb", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tex_rgb, 0, (char *)0, 0},
  {(char *)"mat_texid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_texid, 0, (char *)0, 0},
  {(char *)"mat_texuniform", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_texuniform, 0, (char *)0, 0},
  {(char *)"mat_texrepeat", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_texrepeat, 0, (char *)0, 0},
  {(char *)"mat_emission", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_emission, 0, (char *)0, 0},
  {(char *)"mat_specular", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_specular, 0, (char *)0, 0},
  {(char *)"mat_shininess", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_shininess, 0, (char *)0, 0},
  {(char *)"mat_reflectance", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_reflectance, 0, (char *)0, 0},
  {(char *)"mat_rgba", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mat_rgba, 0, (char *)0, 0},
  {(char *)"pair_dim", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_dim, 0, (char *)0, 0},
  {(char *)"pair_geom1", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_geom1, 0, (char *)0, 0},
  {(char *)"pair_geom2", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_geom2, 0, (char *)0, 0},
  {(char *)"pair_signature", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_signature, 0, (char *)0, 0},
  {(char *)"pair_solref", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_solref, 0, (char *)0, 0},
  {(char *)"pair_solimp", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_solimp, 0, (char *)0, 0},
  {(char *)"pair_margin", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_margin, 0, (char *)0, 0},
  {(char *)"pair_gap", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_gap, 0, (char *)0, 0},
  {(char *)"pair_friction", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_pair_friction, 0, (char *)0, 0},
  {(char *)"exclude_signature", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_exclude_signature, 0, (char *)0, 0},
  {(char *)"eq_type", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_eq_type, 0, (char *)0, 0},
  {(char *)"eq_obj1id", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_eq_obj1id, 0, (char *)0, 0},
  {(char *)"eq_obj2id", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_eq_obj2id, 0, (char *)0, 0},
  {(char *)"eq_active", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_eq_active, 0, (char *)0, 0},
  {(char *)"eq_solref", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_eq_solref, 0, (char *)0, 0},
  {(char *)"eq_solimp", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_eq_solimp, 0, (char *)0, 0},
  {(char *)"eq_data", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_eq_data, 0, (char *)0, 0},
  {(char *)"tendon_adr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_adr, 0, (char *)0, 0},
  {(char *)"tendon_num", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_num, 0, (char *)0, 0},
  {(char *)"tendon_matid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_matid, 0, (char *)0, 0},
  {(char *)"tendon_group", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_group, 0, (char *)0, 0},
  {(char *)"tendon_limited", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_limited, 0, (char *)0, 0},
  {(char *)"tendon_width", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_width, 0, (char *)0, 0},
  {(char *)"tendon_solref_lim", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_solref_lim, 0, (char *)0, 0},
  {(char *)"tendon_solimp_lim", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_solimp_lim, 0, (char *)0, 0},
  {(char *)"tendon_solref_fri", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_solref_fri, 0, (char *)0, 0},
  {(char *)"tendon_solimp_fri", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_solimp_fri, 0, (char *)0, 0},
  {(char *)"tendon_range", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_range, 0, (char *)0, 0},
  {(char *)"tendon_margin", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_margin, 0, (char *)0, 0},
  {(char *)"tendon_stiffness", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_stiffness, 0, (char *)0, 0},
  {(char *)"tendon_damping", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_damping, 0, (char *)0, 0},
  {(char *)"tendon_frictionloss", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_frictionloss, 0, (char *)0, 0},
  {(char *)"tendon_lengthspring", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_lengthspring, 0, (char *)0, 0},
  {(char *)"tendon_length0", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_length0, 0, (char *)0, 0},
  {(char *)"tendon_invweight0", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_invweight0, 0, (char *)0, 0},
  {(char *)"tendon_user", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_user, 0, (char *)0, 0},
  {(char *)"tendon_rgba", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_rgba, 0, (char *)0, 0},
  {(char *)"wrap_type", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_wrap_type, 0, (char *)0, 0},
  {(char *)"wrap_objid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_wrap_objid, 0, (char *)0, 0},
  {(char *)"wrap_prm", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_wrap_prm, 0, (char *)0, 0},
  {(char *)"actuator_trntype", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_trntype, 0, (char *)0, 0},
  {(char *)"actuator_dyntype", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_dyntype, 0, (char *)0, 0},
  {(char *)"actuator_gaintype", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_gaintype, 0, (char *)0, 0},
  {(char *)"actuator_biastype", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_biastype, 0, (char *)0, 0},
  {(char *)"actuator_trnid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_trnid, 0, (char *)0, 0},
  {(char *)"actuator_group", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_group, 0, (char *)0, 0},
  {(char *)"actuator_ctrllimited", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_ctrllimited, 0, (char *)0, 0},
  {(char *)"actuator_forcelimited", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_forcelimited, 0, (char *)0, 0},
  {(char *)"actuator_dynprm", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_dynprm, 0, (char *)0, 0},
  {(char *)"actuator_gainprm", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_gainprm, 0, (char *)0, 0},
  {(char *)"actuator_biasprm", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_biasprm, 0, (char *)0, 0},
  {(char *)"actuator_ctrlrange", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_ctrlrange, 0, (char *)0, 0},
  {(char *)"actuator_forcerange", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_forcerange, 0, (char *)0, 0},
  {(char *)"actuator_gear", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_gear, 0, (char *)0, 0},
  {(char *)"actuator_cranklength", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_cranklength, 0, (char *)0, 0},
  {(char *)"actuator_acc0", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_acc0, 0, (char *)0, 0},
  {(char *)"actuator_length0", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_length0, 0, (char *)0, 0},
  {(char *)"actuator_lengthrange", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_lengthrange, 0, (char *)0, 0},
  {(char *)"actuator_user", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_user, 0, (char *)0, 0},
  {(char *)"sensor_type", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_type, 0, (char *)0, 0},
  {(char *)"sensor_datatype", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_datatype, 0, (char *)0, 0},
  {(char *)"sensor_needstage", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_needstage, 0, (char *)0, 0},
  {(char *)"sensor_objtype", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_objtype, 0, (char *)0, 0},
  {(char *)"sensor_objid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_objid, 0, (char *)0, 0},
  {(char *)"sensor_dim", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_dim, 0, (char *)0, 0},
  {(char *)"sensor_adr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_adr, 0, (char *)0, 0},
  {(char *)"sensor_cutoff", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_cutoff, 0, (char *)0, 0},
  {(char *)"sensor_noise", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_noise, 0, (char *)0, 0},
  {(char *)"sensor_user", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_user, 0, (char *)0, 0},
  {(char *)"numeric_adr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_numeric_adr, 0, (char *)0, 0},
  {(char *)"numeric_size", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_numeric_size, 0, (char *)0, 0},
  {(char *)"numeric_data", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_numeric_data, 0, (char *)0, 0},
  {(char *)"text_adr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_text_adr, 0, (char *)0, 0},
  {(char *)"text_size", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_text_size, 0, (char *)0, 0},
  {(char *)"text_data", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_text_data, 0, (char *)0, 0},
  {(char *)"tuple_adr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tuple_adr, 0, (char *)0, 0},
  {(char *)"tuple_size", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tuple_size, 0, (char *)0, 0},
  {(char *)"tuple_objtype", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tuple_objtype, 0, (char *)0, 0},
  {(char *)"tuple_objid", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tuple_objid, 0, (char *)0, 0},
  {(char *)"tuple_objprm", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tuple_objprm, 0, (char *)0, 0},
  {(char *)"key_time", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_key_time, 0, (char *)0, 0},
  {(char *)"key_qpos", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_key_qpos, 0, (char *)0, 0},
  {(char *)"key_qvel", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_key_qvel, 0, (char *)0, 0},
  {(char *)"key_act", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_key_act, 0, (char *)0, 0},
  {(char *)"key_mpos", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_key_mpos, 0, (char *)0, 0},
  {(char *)"key_mquat", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_key_mquat, 0, (char *)0, 0},
  {(char *)"name_bodyadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_bodyadr, 0, (char *)0, 0},
  {(char *)"name_jntadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_jntadr, 0, (char *)0, 0},
  {(char *)"name_geomadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_geomadr, 0, (char *)0, 0},
  {(char *)"name_siteadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_siteadr, 0, (char *)0, 0},
  {(char *)"name_camadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_camadr, 0, (char *)0, 0},
  {(char *)"name_lightadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_lightadr, 0, (char *)0, 0},
  {(char *)"name_meshadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_meshadr, 0, (char *)0, 0},
  {(char *)"name_skinadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_skinadr, 0, (char *)0, 0},
  {(char *)"name_hfieldadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_hfieldadr, 0, (char *)0, 0},
  {(char *)"name_texadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_texadr, 0, (char *)0, 0},
  {(char *)"name_matadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_matadr, 0, (char *)0, 0},
  {(char *)"name_pairadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_pairadr, 0, (char *)0, 0},
  {(char *)"name_excludeadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_excludeadr, 0, (char *)0, 0},
  {(char *)"name_eqadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_eqadr, 0, (char *)0, 0},
  {(char *)"name_tendonadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_tendonadr, 0, (char *)0, 0},
  {(char *)"name_actuatoradr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_actuatoradr, 0, (char *)0, 0},
  {(char *)"name_sensoradr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_sensoradr, 0, (char *)0, 0},
  {(char *)"name_numericadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_numericadr, 0, (char *)0, 0},
  {(char *)"name_textadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_textadr, 0, (char *)0, 0},
  {(char *)"name_tupleadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_tupleadr, 0, (char *)0, 0},
  {(char *)"name_keyadr", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_name_keyadr, 0, (char *)0, 0},
  {(char *)"names", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_names, 0, (char *)0, 0},
  {(char *)"body_names", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_body_names, 0, (char *)0, 0},
  {(char *)"joint_names", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_joint_names, 0, (char *)0, 0},
  {(char *)"geom_names", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_geom_names, 0, (char *)0, 0},
  {(char *)"site_names", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_site_names, 0, (char *)0, 0},
  {(char *)"light_names", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_light_names, 0, (char *)0, 0},
  {(char *)"camera_names", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_camera_names, 0, (char *)0, 0},
  {(char *)"actuator_names", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_actuator_names, 0, (char *)0, 0},
  {(char *)"sensor_names", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_sensor_names, 0, (char *)0, 0},
  {(char *)"tendon_names", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_tendon_names, 0, (char *)0, 0},
  {(char *)"mesh_names", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_mesh_names, 0, (char *)0, 0},
  {(char *)"_body_id2name", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__body_id2name, 0, (char *)0, 0},
  {(char *)"_joint_id2name", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__joint_id2name, 0, (char *)0, 0},
  {(char *)"_geom_id2name", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__geom_id2name, 0, (char *)0, 0},
  {(char *)"_site_id2name", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__site_id2name, 0, (char *)0, 0},
  {(char *)"_light_id2name", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__light_id2name, 0, (char *)0, 0},
  {(char *)"_camera_id2name", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__camera_id2name, 0, (char *)0, 0},
  {(char *)"_actuator_id2name", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__actuator_id2name, 0, (char *)0, 0},
  {(char *)"_sensor_id2name", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__sensor_id2name, 0, (char *)0, 0},
  {(char *)"_tendon_id2name", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__tendon_id2name, 0, (char *)0, 0},
  {(char *)"_mesh_id2name", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__mesh_id2name, 0, (char *)0, 0},
  {(char *)"_body_name2id", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__body_name2id, 0, (char *)0, 0},
  {(char *)"_joint_name2id", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__joint_name2id, 0, (char *)0, 0},
  {(char *)"_geom_name2id", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__geom_name2id, 0, (char *)0, 0},
  {(char *)"_site_name2id", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__site_name2id, 0, (char *)0, 0},
  {(char *)"_light_name2id", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__light_name2id, 0, (char *)0, 0},
  {(char *)"_camera_name2id", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__camera_name2id, 0, (char *)0, 0},
  {(char *)"_actuator_name2id", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__actuator_name2id, 0, (char *)0, 0},
  {(char *)"_sensor_name2id", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__sensor_name2id, 0, (char *)0, 0},
  {(char *)"_tendon_name2id", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__tendon_name2id, 0, (char *)0, 0},
  {(char *)"_mesh_name2id", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__mesh_name2id, 0, (char *)0, 0},
  {(char *)"userdata_names", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel_userdata_names, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel_userdata_names, (char *)0, 0},
  {(char *)"_userdata_id2name", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__userdata_id2name, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel__userdata_id2name, (char *)0, 0},
  {(char *)"_userdata_name2id", __pyx_getprop_9mujoco_py_4cymj_9PyMjModel__userdata_name2id, __pyx_setprop_9mujoco_py_4cymj_9PyMjModel__userdata_name2id, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjModel_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjModel},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjModel},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjModel},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjModel},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjModel},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjModel},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjModel_spec = {
  "mujoco_py.cymj.PyMjModel",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjModel_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjModel = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjModel", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjModel, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjModel, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjModel, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjModel, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjModel, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjModel, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjContact __pyx_vtable_9mujoco_py_4cymj_PyMjContact;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjContact(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjContact;
  p->_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_frame = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_friction = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_solref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_solimp = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_H = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_11PyMjContact_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjContact(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjContact) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_pos);
  Py_CLEAR(p->_frame);
  Py_CLEAR(p->_friction);
  Py_CLEAR(p->_solref);
  Py_CLEAR(p->_solimp);
  Py_CLEAR(p->_H);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjContact(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)o;
  if (p->_pos) {
    e = (*v)(((PyObject *)p->_pos), a); if (e) return e;
  }
  if (p->_frame) {
    e = (*v)(((PyObject *)p->_frame), a); if (e) return e;
  }
  if (p->_friction) {
    e = (*v)(((PyObject *)p->_friction), a); if (e) return e;
  }
  if (p->_solref) {
    e = (*v)(((PyObject *)p->_solref), a); if (e) return e;
  }
  if (p->_solimp) {
    e = (*v)(((PyObject *)p->_solimp), a); if (e) return e;
  }
  if (p->_H) {
    e = (*v)(((PyObject *)p->_H), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjContact(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *)o;
  tmp = ((PyObject*)p->_pos);
  p->_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_frame);
  p->_frame = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_friction);
  p->_friction = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_solref);
  p->_solref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_solimp);
  p->_solimp = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_H);
  p->_H = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjContact_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjContact_dist(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_4dist_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_dist(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_4dist_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjContact_includemargin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_13includemargin_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_includemargin(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_13includemargin_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjContact_mu(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_2mu_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_mu(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_2mu_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjContact_dim(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_3dim_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_dim(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_3dim_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjContact_geom1(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_5geom1_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_geom1(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_5geom1_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjContact_geom2(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_5geom2_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_geom2(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_5geom2_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjContact_exclude(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_7exclude_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_exclude(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_7exclude_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjContact_efc_address(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_11efc_address_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_efc_address(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_11efc_address_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjContact_pos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_3pos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjContact_frame(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_5frame_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjContact_friction(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_8friction_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjContact_solref(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_6solref_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjContact_solimp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_6solimp_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjContact_H(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjContact_1H_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjContact[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjContact_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjContact_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjContact[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_11PyMjContact_uintptr, 0, (char *)0, 0},
  {(char *)"dist", __pyx_getprop_9mujoco_py_4cymj_11PyMjContact_dist, __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_dist, (char *)0, 0},
  {(char *)"includemargin", __pyx_getprop_9mujoco_py_4cymj_11PyMjContact_includemargin, __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_includemargin, (char *)0, 0},
  {(char *)"mu", __pyx_getprop_9mujoco_py_4cymj_11PyMjContact_mu, __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_mu, (char *)0, 0},
  {(char *)"dim", __pyx_getprop_9mujoco_py_4cymj_11PyMjContact_dim, __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_dim, (char *)0, 0},
  {(char *)"geom1", __pyx_getprop_9mujoco_py_4cymj_11PyMjContact_geom1, __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_geom1, (char *)0, 0},
  {(char *)"geom2", __pyx_getprop_9mujoco_py_4cymj_11PyMjContact_geom2, __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_geom2, (char *)0, 0},
  {(char *)"exclude", __pyx_getprop_9mujoco_py_4cymj_11PyMjContact_exclude, __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_exclude, (char *)0, 0},
  {(char *)"efc_address", __pyx_getprop_9mujoco_py_4cymj_11PyMjContact_efc_address, __pyx_setprop_9mujoco_py_4cymj_11PyMjContact_efc_address, (char *)0, 0},
  {(char *)"pos", __pyx_getprop_9mujoco_py_4cymj_11PyMjContact_pos, 0, (char *)0, 0},
  {(char *)"frame", __pyx_getprop_9mujoco_py_4cymj_11PyMjContact_frame, 0, (char *)0, 0},
  {(char *)"friction", __pyx_getprop_9mujoco_py_4cymj_11PyMjContact_friction, 0, (char *)0, 0},
  {(char *)"solref", __pyx_getprop_9mujoco_py_4cymj_11PyMjContact_solref, 0, (char *)0, 0},
  {(char *)"solimp", __pyx_getprop_9mujoco_py_4cymj_11PyMjContact_solimp, 0, (char *)0, 0},
  {(char *)"H", __pyx_getprop_9mujoco_py_4cymj_11PyMjContact_H, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjContact_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjContact},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjContact},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjContact},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjContact},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjContact},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjContact},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjContact_spec = {
  "mujoco_py.cymj.PyMjContact",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjContact_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjContact = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjContact", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjContact, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjContact, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjContact, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjContact, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjContact, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjContact, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjWarningStat __pyx_vtable_9mujoco_py_4cymj_PyMjWarningStat;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjWarningStat(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjWarningStat;
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjWarningStat(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjWarningStat) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjWarningStat_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjWarningStat_lastinfo(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_8lastinfo_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_15PyMjWarningStat_lastinfo(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_8lastinfo_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15PyMjWarningStat_number(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_6number_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_15PyMjWarningStat_number(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_6number_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjWarningStat[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15PyMjWarningStat_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjWarningStat[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_15PyMjWarningStat_uintptr, 0, (char *)0, 0},
  {(char *)"lastinfo", __pyx_getprop_9mujoco_py_4cymj_15PyMjWarningStat_lastinfo, __pyx_setprop_9mujoco_py_4cymj_15PyMjWarningStat_lastinfo, (char *)0, 0},
  {(char *)"number", __pyx_getprop_9mujoco_py_4cymj_15PyMjWarningStat_number, __pyx_setprop_9mujoco_py_4cymj_15PyMjWarningStat_number, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjWarningStat_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjWarningStat},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjWarningStat},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjWarningStat},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjWarningStat},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjWarningStat_spec = {
  "mujoco_py.cymj.PyMjWarningStat",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_9mujoco_py_4cymj_PyMjWarningStat_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjWarningStat = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjWarningStat", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjWarningStat, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjWarningStat, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjWarningStat, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjWarningStat, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjTimerStat __pyx_vtable_9mujoco_py_4cymj_PyMjTimerStat;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjTimerStat(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjTimerStat;
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjTimerStat(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjTimerStat) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjTimerStat_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjTimerStat_duration(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_8duration_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_13PyMjTimerStat_duration(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_8duration_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjTimerStat_number(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_6number_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_13PyMjTimerStat_number(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_6number_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjTimerStat[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjTimerStat_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjTimerStat[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_13PyMjTimerStat_uintptr, 0, (char *)0, 0},
  {(char *)"duration", __pyx_getprop_9mujoco_py_4cymj_13PyMjTimerStat_duration, __pyx_setprop_9mujoco_py_4cymj_13PyMjTimerStat_duration, (char *)0, 0},
  {(char *)"number", __pyx_getprop_9mujoco_py_4cymj_13PyMjTimerStat_number, __pyx_setprop_9mujoco_py_4cymj_13PyMjTimerStat_number, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjTimerStat_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjTimerStat},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjTimerStat},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjTimerStat},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjTimerStat},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjTimerStat_spec = {
  "mujoco_py.cymj.PyMjTimerStat",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_9mujoco_py_4cymj_PyMjTimerStat_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjTimerStat = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjTimerStat", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjTimerStat, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjTimerStat, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjTimerStat, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjTimerStat, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjSolverStat __pyx_vtable_9mujoco_py_4cymj_PyMjSolverStat;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjSolverStat(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjSolverStat;
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjSolverStat(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjSolverStat) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_improvement(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_11improvement_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjSolverStat_improvement(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_11improvement_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_gradient(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_8gradient_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjSolverStat_gradient(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_8gradient_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_lineslope(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_9lineslope_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjSolverStat_lineslope(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_9lineslope_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_nactive(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nactive_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjSolverStat_nactive(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nactive_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_nchange(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nchange_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjSolverStat_nchange(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nchange_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_neval(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_5neval_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjSolverStat_neval(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_5neval_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_nupdate(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nupdate_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_14PyMjSolverStat_nupdate(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_7nupdate_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjSolverStat[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_14PyMjSolverStat_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjSolverStat[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_uintptr, 0, (char *)0, 0},
  {(char *)"improvement", __pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_improvement, __pyx_setprop_9mujoco_py_4cymj_14PyMjSolverStat_improvement, (char *)0, 0},
  {(char *)"gradient", __pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_gradient, __pyx_setprop_9mujoco_py_4cymj_14PyMjSolverStat_gradient, (char *)0, 0},
  {(char *)"lineslope", __pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_lineslope, __pyx_setprop_9mujoco_py_4cymj_14PyMjSolverStat_lineslope, (char *)0, 0},
  {(char *)"nactive", __pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_nactive, __pyx_setprop_9mujoco_py_4cymj_14PyMjSolverStat_nactive, (char *)0, 0},
  {(char *)"nchange", __pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_nchange, __pyx_setprop_9mujoco_py_4cymj_14PyMjSolverStat_nchange, (char *)0, 0},
  {(char *)"neval", __pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_neval, __pyx_setprop_9mujoco_py_4cymj_14PyMjSolverStat_neval, (char *)0, 0},
  {(char *)"nupdate", __pyx_getprop_9mujoco_py_4cymj_14PyMjSolverStat_nupdate, __pyx_setprop_9mujoco_py_4cymj_14PyMjSolverStat_nupdate, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjSolverStat_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjSolverStat},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjSolverStat},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjSolverStat},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjSolverStat},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjSolverStat_spec = {
  "mujoco_py.cymj.PyMjSolverStat",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_9mujoco_py_4cymj_PyMjSolverStat_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjSolverStat = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjSolverStat", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjSolverStat, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjSolverStat, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjSolverStat, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjSolverStat, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjData __pyx_vtable_9mujoco_py_4cymj_PyMjData;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjData(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjData;
  p->_model = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)Py_None); Py_INCREF(Py_None);
  p->_qpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qvel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_act = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qacc_warmstart = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_ctrl = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qfrc_applied = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_xfrc_applied = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qacc = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_act_dot = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mocap_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mocap_quat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_userdata = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sensordata = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_xpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_xquat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_xmat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_xipos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_ximat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_xanchor = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_xaxis = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_xpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_geom_xmat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_site_xpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_site_xmat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cam_xpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cam_xmat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_xpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_light_xdir = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_subtree_com = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cdof = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cinert = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_ten_wrapadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_ten_wrapnum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_ten_J_rownnz = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_ten_J_rowadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_ten_J_colind = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_ten_length = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_ten_J = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_wrap_obj = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_wrap_xpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_length = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_moment = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_crb = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qM = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qLD = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qLDiagInv = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qLDiagSqrtInv = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_contact = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_efc_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_id = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_J_rownnz = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_J_rowadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_J_rowsuper = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_J_colind = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_JT_rownnz = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_JT_rowadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_JT_rowsuper = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_JT_colind = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_J = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_JT = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_margin = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_frictionloss = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_diagApprox = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_KBIP = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_D = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_R = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_AR_rownnz = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_AR_rowadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_AR_colind = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_AR = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_ten_velocity = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_velocity = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cvel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cdof_dot = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qfrc_bias = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qfrc_passive = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_vel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_aref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_subtree_linvel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_subtree_angmom = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuator_force = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qfrc_actuator = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qfrc_unc = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qacc_unc = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_b = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_force = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_efc_state = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qfrc_constraint = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_qfrc_inverse = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cacc = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cfrc_int = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cfrc_ext = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_warning = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_timer = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_solver = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_solver_fwdinv = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_energy = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjData(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjData) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_9mujoco_py_4cymj_8PyMjData_1__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_model);
  Py_CLEAR(p->_qpos);
  Py_CLEAR(p->_qvel);
  Py_CLEAR(p->_act);
  Py_CLEAR(p->_qacc_warmstart);
  Py_CLEAR(p->_ctrl);
  Py_CLEAR(p->_qfrc_applied);
  Py_CLEAR(p->_xfrc_applied);
  Py_CLEAR(p->_qacc);
  Py_CLEAR(p->_act_dot);
  Py_CLEAR(p->_mocap_pos);
  Py_CLEAR(p->_mocap_quat);
  Py_CLEAR(p->_userdata);
  Py_CLEAR(p->_sensordata);
  Py_CLEAR(p->_xpos);
  Py_CLEAR(p->_xquat);
  Py_CLEAR(p->_xmat);
  Py_CLEAR(p->_xipos);
  Py_CLEAR(p->_ximat);
  Py_CLEAR(p->_xanchor);
  Py_CLEAR(p->_xaxis);
  Py_CLEAR(p->_geom_xpos);
  Py_CLEAR(p->_geom_xmat);
  Py_CLEAR(p->_site_xpos);
  Py_CLEAR(p->_site_xmat);
  Py_CLEAR(p->_cam_xpos);
  Py_CLEAR(p->_cam_xmat);
  Py_CLEAR(p->_light_xpos);
  Py_CLEAR(p->_light_xdir);
  Py_CLEAR(p->_subtree_com);
  Py_CLEAR(p->_cdof);
  Py_CLEAR(p->_cinert);
  Py_CLEAR(p->_ten_wrapadr);
  Py_CLEAR(p->_ten_wrapnum);
  Py_CLEAR(p->_ten_J_rownnz);
  Py_CLEAR(p->_ten_J_rowadr);
  Py_CLEAR(p->_ten_J_colind);
  Py_CLEAR(p->_ten_length);
  Py_CLEAR(p->_ten_J);
  Py_CLEAR(p->_wrap_obj);
  Py_CLEAR(p->_wrap_xpos);
  Py_CLEAR(p->_actuator_length);
  Py_CLEAR(p->_actuator_moment);
  Py_CLEAR(p->_crb);
  Py_CLEAR(p->_qM);
  Py_CLEAR(p->_qLD);
  Py_CLEAR(p->_qLDiagInv);
  Py_CLEAR(p->_qLDiagSqrtInv);
  Py_CLEAR(p->_contact);
  Py_CLEAR(p->_efc_type);
  Py_CLEAR(p->_efc_id);
  Py_CLEAR(p->_efc_J_rownnz);
  Py_CLEAR(p->_efc_J_rowadr);
  Py_CLEAR(p->_efc_J_rowsuper);
  Py_CLEAR(p->_efc_J_colind);
  Py_CLEAR(p->_efc_JT_rownnz);
  Py_CLEAR(p->_efc_JT_rowadr);
  Py_CLEAR(p->_efc_JT_rowsuper);
  Py_CLEAR(p->_efc_JT_colind);
  Py_CLEAR(p->_efc_J);
  Py_CLEAR(p->_efc_JT);
  Py_CLEAR(p->_efc_pos);
  Py_CLEAR(p->_efc_margin);
  Py_CLEAR(p->_efc_frictionloss);
  Py_CLEAR(p->_efc_diagApprox);
  Py_CLEAR(p->_efc_KBIP);
  Py_CLEAR(p->_efc_D);
  Py_CLEAR(p->_efc_R);
  Py_CLEAR(p->_efc_AR_rownnz);
  Py_CLEAR(p->_efc_AR_rowadr);
  Py_CLEAR(p->_efc_AR_colind);
  Py_CLEAR(p->_efc_AR);
  Py_CLEAR(p->_ten_velocity);
  Py_CLEAR(p->_actuator_velocity);
  Py_CLEAR(p->_cvel);
  Py_CLEAR(p->_cdof_dot);
  Py_CLEAR(p->_qfrc_bias);
  Py_CLEAR(p->_qfrc_passive);
  Py_CLEAR(p->_efc_vel);
  Py_CLEAR(p->_efc_aref);
  Py_CLEAR(p->_subtree_linvel);
  Py_CLEAR(p->_subtree_angmom);
  Py_CLEAR(p->_actuator_force);
  Py_CLEAR(p->_qfrc_actuator);
  Py_CLEAR(p->_qfrc_unc);
  Py_CLEAR(p->_qacc_unc);
  Py_CLEAR(p->_efc_b);
  Py_CLEAR(p->_efc_force);
  Py_CLEAR(p->_efc_state);
  Py_CLEAR(p->_qfrc_constraint);
  Py_CLEAR(p->_qfrc_inverse);
  Py_CLEAR(p->_cacc);
  Py_CLEAR(p->_cfrc_int);
  Py_CLEAR(p->_cfrc_ext);
  Py_CLEAR(p->_warning);
  Py_CLEAR(p->_timer);
  Py_CLEAR(p->_solver);
  Py_CLEAR(p->_solver_fwdinv);
  Py_CLEAR(p->_energy);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjData(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)o;
  if (p->_model) {
    e = (*v)(((PyObject *)p->_model), a); if (e) return e;
  }
  if (p->_qpos) {
    e = (*v)(((PyObject *)p->_qpos), a); if (e) return e;
  }
  if (p->_qvel) {
    e = (*v)(((PyObject *)p->_qvel), a); if (e) return e;
  }
  if (p->_act) {
    e = (*v)(((PyObject *)p->_act), a); if (e) return e;
  }
  if (p->_qacc_warmstart) {
    e = (*v)(((PyObject *)p->_qacc_warmstart), a); if (e) return e;
  }
  if (p->_ctrl) {
    e = (*v)(((PyObject *)p->_ctrl), a); if (e) return e;
  }
  if (p->_qfrc_applied) {
    e = (*v)(((PyObject *)p->_qfrc_applied), a); if (e) return e;
  }
  if (p->_xfrc_applied) {
    e = (*v)(((PyObject *)p->_xfrc_applied), a); if (e) return e;
  }
  if (p->_qacc) {
    e = (*v)(((PyObject *)p->_qacc), a); if (e) return e;
  }
  if (p->_act_dot) {
    e = (*v)(((PyObject *)p->_act_dot), a); if (e) return e;
  }
  if (p->_mocap_pos) {
    e = (*v)(((PyObject *)p->_mocap_pos), a); if (e) return e;
  }
  if (p->_mocap_quat) {
    e = (*v)(((PyObject *)p->_mocap_quat), a); if (e) return e;
  }
  if (p->_userdata) {
    e = (*v)(((PyObject *)p->_userdata), a); if (e) return e;
  }
  if (p->_sensordata) {
    e = (*v)(((PyObject *)p->_sensordata), a); if (e) return e;
  }
  if (p->_xpos) {
    e = (*v)(((PyObject *)p->_xpos), a); if (e) return e;
  }
  if (p->_xquat) {
    e = (*v)(((PyObject *)p->_xquat), a); if (e) return e;
  }
  if (p->_xmat) {
    e = (*v)(((PyObject *)p->_xmat), a); if (e) return e;
  }
  if (p->_xipos) {
    e = (*v)(((PyObject *)p->_xipos), a); if (e) return e;
  }
  if (p->_ximat) {
    e = (*v)(((PyObject *)p->_ximat), a); if (e) return e;
  }
  if (p->_xanchor) {
    e = (*v)(((PyObject *)p->_xanchor), a); if (e) return e;
  }
  if (p->_xaxis) {
    e = (*v)(((PyObject *)p->_xaxis), a); if (e) return e;
  }
  if (p->_geom_xpos) {
    e = (*v)(((PyObject *)p->_geom_xpos), a); if (e) return e;
  }
  if (p->_geom_xmat) {
    e = (*v)(((PyObject *)p->_geom_xmat), a); if (e) return e;
  }
  if (p->_site_xpos) {
    e = (*v)(((PyObject *)p->_site_xpos), a); if (e) return e;
  }
  if (p->_site_xmat) {
    e = (*v)(((PyObject *)p->_site_xmat), a); if (e) return e;
  }
  if (p->_cam_xpos) {
    e = (*v)(((PyObject *)p->_cam_xpos), a); if (e) return e;
  }
  if (p->_cam_xmat) {
    e = (*v)(((PyObject *)p->_cam_xmat), a); if (e) return e;
  }
  if (p->_light_xpos) {
    e = (*v)(((PyObject *)p->_light_xpos), a); if (e) return e;
  }
  if (p->_light_xdir) {
    e = (*v)(((PyObject *)p->_light_xdir), a); if (e) return e;
  }
  if (p->_subtree_com) {
    e = (*v)(((PyObject *)p->_subtree_com), a); if (e) return e;
  }
  if (p->_cdof) {
    e = (*v)(((PyObject *)p->_cdof), a); if (e) return e;
  }
  if (p->_cinert) {
    e = (*v)(((PyObject *)p->_cinert), a); if (e) return e;
  }
  if (p->_ten_wrapadr) {
    e = (*v)(((PyObject *)p->_ten_wrapadr), a); if (e) return e;
  }
  if (p->_ten_wrapnum) {
    e = (*v)(((PyObject *)p->_ten_wrapnum), a); if (e) return e;
  }
  if (p->_ten_J_rownnz) {
    e = (*v)(((PyObject *)p->_ten_J_rownnz), a); if (e) return e;
  }
  if (p->_ten_J_rowadr) {
    e = (*v)(((PyObject *)p->_ten_J_rowadr), a); if (e) return e;
  }
  if (p->_ten_J_colind) {
    e = (*v)(((PyObject *)p->_ten_J_colind), a); if (e) return e;
  }
  if (p->_ten_length) {
    e = (*v)(((PyObject *)p->_ten_length), a); if (e) return e;
  }
  if (p->_ten_J) {
    e = (*v)(((PyObject *)p->_ten_J), a); if (e) return e;
  }
  if (p->_wrap_obj) {
    e = (*v)(((PyObject *)p->_wrap_obj), a); if (e) return e;
  }
  if (p->_wrap_xpos) {
    e = (*v)(((PyObject *)p->_wrap_xpos), a); if (e) return e;
  }
  if (p->_actuator_length) {
    e = (*v)(((PyObject *)p->_actuator_length), a); if (e) return e;
  }
  if (p->_actuator_moment) {
    e = (*v)(((PyObject *)p->_actuator_moment), a); if (e) return e;
  }
  if (p->_crb) {
    e = (*v)(((PyObject *)p->_crb), a); if (e) return e;
  }
  if (p->_qM) {
    e = (*v)(((PyObject *)p->_qM), a); if (e) return e;
  }
  if (p->_qLD) {
    e = (*v)(((PyObject *)p->_qLD), a); if (e) return e;
  }
  if (p->_qLDiagInv) {
    e = (*v)(((PyObject *)p->_qLDiagInv), a); if (e) return e;
  }
  if (p->_qLDiagSqrtInv) {
    e = (*v)(((PyObject *)p->_qLDiagSqrtInv), a); if (e) return e;
  }
  if (p->_contact) {
    e = (*v)(p->_contact, a); if (e) return e;
  }
  if (p->_efc_type) {
    e = (*v)(((PyObject *)p->_efc_type), a); if (e) return e;
  }
  if (p->_efc_id) {
    e = (*v)(((PyObject *)p->_efc_id), a); if (e) return e;
  }
  if (p->_efc_J_rownnz) {
    e = (*v)(((PyObject *)p->_efc_J_rownnz), a); if (e) return e;
  }
  if (p->_efc_J_rowadr) {
    e = (*v)(((PyObject *)p->_efc_J_rowadr), a); if (e) return e;
  }
  if (p->_efc_J_rowsuper) {
    e = (*v)(((PyObject *)p->_efc_J_rowsuper), a); if (e) return e;
  }
  if (p->_efc_J_colind) {
    e = (*v)(((PyObject *)p->_efc_J_colind), a); if (e) return e;
  }
  if (p->_efc_JT_rownnz) {
    e = (*v)(((PyObject *)p->_efc_JT_rownnz), a); if (e) return e;
  }
  if (p->_efc_JT_rowadr) {
    e = (*v)(((PyObject *)p->_efc_JT_rowadr), a); if (e) return e;
  }
  if (p->_efc_JT_rowsuper) {
    e = (*v)(((PyObject *)p->_efc_JT_rowsuper), a); if (e) return e;
  }
  if (p->_efc_JT_colind) {
    e = (*v)(((PyObject *)p->_efc_JT_colind), a); if (e) return e;
  }
  if (p->_efc_J) {
    e = (*v)(((PyObject *)p->_efc_J), a); if (e) return e;
  }
  if (p->_efc_JT) {
    e = (*v)(((PyObject *)p->_efc_JT), a); if (e) return e;
  }
  if (p->_efc_pos) {
    e = (*v)(((PyObject *)p->_efc_pos), a); if (e) return e;
  }
  if (p->_efc_margin) {
    e = (*v)(((PyObject *)p->_efc_margin), a); if (e) return e;
  }
  if (p->_efc_frictionloss) {
    e = (*v)(((PyObject *)p->_efc_frictionloss), a); if (e) return e;
  }
  if (p->_efc_diagApprox) {
    e = (*v)(((PyObject *)p->_efc_diagApprox), a); if (e) return e;
  }
  if (p->_efc_KBIP) {
    e = (*v)(((PyObject *)p->_efc_KBIP), a); if (e) return e;
  }
  if (p->_efc_D) {
    e = (*v)(((PyObject *)p->_efc_D), a); if (e) return e;
  }
  if (p->_efc_R) {
    e = (*v)(((PyObject *)p->_efc_R), a); if (e) return e;
  }
  if (p->_efc_AR_rownnz) {
    e = (*v)(((PyObject *)p->_efc_AR_rownnz), a); if (e) return e;
  }
  if (p->_efc_AR_rowadr) {
    e = (*v)(((PyObject *)p->_efc_AR_rowadr), a); if (e) return e;
  }
  if (p->_efc_AR_colind) {
    e = (*v)(((PyObject *)p->_efc_AR_colind), a); if (e) return e;
  }
  if (p->_efc_AR) {
    e = (*v)(((PyObject *)p->_efc_AR), a); if (e) return e;
  }
  if (p->_ten_velocity) {
    e = (*v)(((PyObject *)p->_ten_velocity), a); if (e) return e;
  }
  if (p->_actuator_velocity) {
    e = (*v)(((PyObject *)p->_actuator_velocity), a); if (e) return e;
  }
  if (p->_cvel) {
    e = (*v)(((PyObject *)p->_cvel), a); if (e) return e;
  }
  if (p->_cdof_dot) {
    e = (*v)(((PyObject *)p->_cdof_dot), a); if (e) return e;
  }
  if (p->_qfrc_bias) {
    e = (*v)(((PyObject *)p->_qfrc_bias), a); if (e) return e;
  }
  if (p->_qfrc_passive) {
    e = (*v)(((PyObject *)p->_qfrc_passive), a); if (e) return e;
  }
  if (p->_efc_vel) {
    e = (*v)(((PyObject *)p->_efc_vel), a); if (e) return e;
  }
  if (p->_efc_aref) {
    e = (*v)(((PyObject *)p->_efc_aref), a); if (e) return e;
  }
  if (p->_subtree_linvel) {
    e = (*v)(((PyObject *)p->_subtree_linvel), a); if (e) return e;
  }
  if (p->_subtree_angmom) {
    e = (*v)(((PyObject *)p->_subtree_angmom), a); if (e) return e;
  }
  if (p->_actuator_force) {
    e = (*v)(((PyObject *)p->_actuator_force), a); if (e) return e;
  }
  if (p->_qfrc_actuator) {
    e = (*v)(((PyObject *)p->_qfrc_actuator), a); if (e) return e;
  }
  if (p->_qfrc_unc) {
    e = (*v)(((PyObject *)p->_qfrc_unc), a); if (e) return e;
  }
  if (p->_qacc_unc) {
    e = (*v)(((PyObject *)p->_qacc_unc), a); if (e) return e;
  }
  if (p->_efc_b) {
    e = (*v)(((PyObject *)p->_efc_b), a); if (e) return e;
  }
  if (p->_efc_force) {
    e = (*v)(((PyObject *)p->_efc_force), a); if (e) return e;
  }
  if (p->_efc_state) {
    e = (*v)(((PyObject *)p->_efc_state), a); if (e) return e;
  }
  if (p->_qfrc_constraint) {
    e = (*v)(((PyObject *)p->_qfrc_constraint), a); if (e) return e;
  }
  if (p->_qfrc_inverse) {
    e = (*v)(((PyObject *)p->_qfrc_inverse), a); if (e) return e;
  }
  if (p->_cacc) {
    e = (*v)(((PyObject *)p->_cacc), a); if (e) return e;
  }
  if (p->_cfrc_int) {
    e = (*v)(((PyObject *)p->_cfrc_int), a); if (e) return e;
  }
  if (p->_cfrc_ext) {
    e = (*v)(((PyObject *)p->_cfrc_ext), a); if (e) return e;
  }
  if (p->_warning) {
    e = (*v)(p->_warning, a); if (e) return e;
  }
  if (p->_timer) {
    e = (*v)(p->_timer, a); if (e) return e;
  }
  if (p->_solver) {
    e = (*v)(p->_solver, a); if (e) return e;
  }
  if (p->_solver_fwdinv) {
    e = (*v)(((PyObject *)p->_solver_fwdinv), a); if (e) return e;
  }
  if (p->_energy) {
    e = (*v)(((PyObject *)p->_energy), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjData(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjData *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)o;
  tmp = ((PyObject*)p->_model);
  p->_model = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qpos);
  p->_qpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qvel);
  p->_qvel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_act);
  p->_act = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qacc_warmstart);
  p->_qacc_warmstart = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_ctrl);
  p->_ctrl = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qfrc_applied);
  p->_qfrc_applied = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_xfrc_applied);
  p->_xfrc_applied = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qacc);
  p->_qacc = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_act_dot);
  p->_act_dot = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mocap_pos);
  p->_mocap_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mocap_quat);
  p->_mocap_quat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_userdata);
  p->_userdata = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sensordata);
  p->_sensordata = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_xpos);
  p->_xpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_xquat);
  p->_xquat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_xmat);
  p->_xmat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_xipos);
  p->_xipos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_ximat);
  p->_ximat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_xanchor);
  p->_xanchor = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_xaxis);
  p->_xaxis = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_xpos);
  p->_geom_xpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_geom_xmat);
  p->_geom_xmat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_site_xpos);
  p->_site_xpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_site_xmat);
  p->_site_xmat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cam_xpos);
  p->_cam_xpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cam_xmat);
  p->_cam_xmat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_xpos);
  p->_light_xpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_light_xdir);
  p->_light_xdir = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_subtree_com);
  p->_subtree_com = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cdof);
  p->_cdof = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cinert);
  p->_cinert = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_ten_wrapadr);
  p->_ten_wrapadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_ten_wrapnum);
  p->_ten_wrapnum = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_ten_J_rownnz);
  p->_ten_J_rownnz = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_ten_J_rowadr);
  p->_ten_J_rowadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_ten_J_colind);
  p->_ten_J_colind = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_ten_length);
  p->_ten_length = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_ten_J);
  p->_ten_J = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_wrap_obj);
  p->_wrap_obj = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_wrap_xpos);
  p->_wrap_xpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_length);
  p->_actuator_length = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_moment);
  p->_actuator_moment = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_crb);
  p->_crb = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qM);
  p->_qM = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qLD);
  p->_qLD = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qLDiagInv);
  p->_qLDiagInv = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qLDiagSqrtInv);
  p->_qLDiagSqrtInv = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_contact);
  p->_contact = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_type);
  p->_efc_type = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_id);
  p->_efc_id = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_J_rownnz);
  p->_efc_J_rownnz = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_J_rowadr);
  p->_efc_J_rowadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_J_rowsuper);
  p->_efc_J_rowsuper = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_J_colind);
  p->_efc_J_colind = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_JT_rownnz);
  p->_efc_JT_rownnz = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_JT_rowadr);
  p->_efc_JT_rowadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_JT_rowsuper);
  p->_efc_JT_rowsuper = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_JT_colind);
  p->_efc_JT_colind = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_J);
  p->_efc_J = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_JT);
  p->_efc_JT = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_pos);
  p->_efc_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_margin);
  p->_efc_margin = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_frictionloss);
  p->_efc_frictionloss = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_diagApprox);
  p->_efc_diagApprox = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_KBIP);
  p->_efc_KBIP = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_D);
  p->_efc_D = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_R);
  p->_efc_R = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_AR_rownnz);
  p->_efc_AR_rownnz = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_AR_rowadr);
  p->_efc_AR_rowadr = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_AR_colind);
  p->_efc_AR_colind = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_AR);
  p->_efc_AR = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_ten_velocity);
  p->_ten_velocity = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_velocity);
  p->_actuator_velocity = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cvel);
  p->_cvel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cdof_dot);
  p->_cdof_dot = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qfrc_bias);
  p->_qfrc_bias = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qfrc_passive);
  p->_qfrc_passive = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_vel);
  p->_efc_vel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_aref);
  p->_efc_aref = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_subtree_linvel);
  p->_subtree_linvel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_subtree_angmom);
  p->_subtree_angmom = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuator_force);
  p->_actuator_force = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qfrc_actuator);
  p->_qfrc_actuator = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qfrc_unc);
  p->_qfrc_unc = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qacc_unc);
  p->_qacc_unc = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_b);
  p->_efc_b = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_force);
  p->_efc_force = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_efc_state);
  p->_efc_state = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qfrc_constraint);
  p->_qfrc_constraint = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_qfrc_inverse);
  p->_qfrc_inverse = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cacc);
  p->_cacc = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cfrc_int);
  p->_cfrc_int = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cfrc_ext);
  p->_cfrc_ext = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_warning);
  p->_warning = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_timer);
  p->_timer = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_solver);
  p->_solver = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_solver_fwdinv);
  p->_solver_fwdinv = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_energy);
  p->_energy = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_body_xpos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9body_xpos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_body_xquat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10body_xquat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_body_xmat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9body_xmat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_active_contacts_efc_pos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_23active_contacts_efc_pos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_nstack(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_6nstack_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_8PyMjData_nstack(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_8PyMjData_6nstack_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_nbuffer(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_7nbuffer_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_8PyMjData_nbuffer(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_8PyMjData_7nbuffer_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_pstack(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_6pstack_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_8PyMjData_pstack(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_8PyMjData_6pstack_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_maxuse_stack(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_12maxuse_stack_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_8PyMjData_maxuse_stack(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_8PyMjData_12maxuse_stack_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_maxuse_con(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10maxuse_con_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_8PyMjData_maxuse_con(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10maxuse_con_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_maxuse_efc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10maxuse_efc_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_8PyMjData_maxuse_efc(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10maxuse_efc_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_solver_iter(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_11solver_iter_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_8PyMjData_solver_iter(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_8PyMjData_11solver_iter_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_solver_nnz(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10solver_nnz_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_8PyMjData_solver_nnz(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10solver_nnz_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_ne(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_2ne_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_8PyMjData_ne(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_8PyMjData_2ne_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_nf(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_2nf_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_8PyMjData_nf(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_8PyMjData_2nf_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_nefc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_4nefc_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_8PyMjData_nefc(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_8PyMjData_4nefc_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_ncon(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_4ncon_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_8PyMjData_ncon(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_8PyMjData_4ncon_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_time(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_4time_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_8PyMjData_time(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_8PyMjData_4time_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qpos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_4qpos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qvel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_4qvel_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_act(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_3act_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qacc_warmstart(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_14qacc_warmstart_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_ctrl(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_4ctrl_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qfrc_applied(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_12qfrc_applied_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_xfrc_applied(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_12xfrc_applied_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qacc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_4qacc_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_act_dot(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_7act_dot_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_mocap_pos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9mocap_pos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_mocap_quat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10mocap_quat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_userdata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_8userdata_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_sensordata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10sensordata_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_xpos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_4xpos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_xquat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_5xquat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_xmat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_4xmat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_xipos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_5xipos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_ximat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_5ximat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_xanchor(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_7xanchor_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_xaxis(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_5xaxis_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_geom_xpos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9geom_xpos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_geom_xmat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9geom_xmat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_site_xpos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9site_xpos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_site_xmat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9site_xmat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_cam_xpos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_8cam_xpos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_cam_xmat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_8cam_xmat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_light_xpos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10light_xpos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_light_xdir(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10light_xdir_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_subtree_com(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_11subtree_com_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_cdof(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_4cdof_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_cinert(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_6cinert_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_wrapadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_11ten_wrapadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_wrapnum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_11ten_wrapnum_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_J_rownnz(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_12ten_J_rownnz_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_J_rowadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_12ten_J_rowadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_J_colind(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_12ten_J_colind_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_length(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10ten_length_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_J(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_5ten_J_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_wrap_obj(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_8wrap_obj_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_wrap_xpos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9wrap_xpos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_actuator_length(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_15actuator_length_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_actuator_moment(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_15actuator_moment_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_crb(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_3crb_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qM(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_2qM_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qLD(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_3qLD_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qLDiagInv(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9qLDiagInv_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qLDiagSqrtInv(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_13qLDiagSqrtInv_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_contact(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_7contact_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_8efc_type_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_6efc_id_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_J_rownnz(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_12efc_J_rownnz_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_J_rowadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_12efc_J_rowadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_J_rowsuper(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_14efc_J_rowsuper_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_J_colind(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_12efc_J_colind_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_JT_rownnz(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_JT_rownnz_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_JT_rowadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_JT_rowadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_JT_rowsuper(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_15efc_JT_rowsuper_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_JT_colind(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_JT_colind_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_J(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_5efc_J_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_JT(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_6efc_JT_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_pos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_7efc_pos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_margin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10efc_margin_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_frictionloss(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_16efc_frictionloss_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_diagApprox(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_14efc_diagApprox_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_KBIP(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_8efc_KBIP_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_D(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_5efc_D_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_R(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_5efc_R_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_AR_rownnz(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_AR_rownnz_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_AR_rowadr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_AR_rowadr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_AR_colind(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_13efc_AR_colind_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_AR(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_6efc_AR_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_velocity(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_12ten_velocity_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_actuator_velocity(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_17actuator_velocity_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_cvel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_4cvel_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_cdof_dot(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_8cdof_dot_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qfrc_bias(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9qfrc_bias_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qfrc_passive(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_12qfrc_passive_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_vel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_7efc_vel_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_aref(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_8efc_aref_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_subtree_linvel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_14subtree_linvel_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_subtree_angmom(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_14subtree_angmom_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_actuator_force(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_14actuator_force_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qfrc_actuator(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_13qfrc_actuator_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qfrc_unc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_8qfrc_unc_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qacc_unc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_8qacc_unc_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_b(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_5efc_b_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_force(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9efc_force_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_state(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9efc_state_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qfrc_constraint(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_15qfrc_constraint_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_qfrc_inverse(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_12qfrc_inverse_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_cacc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_4cacc_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_cfrc_int(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_8cfrc_int_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_cfrc_ext(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_8cfrc_ext_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_warning(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_7warning_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_timer(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_5timer_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_solver(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_6solver_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_solver_fwdinv(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_13solver_fwdinv_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_energy(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_6energy_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_body_jacp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9body_jacp_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_body_jacr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9body_jacr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_body_xvelp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10body_xvelp_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_body_xvelr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10body_xvelr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_geom_jacp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9geom_jacp_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_geom_jacr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9geom_jacr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_geom_xvelp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10geom_xvelp_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_geom_xvelr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10geom_xvelr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_site_jacp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9site_jacp_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_site_jacr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_9site_jacr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_site_xvelp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10site_xvelp_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_8PyMjData_site_xvelr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_8PyMjData_10site_xvelr_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjData[] = {
  {"get_body_xpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_3get_body_xpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_xpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_5get_xpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_body_xquat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_7get_body_xquat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_xquat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_9get_xquat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_body_xmat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_11get_body_xmat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_xmat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_13get_xmat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_body_xipos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_15get_body_xipos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_xipos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_17get_xipos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_body_ximat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_19get_body_ximat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_ximat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_21get_ximat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_body_jacp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_23get_body_jacp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_body_jacr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_25get_body_jacr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_body_xvelp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_27get_body_xvelp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_body_xvelr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_29get_body_xvelr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_joint_xanchor", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_31get_joint_xanchor, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_xanchor", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_33get_xanchor, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_joint_xaxis", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_35get_joint_xaxis, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_xaxis", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_37get_xaxis, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_geom_xpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_39get_geom_xpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_geom_xmat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_41get_geom_xmat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_geom_jacp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_43get_geom_jacp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_geom_jacr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_45get_geom_jacr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_geom_xvelp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_47get_geom_xvelp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_geom_xvelr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_49get_geom_xvelr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_site_xpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_51get_site_xpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_site_xmat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_53get_site_xmat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_site_jacp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_55get_site_jacp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_site_jacr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_57get_site_jacr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_site_xvelp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_59get_site_xvelp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_site_xvelr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_61get_site_xvelr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_camera_xpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_63get_camera_xpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_cam_xpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_65get_cam_xpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_camera_xmat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_67get_camera_xmat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_cam_xmat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_69get_cam_xmat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_light_xpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_71get_light_xpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_light_xdir", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_73get_light_xdir, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_sensor", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_75get_sensor, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_sensordata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_77get_sensordata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_userdata", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_79get_userdata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_mocap_pos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_81get_mocap_pos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_mocap_pos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_83set_mocap_pos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_mocap_quat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_85get_mocap_quat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_mocap_quat", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_87set_mocap_quat, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_joint_qpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_89get_joint_qpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_joint_qpos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_91set_joint_qpos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_joint_qvel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_93get_joint_qvel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_joint_qvel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_95set_joint_qvel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_97__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_8PyMjData_99__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjData[] = {
  {(char *)"body_xpos", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_body_xpos, 0, (char *)0, 0},
  {(char *)"body_xquat", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_body_xquat, 0, (char *)0, 0},
  {(char *)"body_xmat", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_body_xmat, 0, (char *)0, 0},
  {(char *)"active_contacts_efc_pos", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_active_contacts_efc_pos, 0, (char *)0, 0},
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_uintptr, 0, (char *)0, 0},
  {(char *)"nstack", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_nstack, __pyx_setprop_9mujoco_py_4cymj_8PyMjData_nstack, (char *)0, 0},
  {(char *)"nbuffer", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_nbuffer, __pyx_setprop_9mujoco_py_4cymj_8PyMjData_nbuffer, (char *)0, 0},
  {(char *)"pstack", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_pstack, __pyx_setprop_9mujoco_py_4cymj_8PyMjData_pstack, (char *)0, 0},
  {(char *)"maxuse_stack", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_maxuse_stack, __pyx_setprop_9mujoco_py_4cymj_8PyMjData_maxuse_stack, (char *)0, 0},
  {(char *)"maxuse_con", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_maxuse_con, __pyx_setprop_9mujoco_py_4cymj_8PyMjData_maxuse_con, (char *)0, 0},
  {(char *)"maxuse_efc", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_maxuse_efc, __pyx_setprop_9mujoco_py_4cymj_8PyMjData_maxuse_efc, (char *)0, 0},
  {(char *)"solver_iter", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_solver_iter, __pyx_setprop_9mujoco_py_4cymj_8PyMjData_solver_iter, (char *)0, 0},
  {(char *)"solver_nnz", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_solver_nnz, __pyx_setprop_9mujoco_py_4cymj_8PyMjData_solver_nnz, (char *)0, 0},
  {(char *)"ne", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_ne, __pyx_setprop_9mujoco_py_4cymj_8PyMjData_ne, (char *)0, 0},
  {(char *)"nf", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_nf, __pyx_setprop_9mujoco_py_4cymj_8PyMjData_nf, (char *)0, 0},
  {(char *)"nefc", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_nefc, __pyx_setprop_9mujoco_py_4cymj_8PyMjData_nefc, (char *)0, 0},
  {(char *)"ncon", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_ncon, __pyx_setprop_9mujoco_py_4cymj_8PyMjData_ncon, (char *)0, 0},
  {(char *)"time", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_time, __pyx_setprop_9mujoco_py_4cymj_8PyMjData_time, (char *)0, 0},
  {(char *)"qpos", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qpos, 0, (char *)0, 0},
  {(char *)"qvel", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qvel, 0, (char *)0, 0},
  {(char *)"act", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_act, 0, (char *)0, 0},
  {(char *)"qacc_warmstart", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qacc_warmstart, 0, (char *)0, 0},
  {(char *)"ctrl", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_ctrl, 0, (char *)0, 0},
  {(char *)"qfrc_applied", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qfrc_applied, 0, (char *)0, 0},
  {(char *)"xfrc_applied", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_xfrc_applied, 0, (char *)0, 0},
  {(char *)"qacc", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qacc, 0, (char *)0, 0},
  {(char *)"act_dot", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_act_dot, 0, (char *)0, 0},
  {(char *)"mocap_pos", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_mocap_pos, 0, (char *)0, 0},
  {(char *)"mocap_quat", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_mocap_quat, 0, (char *)0, 0},
  {(char *)"userdata", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_userdata, 0, (char *)0, 0},
  {(char *)"sensordata", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_sensordata, 0, (char *)0, 0},
  {(char *)"xpos", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_xpos, 0, (char *)0, 0},
  {(char *)"xquat", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_xquat, 0, (char *)0, 0},
  {(char *)"xmat", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_xmat, 0, (char *)0, 0},
  {(char *)"xipos", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_xipos, 0, (char *)0, 0},
  {(char *)"ximat", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_ximat, 0, (char *)0, 0},
  {(char *)"xanchor", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_xanchor, 0, (char *)0, 0},
  {(char *)"xaxis", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_xaxis, 0, (char *)0, 0},
  {(char *)"geom_xpos", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_geom_xpos, 0, (char *)0, 0},
  {(char *)"geom_xmat", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_geom_xmat, 0, (char *)0, 0},
  {(char *)"site_xpos", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_site_xpos, 0, (char *)0, 0},
  {(char *)"site_xmat", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_site_xmat, 0, (char *)0, 0},
  {(char *)"cam_xpos", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_cam_xpos, 0, (char *)0, 0},
  {(char *)"cam_xmat", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_cam_xmat, 0, (char *)0, 0},
  {(char *)"light_xpos", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_light_xpos, 0, (char *)0, 0},
  {(char *)"light_xdir", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_light_xdir, 0, (char *)0, 0},
  {(char *)"subtree_com", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_subtree_com, 0, (char *)0, 0},
  {(char *)"cdof", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_cdof, 0, (char *)0, 0},
  {(char *)"cinert", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_cinert, 0, (char *)0, 0},
  {(char *)"ten_wrapadr", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_wrapadr, 0, (char *)0, 0},
  {(char *)"ten_wrapnum", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_wrapnum, 0, (char *)0, 0},
  {(char *)"ten_J_rownnz", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_J_rownnz, 0, (char *)0, 0},
  {(char *)"ten_J_rowadr", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_J_rowadr, 0, (char *)0, 0},
  {(char *)"ten_J_colind", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_J_colind, 0, (char *)0, 0},
  {(char *)"ten_length", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_length, 0, (char *)0, 0},
  {(char *)"ten_J", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_J, 0, (char *)0, 0},
  {(char *)"wrap_obj", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_wrap_obj, 0, (char *)0, 0},
  {(char *)"wrap_xpos", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_wrap_xpos, 0, (char *)0, 0},
  {(char *)"actuator_length", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_actuator_length, 0, (char *)0, 0},
  {(char *)"actuator_moment", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_actuator_moment, 0, (char *)0, 0},
  {(char *)"crb", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_crb, 0, (char *)0, 0},
  {(char *)"qM", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qM, 0, (char *)0, 0},
  {(char *)"qLD", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qLD, 0, (char *)0, 0},
  {(char *)"qLDiagInv", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qLDiagInv, 0, (char *)0, 0},
  {(char *)"qLDiagSqrtInv", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qLDiagSqrtInv, 0, (char *)0, 0},
  {(char *)"contact", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_contact, 0, (char *)0, 0},
  {(char *)"efc_type", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_type, 0, (char *)0, 0},
  {(char *)"efc_id", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_id, 0, (char *)0, 0},
  {(char *)"efc_J_rownnz", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_J_rownnz, 0, (char *)0, 0},
  {(char *)"efc_J_rowadr", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_J_rowadr, 0, (char *)0, 0},
  {(char *)"efc_J_rowsuper", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_J_rowsuper, 0, (char *)0, 0},
  {(char *)"efc_J_colind", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_J_colind, 0, (char *)0, 0},
  {(char *)"efc_JT_rownnz", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_JT_rownnz, 0, (char *)0, 0},
  {(char *)"efc_JT_rowadr", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_JT_rowadr, 0, (char *)0, 0},
  {(char *)"efc_JT_rowsuper", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_JT_rowsuper, 0, (char *)0, 0},
  {(char *)"efc_JT_colind", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_JT_colind, 0, (char *)0, 0},
  {(char *)"efc_J", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_J, 0, (char *)0, 0},
  {(char *)"efc_JT", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_JT, 0, (char *)0, 0},
  {(char *)"efc_pos", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_pos, 0, (char *)0, 0},
  {(char *)"efc_margin", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_margin, 0, (char *)0, 0},
  {(char *)"efc_frictionloss", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_frictionloss, 0, (char *)0, 0},
  {(char *)"efc_diagApprox", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_diagApprox, 0, (char *)0, 0},
  {(char *)"efc_KBIP", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_KBIP, 0, (char *)0, 0},
  {(char *)"efc_D", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_D, 0, (char *)0, 0},
  {(char *)"efc_R", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_R, 0, (char *)0, 0},
  {(char *)"efc_AR_rownnz", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_AR_rownnz, 0, (char *)0, 0},
  {(char *)"efc_AR_rowadr", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_AR_rowadr, 0, (char *)0, 0},
  {(char *)"efc_AR_colind", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_AR_colind, 0, (char *)0, 0},
  {(char *)"efc_AR", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_AR, 0, (char *)0, 0},
  {(char *)"ten_velocity", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_ten_velocity, 0, (char *)0, 0},
  {(char *)"actuator_velocity", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_actuator_velocity, 0, (char *)0, 0},
  {(char *)"cvel", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_cvel, 0, (char *)0, 0},
  {(char *)"cdof_dot", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_cdof_dot, 0, (char *)0, 0},
  {(char *)"qfrc_bias", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qfrc_bias, 0, (char *)0, 0},
  {(char *)"qfrc_passive", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qfrc_passive, 0, (char *)0, 0},
  {(char *)"efc_vel", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_vel, 0, (char *)0, 0},
  {(char *)"efc_aref", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_aref, 0, (char *)0, 0},
  {(char *)"subtree_linvel", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_subtree_linvel, 0, (char *)0, 0},
  {(char *)"subtree_angmom", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_subtree_angmom, 0, (char *)0, 0},
  {(char *)"actuator_force", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_actuator_force, 0, (char *)0, 0},
  {(char *)"qfrc_actuator", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qfrc_actuator, 0, (char *)0, 0},
  {(char *)"qfrc_unc", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qfrc_unc, 0, (char *)0, 0},
  {(char *)"qacc_unc", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qacc_unc, 0, (char *)0, 0},
  {(char *)"efc_b", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_b, 0, (char *)0, 0},
  {(char *)"efc_force", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_force, 0, (char *)0, 0},
  {(char *)"efc_state", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_efc_state, 0, (char *)0, 0},
  {(char *)"qfrc_constraint", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qfrc_constraint, 0, (char *)0, 0},
  {(char *)"qfrc_inverse", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_qfrc_inverse, 0, (char *)0, 0},
  {(char *)"cacc", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_cacc, 0, (char *)0, 0},
  {(char *)"cfrc_int", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_cfrc_int, 0, (char *)0, 0},
  {(char *)"cfrc_ext", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_cfrc_ext, 0, (char *)0, 0},
  {(char *)"warning", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_warning, 0, (char *)0, 0},
  {(char *)"timer", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_timer, 0, (char *)0, 0},
  {(char *)"solver", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_solver, 0, (char *)0, 0},
  {(char *)"solver_fwdinv", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_solver_fwdinv, 0, (char *)0, 0},
  {(char *)"energy", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_energy, 0, (char *)0, 0},
  {(char *)"body_jacp", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_body_jacp, 0, (char *)0, 0},
  {(char *)"body_jacr", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_body_jacr, 0, (char *)0, 0},
  {(char *)"body_xvelp", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_body_xvelp, 0, (char *)0, 0},
  {(char *)"body_xvelr", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_body_xvelr, 0, (char *)0, 0},
  {(char *)"geom_jacp", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_geom_jacp, 0, (char *)0, 0},
  {(char *)"geom_jacr", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_geom_jacr, 0, (char *)0, 0},
  {(char *)"geom_xvelp", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_geom_xvelp, 0, (char *)0, 0},
  {(char *)"geom_xvelr", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_geom_xvelr, 0, (char *)0, 0},
  {(char *)"site_jacp", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_site_jacp, 0, (char *)0, 0},
  {(char *)"site_jacr", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_site_jacr, 0, (char *)0, 0},
  {(char *)"site_xvelp", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_site_xvelp, 0, (char *)0, 0},
  {(char *)"site_xvelr", __pyx_getprop_9mujoco_py_4cymj_8PyMjData_site_xvelr, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjData_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjData},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjData},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjData},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjData},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjData},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjData},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjData_spec = {
  "mujoco_py.cymj.PyMjData",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjData),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjData_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjData = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjData", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjData), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjData, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjData, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjData, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjData, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjData, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjData, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvPerturb __pyx_vtable_9mujoco_py_4cymj_PyMjvPerturb;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvPerturb(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjvPerturb;
  p->_refpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_refquat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_localpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvPerturb(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvPerturb) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_refpos);
  Py_CLEAR(p->_refquat);
  Py_CLEAR(p->_localpos);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvPerturb(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)o;
  if (p->_refpos) {
    e = (*v)(((PyObject *)p->_refpos), a); if (e) return e;
  }
  if (p->_refquat) {
    e = (*v)(((PyObject *)p->_refquat), a); if (e) return e;
  }
  if (p->_localpos) {
    e = (*v)(((PyObject *)p->_localpos), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjvPerturb(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)o;
  tmp = ((PyObject*)p->_refpos);
  p->_refpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_refquat);
  p->_refquat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_localpos);
  p->_localpos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_select(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_6select_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjvPerturb_select(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_6select_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_skinselect(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_10skinselect_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjvPerturb_skinselect(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_10skinselect_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_active(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_6active_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjvPerturb_active(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_6active_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_active2(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_7active2_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjvPerturb_active2(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_7active2_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_scale(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_5scale_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjvPerturb_scale(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_5scale_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_refpos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_6refpos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_refquat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_7refquat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_localpos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_8localpos_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjvPerturb[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_12PyMjvPerturb_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjvPerturb[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_uintptr, 0, (char *)0, 0},
  {(char *)"select", __pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_select, __pyx_setprop_9mujoco_py_4cymj_12PyMjvPerturb_select, (char *)0, 0},
  {(char *)"skinselect", __pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_skinselect, __pyx_setprop_9mujoco_py_4cymj_12PyMjvPerturb_skinselect, (char *)0, 0},
  {(char *)"active", __pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_active, __pyx_setprop_9mujoco_py_4cymj_12PyMjvPerturb_active, (char *)0, 0},
  {(char *)"active2", __pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_active2, __pyx_setprop_9mujoco_py_4cymj_12PyMjvPerturb_active2, (char *)0, 0},
  {(char *)"scale", __pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_scale, __pyx_setprop_9mujoco_py_4cymj_12PyMjvPerturb_scale, (char *)0, 0},
  {(char *)"refpos", __pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_refpos, 0, (char *)0, 0},
  {(char *)"refquat", __pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_refquat, 0, (char *)0, 0},
  {(char *)"localpos", __pyx_getprop_9mujoco_py_4cymj_12PyMjvPerturb_localpos, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjvPerturb_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvPerturb},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjvPerturb},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjvPerturb},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjvPerturb},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjvPerturb},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjvPerturb},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjvPerturb_spec = {
  "mujoco_py.cymj.PyMjvPerturb",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjvPerturb_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjvPerturb = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjvPerturb", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvPerturb, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvPerturb, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjvPerturb, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjvPerturb, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjvPerturb, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjvPerturb, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvCamera __pyx_vtable_9mujoco_py_4cymj_PyMjvCamera;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvCamera(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjvCamera;
  p->_lookat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvCamera(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvCamera) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_lookat);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvCamera(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)o;
  if (p->_lookat) {
    e = (*v)(((PyObject *)p->_lookat), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjvCamera(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)o;
  tmp = ((PyObject*)p->_lookat);
  p->_lookat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_4type_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvCamera_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_4type_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_fixedcamid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_10fixedcamid_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvCamera_fixedcamid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_10fixedcamid_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_trackbodyid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_11trackbodyid_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvCamera_trackbodyid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_11trackbodyid_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_distance(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_8distance_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvCamera_distance(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_8distance_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_azimuth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_7azimuth_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvCamera_azimuth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_7azimuth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_elevation(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_9elevation_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvCamera_elevation(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_9elevation_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_lookat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_6lookat_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjvCamera[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjvCamera_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjvCamera[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_uintptr, 0, (char *)0, 0},
  {(char *)"type", __pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_type, __pyx_setprop_9mujoco_py_4cymj_11PyMjvCamera_type, (char *)0, 0},
  {(char *)"fixedcamid", __pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_fixedcamid, __pyx_setprop_9mujoco_py_4cymj_11PyMjvCamera_fixedcamid, (char *)0, 0},
  {(char *)"trackbodyid", __pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_trackbodyid, __pyx_setprop_9mujoco_py_4cymj_11PyMjvCamera_trackbodyid, (char *)0, 0},
  {(char *)"distance", __pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_distance, __pyx_setprop_9mujoco_py_4cymj_11PyMjvCamera_distance, (char *)0, 0},
  {(char *)"azimuth", __pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_azimuth, __pyx_setprop_9mujoco_py_4cymj_11PyMjvCamera_azimuth, (char *)0, 0},
  {(char *)"elevation", __pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_elevation, __pyx_setprop_9mujoco_py_4cymj_11PyMjvCamera_elevation, (char *)0, 0},
  {(char *)"lookat", __pyx_getprop_9mujoco_py_4cymj_11PyMjvCamera_lookat, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjvCamera_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvCamera},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjvCamera},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjvCamera},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjvCamera},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjvCamera},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjvCamera},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjvCamera_spec = {
  "mujoco_py.cymj.PyMjvCamera",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjvCamera_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjvCamera = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjvCamera", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvCamera, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvCamera, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjvCamera, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjvCamera, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjvCamera, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjvCamera, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvGLCamera __pyx_vtable_9mujoco_py_4cymj_PyMjvGLCamera;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvGLCamera(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjvGLCamera;
  p->_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_forward = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_up = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvGLCamera(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvGLCamera) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_pos);
  Py_CLEAR(p->_forward);
  Py_CLEAR(p->_up);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvGLCamera(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)o;
  if (p->_pos) {
    e = (*v)(((PyObject *)p->_pos), a); if (e) return e;
  }
  if (p->_forward) {
    e = (*v)(((PyObject *)p->_forward), a); if (e) return e;
  }
  if (p->_up) {
    e = (*v)(((PyObject *)p->_up), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjvGLCamera(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *)o;
  tmp = ((PyObject*)p->_pos);
  p->_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_forward);
  p->_forward = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_up);
  p->_up = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_center(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_center_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_center(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_center_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_bottom(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_bottom_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_bottom(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_14frustum_bottom_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_top(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_top_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_top(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_top_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_near(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_12frustum_near_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_near(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_12frustum_near_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_far(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_far_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_far(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_11frustum_far_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_pos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_3pos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_forward(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_7forward_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_up(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_2up_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjvGLCamera[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjvGLCamera_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjvGLCamera[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_uintptr, 0, (char *)0, 0},
  {(char *)"frustum_center", __pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_center, __pyx_setprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_center, (char *)0, 0},
  {(char *)"frustum_bottom", __pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_bottom, __pyx_setprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_bottom, (char *)0, 0},
  {(char *)"frustum_top", __pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_top, __pyx_setprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_top, (char *)0, 0},
  {(char *)"frustum_near", __pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_near, __pyx_setprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_near, (char *)0, 0},
  {(char *)"frustum_far", __pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_far, __pyx_setprop_9mujoco_py_4cymj_13PyMjvGLCamera_frustum_far, (char *)0, 0},
  {(char *)"pos", __pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_pos, 0, (char *)0, 0},
  {(char *)"forward", __pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_forward, 0, (char *)0, 0},
  {(char *)"up", __pyx_getprop_9mujoco_py_4cymj_13PyMjvGLCamera_up, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjvGLCamera_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvGLCamera},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjvGLCamera},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjvGLCamera},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjvGLCamera},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjvGLCamera},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjvGLCamera},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjvGLCamera_spec = {
  "mujoco_py.cymj.PyMjvGLCamera",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjvGLCamera_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjvGLCamera = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjvGLCamera", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvGLCamera, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvGLCamera, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjvGLCamera, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjvGLCamera, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjvGLCamera, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjvGLCamera, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvGeom __pyx_vtable_9mujoco_py_4cymj_PyMjvGeom;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvGeom(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjvGeom;
  p->_texrepeat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_size = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_mat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_rgba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_label = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvGeom(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvGeom) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_texrepeat);
  Py_CLEAR(p->_size);
  Py_CLEAR(p->_pos);
  Py_CLEAR(p->_mat);
  Py_CLEAR(p->_rgba);
  Py_CLEAR(p->_label);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvGeom(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)o;
  if (p->_texrepeat) {
    e = (*v)(((PyObject *)p->_texrepeat), a); if (e) return e;
  }
  if (p->_size) {
    e = (*v)(((PyObject *)p->_size), a); if (e) return e;
  }
  if (p->_pos) {
    e = (*v)(((PyObject *)p->_pos), a); if (e) return e;
  }
  if (p->_mat) {
    e = (*v)(((PyObject *)p->_mat), a); if (e) return e;
  }
  if (p->_rgba) {
    e = (*v)(((PyObject *)p->_rgba), a); if (e) return e;
  }
  if (p->_label) {
    e = (*v)(((PyObject *)p->_label), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjvGeom(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *)o;
  tmp = ((PyObject*)p->_texrepeat);
  p->_texrepeat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_size);
  p->_size = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_pos);
  p->_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_mat);
  p->_mat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_rgba);
  p->_rgba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_label);
  p->_label = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_4type_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_4type_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_dataid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_6dataid_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_dataid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_6dataid_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_objtype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_7objtype_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_objtype(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_7objtype_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_objid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5objid_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_objid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5objid_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_category(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8category_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_category(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8category_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_texid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5texid_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_texid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5texid_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_texuniform(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_10texuniform_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_texuniform(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_10texuniform_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_texcoord(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8texcoord_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_texcoord(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8texcoord_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_segid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5segid_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_segid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5segid_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_emission(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8emission_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_emission(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8emission_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_specular(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8specular_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_specular(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_8specular_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_shininess(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_9shininess_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_shininess(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_9shininess_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_reflectance(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11reflectance_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_reflectance(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11reflectance_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_camdist(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_7camdist_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_camdist(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_7camdist_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_modelrbound(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11modelrbound_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_modelrbound(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11modelrbound_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_transparent(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11transparent_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_transparent(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_11transparent_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_texrepeat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_9texrepeat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_size(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_4size_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_pos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_3pos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_mat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_3mat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_rgba(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_4rgba_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_label(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5label_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjvGeom[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjvGeom_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjvGeom[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_uintptr, 0, (char *)0, 0},
  {(char *)"type", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_type, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_type, (char *)0, 0},
  {(char *)"dataid", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_dataid, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_dataid, (char *)0, 0},
  {(char *)"objtype", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_objtype, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_objtype, (char *)0, 0},
  {(char *)"objid", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_objid, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_objid, (char *)0, 0},
  {(char *)"category", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_category, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_category, (char *)0, 0},
  {(char *)"texid", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_texid, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_texid, (char *)0, 0},
  {(char *)"texuniform", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_texuniform, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_texuniform, (char *)0, 0},
  {(char *)"texcoord", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_texcoord, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_texcoord, (char *)0, 0},
  {(char *)"segid", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_segid, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_segid, (char *)0, 0},
  {(char *)"emission", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_emission, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_emission, (char *)0, 0},
  {(char *)"specular", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_specular, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_specular, (char *)0, 0},
  {(char *)"shininess", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_shininess, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_shininess, (char *)0, 0},
  {(char *)"reflectance", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_reflectance, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_reflectance, (char *)0, 0},
  {(char *)"camdist", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_camdist, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_camdist, (char *)0, 0},
  {(char *)"modelrbound", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_modelrbound, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_modelrbound, (char *)0, 0},
  {(char *)"transparent", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_transparent, __pyx_setprop_9mujoco_py_4cymj_9PyMjvGeom_transparent, (char *)0, 0},
  {(char *)"texrepeat", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_texrepeat, 0, (char *)0, 0},
  {(char *)"size", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_size, 0, (char *)0, 0},
  {(char *)"pos", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_pos, 0, (char *)0, 0},
  {(char *)"mat", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_mat, 0, (char *)0, 0},
  {(char *)"rgba", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_rgba, 0, (char *)0, 0},
  {(char *)"label", __pyx_getprop_9mujoco_py_4cymj_9PyMjvGeom_label, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjvGeom_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvGeom},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjvGeom},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjvGeom},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjvGeom},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjvGeom},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjvGeom},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjvGeom_spec = {
  "mujoco_py.cymj.PyMjvGeom",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjvGeom_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjvGeom = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjvGeom", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvGeom, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvGeom, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjvGeom, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjvGeom, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjvGeom, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjvGeom, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvLight __pyx_vtable_9mujoco_py_4cymj_PyMjvLight;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvLight(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjvLight;
  p->_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_dir = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_attenuation = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_ambient = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_diffuse = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_specular = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvLight(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvLight) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_pos);
  Py_CLEAR(p->_dir);
  Py_CLEAR(p->_attenuation);
  Py_CLEAR(p->_ambient);
  Py_CLEAR(p->_diffuse);
  Py_CLEAR(p->_specular);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvLight(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)o;
  if (p->_pos) {
    e = (*v)(((PyObject *)p->_pos), a); if (e) return e;
  }
  if (p->_dir) {
    e = (*v)(((PyObject *)p->_dir), a); if (e) return e;
  }
  if (p->_attenuation) {
    e = (*v)(((PyObject *)p->_attenuation), a); if (e) return e;
  }
  if (p->_ambient) {
    e = (*v)(((PyObject *)p->_ambient), a); if (e) return e;
  }
  if (p->_diffuse) {
    e = (*v)(((PyObject *)p->_diffuse), a); if (e) return e;
  }
  if (p->_specular) {
    e = (*v)(((PyObject *)p->_specular), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjvLight(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *)o;
  tmp = ((PyObject*)p->_pos);
  p->_pos = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_dir);
  p->_dir = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_attenuation);
  p->_attenuation = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_ambient);
  p->_ambient = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_diffuse);
  p->_diffuse = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_specular);
  p->_specular = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_cutoff(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_6cutoff_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjvLight_cutoff(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_6cutoff_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_exponent(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_8exponent_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjvLight_exponent(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_8exponent_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_headlight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_9headlight_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjvLight_headlight(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_9headlight_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_directional(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_11directional_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjvLight_directional(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_11directional_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_castshadow(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_10castshadow_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjvLight_castshadow(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_10castshadow_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_pos(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_3pos_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_dir(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_3dir_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_attenuation(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_11attenuation_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_ambient(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_7ambient_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_diffuse(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_7diffuse_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_specular(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvLight_8specular_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjvLight[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjvLight_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjvLight[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_uintptr, 0, (char *)0, 0},
  {(char *)"cutoff", __pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_cutoff, __pyx_setprop_9mujoco_py_4cymj_10PyMjvLight_cutoff, (char *)0, 0},
  {(char *)"exponent", __pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_exponent, __pyx_setprop_9mujoco_py_4cymj_10PyMjvLight_exponent, (char *)0, 0},
  {(char *)"headlight", __pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_headlight, __pyx_setprop_9mujoco_py_4cymj_10PyMjvLight_headlight, (char *)0, 0},
  {(char *)"directional", __pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_directional, __pyx_setprop_9mujoco_py_4cymj_10PyMjvLight_directional, (char *)0, 0},
  {(char *)"castshadow", __pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_castshadow, __pyx_setprop_9mujoco_py_4cymj_10PyMjvLight_castshadow, (char *)0, 0},
  {(char *)"pos", __pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_pos, 0, (char *)0, 0},
  {(char *)"dir", __pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_dir, 0, (char *)0, 0},
  {(char *)"attenuation", __pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_attenuation, 0, (char *)0, 0},
  {(char *)"ambient", __pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_ambient, 0, (char *)0, 0},
  {(char *)"diffuse", __pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_diffuse, 0, (char *)0, 0},
  {(char *)"specular", __pyx_getprop_9mujoco_py_4cymj_10PyMjvLight_specular, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjvLight_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvLight},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjvLight},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjvLight},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjvLight},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjvLight},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjvLight},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjvLight_spec = {
  "mujoco_py.cymj.PyMjvLight",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjvLight_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjvLight = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjvLight", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvLight, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvLight, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjvLight, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjvLight, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjvLight, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjvLight, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvOption __pyx_vtable_9mujoco_py_4cymj_PyMjvOption;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvOption(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjvOption;
  p->_geomgroup = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sitegroup = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_jointgroup = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_tendongroup = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_actuatorgroup = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_flags = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvOption(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvOption) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_geomgroup);
  Py_CLEAR(p->_sitegroup);
  Py_CLEAR(p->_jointgroup);
  Py_CLEAR(p->_tendongroup);
  Py_CLEAR(p->_actuatorgroup);
  Py_CLEAR(p->_flags);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvOption(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)o;
  if (p->_geomgroup) {
    e = (*v)(((PyObject *)p->_geomgroup), a); if (e) return e;
  }
  if (p->_sitegroup) {
    e = (*v)(((PyObject *)p->_sitegroup), a); if (e) return e;
  }
  if (p->_jointgroup) {
    e = (*v)(((PyObject *)p->_jointgroup), a); if (e) return e;
  }
  if (p->_tendongroup) {
    e = (*v)(((PyObject *)p->_tendongroup), a); if (e) return e;
  }
  if (p->_actuatorgroup) {
    e = (*v)(((PyObject *)p->_actuatorgroup), a); if (e) return e;
  }
  if (p->_flags) {
    e = (*v)(((PyObject *)p->_flags), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjvOption(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)o;
  tmp = ((PyObject*)p->_geomgroup);
  p->_geomgroup = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sitegroup);
  p->_sitegroup = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_jointgroup);
  p->_jointgroup = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_tendongroup);
  p->_tendongroup = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_actuatorgroup);
  p->_actuatorgroup = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_flags);
  p->_flags = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_label(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5label_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvOption_label(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5label_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_frame(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5frame_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvOption_frame(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5frame_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_geomgroup(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_9geomgroup_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_sitegroup(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_9sitegroup_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_jointgroup(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_10jointgroup_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_tendongroup(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_11tendongroup_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_actuatorgroup(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_13actuatorgroup_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5flags_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjvOption[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjvOption_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjvOption[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_uintptr, 0, (char *)0, 0},
  {(char *)"label", __pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_label, __pyx_setprop_9mujoco_py_4cymj_11PyMjvOption_label, (char *)0, 0},
  {(char *)"frame", __pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_frame, __pyx_setprop_9mujoco_py_4cymj_11PyMjvOption_frame, (char *)0, 0},
  {(char *)"geomgroup", __pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_geomgroup, 0, (char *)0, 0},
  {(char *)"sitegroup", __pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_sitegroup, 0, (char *)0, 0},
  {(char *)"jointgroup", __pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_jointgroup, 0, (char *)0, 0},
  {(char *)"tendongroup", __pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_tendongroup, 0, (char *)0, 0},
  {(char *)"actuatorgroup", __pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_actuatorgroup, 0, (char *)0, 0},
  {(char *)"flags", __pyx_getprop_9mujoco_py_4cymj_11PyMjvOption_flags, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjvOption_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvOption},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjvOption},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjvOption},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjvOption},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjvOption},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjvOption},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjvOption_spec = {
  "mujoco_py.cymj.PyMjvOption",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjvOption_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjvOption = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjvOption", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvOption, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvOption, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjvOption, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjvOption, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjvOption, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjvOption, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvScene __pyx_vtable_9mujoco_py_4cymj_PyMjvScene;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvScene(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjvScene;
  p->_lights = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_camera = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_translate = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_rotate = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_flags = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_framergb = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvScene(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvScene) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_lights);
  Py_CLEAR(p->_camera);
  Py_CLEAR(p->_translate);
  Py_CLEAR(p->_rotate);
  Py_CLEAR(p->_flags);
  Py_CLEAR(p->_framergb);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvScene(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)o;
  if (p->_lights) {
    e = (*v)(p->_lights, a); if (e) return e;
  }
  if (p->_camera) {
    e = (*v)(p->_camera, a); if (e) return e;
  }
  if (p->_translate) {
    e = (*v)(((PyObject *)p->_translate), a); if (e) return e;
  }
  if (p->_rotate) {
    e = (*v)(((PyObject *)p->_rotate), a); if (e) return e;
  }
  if (p->_flags) {
    e = (*v)(((PyObject *)p->_flags), a); if (e) return e;
  }
  if (p->_framergb) {
    e = (*v)(((PyObject *)p->_framergb), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjvScene(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)o;
  tmp = ((PyObject*)p->_lights);
  p->_lights = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_camera);
  p->_camera = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_translate);
  p->_translate = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_rotate);
  p->_rotate = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_flags);
  p->_flags = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_framergb);
  p->_framergb = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_maxgeom(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_7maxgeom_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_maxgeom(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_7maxgeom_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_ngeom(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5ngeom_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_ngeom(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5ngeom_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_nskin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5nskin_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_nskin(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5nskin_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_nlight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6nlight_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_nlight(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6nlight_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_enabletransform(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_15enabletransform_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_enabletransform(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_15enabletransform_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_scale(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5scale_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_scale(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5scale_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_stereo(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6stereo_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_stereo(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6stereo_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_framewidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_10framewidth_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_framewidth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_10framewidth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_lights(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6lights_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_camera(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6camera_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_translate(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_9translate_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_rotate(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_6rotate_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5flags_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_framergb(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjvScene_8framergb_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjvScene[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjvScene_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjvScene[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_uintptr, 0, (char *)0, 0},
  {(char *)"maxgeom", __pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_maxgeom, __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_maxgeom, (char *)0, 0},
  {(char *)"ngeom", __pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_ngeom, __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_ngeom, (char *)0, 0},
  {(char *)"nskin", __pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_nskin, __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_nskin, (char *)0, 0},
  {(char *)"nlight", __pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_nlight, __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_nlight, (char *)0, 0},
  {(char *)"enabletransform", __pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_enabletransform, __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_enabletransform, (char *)0, 0},
  {(char *)"scale", __pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_scale, __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_scale, (char *)0, 0},
  {(char *)"stereo", __pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_stereo, __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_stereo, (char *)0, 0},
  {(char *)"framewidth", __pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_framewidth, __pyx_setprop_9mujoco_py_4cymj_10PyMjvScene_framewidth, (char *)0, 0},
  {(char *)"lights", __pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_lights, 0, (char *)0, 0},
  {(char *)"camera", __pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_camera, 0, (char *)0, 0},
  {(char *)"translate", __pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_translate, 0, (char *)0, 0},
  {(char *)"rotate", __pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_rotate, 0, (char *)0, 0},
  {(char *)"flags", __pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_flags, 0, (char *)0, 0},
  {(char *)"framergb", __pyx_getprop_9mujoco_py_4cymj_10PyMjvScene_framergb, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjvScene_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvScene},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjvScene},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjvScene},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjvScene},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjvScene},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjvScene},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjvScene_spec = {
  "mujoco_py.cymj.PyMjvScene",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjvScene_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjvScene = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjvScene", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvScene, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvScene, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjvScene, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjvScene, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjvScene, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjvScene, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjvFigure __pyx_vtable_9mujoco_py_4cymj_PyMjvFigure;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjvFigure(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjvFigure;
  p->_flg_ticklabel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_gridsize = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_gridrgb = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_figurergba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_panergba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_legendrgba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_textrgb = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_xformat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_yformat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_minwidth = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_title = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_xlabel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_highlight = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_linepnt = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_xaxispixel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_yaxispixel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_xaxisdata = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_yaxisdata = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_linergb = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_range = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_linename = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_linedata = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvFigure(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvFigure) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_flg_ticklabel);
  Py_CLEAR(p->_gridsize);
  Py_CLEAR(p->_gridrgb);
  Py_CLEAR(p->_figurergba);
  Py_CLEAR(p->_panergba);
  Py_CLEAR(p->_legendrgba);
  Py_CLEAR(p->_textrgb);
  Py_CLEAR(p->_xformat);
  Py_CLEAR(p->_yformat);
  Py_CLEAR(p->_minwidth);
  Py_CLEAR(p->_title);
  Py_CLEAR(p->_xlabel);
  Py_CLEAR(p->_highlight);
  Py_CLEAR(p->_linepnt);
  Py_CLEAR(p->_xaxispixel);
  Py_CLEAR(p->_yaxispixel);
  Py_CLEAR(p->_xaxisdata);
  Py_CLEAR(p->_yaxisdata);
  Py_CLEAR(p->_linergb);
  Py_CLEAR(p->_range);
  Py_CLEAR(p->_linename);
  Py_CLEAR(p->_linedata);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvFigure(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)o;
  if (p->_flg_ticklabel) {
    e = (*v)(((PyObject *)p->_flg_ticklabel), a); if (e) return e;
  }
  if (p->_gridsize) {
    e = (*v)(((PyObject *)p->_gridsize), a); if (e) return e;
  }
  if (p->_gridrgb) {
    e = (*v)(((PyObject *)p->_gridrgb), a); if (e) return e;
  }
  if (p->_figurergba) {
    e = (*v)(((PyObject *)p->_figurergba), a); if (e) return e;
  }
  if (p->_panergba) {
    e = (*v)(((PyObject *)p->_panergba), a); if (e) return e;
  }
  if (p->_legendrgba) {
    e = (*v)(((PyObject *)p->_legendrgba), a); if (e) return e;
  }
  if (p->_textrgb) {
    e = (*v)(((PyObject *)p->_textrgb), a); if (e) return e;
  }
  if (p->_xformat) {
    e = (*v)(((PyObject *)p->_xformat), a); if (e) return e;
  }
  if (p->_yformat) {
    e = (*v)(((PyObject *)p->_yformat), a); if (e) return e;
  }
  if (p->_minwidth) {
    e = (*v)(((PyObject *)p->_minwidth), a); if (e) return e;
  }
  if (p->_title) {
    e = (*v)(((PyObject *)p->_title), a); if (e) return e;
  }
  if (p->_xlabel) {
    e = (*v)(((PyObject *)p->_xlabel), a); if (e) return e;
  }
  if (p->_highlight) {
    e = (*v)(((PyObject *)p->_highlight), a); if (e) return e;
  }
  if (p->_linepnt) {
    e = (*v)(((PyObject *)p->_linepnt), a); if (e) return e;
  }
  if (p->_xaxispixel) {
    e = (*v)(((PyObject *)p->_xaxispixel), a); if (e) return e;
  }
  if (p->_yaxispixel) {
    e = (*v)(((PyObject *)p->_yaxispixel), a); if (e) return e;
  }
  if (p->_xaxisdata) {
    e = (*v)(((PyObject *)p->_xaxisdata), a); if (e) return e;
  }
  if (p->_yaxisdata) {
    e = (*v)(((PyObject *)p->_yaxisdata), a); if (e) return e;
  }
  if (p->_linergb) {
    e = (*v)(((PyObject *)p->_linergb), a); if (e) return e;
  }
  if (p->_range) {
    e = (*v)(((PyObject *)p->_range), a); if (e) return e;
  }
  if (p->_linename) {
    e = (*v)(((PyObject *)p->_linename), a); if (e) return e;
  }
  if (p->_linedata) {
    e = (*v)(((PyObject *)p->_linedata), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjvFigure(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *)o;
  tmp = ((PyObject*)p->_flg_ticklabel);
  p->_flg_ticklabel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_gridsize);
  p->_gridsize = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_gridrgb);
  p->_gridrgb = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_figurergba);
  p->_figurergba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_panergba);
  p->_panergba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_legendrgba);
  p->_legendrgba = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_textrgb);
  p->_textrgb = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_xformat);
  p->_xformat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_yformat);
  p->_yformat = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_minwidth);
  p->_minwidth = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_title);
  p->_title = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_xlabel);
  p->_xlabel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_highlight);
  p->_highlight = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_linepnt);
  p->_linepnt = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_xaxispixel);
  p->_xaxispixel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_yaxispixel);
  p->_yaxispixel = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_xaxisdata);
  p->_xaxisdata = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_yaxisdata);
  p->_yaxisdata = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_linergb);
  p->_linergb = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_range);
  p->_range = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_linename);
  p->_linename = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_linedata);
  p->_linedata = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_flg_legend(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10flg_legend_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_flg_legend(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10flg_legend_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_flg_extend(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10flg_extend_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_flg_extend(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10flg_extend_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_flg_barplot(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_11flg_barplot_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_flg_barplot(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_11flg_barplot_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_flg_selection(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_13flg_selection_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_flg_selection(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_13flg_selection_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_flg_symmetric(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_13flg_symmetric_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_flg_symmetric(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_13flg_symmetric_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_linewidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9linewidth_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_linewidth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9linewidth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_gridwidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9gridwidth_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_gridwidth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9gridwidth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_legendoffset(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_12legendoffset_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_legendoffset(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_12legendoffset_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_subplot(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7subplot_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_subplot(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7subplot_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_highlightid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_11highlightid_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_highlightid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_11highlightid_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_selection(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9selection_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_selection(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9selection_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_flg_ticklabel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_13flg_ticklabel_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_gridsize(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_8gridsize_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_gridrgb(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7gridrgb_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_figurergba(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10figurergba_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_panergba(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_8panergba_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_legendrgba(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10legendrgba_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_textrgb(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7textrgb_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_xformat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7xformat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_yformat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7yformat_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_minwidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_8minwidth_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_title(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_5title_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_xlabel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_6xlabel_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_highlight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9highlight_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_linepnt(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7linepnt_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_xaxispixel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10xaxispixel_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_yaxispixel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_10yaxispixel_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_xaxisdata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9xaxisdata_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_yaxisdata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_9yaxisdata_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_linergb(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_7linergb_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_range(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_5range_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_linename(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_8linename_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_linedata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_8linedata_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjvFigure[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjvFigure_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjvFigure[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_uintptr, 0, (char *)0, 0},
  {(char *)"flg_legend", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_flg_legend, __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_flg_legend, (char *)0, 0},
  {(char *)"flg_extend", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_flg_extend, __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_flg_extend, (char *)0, 0},
  {(char *)"flg_barplot", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_flg_barplot, __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_flg_barplot, (char *)0, 0},
  {(char *)"flg_selection", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_flg_selection, __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_flg_selection, (char *)0, 0},
  {(char *)"flg_symmetric", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_flg_symmetric, __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_flg_symmetric, (char *)0, 0},
  {(char *)"linewidth", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_linewidth, __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_linewidth, (char *)0, 0},
  {(char *)"gridwidth", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_gridwidth, __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_gridwidth, (char *)0, 0},
  {(char *)"legendoffset", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_legendoffset, __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_legendoffset, (char *)0, 0},
  {(char *)"subplot", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_subplot, __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_subplot, (char *)0, 0},
  {(char *)"highlightid", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_highlightid, __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_highlightid, (char *)0, 0},
  {(char *)"selection", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_selection, __pyx_setprop_9mujoco_py_4cymj_11PyMjvFigure_selection, (char *)0, 0},
  {(char *)"flg_ticklabel", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_flg_ticklabel, 0, (char *)0, 0},
  {(char *)"gridsize", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_gridsize, 0, (char *)0, 0},
  {(char *)"gridrgb", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_gridrgb, 0, (char *)0, 0},
  {(char *)"figurergba", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_figurergba, 0, (char *)0, 0},
  {(char *)"panergba", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_panergba, 0, (char *)0, 0},
  {(char *)"legendrgba", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_legendrgba, 0, (char *)0, 0},
  {(char *)"textrgb", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_textrgb, 0, (char *)0, 0},
  {(char *)"xformat", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_xformat, 0, (char *)0, 0},
  {(char *)"yformat", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_yformat, 0, (char *)0, 0},
  {(char *)"minwidth", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_minwidth, 0, (char *)0, 0},
  {(char *)"title", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_title, 0, (char *)0, 0},
  {(char *)"xlabel", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_xlabel, 0, (char *)0, 0},
  {(char *)"highlight", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_highlight, 0, (char *)0, 0},
  {(char *)"linepnt", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_linepnt, 0, (char *)0, 0},
  {(char *)"xaxispixel", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_xaxispixel, 0, (char *)0, 0},
  {(char *)"yaxispixel", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_yaxispixel, 0, (char *)0, 0},
  {(char *)"xaxisdata", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_xaxisdata, 0, (char *)0, 0},
  {(char *)"yaxisdata", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_yaxisdata, 0, (char *)0, 0},
  {(char *)"linergb", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_linergb, 0, (char *)0, 0},
  {(char *)"range", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_range, 0, (char *)0, 0},
  {(char *)"linename", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_linename, 0, (char *)0, 0},
  {(char *)"linedata", __pyx_getprop_9mujoco_py_4cymj_11PyMjvFigure_linedata, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjvFigure_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvFigure},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjvFigure},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjvFigure},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjvFigure},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjvFigure},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjvFigure},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjvFigure_spec = {
  "mujoco_py.cymj.PyMjvFigure",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjvFigure_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjvFigure = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjvFigure", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjvFigure, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjvFigure, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjvFigure, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjvFigure, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjvFigure, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjvFigure, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjrRect __pyx_vtable_9mujoco_py_4cymj_PyMjrRect;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjrRect(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjrRect;
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjrRect(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjrRect) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjrRect_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjrRect_left(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_4left_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjrRect_left(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_4left_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjrRect_bottom(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_6bottom_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjrRect_bottom(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_6bottom_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjrRect_width(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_5width_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjrRect_width(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_5width_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjrRect_height(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_6height_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjrRect_height(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjrRect_6height_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjrRect[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjrRect_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjrRect[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_9PyMjrRect_uintptr, 0, (char *)0, 0},
  {(char *)"left", __pyx_getprop_9mujoco_py_4cymj_9PyMjrRect_left, __pyx_setprop_9mujoco_py_4cymj_9PyMjrRect_left, (char *)0, 0},
  {(char *)"bottom", __pyx_getprop_9mujoco_py_4cymj_9PyMjrRect_bottom, __pyx_setprop_9mujoco_py_4cymj_9PyMjrRect_bottom, (char *)0, 0},
  {(char *)"width", __pyx_getprop_9mujoco_py_4cymj_9PyMjrRect_width, __pyx_setprop_9mujoco_py_4cymj_9PyMjrRect_width, (char *)0, 0},
  {(char *)"height", __pyx_getprop_9mujoco_py_4cymj_9PyMjrRect_height, __pyx_setprop_9mujoco_py_4cymj_9PyMjrRect_height, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjrRect_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjrRect},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjrRect},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjrRect},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjrRect},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjrRect_spec = {
  "mujoco_py.cymj.PyMjrRect",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_9mujoco_py_4cymj_PyMjrRect_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjrRect = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjrRect", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjrRect, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjrRect, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjrRect, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjrRect, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjrContext __pyx_vtable_9mujoco_py_4cymj_PyMjrContext;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjrContext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjrContext;
  p->_fogRGBA = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_auxWidth = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_auxHeight = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_auxSamples = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_auxFBO = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_auxFBO_r = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_auxColor = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_auxColor_r = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_textureType = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_texture = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_charWidth = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_charWidthBig = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjrContext(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjrContext) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_fogRGBA);
  Py_CLEAR(p->_auxWidth);
  Py_CLEAR(p->_auxHeight);
  Py_CLEAR(p->_auxSamples);
  Py_CLEAR(p->_auxFBO);
  Py_CLEAR(p->_auxFBO_r);
  Py_CLEAR(p->_auxColor);
  Py_CLEAR(p->_auxColor_r);
  Py_CLEAR(p->_textureType);
  Py_CLEAR(p->_texture);
  Py_CLEAR(p->_charWidth);
  Py_CLEAR(p->_charWidthBig);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjrContext(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)o;
  if (p->_fogRGBA) {
    e = (*v)(((PyObject *)p->_fogRGBA), a); if (e) return e;
  }
  if (p->_auxWidth) {
    e = (*v)(((PyObject *)p->_auxWidth), a); if (e) return e;
  }
  if (p->_auxHeight) {
    e = (*v)(((PyObject *)p->_auxHeight), a); if (e) return e;
  }
  if (p->_auxSamples) {
    e = (*v)(((PyObject *)p->_auxSamples), a); if (e) return e;
  }
  if (p->_auxFBO) {
    e = (*v)(((PyObject *)p->_auxFBO), a); if (e) return e;
  }
  if (p->_auxFBO_r) {
    e = (*v)(((PyObject *)p->_auxFBO_r), a); if (e) return e;
  }
  if (p->_auxColor) {
    e = (*v)(((PyObject *)p->_auxColor), a); if (e) return e;
  }
  if (p->_auxColor_r) {
    e = (*v)(((PyObject *)p->_auxColor_r), a); if (e) return e;
  }
  if (p->_textureType) {
    e = (*v)(((PyObject *)p->_textureType), a); if (e) return e;
  }
  if (p->_texture) {
    e = (*v)(((PyObject *)p->_texture), a); if (e) return e;
  }
  if (p->_charWidth) {
    e = (*v)(((PyObject *)p->_charWidth), a); if (e) return e;
  }
  if (p->_charWidthBig) {
    e = (*v)(((PyObject *)p->_charWidthBig), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjrContext(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)o;
  tmp = ((PyObject*)p->_fogRGBA);
  p->_fogRGBA = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_auxWidth);
  p->_auxWidth = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_auxHeight);
  p->_auxHeight = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_auxSamples);
  p->_auxSamples = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_auxFBO);
  p->_auxFBO = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_auxFBO_r);
  p->_auxFBO_r = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_auxColor);
  p->_auxColor = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_auxColor_r);
  p->_auxColor_r = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_textureType);
  p->_textureType = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_texture);
  p->_texture = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_charWidth);
  p->_charWidth = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_charWidthBig);
  p->_charWidthBig = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_lineWidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9lineWidth_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_lineWidth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9lineWidth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_shadowClip(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10shadowClip_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_shadowClip(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10shadowClip_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_shadowScale(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11shadowScale_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_shadowScale(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11shadowScale_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_fogStart(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8fogStart_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_fogStart(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8fogStart_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_fogEnd(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_6fogEnd_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_fogEnd(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_6fogEnd_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_shadowSize(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10shadowSize_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_shadowSize(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10shadowSize_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offWidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offWidth_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offWidth(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offWidth_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offHeight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9offHeight_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offHeight(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9offHeight_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offSamples(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10offSamples_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offSamples(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10offSamples_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_fontScale(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9fontScale_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_fontScale(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9fontScale_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offFBO(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_6offFBO_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offFBO(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_6offFBO_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offFBO_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offFBO_r_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offFBO_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offFBO_r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offColor(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offColor_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offColor(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8offColor_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offColor_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10offColor_r_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offColor_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10offColor_r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offDepthStencil(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15offDepthStencil_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offDepthStencil(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15offDepthStencil_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offDepthStencil_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_17offDepthStencil_r_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offDepthStencil_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_17offDepthStencil_r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_shadowFBO(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9shadowFBO_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_shadowFBO(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9shadowFBO_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_shadowTex(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9shadowTex_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_shadowTex(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9shadowTex_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_ntexture(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8ntexture_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_ntexture(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8ntexture_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_basePlane(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9basePlane_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_basePlane(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9basePlane_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_baseMesh(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8baseMesh_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_baseMesh(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8baseMesh_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_baseHField(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10baseHField_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_baseHField(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10baseHField_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_baseBuiltin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11baseBuiltin_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_baseBuiltin(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11baseBuiltin_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_baseFontNormal(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_14baseFontNormal_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_baseFontNormal(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_14baseFontNormal_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_baseFontShadow(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_14baseFontShadow_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_baseFontShadow(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_14baseFontShadow_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_baseFontBig(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11baseFontBig_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_baseFontBig(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11baseFontBig_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_rangePlane(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10rangePlane_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_rangePlane(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10rangePlane_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_rangeMesh(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9rangeMesh_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_rangeMesh(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9rangeMesh_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_rangeHField(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11rangeHField_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_rangeHField(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11rangeHField_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_rangeBuiltin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_12rangeBuiltin_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_rangeBuiltin(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_12rangeBuiltin_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_rangeFont(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9rangeFont_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_rangeFont(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9rangeFont_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_nskin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_5nskin_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_nskin(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_5nskin_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_charHeight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10charHeight_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_charHeight(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10charHeight_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_charHeightBig(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13charHeightBig_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_charHeightBig(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13charHeightBig_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_glewInitialized(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15glewInitialized_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_glewInitialized(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15glewInitialized_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_windowAvailable(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15windowAvailable_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_windowAvailable(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_15windowAvailable_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_windowSamples(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13windowSamples_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_windowSamples(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13windowSamples_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_windowStereo(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_12windowStereo_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_windowStereo(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_12windowStereo_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_windowDoublebuffer(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_18windowDoublebuffer_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_windowDoublebuffer(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_18windowDoublebuffer_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_currentBuffer(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13currentBuffer_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_currentBuffer(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_13currentBuffer_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_fogRGBA(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_7fogRGBA_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_auxWidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8auxWidth_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_auxHeight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9auxHeight_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_auxSamples(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10auxSamples_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_auxFBO(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_6auxFBO_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_auxFBO_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8auxFBO_r_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_auxColor(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_8auxColor_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_auxColor_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_10auxColor_r_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_textureType(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_11textureType_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_texture(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_7texture_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_charWidth(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_9charWidth_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_charWidthBig(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_12PyMjrContext_12charWidthBig_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjrContext[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_12PyMjrContext_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjrContext[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_uintptr, 0, (char *)0, 0},
  {(char *)"lineWidth", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_lineWidth, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_lineWidth, (char *)0, 0},
  {(char *)"shadowClip", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_shadowClip, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_shadowClip, (char *)0, 0},
  {(char *)"shadowScale", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_shadowScale, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_shadowScale, (char *)0, 0},
  {(char *)"fogStart", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_fogStart, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_fogStart, (char *)0, 0},
  {(char *)"fogEnd", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_fogEnd, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_fogEnd, (char *)0, 0},
  {(char *)"shadowSize", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_shadowSize, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_shadowSize, (char *)0, 0},
  {(char *)"offWidth", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offWidth, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offWidth, (char *)0, 0},
  {(char *)"offHeight", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offHeight, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offHeight, (char *)0, 0},
  {(char *)"offSamples", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offSamples, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offSamples, (char *)0, 0},
  {(char *)"fontScale", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_fontScale, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_fontScale, (char *)0, 0},
  {(char *)"offFBO", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offFBO, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offFBO, (char *)0, 0},
  {(char *)"offFBO_r", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offFBO_r, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offFBO_r, (char *)0, 0},
  {(char *)"offColor", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offColor, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offColor, (char *)0, 0},
  {(char *)"offColor_r", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offColor_r, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offColor_r, (char *)0, 0},
  {(char *)"offDepthStencil", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offDepthStencil, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offDepthStencil, (char *)0, 0},
  {(char *)"offDepthStencil_r", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_offDepthStencil_r, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_offDepthStencil_r, (char *)0, 0},
  {(char *)"shadowFBO", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_shadowFBO, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_shadowFBO, (char *)0, 0},
  {(char *)"shadowTex", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_shadowTex, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_shadowTex, (char *)0, 0},
  {(char *)"ntexture", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_ntexture, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_ntexture, (char *)0, 0},
  {(char *)"basePlane", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_basePlane, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_basePlane, (char *)0, 0},
  {(char *)"baseMesh", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_baseMesh, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_baseMesh, (char *)0, 0},
  {(char *)"baseHField", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_baseHField, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_baseHField, (char *)0, 0},
  {(char *)"baseBuiltin", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_baseBuiltin, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_baseBuiltin, (char *)0, 0},
  {(char *)"baseFontNormal", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_baseFontNormal, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_baseFontNormal, (char *)0, 0},
  {(char *)"baseFontShadow", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_baseFontShadow, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_baseFontShadow, (char *)0, 0},
  {(char *)"baseFontBig", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_baseFontBig, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_baseFontBig, (char *)0, 0},
  {(char *)"rangePlane", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_rangePlane, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_rangePlane, (char *)0, 0},
  {(char *)"rangeMesh", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_rangeMesh, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_rangeMesh, (char *)0, 0},
  {(char *)"rangeHField", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_rangeHField, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_rangeHField, (char *)0, 0},
  {(char *)"rangeBuiltin", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_rangeBuiltin, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_rangeBuiltin, (char *)0, 0},
  {(char *)"rangeFont", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_rangeFont, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_rangeFont, (char *)0, 0},
  {(char *)"nskin", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_nskin, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_nskin, (char *)0, 0},
  {(char *)"charHeight", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_charHeight, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_charHeight, (char *)0, 0},
  {(char *)"charHeightBig", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_charHeightBig, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_charHeightBig, (char *)0, 0},
  {(char *)"glewInitialized", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_glewInitialized, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_glewInitialized, (char *)0, 0},
  {(char *)"windowAvailable", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_windowAvailable, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_windowAvailable, (char *)0, 0},
  {(char *)"windowSamples", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_windowSamples, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_windowSamples, (char *)0, 0},
  {(char *)"windowStereo", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_windowStereo, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_windowStereo, (char *)0, 0},
  {(char *)"windowDoublebuffer", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_windowDoublebuffer, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_windowDoublebuffer, (char *)0, 0},
  {(char *)"currentBuffer", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_currentBuffer, __pyx_setprop_9mujoco_py_4cymj_12PyMjrContext_currentBuffer, (char *)0, 0},
  {(char *)"fogRGBA", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_fogRGBA, 0, (char *)0, 0},
  {(char *)"auxWidth", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_auxWidth, 0, (char *)0, 0},
  {(char *)"auxHeight", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_auxHeight, 0, (char *)0, 0},
  {(char *)"auxSamples", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_auxSamples, 0, (char *)0, 0},
  {(char *)"auxFBO", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_auxFBO, 0, (char *)0, 0},
  {(char *)"auxFBO_r", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_auxFBO_r, 0, (char *)0, 0},
  {(char *)"auxColor", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_auxColor, 0, (char *)0, 0},
  {(char *)"auxColor_r", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_auxColor_r, 0, (char *)0, 0},
  {(char *)"textureType", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_textureType, 0, (char *)0, 0},
  {(char *)"texture", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_texture, 0, (char *)0, 0},
  {(char *)"charWidth", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_charWidth, 0, (char *)0, 0},
  {(char *)"charWidthBig", __pyx_getprop_9mujoco_py_4cymj_12PyMjrContext_charWidthBig, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjrContext_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjrContext},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjrContext},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjrContext},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjrContext},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjrContext},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjrContext},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjrContext_spec = {
  "mujoco_py.cymj.PyMjrContext",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjrContext_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjrContext = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjrContext", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjrContext, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjrContext, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjrContext, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjrContext, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjrContext, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjrContext, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiState __pyx_vtable_9mujoco_py_4cymj_PyMjuiState;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjuiState(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiState;
  p->_rect = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiState(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiState) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_rect);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjuiState(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)o;
  if (p->_rect) {
    e = (*v)(p->_rect, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjuiState(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *)o;
  tmp = ((PyObject*)p->_rect);
  p->_rect = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_nrect(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5nrect_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_nrect(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5nrect_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_4type_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_4type_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_left(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_4left_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_left(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_4left_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_right(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5right_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_right(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5right_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_middle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_6middle_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_middle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_6middle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_doubleclick(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_11doubleclick_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_doubleclick(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_11doubleclick_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_button(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_6button_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_button(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_6button_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_control(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_7control_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_control(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_7control_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_shift(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5shift_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_shift(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5shift_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_alt(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3alt_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_alt(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3alt_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_key(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3key_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_key(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3key_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_mouserect(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_9mouserect_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_mouserect(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_9mouserect_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_dragrect(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_8dragrect_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_dragrect(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_8dragrect_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_dragbutton(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_10dragbutton_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_dragbutton(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_10dragbutton_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_rect(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_11PyMjuiState_4rect_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjuiState[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_11PyMjuiState_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjuiState[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_uintptr, 0, (char *)0, 0},
  {(char *)"nrect", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_nrect, __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_nrect, (char *)0, 0},
  {(char *)"type", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_type, __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_type, (char *)0, 0},
  {(char *)"left", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_left, __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_left, (char *)0, 0},
  {(char *)"right", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_right, __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_right, (char *)0, 0},
  {(char *)"middle", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_middle, __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_middle, (char *)0, 0},
  {(char *)"doubleclick", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_doubleclick, __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_doubleclick, (char *)0, 0},
  {(char *)"button", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_button, __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_button, (char *)0, 0},
  {(char *)"control", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_control, __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_control, (char *)0, 0},
  {(char *)"shift", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_shift, __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_shift, (char *)0, 0},
  {(char *)"alt", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_alt, __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_alt, (char *)0, 0},
  {(char *)"key", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_key, __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_key, (char *)0, 0},
  {(char *)"mouserect", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_mouserect, __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_mouserect, (char *)0, 0},
  {(char *)"dragrect", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_dragrect, __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_dragrect, (char *)0, 0},
  {(char *)"dragbutton", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_dragbutton, __pyx_setprop_9mujoco_py_4cymj_11PyMjuiState_dragbutton, (char *)0, 0},
  {(char *)"rect", __pyx_getprop_9mujoco_py_4cymj_11PyMjuiState_rect, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjuiState_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiState},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjuiState},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjuiState},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjuiState},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjuiState},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjuiState},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjuiState_spec = {
  "mujoco_py.cymj.PyMjuiState",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjuiState_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjuiState = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjuiState", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiState, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjuiState, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjuiState, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjuiState, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjuiState, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjuiState, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiThemeSpacing __pyx_vtable_9mujoco_py_4cymj_PyMjuiThemeSpacing;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjuiThemeSpacing(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiThemeSpacing;
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiThemeSpacing(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiThemeSpacing) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_total(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5total_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_total(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5total_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_scroll(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_6scroll_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_scroll(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_6scroll_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_label(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5label_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_label(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5label_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_section(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7section_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_section(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7section_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_itemside(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_8itemside_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_itemside(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_8itemside_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_itemmid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemmid_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_itemmid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemmid_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_itemver(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemver_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_itemver(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7itemver_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_texthor(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7texthor_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_texthor(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7texthor_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_textver(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7textver_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_textver(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7textver_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_linescroll(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_10linescroll_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_linescroll(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_10linescroll_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_samples(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7samples_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_samples(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_7samples_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjuiThemeSpacing[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjuiThemeSpacing[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_uintptr, 0, (char *)0, 0},
  {(char *)"total", __pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_total, __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_total, (char *)0, 0},
  {(char *)"scroll", __pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_scroll, __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_scroll, (char *)0, 0},
  {(char *)"label", __pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_label, __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_label, (char *)0, 0},
  {(char *)"section", __pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_section, __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_section, (char *)0, 0},
  {(char *)"itemside", __pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_itemside, __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_itemside, (char *)0, 0},
  {(char *)"itemmid", __pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_itemmid, __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_itemmid, (char *)0, 0},
  {(char *)"itemver", __pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_itemver, __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_itemver, (char *)0, 0},
  {(char *)"texthor", __pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_texthor, __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_texthor, (char *)0, 0},
  {(char *)"textver", __pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_textver, __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_textver, (char *)0, 0},
  {(char *)"linescroll", __pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_linescroll, __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_linescroll, (char *)0, 0},
  {(char *)"samples", __pyx_getprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_samples, __pyx_setprop_9mujoco_py_4cymj_18PyMjuiThemeSpacing_samples, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjuiThemeSpacing_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiThemeSpacing},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjuiThemeSpacing},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjuiThemeSpacing},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjuiThemeSpacing},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjuiThemeSpacing_spec = {
  "mujoco_py.cymj.PyMjuiThemeSpacing",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_9mujoco_py_4cymj_PyMjuiThemeSpacing_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjuiThemeSpacing = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjuiThemeSpacing", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiThemeSpacing, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjuiThemeSpacing, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjuiThemeSpacing, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjuiThemeSpacing, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiThemeColor __pyx_vtable_9mujoco_py_4cymj_PyMjuiThemeColor;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjuiThemeColor(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiThemeColor;
  p->_master = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_thumb = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_secttitle = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sectfont = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sectsymbol = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sectpane = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_shortcut = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_fontactive = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_fontinactive = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_decorinactive = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_decorinactive2 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_button = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_check = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_radio = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_select = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_select2 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_slider = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_slider2 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_edit = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_edit2 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_cursor = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiThemeColor(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiThemeColor) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_master);
  Py_CLEAR(p->_thumb);
  Py_CLEAR(p->_secttitle);
  Py_CLEAR(p->_sectfont);
  Py_CLEAR(p->_sectsymbol);
  Py_CLEAR(p->_sectpane);
  Py_CLEAR(p->_shortcut);
  Py_CLEAR(p->_fontactive);
  Py_CLEAR(p->_fontinactive);
  Py_CLEAR(p->_decorinactive);
  Py_CLEAR(p->_decorinactive2);
  Py_CLEAR(p->_button);
  Py_CLEAR(p->_check);
  Py_CLEAR(p->_radio);
  Py_CLEAR(p->_select);
  Py_CLEAR(p->_select2);
  Py_CLEAR(p->_slider);
  Py_CLEAR(p->_slider2);
  Py_CLEAR(p->_edit);
  Py_CLEAR(p->_edit2);
  Py_CLEAR(p->_cursor);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjuiThemeColor(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)o;
  if (p->_master) {
    e = (*v)(((PyObject *)p->_master), a); if (e) return e;
  }
  if (p->_thumb) {
    e = (*v)(((PyObject *)p->_thumb), a); if (e) return e;
  }
  if (p->_secttitle) {
    e = (*v)(((PyObject *)p->_secttitle), a); if (e) return e;
  }
  if (p->_sectfont) {
    e = (*v)(((PyObject *)p->_sectfont), a); if (e) return e;
  }
  if (p->_sectsymbol) {
    e = (*v)(((PyObject *)p->_sectsymbol), a); if (e) return e;
  }
  if (p->_sectpane) {
    e = (*v)(((PyObject *)p->_sectpane), a); if (e) return e;
  }
  if (p->_shortcut) {
    e = (*v)(((PyObject *)p->_shortcut), a); if (e) return e;
  }
  if (p->_fontactive) {
    e = (*v)(((PyObject *)p->_fontactive), a); if (e) return e;
  }
  if (p->_fontinactive) {
    e = (*v)(((PyObject *)p->_fontinactive), a); if (e) return e;
  }
  if (p->_decorinactive) {
    e = (*v)(((PyObject *)p->_decorinactive), a); if (e) return e;
  }
  if (p->_decorinactive2) {
    e = (*v)(((PyObject *)p->_decorinactive2), a); if (e) return e;
  }
  if (p->_button) {
    e = (*v)(((PyObject *)p->_button), a); if (e) return e;
  }
  if (p->_check) {
    e = (*v)(((PyObject *)p->_check), a); if (e) return e;
  }
  if (p->_radio) {
    e = (*v)(((PyObject *)p->_radio), a); if (e) return e;
  }
  if (p->_select) {
    e = (*v)(((PyObject *)p->_select), a); if (e) return e;
  }
  if (p->_select2) {
    e = (*v)(((PyObject *)p->_select2), a); if (e) return e;
  }
  if (p->_slider) {
    e = (*v)(((PyObject *)p->_slider), a); if (e) return e;
  }
  if (p->_slider2) {
    e = (*v)(((PyObject *)p->_slider2), a); if (e) return e;
  }
  if (p->_edit) {
    e = (*v)(((PyObject *)p->_edit), a); if (e) return e;
  }
  if (p->_edit2) {
    e = (*v)(((PyObject *)p->_edit2), a); if (e) return e;
  }
  if (p->_cursor) {
    e = (*v)(((PyObject *)p->_cursor), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjuiThemeColor(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)o;
  tmp = ((PyObject*)p->_master);
  p->_master = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_thumb);
  p->_thumb = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_secttitle);
  p->_secttitle = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sectfont);
  p->_sectfont = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sectsymbol);
  p->_sectsymbol = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sectpane);
  p->_sectpane = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_shortcut);
  p->_shortcut = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_fontactive);
  p->_fontactive = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_fontinactive);
  p->_fontinactive = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_decorinactive);
  p->_decorinactive = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_decorinactive2);
  p->_decorinactive2 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_button);
  p->_button = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_check);
  p->_check = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_radio);
  p->_radio = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_select);
  p->_select = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_select2);
  p->_select2 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_slider);
  p->_slider = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_slider2);
  p->_slider2 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_edit);
  p->_edit = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_edit2);
  p->_edit2 = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_cursor);
  p->_cursor = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_master(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_6master_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_thumb(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5thumb_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_secttitle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_9secttitle_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_sectfont(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_8sectfont_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_sectsymbol(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_10sectsymbol_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_sectpane(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_8sectpane_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_shortcut(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_8shortcut_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_fontactive(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_10fontactive_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_fontinactive(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_12fontinactive_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_decorinactive(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_13decorinactive_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_decorinactive2(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_14decorinactive2_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_button(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_6button_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_check(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5check_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_radio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5radio_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_select(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_6select_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_select2(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_7select2_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_slider(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_6slider_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_slider2(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_7slider2_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_edit(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_4edit_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_edit2(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5edit2_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_cursor(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_6cursor_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjuiThemeColor[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_16PyMjuiThemeColor_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjuiThemeColor[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_uintptr, 0, (char *)0, 0},
  {(char *)"master", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_master, 0, (char *)0, 0},
  {(char *)"thumb", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_thumb, 0, (char *)0, 0},
  {(char *)"secttitle", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_secttitle, 0, (char *)0, 0},
  {(char *)"sectfont", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_sectfont, 0, (char *)0, 0},
  {(char *)"sectsymbol", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_sectsymbol, 0, (char *)0, 0},
  {(char *)"sectpane", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_sectpane, 0, (char *)0, 0},
  {(char *)"shortcut", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_shortcut, 0, (char *)0, 0},
  {(char *)"fontactive", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_fontactive, 0, (char *)0, 0},
  {(char *)"fontinactive", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_fontinactive, 0, (char *)0, 0},
  {(char *)"decorinactive", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_decorinactive, 0, (char *)0, 0},
  {(char *)"decorinactive2", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_decorinactive2, 0, (char *)0, 0},
  {(char *)"button", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_button, 0, (char *)0, 0},
  {(char *)"check", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_check, 0, (char *)0, 0},
  {(char *)"radio", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_radio, 0, (char *)0, 0},
  {(char *)"select", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_select, 0, (char *)0, 0},
  {(char *)"select2", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_select2, 0, (char *)0, 0},
  {(char *)"slider", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_slider, 0, (char *)0, 0},
  {(char *)"slider2", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_slider2, 0, (char *)0, 0},
  {(char *)"edit", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_edit, 0, (char *)0, 0},
  {(char *)"edit2", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_edit2, 0, (char *)0, 0},
  {(char *)"cursor", __pyx_getprop_9mujoco_py_4cymj_16PyMjuiThemeColor_cursor, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjuiThemeColor_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiThemeColor},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjuiThemeColor},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjuiThemeColor},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjuiThemeColor},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjuiThemeColor},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjuiThemeColor},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjuiThemeColor_spec = {
  "mujoco_py.cymj.PyMjuiThemeColor",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjuiThemeColor_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjuiThemeColor = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjuiThemeColor", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiThemeColor, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjuiThemeColor, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjuiThemeColor, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjuiThemeColor, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjuiThemeColor, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjuiThemeColor, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiItem __pyx_vtable_9mujoco_py_4cymj_PyMjuiItem;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjuiItem(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiItem;
  p->_rect = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)Py_None); Py_INCREF(Py_None);
  p->_name = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiItem(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiItem) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_rect);
  Py_CLEAR(p->_name);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjuiItem(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)o;
  if (p->_rect) {
    e = (*v)(((PyObject *)p->_rect), a); if (e) return e;
  }
  if (p->_name) {
    e = (*v)(((PyObject *)p->_name), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjuiItem(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *)o;
  tmp = ((PyObject*)p->_rect);
  p->_rect = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name);
  p->_name = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjuiItem_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjuiItem_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_4type_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjuiItem_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_4type_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjuiItem_state(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_5state_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjuiItem_state(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_5state_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjuiItem_sectionid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_9sectionid_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjuiItem_sectionid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_9sectionid_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjuiItem_itemid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_6itemid_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_10PyMjuiItem_itemid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_6itemid_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjuiItem_rect(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_4rect_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_10PyMjuiItem_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_4name_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjuiItem[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_10PyMjuiItem_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjuiItem[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_10PyMjuiItem_uintptr, 0, (char *)0, 0},
  {(char *)"type", __pyx_getprop_9mujoco_py_4cymj_10PyMjuiItem_type, __pyx_setprop_9mujoco_py_4cymj_10PyMjuiItem_type, (char *)0, 0},
  {(char *)"state", __pyx_getprop_9mujoco_py_4cymj_10PyMjuiItem_state, __pyx_setprop_9mujoco_py_4cymj_10PyMjuiItem_state, (char *)0, 0},
  {(char *)"sectionid", __pyx_getprop_9mujoco_py_4cymj_10PyMjuiItem_sectionid, __pyx_setprop_9mujoco_py_4cymj_10PyMjuiItem_sectionid, (char *)0, 0},
  {(char *)"itemid", __pyx_getprop_9mujoco_py_4cymj_10PyMjuiItem_itemid, __pyx_setprop_9mujoco_py_4cymj_10PyMjuiItem_itemid, (char *)0, 0},
  {(char *)"rect", __pyx_getprop_9mujoco_py_4cymj_10PyMjuiItem_rect, 0, (char *)0, 0},
  {(char *)"name", __pyx_getprop_9mujoco_py_4cymj_10PyMjuiItem_name, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjuiItem_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiItem},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjuiItem},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjuiItem},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjuiItem},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjuiItem},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjuiItem},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjuiItem_spec = {
  "mujoco_py.cymj.PyMjuiItem",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjuiItem_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjuiItem = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjuiItem", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiItem, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjuiItem, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjuiItem, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjuiItem, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjuiItem, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjuiItem, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiSection __pyx_vtable_9mujoco_py_4cymj_PyMjuiSection;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjuiSection(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiSection;
  p->_rtitle = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)Py_None); Py_INCREF(Py_None);
  p->_rcontent = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)Py_None); Py_INCREF(Py_None);
  p->_name = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_item = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiSection(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiSection) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_rtitle);
  Py_CLEAR(p->_rcontent);
  Py_CLEAR(p->_name);
  Py_CLEAR(p->_item);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjuiSection(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)o;
  if (p->_rtitle) {
    e = (*v)(((PyObject *)p->_rtitle), a); if (e) return e;
  }
  if (p->_rcontent) {
    e = (*v)(((PyObject *)p->_rcontent), a); if (e) return e;
  }
  if (p->_name) {
    e = (*v)(((PyObject *)p->_name), a); if (e) return e;
  }
  if (p->_item) {
    e = (*v)(p->_item, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjuiSection(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *)o;
  tmp = ((PyObject*)p->_rtitle);
  p->_rtitle = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_rcontent);
  p->_rcontent = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_name);
  p->_name = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_item);
  p->_item = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_state(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5state_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_13PyMjuiSection_state(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5state_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_modifier(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_8modifier_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_13PyMjuiSection_modifier(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_8modifier_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_shortcut(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_8shortcut_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_13PyMjuiSection_shortcut(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_8shortcut_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_nitem(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5nitem_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_13PyMjuiSection_nitem(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5nitem_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_rtitle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_6rtitle_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_rcontent(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_8rcontent_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_4name_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_item(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_4item_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjuiSection[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_13PyMjuiSection_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjuiSection[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_uintptr, 0, (char *)0, 0},
  {(char *)"state", __pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_state, __pyx_setprop_9mujoco_py_4cymj_13PyMjuiSection_state, (char *)0, 0},
  {(char *)"modifier", __pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_modifier, __pyx_setprop_9mujoco_py_4cymj_13PyMjuiSection_modifier, (char *)0, 0},
  {(char *)"shortcut", __pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_shortcut, __pyx_setprop_9mujoco_py_4cymj_13PyMjuiSection_shortcut, (char *)0, 0},
  {(char *)"nitem", __pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_nitem, __pyx_setprop_9mujoco_py_4cymj_13PyMjuiSection_nitem, (char *)0, 0},
  {(char *)"rtitle", __pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_rtitle, 0, (char *)0, 0},
  {(char *)"rcontent", __pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_rcontent, 0, (char *)0, 0},
  {(char *)"name", __pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_name, 0, (char *)0, 0},
  {(char *)"item", __pyx_getprop_9mujoco_py_4cymj_13PyMjuiSection_item, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjuiSection_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiSection},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjuiSection},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjuiSection},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjuiSection},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjuiSection},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjuiSection},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjuiSection_spec = {
  "mujoco_py.cymj.PyMjuiSection",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjuiSection_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjuiSection = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjuiSection", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiSection, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjuiSection, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjuiSection, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjuiSection, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjuiSection, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjuiSection, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjUI __pyx_vtable_9mujoco_py_4cymj_PyMjUI;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjUI(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjUI;
  p->_spacing = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)Py_None); Py_INCREF(Py_None);
  p->_color = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)Py_None); Py_INCREF(Py_None);
  p->_edittext = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_sect = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_6PyMjUI_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjUI(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjUI) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_spacing);
  Py_CLEAR(p->_color);
  Py_CLEAR(p->_edittext);
  Py_CLEAR(p->_sect);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjUI(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)o;
  if (p->_spacing) {
    e = (*v)(((PyObject *)p->_spacing), a); if (e) return e;
  }
  if (p->_color) {
    e = (*v)(((PyObject *)p->_color), a); if (e) return e;
  }
  if (p->_edittext) {
    e = (*v)(((PyObject *)p->_edittext), a); if (e) return e;
  }
  if (p->_sect) {
    e = (*v)(p->_sect, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjUI(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *)o;
  tmp = ((PyObject*)p->_spacing);
  p->_spacing = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_color);
  p->_color = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_edittext);
  p->_edittext = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_sect);
  p->_sect = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_spacing(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_7spacing_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_color(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_5color_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_rectid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_6rectid_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_rectid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_6rectid_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_auxid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_5auxid_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_auxid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_5auxid_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_radiocol(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_8radiocol_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_radiocol(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_8radiocol_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_width(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_5width_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_width(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_5width_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_height(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_6height_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_height(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_6height_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_maxheight(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9maxheight_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_maxheight(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9maxheight_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_scroll(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_6scroll_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_scroll(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_6scroll_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_mousesect(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mousesect_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_mousesect(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mousesect_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_mouseitem(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mouseitem_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_mouseitem(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mouseitem_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_mousehelp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mousehelp_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_mousehelp(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_9mousehelp_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_editsect(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_8editsect_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_editsect(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_8editsect_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_edititem(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_8edititem_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_edititem(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_8edititem_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_editcursor(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_10editcursor_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_editcursor(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_10editcursor_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_editscroll(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_10editscroll_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_editscroll(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_10editscroll_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_nsect(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_5nsect_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_nsect(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_5nsect_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_edittext(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_8edittext_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_6PyMjUI_sect(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_6PyMjUI_4sect_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjUI[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_6PyMjUI_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_6PyMjUI_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjUI[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_uintptr, 0, (char *)0, 0},
  {(char *)"spacing", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_spacing, 0, (char *)0, 0},
  {(char *)"color", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_color, 0, (char *)0, 0},
  {(char *)"rectid", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_rectid, __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_rectid, (char *)0, 0},
  {(char *)"auxid", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_auxid, __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_auxid, (char *)0, 0},
  {(char *)"radiocol", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_radiocol, __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_radiocol, (char *)0, 0},
  {(char *)"width", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_width, __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_width, (char *)0, 0},
  {(char *)"height", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_height, __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_height, (char *)0, 0},
  {(char *)"maxheight", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_maxheight, __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_maxheight, (char *)0, 0},
  {(char *)"scroll", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_scroll, __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_scroll, (char *)0, 0},
  {(char *)"mousesect", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_mousesect, __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_mousesect, (char *)0, 0},
  {(char *)"mouseitem", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_mouseitem, __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_mouseitem, (char *)0, 0},
  {(char *)"mousehelp", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_mousehelp, __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_mousehelp, (char *)0, 0},
  {(char *)"editsect", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_editsect, __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_editsect, (char *)0, 0},
  {(char *)"edititem", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_edititem, __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_edititem, (char *)0, 0},
  {(char *)"editcursor", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_editcursor, __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_editcursor, (char *)0, 0},
  {(char *)"editscroll", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_editscroll, __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_editscroll, (char *)0, 0},
  {(char *)"nsect", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_nsect, __pyx_setprop_9mujoco_py_4cymj_6PyMjUI_nsect, (char *)0, 0},
  {(char *)"edittext", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_edittext, 0, (char *)0, 0},
  {(char *)"sect", __pyx_getprop_9mujoco_py_4cymj_6PyMjUI_sect, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjUI_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjUI},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjUI},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjUI},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjUI},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjUI},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjUI},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjUI_spec = {
  "mujoco_py.cymj.PyMjUI",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjUI_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjUI = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjUI", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjUI, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjUI, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjUI, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjUI, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjUI, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjUI, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_PyMjuiDef __pyx_vtable_9mujoco_py_4cymj_PyMjuiDef;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_PyMjuiDef(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiDef;
  p->_name = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  p->_other = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiDef(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiDef) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_name);
  Py_CLEAR(p->_other);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_PyMjuiDef(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)o;
  if (p->_name) {
    e = (*v)(((PyObject *)p->_name), a); if (e) return e;
  }
  if (p->_other) {
    e = (*v)(((PyObject *)p->_other), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_PyMjuiDef(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *p = (struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *)o;
  tmp = ((PyObject*)p->_name);
  p->_name = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_other);
  p->_other = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjuiDef_uintptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_7uintptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjuiDef_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_4type_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjuiDef_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_4type_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjuiDef_state(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_5state_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_9PyMjuiDef_state(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_5state_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjuiDef_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_4name_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_9PyMjuiDef_other(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_5other_1__get__(o);
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_PyMjuiDef[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_9PyMjuiDef_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_PyMjuiDef[] = {
  {(char *)"uintptr", __pyx_getprop_9mujoco_py_4cymj_9PyMjuiDef_uintptr, 0, (char *)0, 0},
  {(char *)"type", __pyx_getprop_9mujoco_py_4cymj_9PyMjuiDef_type, __pyx_setprop_9mujoco_py_4cymj_9PyMjuiDef_type, (char *)0, 0},
  {(char *)"state", __pyx_getprop_9mujoco_py_4cymj_9PyMjuiDef_state, __pyx_setprop_9mujoco_py_4cymj_9PyMjuiDef_state, (char *)0, 0},
  {(char *)"name", __pyx_getprop_9mujoco_py_4cymj_9PyMjuiDef_name, 0, (char *)0, 0},
  {(char *)"other", __pyx_getprop_9mujoco_py_4cymj_9PyMjuiDef_other, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_PyMjuiDef_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiDef},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_PyMjuiDef},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_PyMjuiDef},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_PyMjuiDef},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_PyMjuiDef},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_PyMjuiDef},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_PyMjuiDef_spec = {
  "mujoco_py.cymj.PyMjuiDef",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_PyMjuiDef_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_PyMjuiDef = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""PyMjuiDef", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_PyMjuiDef, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_PyMjuiDef, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_PyMjuiDef, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_PyMjuiDef, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_PyMjuiDef, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_PyMjuiDef, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_9mujoco_py_4cymj_MjSim __pyx_vtable_9mujoco_py_4cymj_MjSim;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_MjSim(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_MjSim *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_MjSim *)o);
  p->__pyx_vtab = __pyx_vtabptr_9mujoco_py_4cymj_MjSim;
  p->render_contexts = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_render_context_window = Py_None; Py_INCREF(Py_None);
  p->_render_context_offscreen = Py_None; Py_INCREF(Py_None);
  p->model = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)Py_None); Py_INCREF(Py_None);
  p->data = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)Py_None); Py_INCREF(Py_None);
  p->udd_state = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_udd_callback = Py_None; Py_INCREF(Py_None);
  p->extras = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->render_callback = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_5MjSim_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_MjSim(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_MjSim *p = (struct __pyx_obj_9mujoco_py_4cymj_MjSim *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_MjSim) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->render_contexts);
  Py_CLEAR(p->_render_context_window);
  Py_CLEAR(p->_render_context_offscreen);
  Py_CLEAR(p->model);
  Py_CLEAR(p->data);
  Py_CLEAR(p->udd_state);
  Py_CLEAR(p->_udd_callback);
  Py_CLEAR(p->extras);
  Py_CLEAR(p->render_callback);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_MjSim(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_MjSim *p = (struct __pyx_obj_9mujoco_py_4cymj_MjSim *)o;
  if (p->render_contexts) {
    e = (*v)(p->render_contexts, a); if (e) return e;
  }
  if (p->_render_context_window) {
    e = (*v)(p->_render_context_window, a); if (e) return e;
  }
  if (p->_render_context_offscreen) {
    e = (*v)(p->_render_context_offscreen, a); if (e) return e;
  }
  if (p->model) {
    e = (*v)(((PyObject *)p->model), a); if (e) return e;
  }
  if (p->data) {
    e = (*v)(((PyObject *)p->data), a); if (e) return e;
  }
  if (p->udd_state) {
    e = (*v)(p->udd_state, a); if (e) return e;
  }
  if (p->_udd_callback) {
    e = (*v)(p->_udd_callback, a); if (e) return e;
  }
  if (p->extras) {
    e = (*v)(p->extras, a); if (e) return e;
  }
  if (p->render_callback) {
    e = (*v)(p->render_callback, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_MjSim(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_MjSim *p = (struct __pyx_obj_9mujoco_py_4cymj_MjSim *)o;
  tmp = ((PyObject*)p->render_contexts);
  p->render_contexts = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_render_context_window);
  p->_render_context_window = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_render_context_offscreen);
  p->_render_context_offscreen = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->model);
  p->model = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->data);
  p->data = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjData *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->udd_state);
  p->udd_state = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_udd_callback);
  p->_udd_callback = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->extras);
  p->extras = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->render_callback);
  p->render_callback = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_5MjSim_udd_callback(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_5MjSim_12udd_callback_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_5MjSim_udd_callback(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_5MjSim_12udd_callback_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_5MjSim_render_contexts(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_5MjSim_15render_contexts_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_5MjSim__render_context_window(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_5MjSim_22_render_context_window_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_5MjSim__render_context_offscreen(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_5MjSim_25_render_context_offscreen_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_5MjSim_model(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_5MjSim_5model_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_5MjSim_data(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_5MjSim_4data_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_5MjSim_nsubsteps(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_5MjSim_9nsubsteps_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_5MjSim_nsubsteps(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_5MjSim_9nsubsteps_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_5MjSim_udd_state(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_5MjSim_9udd_state_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_5MjSim_udd_state(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_5MjSim_9udd_state_3__set__(o, v);
  }
  else {
    return __pyx_pw_9mujoco_py_4cymj_5MjSim_9udd_state_5__del__(o);
  }
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_5MjSim__udd_callback(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_5MjSim_13_udd_callback_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_5MjSim_extras(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_5MjSim_6extras_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_5MjSim_substep_callback_ptr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_5MjSim_20substep_callback_ptr_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_5MjSim_render_callback(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_5MjSim_15render_callback_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_5MjSim_render_callback(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_5MjSim_15render_callback_3__set__(o, v);
  }
  else {
    return __pyx_pw_9mujoco_py_4cymj_5MjSim_15render_callback_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_MjSim[] = {
  {"reset", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_3reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_2reset},
  {"forward", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_5forward, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_4forward},
  {"set_constants", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_7set_constants, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_6set_constants},
  {"step", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_9step, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_8step},
  {"render", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_11render, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_10render},
  {"add_render_context", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_13add_render_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_substep_callback", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_17set_substep_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_16set_substep_callback},
  {"step_udd", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_19step_udd, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_state", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_21get_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_20get_state},
  {"set_state", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_23set_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_22set_state},
  {"set_state_from_flattened", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_25set_state_from_flattened, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_24set_state_from_flattened},
  {"save", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_27save, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_26save},
  {"ray", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_29ray, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_28ray},
  {"ray_fast_group", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_31ray_fast_group, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_30ray_fast_group},
  {"ray_fast_nogroup", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_33ray_fast_nogroup, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_5MjSim_32ray_fast_nogroup},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_35__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_5MjSim_37__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_MjSim[] = {
  {(char *)"udd_callback", __pyx_getprop_9mujoco_py_4cymj_5MjSim_udd_callback, __pyx_setprop_9mujoco_py_4cymj_5MjSim_udd_callback, (char *)0, 0},
  {(char *)"render_contexts", __pyx_getprop_9mujoco_py_4cymj_5MjSim_render_contexts, 0, (char *)0, 0},
  {(char *)"_render_context_window", __pyx_getprop_9mujoco_py_4cymj_5MjSim__render_context_window, 0, (char *)0, 0},
  {(char *)"_render_context_offscreen", __pyx_getprop_9mujoco_py_4cymj_5MjSim__render_context_offscreen, 0, (char *)0, 0},
  {(char *)"model", __pyx_getprop_9mujoco_py_4cymj_5MjSim_model, 0, (char *)0, 0},
  {(char *)"data", __pyx_getprop_9mujoco_py_4cymj_5MjSim_data, 0, (char *)0, 0},
  {(char *)"nsubsteps", __pyx_getprop_9mujoco_py_4cymj_5MjSim_nsubsteps, __pyx_setprop_9mujoco_py_4cymj_5MjSim_nsubsteps, (char *)0, 0},
  {(char *)"udd_state", __pyx_getprop_9mujoco_py_4cymj_5MjSim_udd_state, __pyx_setprop_9mujoco_py_4cymj_5MjSim_udd_state, (char *)0, 0},
  {(char *)"_udd_callback", __pyx_getprop_9mujoco_py_4cymj_5MjSim__udd_callback, 0, (char *)0, 0},
  {(char *)"extras", __pyx_getprop_9mujoco_py_4cymj_5MjSim_extras, 0, (char *)0, 0},
  {(char *)"substep_callback_ptr", __pyx_getprop_9mujoco_py_4cymj_5MjSim_substep_callback_ptr, 0, (char *)0, 0},
  {(char *)"render_callback", __pyx_getprop_9mujoco_py_4cymj_5MjSim_render_callback, __pyx_setprop_9mujoco_py_4cymj_5MjSim_render_callback, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_MjSim_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_MjSim},
  {Py_tp_doc, (void *)PyDoc_STR("MjSim represents a running simulation including its state.\n\n    Similar to Gym's ``MujocoEnv``, it internally wraps a :class:`.PyMjModel`\n    and a :class:`.PyMjData`.\n\n    Parameters\n    ----------\n    model : :class:`.PyMjModel`\n        The model to simulate.\n    data : :class:`.PyMjData`\n        Optional container for the simulation state. Will be created if ``None``.\n    nsubsteps : int\n        Optional number of MuJoCo steps to run for every call to :meth:`.step`.\n        Buffers will be swapped only once per step.\n    udd_callback : fn(:class:`.MjSim`) -> dict\n        Optional callback for user-defined dynamics. At every call to\n        :meth:`.step`, it receives an MjSim object ``sim`` containing the\n        current user-defined dynamics state in ``sim.udd_state``, and returns the\n        next ``udd_state`` after applying the user-defined dynamics. This is\n        useful e.g. for reward functions that operate over functions of historical\n        state.\n    substep_callback : str or int or None\n        This uses a compiled C function as user-defined dynamics in substeps.\n        If given as a string, it's compiled as a C function and set as pointer.\n        If given as int, it's interpreted as a function pointer.\n        See :meth:`.set_substep_callback` for detailed info.\n    userdata_names : list of strings or None\n        This is a convenience parameter which is just set on the model.\n        Equivalent to calling ``model.set_userdata_names``\n    render_callback : callback for rendering.\n    ")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_MjSim},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_MjSim},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_MjSim},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_MjSim},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_MjSim},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_MjSim_spec = {
  "mujoco_py.cymj.MjSim",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_MjSim),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_MjSim_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_MjSim = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""MjSim", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_MjSim), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_MjSim, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("MjSim represents a running simulation including its state.\n\n    Similar to Gym's ``MujocoEnv``, it internally wraps a :class:`.PyMjModel`\n    and a :class:`.PyMjData`.\n\n    Parameters\n    ----------\n    model : :class:`.PyMjModel`\n        The model to simulate.\n    data : :class:`.PyMjData`\n        Optional container for the simulation state. Will be created if ``None``.\n    nsubsteps : int\n        Optional number of MuJoCo steps to run for every call to :meth:`.step`.\n        Buffers will be swapped only once per step.\n    udd_callback : fn(:class:`.MjSim`) -> dict\n        Optional callback for user-defined dynamics. At every call to\n        :meth:`.step`, it receives an MjSim object ``sim`` containing the\n        current user-defined dynamics state in ``sim.udd_state``, and returns the\n        next ``udd_state`` after applying the user-defined dynamics. This is\n        useful e.g. for reward functions that operate over functions of historical\n        state.\n    substep_callback : str or int or None\n        This uses a compiled C function as user-defined dynamics in substeps.\n        If given as a string, it's compiled as a C function and set as pointer.\n        If given as int, it's interpreted as a function pointer.\n        See :meth:`.set_substep_callback` for detailed info.\n    userdata_names : list of strings or None\n        This is a convenience parameter which is just set on the model.\n        Equivalent to calling ``model.set_userdata_names``\n    render_callback : callback for rendering.\n    "), /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_MjSim, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_MjSim, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_MjSim, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_MjSim, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_MjSim, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_9mujoco_py_4cymj_MjRenderContext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)o);
  p->scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)Py_None); Py_INCREF(Py_None);
  p->cam = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)Py_None); Py_INCREF(Py_None);
  p->vopt = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)Py_None); Py_INCREF(Py_None);
  p->pert = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)Py_None); Py_INCREF(Py_None);
  p->con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)Py_None); Py_INCREF(Py_None);
  p->opengl_context = Py_None; Py_INCREF(Py_None);
  p->_markers = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_overlay = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->sim = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj_MjRenderContext(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *p = (struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj_MjRenderContext) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_33__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->scn);
  Py_CLEAR(p->cam);
  Py_CLEAR(p->vopt);
  Py_CLEAR(p->pert);
  Py_CLEAR(p->con);
  Py_CLEAR(p->opengl_context);
  Py_CLEAR(p->_markers);
  Py_CLEAR(p->_overlay);
  Py_CLEAR(p->sim);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_9mujoco_py_4cymj_MjRenderContext(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *p = (struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)o;
  if (p->scn) {
    e = (*v)(((PyObject *)p->scn), a); if (e) return e;
  }
  if (p->cam) {
    e = (*v)(((PyObject *)p->cam), a); if (e) return e;
  }
  if (p->vopt) {
    e = (*v)(((PyObject *)p->vopt), a); if (e) return e;
  }
  if (p->pert) {
    e = (*v)(((PyObject *)p->pert), a); if (e) return e;
  }
  if (p->con) {
    e = (*v)(((PyObject *)p->con), a); if (e) return e;
  }
  if (p->opengl_context) {
    e = (*v)(p->opengl_context, a); if (e) return e;
  }
  if (p->_markers) {
    e = (*v)(p->_markers, a); if (e) return e;
  }
  if (p->_overlay) {
    e = (*v)(p->_overlay, a); if (e) return e;
  }
  if (p->sim) {
    e = (*v)(p->sim, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj_MjRenderContext(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *p = (struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext *)o;
  tmp = ((PyObject*)p->scn);
  p->scn = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->cam);
  p->cam = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->vopt);
  p->vopt = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->pert);
  p->pert = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->con);
  p->con = ((struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->opengl_context);
  p->opengl_context = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_markers);
  p->_markers = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_overlay);
  p->_overlay = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->sim);
  p->sim = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_scn(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3scn_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_cam(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3cam_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_vopt(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_4vopt_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_pert(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_4pert_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_con(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3con_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_opengl_context(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_14opengl_context_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15MjRenderContext__visible(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_8_visible_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15MjRenderContext__markers(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_8_markers_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15MjRenderContext__overlay(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_8_overlay_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_offscreen(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_9offscreen_1__get__(o);
}

static PyObject *__pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_sim(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3sim_1__get__(o);
}

static int __pyx_setprop_9mujoco_py_4cymj_15MjRenderContext_sim(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3sim_3__set__(o, v);
  }
  else {
    return __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3sim_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_9mujoco_py_4cymj_MjRenderContext[] = {
  {"update_sim", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_5update_sim, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_set_mujoco_buffers", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_7_set_mujoco_buffers, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_setup_opengl_context", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_9_setup_opengl_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_init_camera", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_11_init_camera, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"update_offscreen_size", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_13update_offscreen_size, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"render", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_15render, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"read_pixels", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_17read_pixels, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"read_pixels_depth", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_19read_pixels_depth, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjRenderContext_18read_pixels_depth},
  {"upload_texture", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_21upload_texture, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjRenderContext_20upload_texture},
  {"draw_pixels", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_23draw_pixels, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjRenderContext_22draw_pixels},
  {"move_camera", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_25move_camera, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjRenderContext_24move_camera},
  {"add_overlay", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_27add_overlay, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjRenderContext_26add_overlay},
  {"add_marker", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_29add_marker, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_add_marker_to_scene", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_31_add_marker_to_scene, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9mujoco_py_4cymj_15MjRenderContext_30_add_marker_to_scene},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_35__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_37__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_9mujoco_py_4cymj_MjRenderContext[] = {
  {(char *)"scn", __pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_scn, 0, (char *)0, 0},
  {(char *)"cam", __pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_cam, 0, (char *)0, 0},
  {(char *)"vopt", __pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_vopt, 0, (char *)0, 0},
  {(char *)"pert", __pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_pert, 0, (char *)0, 0},
  {(char *)"con", __pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_con, 0, (char *)0, 0},
  {(char *)"opengl_context", __pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_opengl_context, 0, (char *)0, 0},
  {(char *)"_visible", __pyx_getprop_9mujoco_py_4cymj_15MjRenderContext__visible, 0, (char *)0, 0},
  {(char *)"_markers", __pyx_getprop_9mujoco_py_4cymj_15MjRenderContext__markers, 0, (char *)0, 0},
  {(char *)"_overlay", __pyx_getprop_9mujoco_py_4cymj_15MjRenderContext__overlay, 0, (char *)0, 0},
  {(char *)"offscreen", __pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_offscreen, 0, (char *)0, 0},
  {(char *)"sim", __pyx_getprop_9mujoco_py_4cymj_15MjRenderContext_sim, __pyx_setprop_9mujoco_py_4cymj_15MjRenderContext_sim, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj_MjRenderContext_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj_MjRenderContext},
  {Py_tp_doc, (void *)PyDoc_STR("\n    Class that encapsulates rendering functionality for a\n    MuJoCo simulation.\n    ")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj_MjRenderContext},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj_MjRenderContext},
  {Py_tp_methods, (void *)__pyx_methods_9mujoco_py_4cymj_MjRenderContext},
  {Py_tp_getset, (void *)__pyx_getsets_9mujoco_py_4cymj_MjRenderContext},
  {Py_tp_init, (void *)__pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3__init__},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj_MjRenderContext},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj_MjRenderContext_spec = {
  "mujoco_py.cymj.MjRenderContext",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_9mujoco_py_4cymj_MjRenderContext_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj_MjRenderContext = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""MjRenderContext", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj_MjRenderContext), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj_MjRenderContext, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("\n    Class that encapsulates rendering functionality for a\n    MuJoCo simulation.\n    "), /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj_MjRenderContext, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj_MjRenderContext, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_9mujoco_py_4cymj_MjRenderContext, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_9mujoco_py_4cymj_MjRenderContext, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_9mujoco_py_4cymj_15MjRenderContext_3__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj_MjRenderContext, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names *__pyx_freelist_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names[8];
static int __pyx_freecount_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names = 0;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_COMPILING_IN_CPYTHON
  if (likely((int)(__pyx_freecount_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names)))) {
    o = (PyObject*)__pyx_freelist_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names[--__pyx_freecount_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names];
    memset(o, 0, sizeof(struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names *p = (struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_id2name);
  #if CYTHON_COMPILING_IN_CPYTHON
  if (((int)(__pyx_freecount_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names)))) {
    __pyx_freelist_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names[__pyx_freecount_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names++] = ((struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names *p = (struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names *)o;
  if (p->__pyx_v_id2name) {
    e = (*v)(p->__pyx_v_id2name, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names *p = (struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names *)o;
  tmp = ((PyObject*)p->__pyx_v_id2name);
  p->__pyx_v_id2name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names},
  {Py_tp_clear, (void *)__pyx_tp_clear_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names_spec = {
  "mujoco_py.cymj.__pyx_scope_struct___extract_mj_names",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""__pyx_scope_struct___extract_mj_names", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names, /*tp_traverse*/
  __pyx_tp_clear_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr *__pyx_freelist_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr[8];
static int __pyx_freecount_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr = 0;

static PyObject *__pyx_tp_new_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_COMPILING_IN_CPYTHON
  if (likely((int)(__pyx_freecount_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr)))) {
    o = (PyObject*)__pyx_freelist_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr[--__pyx_freecount_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr(PyObject *o) {
  struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr *p = (struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_genexpr_arg_0);
  Py_CLEAR(p->__pyx_v_id);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_COMPILING_IN_CPYTHON
  if (((int)(__pyx_freecount_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr)))) {
    __pyx_freelist_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr[__pyx_freecount_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr++] = ((struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr *p = (struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_genexpr_arg_0) {
    e = (*v)(p->__pyx_genexpr_arg_0, a); if (e) return e;
  }
  if (p->__pyx_v_id) {
    e = (*v)(p->__pyx_v_id, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr_spec = {
  "mujoco_py.cymj.__pyx_scope_struct_1_genexpr",
  sizeof(struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""__pyx_scope_struct_1_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_array __pyx_vtable_array;

static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_array_obj *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_array_obj *)o);
  p->__pyx_vtab = __pyx_vtabptr_array;
  p->mode = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_format = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_array___cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_array(PyObject *o) {
  struct __pyx_array_obj *p = (struct __pyx_array_obj *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_array) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_array___dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->mode);
  Py_CLEAR(p->_format);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}
static PyObject *__pyx_sq_item_array(PyObject *o, Py_ssize_t i) {
  PyObject *r;
  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
  Py_DECREF(x);
  return r;
}

static int __pyx_mp_ass_subscript_array(PyObject *o, PyObject *i, PyObject *v) {
  if (v) {
    return __pyx_array___setitem__(o, i, v);
  }
  else {
    __Pyx_TypeName o_type_name;
    o_type_name = __Pyx_PyType_GetName(Py_TYPE(o));
    PyErr_Format(PyExc_NotImplementedError,
      "Subscript deletion not supported by " __Pyx_FMT_TYPENAME, o_type_name);
    __Pyx_DECREF_TypeName(o_type_name);
    return -1;
  }
}

static PyObject *__pyx_tp_getattro_array(PyObject *o, PyObject *n) {
  PyObject *v = __Pyx_PyObject_GenericGetAttr(o, n);
  if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) {
    PyErr_Clear();
    v = __pyx_array___getattr__(o, n);
  }
  return v;
}

static PyObject *__pyx_getprop___pyx_array_memview(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(o);
}

static PyMethodDef __pyx_methods_array[] = {
  {"__getattr__", (PyCFunction)__pyx_array___getattr__, METH_O|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_array_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_array_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_array[] = {
  {(char *)"memview", __pyx_getprop___pyx_array_memview, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
#if !CYTHON_COMPILING_IN_LIMITED_API

static PyBufferProcs __pyx_tp_as_buffer_array = {
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getreadbuffer*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getwritebuffer*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getsegcount*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getcharbuffer*/
  #endif
  __pyx_array_getbuffer, /*bf_getbuffer*/
  0, /*bf_releasebuffer*/
};
#endif
static PyType_Slot __pyx_type___pyx_array_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_array},
  {Py_sq_length, (void *)__pyx_array___len__},
  {Py_sq_item, (void *)__pyx_sq_item_array},
  {Py_mp_length, (void *)__pyx_array___len__},
  {Py_mp_subscript, (void *)__pyx_array___getitem__},
  {Py_mp_ass_subscript, (void *)__pyx_mp_ass_subscript_array},
  {Py_tp_getattro, (void *)__pyx_tp_getattro_array},
  #if defined(Py_bf_getbuffer)
  {Py_bf_getbuffer, (void *)__pyx_array_getbuffer},
  #endif
  {Py_tp_methods, (void *)__pyx_methods_array},
  {Py_tp_getset, (void *)__pyx_getsets_array},
  {Py_tp_new, (void *)__pyx_tp_new_array},
  {0, 0},
};
static PyType_Spec __pyx_type___pyx_array_spec = {
  "mujoco_py.cymj.array",
  sizeof(struct __pyx_array_obj),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_SEQUENCE,
  __pyx_type___pyx_array_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_array = {
  __pyx_array___len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  __pyx_sq_item_array, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_array = {
  __pyx_array___len__, /*mp_length*/
  __pyx_array___getitem__, /*mp_subscript*/
  __pyx_mp_ass_subscript_array, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_array = {
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getreadbuffer*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getwritebuffer*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getsegcount*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getcharbuffer*/
  #endif
  __pyx_array_getbuffer, /*bf_getbuffer*/
  0, /*bf_releasebuffer*/
};

static PyTypeObject __pyx_type___pyx_array = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""array", /*tp_name*/
  sizeof(struct __pyx_array_obj), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_array, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_array, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_array, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  __pyx_tp_getattro_array, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_array, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_SEQUENCE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_array, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_array, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_array, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_MemviewEnum_obj *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_MemviewEnum_obj *)o);
  p->name = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_Enum(PyObject *o) {
  struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_Enum) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->name);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_Enum(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o;
  if (p->name) {
    e = (*v)(p->name, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_Enum(PyObject *o) {
  PyObject* tmp;
  struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o;
  tmp = ((PyObject*)p->name);
  p->name = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_MemviewEnum___repr__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  return __pyx_MemviewEnum___repr__(self);
}

static PyMethodDef __pyx_methods_Enum[] = {
  {"__repr__", (PyCFunction)__pyx_specialmethod___pyx_MemviewEnum___repr__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_MemviewEnum_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_MemviewEnum_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type___pyx_MemviewEnum_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_Enum},
  {Py_tp_repr, (void *)__pyx_MemviewEnum___repr__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_Enum},
  {Py_tp_clear, (void *)__pyx_tp_clear_Enum},
  {Py_tp_methods, (void *)__pyx_methods_Enum},
  {Py_tp_init, (void *)__pyx_MemviewEnum___init__},
  {Py_tp_new, (void *)__pyx_tp_new_Enum},
  {0, 0},
};
static PyType_Spec __pyx_type___pyx_MemviewEnum_spec = {
  "mujoco_py.cymj.Enum",
  sizeof(struct __pyx_MemviewEnum_obj),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type___pyx_MemviewEnum_slots,
};
#else

static PyTypeObject __pyx_type___pyx_MemviewEnum = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""Enum", /*tp_name*/
  sizeof(struct __pyx_MemviewEnum_obj), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_Enum, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_MemviewEnum___repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_Enum, /*tp_traverse*/
  __pyx_tp_clear_Enum, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_Enum, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_MemviewEnum___init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_Enum, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_memoryview __pyx_vtable_memoryview;

static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_memoryview_obj *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_memoryview_obj *)o);
  p->__pyx_vtab = __pyx_vtabptr_memoryview;
  p->obj = Py_None; Py_INCREF(Py_None);
  p->_size = Py_None; Py_INCREF(Py_None);
  p->_array_interface = Py_None; Py_INCREF(Py_None);
  p->view.obj = NULL;
  if (unlikely(__pyx_memoryview___cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_memoryview(PyObject *o) {
  struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_memoryview) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_memoryview___dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->obj);
  Py_CLEAR(p->_size);
  Py_CLEAR(p->_array_interface);
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_memoryview(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o;
  if (p->obj) {
    e = (*v)(p->obj, a); if (e) return e;
  }
  if (p->_size) {
    e = (*v)(p->_size, a); if (e) return e;
  }
  if (p->_array_interface) {
    e = (*v)(p->_array_interface, a); if (e) return e;
  }
  if (p->view.obj) {
    e = (*v)(p->view.obj, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_memoryview(PyObject *o) {
  PyObject* tmp;
  struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o;
  tmp = ((PyObject*)p->obj);
  p->obj = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_size);
  p->_size = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_array_interface);
  p->_array_interface = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  Py_CLEAR(p->view.obj);
  return 0;
}
static PyObject *__pyx_sq_item_memoryview(PyObject *o, Py_ssize_t i) {
  PyObject *r;
  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
  Py_DECREF(x);
  return r;
}

static int __pyx_mp_ass_subscript_memoryview(PyObject *o, PyObject *i, PyObject *v) {
  if (v) {
    return __pyx_memoryview___setitem__(o, i, v);
  }
  else {
    __Pyx_TypeName o_type_name;
    o_type_name = __Pyx_PyType_GetName(Py_TYPE(o));
    PyErr_Format(PyExc_NotImplementedError,
      "Subscript deletion not supported by " __Pyx_FMT_TYPENAME, o_type_name);
    __Pyx_DECREF_TypeName(o_type_name);
    return -1;
  }
}

static PyObject *__pyx_getprop___pyx_memoryview_T(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(o);
}

static PyObject *__pyx_getprop___pyx_memoryview_base(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(o);
}

static PyObject *__pyx_getprop___pyx_memoryview_shape(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(o);
}

static PyObject *__pyx_getprop___pyx_memoryview_strides(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(o);
}

static PyObject *__pyx_getprop___pyx_memoryview_suboffsets(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(o);
}

static PyObject *__pyx_getprop___pyx_memoryview_ndim(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(o);
}

static PyObject *__pyx_getprop___pyx_memoryview_itemsize(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(o);
}

static PyObject *__pyx_getprop___pyx_memoryview_nbytes(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(o);
}

static PyObject *__pyx_getprop___pyx_memoryview_size(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(o);
}

static PyObject *__pyx_specialmethod___pyx_memoryview___repr__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  return __pyx_memoryview___repr__(self);
}

static PyMethodDef __pyx_methods_memoryview[] = {
  {"__repr__", (PyCFunction)__pyx_specialmethod___pyx_memoryview___repr__, METH_NOARGS|METH_COEXIST, 0},
  {"is_c_contig", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_memoryview_is_c_contig, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"is_f_contig", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_memoryview_is_f_contig, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"copy", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_memoryview_copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"copy_fortran", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_memoryview_copy_fortran, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_memoryview_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_memoryview_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_memoryview[] = {
  {(char *)"T", __pyx_getprop___pyx_memoryview_T, 0, (char *)0, 0},
  {(char *)"base", __pyx_getprop___pyx_memoryview_base, 0, (char *)0, 0},
  {(char *)"shape", __pyx_getprop___pyx_memoryview_shape, 0, (char *)0, 0},
  {(char *)"strides", __pyx_getprop___pyx_memoryview_strides, 0, (char *)0, 0},
  {(char *)"suboffsets", __pyx_getprop___pyx_memoryview_suboffsets, 0, (char *)0, 0},
  {(char *)"ndim", __pyx_getprop___pyx_memoryview_ndim, 0, (char *)0, 0},
  {(char *)"itemsize", __pyx_getprop___pyx_memoryview_itemsize, 0, (char *)0, 0},
  {(char *)"nbytes", __pyx_getprop___pyx_memoryview_nbytes, 0, (char *)0, 0},
  {(char *)"size", __pyx_getprop___pyx_memoryview_size, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
#if !CYTHON_COMPILING_IN_LIMITED_API

static PyBufferProcs __pyx_tp_as_buffer_memoryview = {
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getreadbuffer*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getwritebuffer*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getsegcount*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getcharbuffer*/
  #endif
  __pyx_memoryview_getbuffer, /*bf_getbuffer*/
  0, /*bf_releasebuffer*/
};
#endif
static PyType_Slot __pyx_type___pyx_memoryview_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_memoryview},
  {Py_tp_repr, (void *)__pyx_memoryview___repr__},
  {Py_sq_length, (void *)__pyx_memoryview___len__},
  {Py_sq_item, (void *)__pyx_sq_item_memoryview},
  {Py_mp_length, (void *)__pyx_memoryview___len__},
  {Py_mp_subscript, (void *)__pyx_memoryview___getitem__},
  {Py_mp_ass_subscript, (void *)__pyx_mp_ass_subscript_memoryview},
  {Py_tp_str, (void *)__pyx_memoryview___str__},
  #if defined(Py_bf_getbuffer)
  {Py_bf_getbuffer, (void *)__pyx_memoryview_getbuffer},
  #endif
  {Py_tp_traverse, (void *)__pyx_tp_traverse_memoryview},
  {Py_tp_clear, (void *)__pyx_tp_clear_memoryview},
  {Py_tp_methods, (void *)__pyx_methods_memoryview},
  {Py_tp_getset, (void *)__pyx_getsets_memoryview},
  {Py_tp_new, (void *)__pyx_tp_new_memoryview},
  {0, 0},
};
static PyType_Spec __pyx_type___pyx_memoryview_spec = {
  "mujoco_py.cymj.memoryview",
  sizeof(struct __pyx_memoryview_obj),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type___pyx_memoryview_slots,
};
#else

static PySequenceMethods __pyx_tp_as_sequence_memoryview = {
  __pyx_memoryview___len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  __pyx_sq_item_memoryview, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_memoryview = {
  __pyx_memoryview___len__, /*mp_length*/
  __pyx_memoryview___getitem__, /*mp_subscript*/
  __pyx_mp_ass_subscript_memoryview, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_memoryview = {
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getreadbuffer*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getwritebuffer*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getsegcount*/
  #endif
  #if PY_MAJOR_VERSION < 3
  0, /*bf_getcharbuffer*/
  #endif
  __pyx_memoryview_getbuffer, /*bf_getbuffer*/
  0, /*bf_releasebuffer*/
};

static PyTypeObject __pyx_type___pyx_memoryview = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""memoryview", /*tp_name*/
  sizeof(struct __pyx_memoryview_obj), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_memoryview, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_memoryview___repr__, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_memoryview, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_memoryview, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_memoryview___str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_memoryview, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_memoryview, /*tp_traverse*/
  __pyx_tp_clear_memoryview, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_memoryview, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_memoryview, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_memoryview, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct__memoryviewslice __pyx_vtable__memoryviewslice;

static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_memoryviewslice_obj *p;
  PyObject *o = __pyx_tp_new_memoryview(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_memoryviewslice_obj *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_memoryview*)__pyx_vtabptr__memoryviewslice;
  p->from_object = Py_None; Py_INCREF(Py_None);
  p->from_slice.memview = NULL;
  return o;
}

static void __pyx_tp_dealloc__memoryviewslice(PyObject *o) {
  struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc__memoryviewslice) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_memoryviewslice___dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->from_object);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_memoryview(o);
}

static int __pyx_tp_traverse__memoryviewslice(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o;
  e = __pyx_tp_traverse_memoryview(o, v, a); if (e) return e;
  if (p->from_object) {
    e = (*v)(p->from_object, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear__memoryviewslice(PyObject *o) {
  PyObject* tmp;
  struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o;
  __pyx_tp_clear_memoryview(o);
  tmp = ((PyObject*)p->from_object);
  p->from_object = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  __PYX_XCLEAR_MEMVIEW(&p->from_slice, 1);
  return 0;
}

static PyMethodDef __pyx_methods__memoryviewslice[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_memoryviewslice_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_memoryviewslice_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type___pyx_memoryviewslice_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc__memoryviewslice},
  {Py_tp_doc, (void *)PyDoc_STR("Internal class for passing memoryview slices to Python")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse__memoryviewslice},
  {Py_tp_clear, (void *)__pyx_tp_clear__memoryviewslice},
  {Py_tp_methods, (void *)__pyx_methods__memoryviewslice},
  {Py_tp_new, (void *)__pyx_tp_new__memoryviewslice},
  {0, 0},
};
static PyType_Spec __pyx_type___pyx_memoryviewslice_spec = {
  "mujoco_py.cymj._memoryviewslice",
  sizeof(struct __pyx_memoryviewslice_obj),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_SEQUENCE,
  __pyx_type___pyx_memoryviewslice_slots,
};
#else

static PyTypeObject __pyx_type___pyx_memoryviewslice = {
  PyVarObject_HEAD_INIT(0, 0)
  "mujoco_py.cymj.""_memoryviewslice", /*tp_name*/
  sizeof(struct __pyx_memoryviewslice_obj), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc__memoryviewslice, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_memoryview___repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_memoryview___str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_SEQUENCE, /*tp_flags*/
  PyDoc_STR("Internal class for passing memoryview slices to Python"), /*tp_doc*/
  __pyx_tp_traverse__memoryviewslice, /*tp_traverse*/
  __pyx_tp_clear__memoryviewslice, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods__memoryviewslice, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new__memoryviewslice, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};
#ifndef CYTHON_SMALL_CODE
#if defined(__clang__)
    #define CYTHON_SMALL_CODE
#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
    #define CYTHON_SMALL_CODE __attribute__((cold))
#else
    #define CYTHON_SMALL_CODE
#endif
#endif
/* #### Code section: pystring_table ### */

static int __Pyx_CreateStringTabAndInitStrings(void) {
  __Pyx_StringTabEntry __pyx_string_tab[] = {
    {&__pyx_kp_u_, __pyx_k_, sizeof(__pyx_k_), 0, 1, 0, 0},
    {&__pyx_n_s_ABCMeta, __pyx_k_ABCMeta, sizeof(__pyx_k_ABCMeta), 0, 0, 1, 1},
    {&__pyx_n_s_ASCII, __pyx_k_ASCII, sizeof(__pyx_k_ASCII), 0, 0, 1, 1},
    {&__pyx_kp_s_All_dimensions_preceding_dimensi, __pyx_k_All_dimensions_preceding_dimensi, sizeof(__pyx_k_All_dimensions_preceding_dimensi), 0, 0, 1, 0},
    {&__pyx_n_s_AssertionError, __pyx_k_AssertionError, sizeof(__pyx_k_AssertionError), 0, 0, 1, 1},
    {&__pyx_kp_s_Buffer_view_does_not_expose_stri, __pyx_k_Buffer_view_does_not_expose_stri, sizeof(__pyx_k_Buffer_view_does_not_expose_stri), 0, 0, 1, 0},
    {&__pyx_n_s_CAMERA_FIXED, __pyx_k_CAMERA_FIXED, sizeof(__pyx_k_CAMERA_FIXED), 0, 0, 1, 1},
    {&__pyx_n_s_CAMERA_FREE, __pyx_k_CAMERA_FREE, sizeof(__pyx_k_CAMERA_FREE), 0, 0, 1, 1},
    {&__pyx_n_s_CAT_DECOR, __pyx_k_CAT_DECOR, sizeof(__pyx_k_CAT_DECOR), 0, 0, 1, 1},
    {&__pyx_n_u_CUDA_VISIBLE_DEVICES, __pyx_k_CUDA_VISIBLE_DEVICES, sizeof(__pyx_k_CUDA_VISIBLE_DEVICES), 0, 1, 0, 1},
    {&__pyx_kp_u_CUDA_buffers_must_be_mapped_befo, __pyx_k_CUDA_buffers_must_be_mapped_befo, sizeof(__pyx_k_CUDA_buffers_must_be_mapped_befo), 0, 1, 0, 0},
    {&__pyx_kp_u_CUDA_buffers_must_be_unmapped_be, __pyx_k_CUDA_buffers_must_be_unmapped_be, sizeof(__pyx_k_CUDA_buffers_must_be_unmapped_be), 0, 1, 0, 0},
    {&__pyx_kp_s_Can_only_create_a_buffer_that_is, __pyx_k_Can_only_create_a_buffer_that_is, sizeof(__pyx_k_Can_only_create_a_buffer_that_is), 0, 0, 1, 0},
    {&__pyx_kp_s_Cannot_assign_to_read_only_memor, __pyx_k_Cannot_assign_to_read_only_memor, sizeof(__pyx_k_Cannot_assign_to_read_only_memor), 0, 0, 1, 0},
    {&__pyx_kp_s_Cannot_create_writable_memory_vi, __pyx_k_Cannot_create_writable_memory_vi, sizeof(__pyx_k_Cannot_create_writable_memory_vi), 0, 0, 1, 0},
    {&__pyx_kp_u_Cannot_index_with_type, __pyx_k_Cannot_index_with_type, sizeof(__pyx_k_Cannot_index_with_type), 0, 1, 0, 0},
    {&__pyx_kp_s_Cannot_transpose_memoryview_with, __pyx_k_Cannot_transpose_memoryview_with, sizeof(__pyx_k_Cannot_transpose_memoryview_with), 0, 0, 1, 0},
    {&__pyx_kp_s_Class_to_wrap_capturing_excepti, __pyx_k_Class_to_wrap_capturing_excepti, sizeof(__pyx_k_Class_to_wrap_capturing_excepti), 0, 0, 1, 0},
    {&__pyx_n_s_Context, __pyx_k_Context, sizeof(__pyx_k_Context), 0, 0, 1, 1},
    {&__pyx_kp_u_Creating_offscreen_glfw, __pyx_k_Creating_offscreen_glfw, sizeof(__pyx_k_Creating_offscreen_glfw), 0, 1, 0, 0},
    {&__pyx_kp_u_Creating_window_glfw, __pyx_k_Creating_window_glfw, sizeof(__pyx_k_Creating_window_glfw), 0, 1, 0, 0},
    {&__pyx_n_s_CudaBufferMappedError, __pyx_k_CudaBufferMappedError, sizeof(__pyx_k_CudaBufferMappedError), 0, 0, 1, 1},
    {&__pyx_n_s_CudaBufferNotMappedError, __pyx_k_CudaBufferNotMappedError, sizeof(__pyx_k_CudaBufferNotMappedError), 0, 0, 1, 1},
    {&__pyx_n_s_CudaNotEnabledError, __pyx_k_CudaNotEnabledError, sizeof(__pyx_k_CudaNotEnabledError), 0, 0, 1, 1},
    {&__pyx_n_s_DOUBLEBUFFER, __pyx_k_DOUBLEBUFFER, sizeof(__pyx_k_DOUBLEBUFFER), 0, 0, 1, 1},
    {&__pyx_n_u_DYLD_LIBRARY_PATH, __pyx_k_DYLD_LIBRARY_PATH, sizeof(__pyx_k_DYLD_LIBRARY_PATH), 0, 1, 0, 1},
    {&__pyx_kp_u_Depth_not_enabled_Use_depth_True, __pyx_k_Depth_not_enabled_Use_depth_True, sizeof(__pyx_k_Depth_not_enabled_Use_depth_True), 0, 1, 0, 0},
    {&__pyx_n_s_Device, __pyx_k_Device, sizeof(__pyx_k_Device), 0, 0, 1, 1},
    {&__pyx_kp_s_Dimension_d_is_not_direct, __pyx_k_Dimension_d_is_not_direct, sizeof(__pyx_k_Dimension_d_is_not_direct), 0, 0, 1, 0},
    {&__pyx_n_s_Ellipsis, __pyx_k_Ellipsis, sizeof(__pyx_k_Ellipsis), 0, 0, 1, 1},
    {&__pyx_kp_s_Empty_shape_tuple_for_cython_arr, __pyx_k_Empty_shape_tuple_for_cython_arr, sizeof(__pyx_k_Empty_shape_tuple_for_cython_arr), 0, 0, 1, 0},
    {&__pyx_kp_u_Every_value_in_udd_state_must_be, __pyx_k_Every_value_in_udd_state_must_be, sizeof(__pyx_k_Every_value_in_udd_state_must_be), 0, 1, 0, 0},
    {&__pyx_n_s_FONTSCALE_150, __pyx_k_FONTSCALE_150, sizeof(__pyx_k_FONTSCALE_150), 0, 0, 1, 1},
    {&__pyx_kp_u_Failed_to_create_GLFW_window, __pyx_k_Failed_to_create_GLFW_window, sizeof(__pyx_k_Failed_to_create_GLFW_window), 0, 1, 0, 0},
    {&__pyx_kp_u_Failed_to_import_pycuda, __pyx_k_Failed_to_import_pycuda, sizeof(__pyx_k_Failed_to_import_pycuda), 0, 1, 0, 0},
    {&__pyx_kp_u_Failed_to_initialize_GLFW, __pyx_k_Failed_to_initialize_GLFW, sizeof(__pyx_k_Failed_to_initialize_GLFW), 0, 1, 0, 0},
    {&__pyx_kp_u_Failed_to_initialize_OpenGL, __pyx_k_Failed_to_initialize_OpenGL, sizeof(__pyx_k_Failed_to_initialize_OpenGL), 0, 1, 0, 0},
    {&__pyx_kp_u_Failed_to_load_XML_file, __pyx_k_Failed_to_load_XML_file, sizeof(__pyx_k_Failed_to_load_XML_file), 0, 1, 0, 0},
    {&__pyx_kp_u_Failed_to_load_XML_from_string, __pyx_k_Failed_to_load_XML_from_string, sizeof(__pyx_k_Failed_to_load_XML_from_string), 0, 1, 0, 0},
    {&__pyx_kp_u_Failed_to_save_XML, __pyx_k_Failed_to_save_XML, sizeof(__pyx_k_Failed_to_save_XML), 0, 1, 0, 0},
    {&__pyx_kp_u_Failed_to_set_buffer_size, __pyx_k_Failed_to_set_buffer_size, sizeof(__pyx_k_Failed_to_set_buffer_size), 0, 1, 0, 0},
    {&__pyx_n_s_GEOM_BOX, __pyx_k_GEOM_BOX, sizeof(__pyx_k_GEOM_BOX), 0, 0, 1, 1},
    {&__pyx_n_s_GLFW_IS_INITIALIZED, __pyx_k_GLFW_IS_INITIALIZED, sizeof(__pyx_k_GLFW_IS_INITIALIZED), 0, 0, 1, 1},
    {&__pyx_kp_u_GLFW_error_code_d_s, __pyx_k_GLFW_error_code_d_s, sizeof(__pyx_k_GLFW_error_code_d_s), 0, 1, 0, 0},
    {&__pyx_kp_u_GLFW_not_installed, __pyx_k_GLFW_not_installed, sizeof(__pyx_k_GLFW_not_installed), 0, 1, 0, 0},
    {&__pyx_n_u_GPUS, __pyx_k_GPUS, sizeof(__pyx_k_GPUS), 0, 1, 0, 1},
    {&__pyx_n_s_GlfwContext, __pyx_k_GlfwContext, sizeof(__pyx_k_GlfwContext), 0, 0, 1, 1},
    {&__pyx_n_s_GlfwContext___init, __pyx_k_GlfwContext___init, sizeof(__pyx_k_GlfwContext___init), 0, 0, 1, 1},
    {&__pyx_n_s_GlfwContext__create_window, __pyx_k_GlfwContext__create_window, sizeof(__pyx_k_GlfwContext__create_window), 0, 0, 1, 1},
    {&__pyx_n_s_GlfwContext__glfw_error_callback, __pyx_k_GlfwContext__glfw_error_callback, sizeof(__pyx_k_GlfwContext__glfw_error_callback), 0, 0, 1, 1},
    {&__pyx_n_s_GlfwContext__init_glfw, __pyx_k_GlfwContext__init_glfw, sizeof(__pyx_k_GlfwContext__init_glfw), 0, 0, 1, 1},
    {&__pyx_n_s_GlfwContext__set_window_size, __pyx_k_GlfwContext__set_window_size, sizeof(__pyx_k_GlfwContext__set_window_size), 0, 0, 1, 1},
    {&__pyx_n_s_GlfwContext_get_buffer_size, __pyx_k_GlfwContext_get_buffer_size, sizeof(__pyx_k_GlfwContext_get_buffer_size), 0, 0, 1, 1},
    {&__pyx_n_s_GlfwContext_make_context_current, __pyx_k_GlfwContext_make_context_current, sizeof(__pyx_k_GlfwContext_make_context_current), 0, 0, 1, 1},
    {&__pyx_n_s_GlfwContext_set_buffer_size, __pyx_k_GlfwContext_set_buffer_size, sizeof(__pyx_k_GlfwContext_set_buffer_size), 0, 0, 1, 1},
    {&__pyx_n_s_GlfwError, __pyx_k_GlfwError, sizeof(__pyx_k_GlfwError), 0, 0, 1, 1},
    {&__pyx_n_s_INIT_HEIGHT, __pyx_k_INIT_HEIGHT, sizeof(__pyx_k_INIT_HEIGHT), 0, 0, 1, 1},
    {&__pyx_n_s_INIT_WIDTH, __pyx_k_INIT_WIDTH, sizeof(__pyx_k_INIT_WIDTH), 0, 0, 1, 1},
    {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_k_Incompatible_checksums_0x_x_vs_0, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0), 0, 0, 1, 0},
    {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1},
    {&__pyx_kp_s_Index_out_of_bounds_axis_d, __pyx_k_Index_out_of_bounds_axis_d, sizeof(__pyx_k_Index_out_of_bounds_axis_d), 0, 0, 1, 0},
    {&__pyx_kp_s_Indirect_dimensions_not_supporte, __pyx_k_Indirect_dimensions_not_supporte, sizeof(__pyx_k_Indirect_dimensions_not_supporte), 0, 0, 1, 0},
    {&__pyx_kp_u_Invalid_mode_expected_c_or_fortr, __pyx_k_Invalid_mode_expected_c_or_fortr, sizeof(__pyx_k_Invalid_mode_expected_c_or_fortr), 0, 1, 0, 0},
    {&__pyx_kp_u_Invalid_shape_in_axis, __pyx_k_Invalid_shape_in_axis, sizeof(__pyx_k_Invalid_shape_in_axis), 0, 1, 0, 0},
    {&__pyx_kp_u_Keys_cannot_be_added_to_udd_stat, __pyx_k_Keys_cannot_be_added_to_udd_stat, sizeof(__pyx_k_Keys_cannot_be_added_to_udd_stat), 0, 1, 0, 0},
    {&__pyx_kp_u_Keys_cannot_be_dropped_from_udd, __pyx_k_Keys_cannot_be_dropped_from_udd, sizeof(__pyx_k_Keys_cannot_be_dropped_from_udd), 0, 1, 0, 0},
    {&__pyx_n_s_Kp, __pyx_k_Kp, sizeof(__pyx_k_Kp), 0, 0, 1, 1},
    {&__pyx_n_s_Kv, __pyx_k_Kv, sizeof(__pyx_k_Kv), 0, 0, 1, 1},
    {&__pyx_n_s_Lock, __pyx_k_Lock, sizeof(__pyx_k_Lock), 0, 0, 1, 1},
    {&__pyx_n_s_M, __pyx_k_M, sizeof(__pyx_k_M), 0, 0, 1, 1},
    {&__pyx_kp_u_Mapped_CUDA_depth_buffer_pointer, __pyx_k_Mapped_CUDA_depth_buffer_pointer, sizeof(__pyx_k_Mapped_CUDA_depth_buffer_pointer), 0, 1, 0, 0},
    {&__pyx_kp_u_Mapped_CUDA_rgb_buffer_pointer, __pyx_k_Mapped_CUDA_rgb_buffer_pointer, sizeof(__pyx_k_Mapped_CUDA_rgb_buffer_pointer), 0, 1, 0, 0},
    {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1},
    {&__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_k_MemoryView_of_r_at_0x_x, sizeof(__pyx_k_MemoryView_of_r_at_0x_x), 0, 0, 1, 0},
    {&__pyx_kp_s_MemoryView_of_r_object, __pyx_k_MemoryView_of_r_object, sizeof(__pyx_k_MemoryView_of_r_object), 0, 0, 1, 0},
    {&__pyx_n_s_MjBatchRenderer, __pyx_k_MjBatchRenderer, sizeof(__pyx_k_MjBatchRenderer), 0, 0, 1, 1},
    {&__pyx_n_s_MjBatchRendererException, __pyx_k_MjBatchRendererException, sizeof(__pyx_k_MjBatchRendererException), 0, 0, 1, 1},
    {&__pyx_n_s_MjBatchRendererNotSupported, __pyx_k_MjBatchRendererNotSupported, sizeof(__pyx_k_MjBatchRendererNotSupported), 0, 0, 1, 1},
    {&__pyx_n_s_MjBatchRenderer___del, __pyx_k_MjBatchRenderer___del, sizeof(__pyx_k_MjBatchRenderer___del), 0, 0, 1, 1},
    {&__pyx_n_s_MjBatchRenderer___init, __pyx_k_MjBatchRenderer___init, sizeof(__pyx_k_MjBatchRenderer___init), 0, 0, 1, 1},
    {&__pyx_n_s_MjBatchRenderer__init_cuda, __pyx_k_MjBatchRenderer__init_cuda, sizeof(__pyx_k_MjBatchRenderer__init_cuda), 0, 0, 1, 1},
    {&__pyx_n_s_MjBatchRenderer__read_cuda, __pyx_k_MjBatchRenderer__read_cuda, sizeof(__pyx_k_MjBatchRenderer__read_cuda), 0, 0, 1, 1},
    {&__pyx_n_s_MjBatchRenderer__read_nocuda, __pyx_k_MjBatchRenderer__read_nocuda, sizeof(__pyx_k_MjBatchRenderer__read_nocuda), 0, 0, 1, 1},
    {&__pyx_n_s_MjBatchRenderer_cuda_depth_buffe, __pyx_k_MjBatchRenderer_cuda_depth_buffe, sizeof(__pyx_k_MjBatchRenderer_cuda_depth_buffe), 0, 0, 1, 1},
    {&__pyx_n_s_MjBatchRenderer_cuda_rgb_buffer, __pyx_k_MjBatchRenderer_cuda_rgb_buffer, sizeof(__pyx_k_MjBatchRenderer_cuda_rgb_buffer), 0, 0, 1, 1},
    {&__pyx_kp_u_MjBatchRenderer_currently_only_s, __pyx_k_MjBatchRenderer_currently_only_s, sizeof(__pyx_k_MjBatchRenderer_currently_only_s), 0, 1, 0, 0},
    {&__pyx_n_s_MjBatchRenderer_map, __pyx_k_MjBatchRenderer_map, sizeof(__pyx_k_MjBatchRenderer_map), 0, 0, 1, 1},
    {&__pyx_n_s_MjBatchRenderer_prepare_render_c, __pyx_k_MjBatchRenderer_prepare_render_c, sizeof(__pyx_k_MjBatchRenderer_prepare_render_c), 0, 0, 1, 1},
    {&__pyx_n_s_MjBatchRenderer_read, __pyx_k_MjBatchRenderer_read, sizeof(__pyx_k_MjBatchRenderer_read), 0, 0, 1, 1},
    {&__pyx_n_s_MjBatchRenderer_render, __pyx_k_MjBatchRenderer_render, sizeof(__pyx_k_MjBatchRenderer_render), 0, 0, 1, 1},
    {&__pyx_n_s_MjBatchRenderer_unmap, __pyx_k_MjBatchRenderer_unmap, sizeof(__pyx_k_MjBatchRenderer_unmap), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext, __pyx_k_MjRenderContext, sizeof(__pyx_k_MjRenderContext), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContextOffscreen, __pyx_k_MjRenderContextOffscreen, sizeof(__pyx_k_MjRenderContextOffscreen), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContextOffscreen___cinit, __pyx_k_MjRenderContextOffscreen___cinit, sizeof(__pyx_k_MjRenderContextOffscreen___cinit), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContextWindow, __pyx_k_MjRenderContextWindow, sizeof(__pyx_k_MjRenderContextWindow), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContextWindow___init, __pyx_k_MjRenderContextWindow___init, sizeof(__pyx_k_MjRenderContextWindow___init), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContextWindow_render, __pyx_k_MjRenderContextWindow_render, sizeof(__pyx_k_MjRenderContextWindow_render), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContextWindow_window, __pyx_k_MjRenderContextWindow_window, sizeof(__pyx_k_MjRenderContextWindow_window), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext___reduce_cython, __pyx_k_MjRenderContext___reduce_cython, sizeof(__pyx_k_MjRenderContext___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext___setstate_cytho, __pyx_k_MjRenderContext___setstate_cytho, sizeof(__pyx_k_MjRenderContext___setstate_cytho), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext__add_marker_to_s, __pyx_k_MjRenderContext__add_marker_to_s, sizeof(__pyx_k_MjRenderContext__add_marker_to_s), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext__init_camera, __pyx_k_MjRenderContext__init_camera, sizeof(__pyx_k_MjRenderContext__init_camera), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext__set_mujoco_buff, __pyx_k_MjRenderContext__set_mujoco_buff, sizeof(__pyx_k_MjRenderContext__set_mujoco_buff), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext__setup_opengl_co, __pyx_k_MjRenderContext__setup_opengl_co, sizeof(__pyx_k_MjRenderContext__setup_opengl_co), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext_add_marker, __pyx_k_MjRenderContext_add_marker, sizeof(__pyx_k_MjRenderContext_add_marker), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext_add_overlay, __pyx_k_MjRenderContext_add_overlay, sizeof(__pyx_k_MjRenderContext_add_overlay), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext_draw_pixels, __pyx_k_MjRenderContext_draw_pixels, sizeof(__pyx_k_MjRenderContext_draw_pixels), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext_move_camera, __pyx_k_MjRenderContext_move_camera, sizeof(__pyx_k_MjRenderContext_move_camera), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext_read_pixels, __pyx_k_MjRenderContext_read_pixels, sizeof(__pyx_k_MjRenderContext_read_pixels), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext_read_pixels_dept, __pyx_k_MjRenderContext_read_pixels_dept, sizeof(__pyx_k_MjRenderContext_read_pixels_dept), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext_render, __pyx_k_MjRenderContext_render, sizeof(__pyx_k_MjRenderContext_render), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext_update_offscreen, __pyx_k_MjRenderContext_update_offscreen, sizeof(__pyx_k_MjRenderContext_update_offscreen), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext_update_sim, __pyx_k_MjRenderContext_update_sim, sizeof(__pyx_k_MjRenderContext_update_sim), 0, 0, 1, 1},
    {&__pyx_n_s_MjRenderContext_upload_texture, __pyx_k_MjRenderContext_upload_texture, sizeof(__pyx_k_MjRenderContext_upload_texture), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim, __pyx_k_MjSim, sizeof(__pyx_k_MjSim), 0, 0, 1, 1},
    {&__pyx_n_s_MjSimState, __pyx_k_MjSimState, sizeof(__pyx_k_MjSimState), 0, 0, 1, 1},
    {&__pyx_n_s_MjSimState___eq, __pyx_k_MjSimState___eq, sizeof(__pyx_k_MjSimState___eq), 0, 0, 1, 1},
    {&__pyx_n_s_MjSimState___ne, __pyx_k_MjSimState___ne, sizeof(__pyx_k_MjSimState___ne), 0, 0, 1, 1},
    {&__pyx_n_s_MjSimState__flatten_dict, __pyx_k_MjSimState__flatten_dict, sizeof(__pyx_k_MjSimState__flatten_dict), 0, 0, 1, 1},
    {&__pyx_n_s_MjSimState__unflatten_dict, __pyx_k_MjSimState__unflatten_dict, sizeof(__pyx_k_MjSimState__unflatten_dict), 0, 0, 1, 1},
    {&__pyx_n_s_MjSimState_flatten, __pyx_k_MjSimState_flatten, sizeof(__pyx_k_MjSimState_flatten), 0, 0, 1, 1},
    {&__pyx_n_s_MjSimState_from_flattened, __pyx_k_MjSimState_from_flattened, sizeof(__pyx_k_MjSimState_from_flattened), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim___reduce_cython, __pyx_k_MjSim___reduce_cython, sizeof(__pyx_k_MjSim___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim___setstate_cython, __pyx_k_MjSim___setstate_cython, sizeof(__pyx_k_MjSim___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_add_render_context, __pyx_k_MjSim_add_render_context, sizeof(__pyx_k_MjSim_add_render_context), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_forward, __pyx_k_MjSim_forward, sizeof(__pyx_k_MjSim_forward), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_get_state, __pyx_k_MjSim_get_state, sizeof(__pyx_k_MjSim_get_state), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_ray, __pyx_k_MjSim_ray, sizeof(__pyx_k_MjSim_ray), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_ray_fast_group, __pyx_k_MjSim_ray_fast_group, sizeof(__pyx_k_MjSim_ray_fast_group), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_ray_fast_nogroup, __pyx_k_MjSim_ray_fast_nogroup, sizeof(__pyx_k_MjSim_ray_fast_nogroup), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_render, __pyx_k_MjSim_render, sizeof(__pyx_k_MjSim_render), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_render_lock, __pyx_k_MjSim_render_lock, sizeof(__pyx_k_MjSim_render_lock), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_reset, __pyx_k_MjSim_reset, sizeof(__pyx_k_MjSim_reset), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_save, __pyx_k_MjSim_save, sizeof(__pyx_k_MjSim_save), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_set_constants, __pyx_k_MjSim_set_constants, sizeof(__pyx_k_MjSim_set_constants), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_set_state, __pyx_k_MjSim_set_state, sizeof(__pyx_k_MjSim_set_state), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_set_state_from_flattened, __pyx_k_MjSim_set_state_from_flattened, sizeof(__pyx_k_MjSim_set_state_from_flattened), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_set_substep_callback, __pyx_k_MjSim_set_substep_callback, sizeof(__pyx_k_MjSim_set_substep_callback), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_step, __pyx_k_MjSim_step, sizeof(__pyx_k_MjSim_step), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_step_udd, __pyx_k_MjSim_step_udd, sizeof(__pyx_k_MjSim_step_udd), 0, 0, 1, 1},
    {&__pyx_n_s_MjSim_substep_callback, __pyx_k_MjSim_substep_callback, sizeof(__pyx_k_MjSim_substep_callback), 0, 0, 1, 1},
    {&__pyx_n_s_MjViewer, __pyx_k_MjViewer, sizeof(__pyx_k_MjViewer), 0, 0, 1, 1},
    {&__pyx_kp_u_Mode_must_be_either_window_or_of, __pyx_k_Mode_must_be_either_window_or_of, sizeof(__pyx_k_Mode_must_be_either_window_or_of), 0, 1, 0, 0},
    {&__pyx_n_s_N, __pyx_k_N, sizeof(__pyx_k_N), 0, 0, 1, 1},
    {&__pyx_n_s_NGAIN, __pyx_k_NGAIN, sizeof(__pyx_k_NGAIN), 0, 0, 1, 1},
    {&__pyx_n_s_NamedTemporaryFile, __pyx_k_NamedTemporaryFile, sizeof(__pyx_k_NamedTemporaryFile), 0, 0, 1, 1},
    {&__pyx_kp_u_No_actuator_with_id_d_exists, __pyx_k_No_actuator_with_id_d_exists, sizeof(__pyx_k_No_actuator_with_id_d_exists), 0, 1, 0, 0},
    {&__pyx_kp_u_No_actuator_with_name, __pyx_k_No_actuator_with_name, sizeof(__pyx_k_No_actuator_with_name), 0, 1, 0, 0},
    {&__pyx_kp_u_No_body_with_id_d_exists, __pyx_k_No_body_with_id_d_exists, sizeof(__pyx_k_No_body_with_id_d_exists), 0, 1, 0, 0},
    {&__pyx_kp_u_No_body_with_name, __pyx_k_No_body_with_name, sizeof(__pyx_k_No_body_with_name), 0, 1, 0, 0},
    {&__pyx_kp_u_No_camera_with_id_d_exists, __pyx_k_No_camera_with_id_d_exists, sizeof(__pyx_k_No_camera_with_id_d_exists), 0, 1, 0, 0},
    {&__pyx_kp_u_No_camera_with_name, __pyx_k_No_camera_with_name, sizeof(__pyx_k_No_camera_with_name), 0, 1, 0, 0},
    {&__pyx_kp_u_No_geom_with_id_d_exists, __pyx_k_No_geom_with_id_d_exists, sizeof(__pyx_k_No_geom_with_id_d_exists), 0, 1, 0, 0},
    {&__pyx_kp_u_No_geom_with_name, __pyx_k_No_geom_with_name, sizeof(__pyx_k_No_geom_with_name), 0, 1, 0, 0},
    {&__pyx_kp_u_No_joint_with_id_d_exists, __pyx_k_No_joint_with_id_d_exists, sizeof(__pyx_k_No_joint_with_id_d_exists), 0, 1, 0, 0},
    {&__pyx_kp_u_No_joint_with_name, __pyx_k_No_joint_with_name, sizeof(__pyx_k_No_joint_with_name), 0, 1, 0, 0},
    {&__pyx_kp_u_No_light_with_id_d_exists, __pyx_k_No_light_with_id_d_exists, sizeof(__pyx_k_No_light_with_id_d_exists), 0, 1, 0, 0},
    {&__pyx_kp_u_No_light_with_name, __pyx_k_No_light_with_name, sizeof(__pyx_k_No_light_with_name), 0, 1, 0, 0},
    {&__pyx_kp_u_No_mesh_with_id_d_exists, __pyx_k_No_mesh_with_id_d_exists, sizeof(__pyx_k_No_mesh_with_id_d_exists), 0, 1, 0, 0},
    {&__pyx_kp_u_No_mesh_with_name, __pyx_k_No_mesh_with_name, sizeof(__pyx_k_No_mesh_with_name), 0, 1, 0, 0},
    {&__pyx_kp_u_No_sensor_with_id_d_exists, __pyx_k_No_sensor_with_id_d_exists, sizeof(__pyx_k_No_sensor_with_id_d_exists), 0, 1, 0, 0},
    {&__pyx_kp_u_No_sensor_with_name, __pyx_k_No_sensor_with_name, sizeof(__pyx_k_No_sensor_with_name), 0, 1, 0, 0},
    {&__pyx_kp_u_No_site_with_id_d_exists, __pyx_k_No_site_with_id_d_exists, sizeof(__pyx_k_No_site_with_id_d_exists), 0, 1, 0, 0},
    {&__pyx_kp_u_No_site_with_name, __pyx_k_No_site_with_name, sizeof(__pyx_k_No_site_with_name), 0, 1, 0, 0},
    {&__pyx_kp_u_No_tendon_with_id_d_exists, __pyx_k_No_tendon_with_id_d_exists, sizeof(__pyx_k_No_tendon_with_id_d_exists), 0, 1, 0, 0},
    {&__pyx_kp_u_No_tendon_with_name, __pyx_k_No_tendon_with_name, sizeof(__pyx_k_No_tendon_with_name), 0, 1, 0, 0},
    {&__pyx_kp_u_No_userdata_with_id_d_exists, __pyx_k_No_userdata_with_id_d_exists, sizeof(__pyx_k_No_userdata_with_id_d_exists), 0, 1, 0, 0},
    {&__pyx_kp_u_No_userdata_with_name, __pyx_k_No_userdata_with_name, sizeof(__pyx_k_No_userdata_with_name), 0, 1, 0, 0},
    {&__pyx_kp_u_None, __pyx_k_None, sizeof(__pyx_k_None), 0, 1, 0, 0},
    {&__pyx_n_s_NotImplemented, __pyx_k_NotImplemented, sizeof(__pyx_k_NotImplemented), 0, 0, 1, 1},
    {&__pyx_n_s_NotImplementedError, __pyx_k_NotImplementedError, sizeof(__pyx_k_NotImplementedError), 0, 0, 1, 1},
    {&__pyx_n_s_Number, __pyx_k_Number, sizeof(__pyx_k_Number), 0, 0, 1, 1},
    {&__pyx_kp_u_Numpy_array_values_in_udd_state, __pyx_k_Numpy_array_values_in_udd_state, sizeof(__pyx_k_Numpy_array_values_in_udd_state), 0, 1, 0, 0},
    {&__pyx_n_b_O, __pyx_k_O, sizeof(__pyx_k_O), 0, 0, 0, 1},
    {&__pyx_n_s_OBJ_UNKNOWN, __pyx_k_OBJ_UNKNOWN, sizeof(__pyx_k_OBJ_UNKNOWN), 0, 0, 1, 1},
    {&__pyx_n_s_OffscreenOpenGLContext, __pyx_k_OffscreenOpenGLContext, sizeof(__pyx_k_OffscreenOpenGLContext), 0, 0, 1, 1},
    {&__pyx_n_s_OffscreenOpenGLContext___init, __pyx_k_OffscreenOpenGLContext___init, sizeof(__pyx_k_OffscreenOpenGLContext___init), 0, 0, 1, 1},
    {&__pyx_n_s_OffscreenOpenGLContext_close, __pyx_k_OffscreenOpenGLContext_close, sizeof(__pyx_k_OffscreenOpenGLContext_close), 0, 0, 1, 1},
    {&__pyx_n_s_OffscreenOpenGLContext_make_cont, __pyx_k_OffscreenOpenGLContext_make_cont, sizeof(__pyx_k_OffscreenOpenGLContext_make_cont), 0, 0, 1, 1},
    {&__pyx_n_s_OffscreenOpenGLContext_set_buffe, __pyx_k_OffscreenOpenGLContext_set_buffe, sizeof(__pyx_k_OffscreenOpenGLContext_set_buffe), 0, 0, 1, 1},
    {&__pyx_kp_u_Offscreen_rendering_not_supporte, __pyx_k_Offscreen_rendering_not_supporte, sizeof(__pyx_k_Offscreen_rendering_not_supporte), 0, 1, 0, 0},
    {&__pyx_kp_u_Only_GlfwContext_supported_for_w, __pyx_k_Only_GlfwContext_supported_for_w, sizeof(__pyx_k_Only_GlfwContext_supported_for_w), 0, 1, 0, 0},
    {&__pyx_kp_u_Only_label_is_a_string_in_mjvGeo, __pyx_k_Only_label_is_a_string_in_mjvGeo, sizeof(__pyx_k_Only_label_is_a_string_in_mjvGeo), 0, 1, 0, 0},
    {&__pyx_n_s_OpenGLContext, __pyx_k_OpenGLContext, sizeof(__pyx_k_OpenGLContext), 0, 0, 1, 1},
    {&__pyx_n_s_OpenGLContext_make_context_curre, __pyx_k_OpenGLContext_make_context_curre, sizeof(__pyx_k_OpenGLContext_make_context_curre), 0, 0, 1, 1},
    {&__pyx_n_s_OpenGLContext_set_buffer_size, __pyx_k_OpenGLContext_set_buffer_size, sizeof(__pyx_k_OpenGLContext_set_buffer_size), 0, 0, 1, 1},
    {&__pyx_kp_u_Out_of_bounds_on_buffer_access_a, __pyx_k_Out_of_bounds_on_buffer_access_a, sizeof(__pyx_k_Out_of_bounds_on_buffer_access_a), 0, 1, 0, 0},
    {&__pyx_n_s_OverflowError, __pyx_k_OverflowError, sizeof(__pyx_k_OverflowError), 0, 0, 1, 1},
    {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjContact, __pyx_k_PyMjContact, sizeof(__pyx_k_PyMjContact), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjContact___reduce_cython, __pyx_k_PyMjContact___reduce_cython, sizeof(__pyx_k_PyMjContact___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjContact___setstate_cython, __pyx_k_PyMjContact___setstate_cython, sizeof(__pyx_k_PyMjContact___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData, __pyx_k_PyMjData, sizeof(__pyx_k_PyMjData), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData___reduce_cython, __pyx_k_PyMjData___reduce_cython, sizeof(__pyx_k_PyMjData___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData___setstate_cython, __pyx_k_PyMjData___setstate_cython, sizeof(__pyx_k_PyMjData___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_body_jacp, __pyx_k_PyMjData_get_body_jacp, sizeof(__pyx_k_PyMjData_get_body_jacp), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_body_jacr, __pyx_k_PyMjData_get_body_jacr, sizeof(__pyx_k_PyMjData_get_body_jacr), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_body_ximat, __pyx_k_PyMjData_get_body_ximat, sizeof(__pyx_k_PyMjData_get_body_ximat), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_body_xipos, __pyx_k_PyMjData_get_body_xipos, sizeof(__pyx_k_PyMjData_get_body_xipos), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_body_xmat, __pyx_k_PyMjData_get_body_xmat, sizeof(__pyx_k_PyMjData_get_body_xmat), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_body_xpos, __pyx_k_PyMjData_get_body_xpos, sizeof(__pyx_k_PyMjData_get_body_xpos), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_body_xquat, __pyx_k_PyMjData_get_body_xquat, sizeof(__pyx_k_PyMjData_get_body_xquat), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_body_xvelp, __pyx_k_PyMjData_get_body_xvelp, sizeof(__pyx_k_PyMjData_get_body_xvelp), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_body_xvelr, __pyx_k_PyMjData_get_body_xvelr, sizeof(__pyx_k_PyMjData_get_body_xvelr), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_cam_xmat, __pyx_k_PyMjData_get_cam_xmat, sizeof(__pyx_k_PyMjData_get_cam_xmat), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_cam_xpos, __pyx_k_PyMjData_get_cam_xpos, sizeof(__pyx_k_PyMjData_get_cam_xpos), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_camera_xmat, __pyx_k_PyMjData_get_camera_xmat, sizeof(__pyx_k_PyMjData_get_camera_xmat), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_camera_xpos, __pyx_k_PyMjData_get_camera_xpos, sizeof(__pyx_k_PyMjData_get_camera_xpos), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_geom_jacp, __pyx_k_PyMjData_get_geom_jacp, sizeof(__pyx_k_PyMjData_get_geom_jacp), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_geom_jacr, __pyx_k_PyMjData_get_geom_jacr, sizeof(__pyx_k_PyMjData_get_geom_jacr), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_geom_xmat, __pyx_k_PyMjData_get_geom_xmat, sizeof(__pyx_k_PyMjData_get_geom_xmat), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_geom_xpos, __pyx_k_PyMjData_get_geom_xpos, sizeof(__pyx_k_PyMjData_get_geom_xpos), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_geom_xvelp, __pyx_k_PyMjData_get_geom_xvelp, sizeof(__pyx_k_PyMjData_get_geom_xvelp), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_geom_xvelr, __pyx_k_PyMjData_get_geom_xvelr, sizeof(__pyx_k_PyMjData_get_geom_xvelr), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_joint_qpos, __pyx_k_PyMjData_get_joint_qpos, sizeof(__pyx_k_PyMjData_get_joint_qpos), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_joint_qvel, __pyx_k_PyMjData_get_joint_qvel, sizeof(__pyx_k_PyMjData_get_joint_qvel), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_joint_xanchor, __pyx_k_PyMjData_get_joint_xanchor, sizeof(__pyx_k_PyMjData_get_joint_xanchor), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_joint_xaxis, __pyx_k_PyMjData_get_joint_xaxis, sizeof(__pyx_k_PyMjData_get_joint_xaxis), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_light_xdir, __pyx_k_PyMjData_get_light_xdir, sizeof(__pyx_k_PyMjData_get_light_xdir), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_light_xpos, __pyx_k_PyMjData_get_light_xpos, sizeof(__pyx_k_PyMjData_get_light_xpos), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_mocap_pos, __pyx_k_PyMjData_get_mocap_pos, sizeof(__pyx_k_PyMjData_get_mocap_pos), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_mocap_quat, __pyx_k_PyMjData_get_mocap_quat, sizeof(__pyx_k_PyMjData_get_mocap_quat), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_sensor, __pyx_k_PyMjData_get_sensor, sizeof(__pyx_k_PyMjData_get_sensor), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_sensordata, __pyx_k_PyMjData_get_sensordata, sizeof(__pyx_k_PyMjData_get_sensordata), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_site_jacp, __pyx_k_PyMjData_get_site_jacp, sizeof(__pyx_k_PyMjData_get_site_jacp), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_site_jacr, __pyx_k_PyMjData_get_site_jacr, sizeof(__pyx_k_PyMjData_get_site_jacr), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_site_xmat, __pyx_k_PyMjData_get_site_xmat, sizeof(__pyx_k_PyMjData_get_site_xmat), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_site_xpos, __pyx_k_PyMjData_get_site_xpos, sizeof(__pyx_k_PyMjData_get_site_xpos), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_site_xvelp, __pyx_k_PyMjData_get_site_xvelp, sizeof(__pyx_k_PyMjData_get_site_xvelp), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_site_xvelr, __pyx_k_PyMjData_get_site_xvelr, sizeof(__pyx_k_PyMjData_get_site_xvelr), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_userdata, __pyx_k_PyMjData_get_userdata, sizeof(__pyx_k_PyMjData_get_userdata), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_xanchor, __pyx_k_PyMjData_get_xanchor, sizeof(__pyx_k_PyMjData_get_xanchor), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_xaxis, __pyx_k_PyMjData_get_xaxis, sizeof(__pyx_k_PyMjData_get_xaxis), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_ximat, __pyx_k_PyMjData_get_ximat, sizeof(__pyx_k_PyMjData_get_ximat), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_xipos, __pyx_k_PyMjData_get_xipos, sizeof(__pyx_k_PyMjData_get_xipos), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_xmat, __pyx_k_PyMjData_get_xmat, sizeof(__pyx_k_PyMjData_get_xmat), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_xpos, __pyx_k_PyMjData_get_xpos, sizeof(__pyx_k_PyMjData_get_xpos), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_get_xquat, __pyx_k_PyMjData_get_xquat, sizeof(__pyx_k_PyMjData_get_xquat), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_set_joint_qpos, __pyx_k_PyMjData_set_joint_qpos, sizeof(__pyx_k_PyMjData_set_joint_qpos), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_set_joint_qvel, __pyx_k_PyMjData_set_joint_qvel, sizeof(__pyx_k_PyMjData_set_joint_qvel), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_set_mocap_pos, __pyx_k_PyMjData_set_mocap_pos, sizeof(__pyx_k_PyMjData_set_mocap_pos), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjData_set_mocap_quat, __pyx_k_PyMjData_set_mocap_quat, sizeof(__pyx_k_PyMjData_set_mocap_quat), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjLROpt, __pyx_k_PyMjLROpt, sizeof(__pyx_k_PyMjLROpt), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjLROpt___reduce_cython, __pyx_k_PyMjLROpt___reduce_cython, sizeof(__pyx_k_PyMjLROpt___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjLROpt___setstate_cython, __pyx_k_PyMjLROpt___setstate_cython, sizeof(__pyx_k_PyMjLROpt___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel, __pyx_k_PyMjModel, sizeof(__pyx_k_PyMjModel), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel___reduce_cython, __pyx_k_PyMjModel___reduce_cython, sizeof(__pyx_k_PyMjModel___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel___setstate_cython, __pyx_k_PyMjModel___setstate_cython, sizeof(__pyx_k_PyMjModel___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel__extract_mj_names_loca, __pyx_k_PyMjModel__extract_mj_names_loca, sizeof(__pyx_k_PyMjModel__extract_mj_names_loca), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_actuator_id2name, __pyx_k_PyMjModel_actuator_id2name, sizeof(__pyx_k_PyMjModel_actuator_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_actuator_name2id, __pyx_k_PyMjModel_actuator_name2id, sizeof(__pyx_k_PyMjModel_actuator_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_body_id2name, __pyx_k_PyMjModel_body_id2name, sizeof(__pyx_k_PyMjModel_body_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_body_name2id, __pyx_k_PyMjModel_body_name2id, sizeof(__pyx_k_PyMjModel_body_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_camera_id2name, __pyx_k_PyMjModel_camera_id2name, sizeof(__pyx_k_PyMjModel_camera_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_camera_name2id, __pyx_k_PyMjModel_camera_name2id, sizeof(__pyx_k_PyMjModel_camera_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_geom_id2name, __pyx_k_PyMjModel_geom_id2name, sizeof(__pyx_k_PyMjModel_geom_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_geom_name2id, __pyx_k_PyMjModel_geom_name2id, sizeof(__pyx_k_PyMjModel_geom_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_get_joint_qpos_addr, __pyx_k_PyMjModel_get_joint_qpos_addr, sizeof(__pyx_k_PyMjModel_get_joint_qpos_addr), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_get_joint_qvel_addr, __pyx_k_PyMjModel_get_joint_qvel_addr, sizeof(__pyx_k_PyMjModel_get_joint_qvel_addr), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_get_mjb, __pyx_k_PyMjModel_get_mjb, sizeof(__pyx_k_PyMjModel_get_mjb), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_get_xml, __pyx_k_PyMjModel_get_xml, sizeof(__pyx_k_PyMjModel_get_xml), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_joint_id2name, __pyx_k_PyMjModel_joint_id2name, sizeof(__pyx_k_PyMjModel_joint_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_joint_name2id, __pyx_k_PyMjModel_joint_name2id, sizeof(__pyx_k_PyMjModel_joint_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_light_id2name, __pyx_k_PyMjModel_light_id2name, sizeof(__pyx_k_PyMjModel_light_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_light_name2id, __pyx_k_PyMjModel_light_name2id, sizeof(__pyx_k_PyMjModel_light_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_mesh_id2name, __pyx_k_PyMjModel_mesh_id2name, sizeof(__pyx_k_PyMjModel_mesh_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_mesh_name2id, __pyx_k_PyMjModel_mesh_name2id, sizeof(__pyx_k_PyMjModel_mesh_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_sensor_id2name, __pyx_k_PyMjModel_sensor_id2name, sizeof(__pyx_k_PyMjModel_sensor_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_sensor_name2id, __pyx_k_PyMjModel_sensor_name2id, sizeof(__pyx_k_PyMjModel_sensor_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_set_userdata_names, __pyx_k_PyMjModel_set_userdata_names, sizeof(__pyx_k_PyMjModel_set_userdata_names), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_site_id2name, __pyx_k_PyMjModel_site_id2name, sizeof(__pyx_k_PyMjModel_site_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_site_name2id, __pyx_k_PyMjModel_site_name2id, sizeof(__pyx_k_PyMjModel_site_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_tendon_id2name, __pyx_k_PyMjModel_tendon_id2name, sizeof(__pyx_k_PyMjModel_tendon_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_tendon_name2id, __pyx_k_PyMjModel_tendon_name2id, sizeof(__pyx_k_PyMjModel_tendon_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_userdata_id2name, __pyx_k_PyMjModel_userdata_id2name, sizeof(__pyx_k_PyMjModel_userdata_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjModel_userdata_name2id, __pyx_k_PyMjModel_userdata_name2id, sizeof(__pyx_k_PyMjModel_userdata_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjOption, __pyx_k_PyMjOption, sizeof(__pyx_k_PyMjOption), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjOption___reduce_cython, __pyx_k_PyMjOption___reduce_cython, sizeof(__pyx_k_PyMjOption___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjOption___setstate_cython, __pyx_k_PyMjOption___setstate_cython, sizeof(__pyx_k_PyMjOption___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjSolverStat, __pyx_k_PyMjSolverStat, sizeof(__pyx_k_PyMjSolverStat), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjSolverStat___reduce_cython, __pyx_k_PyMjSolverStat___reduce_cython, sizeof(__pyx_k_PyMjSolverStat___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjSolverStat___setstate_cython, __pyx_k_PyMjSolverStat___setstate_cython, sizeof(__pyx_k_PyMjSolverStat___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjStatistic, __pyx_k_PyMjStatistic, sizeof(__pyx_k_PyMjStatistic), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjStatistic___reduce_cython, __pyx_k_PyMjStatistic___reduce_cython, sizeof(__pyx_k_PyMjStatistic___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjStatistic___setstate_cython, __pyx_k_PyMjStatistic___setstate_cython, sizeof(__pyx_k_PyMjStatistic___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjTimerStat, __pyx_k_PyMjTimerStat, sizeof(__pyx_k_PyMjTimerStat), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjTimerStat___reduce_cython, __pyx_k_PyMjTimerStat___reduce_cython, sizeof(__pyx_k_PyMjTimerStat___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjTimerStat___setstate_cython, __pyx_k_PyMjTimerStat___setstate_cython, sizeof(__pyx_k_PyMjTimerStat___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjUI, __pyx_k_PyMjUI, sizeof(__pyx_k_PyMjUI), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjUI___reduce_cython, __pyx_k_PyMjUI___reduce_cython, sizeof(__pyx_k_PyMjUI___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjUI___setstate_cython, __pyx_k_PyMjUI___setstate_cython, sizeof(__pyx_k_PyMjUI___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVFS, __pyx_k_PyMjVFS, sizeof(__pyx_k_PyMjVFS), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVFS___reduce_cython, __pyx_k_PyMjVFS___reduce_cython, sizeof(__pyx_k_PyMjVFS___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVFS___setstate_cython, __pyx_k_PyMjVFS___setstate_cython, sizeof(__pyx_k_PyMjVFS___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual, __pyx_k_PyMjVisual, sizeof(__pyx_k_PyMjVisual), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual___reduce_cython, __pyx_k_PyMjVisual___reduce_cython, sizeof(__pyx_k_PyMjVisual___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual___setstate_cython, __pyx_k_PyMjVisual___setstate_cython, sizeof(__pyx_k_PyMjVisual___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_global, __pyx_k_PyMjVisual_global, sizeof(__pyx_k_PyMjVisual_global), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_global____reduce_cyth, __pyx_k_PyMjVisual_global____reduce_cyth, sizeof(__pyx_k_PyMjVisual_global____reduce_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_global____setstate_cy, __pyx_k_PyMjVisual_global____setstate_cy, sizeof(__pyx_k_PyMjVisual_global____setstate_cy), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_headlight, __pyx_k_PyMjVisual_headlight, sizeof(__pyx_k_PyMjVisual_headlight), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_headlight___reduce_cy, __pyx_k_PyMjVisual_headlight___reduce_cy, sizeof(__pyx_k_PyMjVisual_headlight___reduce_cy), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_headlight___setstate, __pyx_k_PyMjVisual_headlight___setstate, sizeof(__pyx_k_PyMjVisual_headlight___setstate), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_map, __pyx_k_PyMjVisual_map, sizeof(__pyx_k_PyMjVisual_map), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_map___reduce_cython, __pyx_k_PyMjVisual_map___reduce_cython, sizeof(__pyx_k_PyMjVisual_map___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_map___setstate_cython, __pyx_k_PyMjVisual_map___setstate_cython, sizeof(__pyx_k_PyMjVisual_map___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_quality, __pyx_k_PyMjVisual_quality, sizeof(__pyx_k_PyMjVisual_quality), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_quality___reduce_cyth, __pyx_k_PyMjVisual_quality___reduce_cyth, sizeof(__pyx_k_PyMjVisual_quality___reduce_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_quality___setstate_cy, __pyx_k_PyMjVisual_quality___setstate_cy, sizeof(__pyx_k_PyMjVisual_quality___setstate_cy), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_rgba, __pyx_k_PyMjVisual_rgba, sizeof(__pyx_k_PyMjVisual_rgba), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_rgba___reduce_cython, __pyx_k_PyMjVisual_rgba___reduce_cython, sizeof(__pyx_k_PyMjVisual_rgba___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_rgba___setstate_cytho, __pyx_k_PyMjVisual_rgba___setstate_cytho, sizeof(__pyx_k_PyMjVisual_rgba___setstate_cytho), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_scale, __pyx_k_PyMjVisual_scale, sizeof(__pyx_k_PyMjVisual_scale), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_scale___reduce_cython, __pyx_k_PyMjVisual_scale___reduce_cython, sizeof(__pyx_k_PyMjVisual_scale___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjVisual_scale___setstate_cyth, __pyx_k_PyMjVisual_scale___setstate_cyth, sizeof(__pyx_k_PyMjVisual_scale___setstate_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjWarningStat, __pyx_k_PyMjWarningStat, sizeof(__pyx_k_PyMjWarningStat), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjWarningStat___reduce_cython, __pyx_k_PyMjWarningStat___reduce_cython, sizeof(__pyx_k_PyMjWarningStat___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjWarningStat___setstate_cytho, __pyx_k_PyMjWarningStat___setstate_cytho, sizeof(__pyx_k_PyMjWarningStat___setstate_cytho), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjrContext, __pyx_k_PyMjrContext, sizeof(__pyx_k_PyMjrContext), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjrContext___reduce_cython, __pyx_k_PyMjrContext___reduce_cython, sizeof(__pyx_k_PyMjrContext___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjrContext___setstate_cython, __pyx_k_PyMjrContext___setstate_cython, sizeof(__pyx_k_PyMjrContext___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjrRect, __pyx_k_PyMjrRect, sizeof(__pyx_k_PyMjrRect), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjrRect___reduce_cython, __pyx_k_PyMjrRect___reduce_cython, sizeof(__pyx_k_PyMjrRect___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjrRect___setstate_cython, __pyx_k_PyMjrRect___setstate_cython, sizeof(__pyx_k_PyMjrRect___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiDef, __pyx_k_PyMjuiDef, sizeof(__pyx_k_PyMjuiDef), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiDef___reduce_cython, __pyx_k_PyMjuiDef___reduce_cython, sizeof(__pyx_k_PyMjuiDef___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiDef___setstate_cython, __pyx_k_PyMjuiDef___setstate_cython, sizeof(__pyx_k_PyMjuiDef___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiItem, __pyx_k_PyMjuiItem, sizeof(__pyx_k_PyMjuiItem), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiItem___reduce_cython, __pyx_k_PyMjuiItem___reduce_cython, sizeof(__pyx_k_PyMjuiItem___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiItem___setstate_cython, __pyx_k_PyMjuiItem___setstate_cython, sizeof(__pyx_k_PyMjuiItem___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiSection, __pyx_k_PyMjuiSection, sizeof(__pyx_k_PyMjuiSection), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiSection___reduce_cython, __pyx_k_PyMjuiSection___reduce_cython, sizeof(__pyx_k_PyMjuiSection___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiSection___setstate_cython, __pyx_k_PyMjuiSection___setstate_cython, sizeof(__pyx_k_PyMjuiSection___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiState, __pyx_k_PyMjuiState, sizeof(__pyx_k_PyMjuiState), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiState___reduce_cython, __pyx_k_PyMjuiState___reduce_cython, sizeof(__pyx_k_PyMjuiState___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiState___setstate_cython, __pyx_k_PyMjuiState___setstate_cython, sizeof(__pyx_k_PyMjuiState___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiThemeColor, __pyx_k_PyMjuiThemeColor, sizeof(__pyx_k_PyMjuiThemeColor), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiThemeColor___reduce_cython, __pyx_k_PyMjuiThemeColor___reduce_cython, sizeof(__pyx_k_PyMjuiThemeColor___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiThemeColor___setstate_cyth, __pyx_k_PyMjuiThemeColor___setstate_cyth, sizeof(__pyx_k_PyMjuiThemeColor___setstate_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiThemeSpacing, __pyx_k_PyMjuiThemeSpacing, sizeof(__pyx_k_PyMjuiThemeSpacing), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiThemeSpacing___reduce_cyth, __pyx_k_PyMjuiThemeSpacing___reduce_cyth, sizeof(__pyx_k_PyMjuiThemeSpacing___reduce_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjuiThemeSpacing___setstate_cy, __pyx_k_PyMjuiThemeSpacing___setstate_cy, sizeof(__pyx_k_PyMjuiThemeSpacing___setstate_cy), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvCamera, __pyx_k_PyMjvCamera, sizeof(__pyx_k_PyMjvCamera), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvCamera___reduce_cython, __pyx_k_PyMjvCamera___reduce_cython, sizeof(__pyx_k_PyMjvCamera___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvCamera___setstate_cython, __pyx_k_PyMjvCamera___setstate_cython, sizeof(__pyx_k_PyMjvCamera___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvFigure, __pyx_k_PyMjvFigure, sizeof(__pyx_k_PyMjvFigure), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvFigure___reduce_cython, __pyx_k_PyMjvFigure___reduce_cython, sizeof(__pyx_k_PyMjvFigure___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvFigure___setstate_cython, __pyx_k_PyMjvFigure___setstate_cython, sizeof(__pyx_k_PyMjvFigure___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvGLCamera, __pyx_k_PyMjvGLCamera, sizeof(__pyx_k_PyMjvGLCamera), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvGLCamera___reduce_cython, __pyx_k_PyMjvGLCamera___reduce_cython, sizeof(__pyx_k_PyMjvGLCamera___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvGLCamera___setstate_cython, __pyx_k_PyMjvGLCamera___setstate_cython, sizeof(__pyx_k_PyMjvGLCamera___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvGeom, __pyx_k_PyMjvGeom, sizeof(__pyx_k_PyMjvGeom), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvGeom___reduce_cython, __pyx_k_PyMjvGeom___reduce_cython, sizeof(__pyx_k_PyMjvGeom___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvGeom___setstate_cython, __pyx_k_PyMjvGeom___setstate_cython, sizeof(__pyx_k_PyMjvGeom___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvLight, __pyx_k_PyMjvLight, sizeof(__pyx_k_PyMjvLight), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvLight___reduce_cython, __pyx_k_PyMjvLight___reduce_cython, sizeof(__pyx_k_PyMjvLight___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvLight___setstate_cython, __pyx_k_PyMjvLight___setstate_cython, sizeof(__pyx_k_PyMjvLight___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvOption, __pyx_k_PyMjvOption, sizeof(__pyx_k_PyMjvOption), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvOption___reduce_cython, __pyx_k_PyMjvOption___reduce_cython, sizeof(__pyx_k_PyMjvOption___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvOption___setstate_cython, __pyx_k_PyMjvOption___setstate_cython, sizeof(__pyx_k_PyMjvOption___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvPerturb, __pyx_k_PyMjvPerturb, sizeof(__pyx_k_PyMjvPerturb), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvPerturb___reduce_cython, __pyx_k_PyMjvPerturb___reduce_cython, sizeof(__pyx_k_PyMjvPerturb___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvPerturb___setstate_cython, __pyx_k_PyMjvPerturb___setstate_cython, sizeof(__pyx_k_PyMjvPerturb___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvScene, __pyx_k_PyMjvScene, sizeof(__pyx_k_PyMjvScene), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvScene___reduce_cython, __pyx_k_PyMjvScene___reduce_cython, sizeof(__pyx_k_PyMjvScene___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PyMjvScene___setstate_cython, __pyx_k_PyMjvScene___setstate_cython, sizeof(__pyx_k_PyMjvScene___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_RND_IDCOLOR, __pyx_k_RND_IDCOLOR, sizeof(__pyx_k_RND_IDCOLOR), 0, 0, 1, 1},
    {&__pyx_n_s_RND_SEGMENT, __pyx_k_RND_SEGMENT, sizeof(__pyx_k_RND_SEGMENT), 0, 0, 1, 1},
    {&__pyx_kp_u_Ran_out_of_geoms_maxgeom_d, __pyx_k_Ran_out_of_geoms_maxgeom_d, sizeof(__pyx_k_Ran_out_of_geoms_maxgeom_d), 0, 1, 0, 0},
    {&__pyx_n_s_RegisteredBuffer, __pyx_k_RegisteredBuffer, sizeof(__pyx_k_RegisteredBuffer), 0, 0, 1, 1},
    {&__pyx_kp_s_Represents_a_snapshot_of_the_sim, __pyx_k_Represents_a_snapshot_of_the_sim, sizeof(__pyx_k_Represents_a_snapshot_of_the_sim), 0, 0, 1, 0},
    {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1},
    {&__pyx_n_s_SAMPLES, __pyx_k_SAMPLES, sizeof(__pyx_k_SAMPLES), 0, 0, 1, 1},
    {&__pyx_n_s_Sequence, __pyx_k_Sequence, sizeof(__pyx_k_Sequence), 0, 0, 1, 1},
    {&__pyx_n_u_SimStateBase, __pyx_k_SimStateBase, sizeof(__pyx_k_SimStateBase), 0, 1, 0, 1},
    {&__pyx_kp_s_Step_may_not_be_zero_axis_d, __pyx_k_Step_may_not_be_zero_axis_d, sizeof(__pyx_k_Step_may_not_be_zero_axis_d), 0, 0, 1, 0},
    {&__pyx_kp_b_T, __pyx_k_T, sizeof(__pyx_k_T), 0, 0, 0, 0},
    {&__pyx_n_s_TemporaryDirectory, __pyx_k_TemporaryDirectory, sizeof(__pyx_k_TemporaryDirectory), 0, 0, 1, 1},
    {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
    {&__pyx_kp_s_Unable_to_convert_item_to_object, __pyx_k_Unable_to_convert_item_to_object, sizeof(__pyx_k_Unable_to_convert_item_to_object), 0, 0, 1, 0},
    {&__pyx_kp_u_Unrecognized_extension_for_s_Exp, __pyx_k_Unrecognized_extension_for_s_Exp, sizeof(__pyx_k_Unrecognized_extension_for_s_Exp), 0, 1, 0, 0},
    {&__pyx_kp_u_Unsupported_format_Valid_ones_ar, __pyx_k_Unsupported_format_Valid_ones_ar, sizeof(__pyx_k_Unsupported_format_Valid_ones_ar), 0, 1, 0, 0},
    {&__pyx_kp_s_Utility_class_for_rendering_int, __pyx_k_Utility_class_for_rendering_int, sizeof(__pyx_k_Utility_class_for_rendering_int), 0, 0, 1, 0},
    {&__pyx_n_s_VISIBLE, __pyx_k_VISIBLE, sizeof(__pyx_k_VISIBLE), 0, 0, 1, 1},
    {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
    {&__pyx_kp_u_Value_has_incorrect_shape, __pyx_k_Value_has_incorrect_shape, sizeof(__pyx_k_Value_has_incorrect_shape), 0, 1, 0, 0},
    {&__pyx_n_s_View_MemoryView, __pyx_k_View_MemoryView, sizeof(__pyx_k_View_MemoryView), 0, 0, 1, 1},
    {&__pyx_kp_u_Window_rendering_not_supported, __pyx_k_Window_rendering_not_supported, sizeof(__pyx_k_Window_rendering_not_supported), 0, 1, 0, 0},
    {&__pyx_kp_b__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 0, 0, 0},
    {&__pyx_kp_u__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 1, 0, 0},
    {&__pyx_kp_b__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 0, 0, 0},
    {&__pyx_kp_b__12, __pyx_k__12, sizeof(__pyx_k__12), 0, 0, 0, 0},
    {&__pyx_kp_u__13, __pyx_k__13, sizeof(__pyx_k__13), 0, 1, 0, 0},
    {&__pyx_kp_u__14, __pyx_k__14, sizeof(__pyx_k__14), 0, 1, 0, 0},
    {&__pyx_kp_u__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 0},
    {&__pyx_n_s__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 0, 1, 1},
    {&__pyx_kp_u__34, __pyx_k__34, sizeof(__pyx_k__34), 0, 1, 0, 0},
    {&__pyx_kp_u__41, __pyx_k__41, sizeof(__pyx_k__41), 0, 1, 0, 0},
    {&__pyx_kp_u__44, __pyx_k__44, sizeof(__pyx_k__44), 0, 1, 0, 0},
    {&__pyx_kp_u__52, __pyx_k__52, sizeof(__pyx_k__52), 0, 1, 0, 0},
    {&__pyx_kp_u__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 1, 0, 0},
    {&__pyx_n_s__637, __pyx_k__637, sizeof(__pyx_k__637), 0, 0, 1, 1},
    {&__pyx_kp_u__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 1, 0, 0},
    {&__pyx_n_s__778, __pyx_k__778, sizeof(__pyx_k__778), 0, 0, 1, 1},
    {&__pyx_kp_b__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 0, 0, 0},
    {&__pyx_n_s_a, __pyx_k_a, sizeof(__pyx_k_a), 0, 0, 1, 1},
    {&__pyx_n_s_a0, __pyx_k_a0, sizeof(__pyx_k_a0), 0, 0, 1, 1},
    {&__pyx_n_s_a1, __pyx_k_a1, sizeof(__pyx_k_a1), 0, 0, 1, 1},
    {&__pyx_n_s_a2, __pyx_k_a2, sizeof(__pyx_k_a2), 0, 0, 1, 1},
    {&__pyx_n_s_abc, __pyx_k_abc, sizeof(__pyx_k_abc), 0, 0, 1, 1},
    {&__pyx_n_s_abstractmethod, __pyx_k_abstractmethod, sizeof(__pyx_k_abstractmethod), 0, 0, 1, 1},
    {&__pyx_n_s_acc0, __pyx_k_acc0, sizeof(__pyx_k_acc0), 0, 0, 1, 1},
    {&__pyx_n_s_act, __pyx_k_act, sizeof(__pyx_k_act), 0, 0, 1, 1},
    {&__pyx_n_u_act, __pyx_k_act, sizeof(__pyx_k_act), 0, 1, 0, 1},
    {&__pyx_n_s_action, __pyx_k_action, sizeof(__pyx_k_action), 0, 0, 1, 1},
    {&__pyx_kp_u_active_contacts_efc_pos_should_b, __pyx_k_active_contacts_efc_pos_should_b, sizeof(__pyx_k_active_contacts_efc_pos_should_b), 0, 1, 0, 0},
    {&__pyx_n_s_actuator_id2name, __pyx_k_actuator_id2name, sizeof(__pyx_k_actuator_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_actuator_name2id, __pyx_k_actuator_name2id, sizeof(__pyx_k_actuator_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_add_marker, __pyx_k_add_marker, sizeof(__pyx_k_add_marker), 0, 0, 1, 1},
    {&__pyx_n_s_add_marker_to_scene, __pyx_k_add_marker_to_scene, sizeof(__pyx_k_add_marker_to_scene), 0, 0, 1, 1},
    {&__pyx_n_s_add_mujoco_bin_to_dyld_library, __pyx_k_add_mujoco_bin_to_dyld_library, sizeof(__pyx_k_add_mujoco_bin_to_dyld_library), 0, 0, 1, 1},
    {&__pyx_n_s_add_overlay, __pyx_k_add_overlay, sizeof(__pyx_k_add_overlay), 0, 0, 1, 1},
    {&__pyx_n_s_add_render_context, __pyx_k_add_render_context, sizeof(__pyx_k_add_render_context), 0, 0, 1, 1},
    {&__pyx_n_s_addr, __pyx_k_addr, sizeof(__pyx_k_addr), 0, 0, 1, 1},
    {&__pyx_n_s_allocate_buffer, __pyx_k_allocate_buffer, sizeof(__pyx_k_allocate_buffer), 0, 0, 1, 1},
    {&__pyx_kp_u_and, __pyx_k_and, sizeof(__pyx_k_and), 0, 1, 0, 0},
    {&__pyx_n_s_angle, __pyx_k_angle, sizeof(__pyx_k_angle), 0, 0, 1, 1},
    {&__pyx_n_s_appendChild, __pyx_k_appendChild, sizeof(__pyx_k_appendChild), 0, 0, 1, 1},
    {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1},
    {&__pyx_n_s_arr, __pyx_k_arr, sizeof(__pyx_k_arr), 0, 0, 1, 1},
    {&__pyx_n_s_array, __pyx_k_array, sizeof(__pyx_k_array), 0, 0, 1, 1},
    {&__pyx_n_s_array_equal, __pyx_k_array_equal, sizeof(__pyx_k_array_equal), 0, 0, 1, 1},
    {&__pyx_n_s_asarray, __pyx_k_asarray, sizeof(__pyx_k_asarray), 0, 0, 1, 1},
    {&__pyx_n_s_aspectratio, __pyx_k_aspectratio, sizeof(__pyx_k_aspectratio), 0, 0, 1, 1},
    {&__pyx_n_s_asyncio_coroutines, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1},
    {&__pyx_n_s_attr, __pyx_k_attr, sizeof(__pyx_k_attr), 0, 0, 1, 1},
    {&__pyx_n_s_axis, __pyx_k_axis, sizeof(__pyx_k_axis), 0, 0, 1, 1},
    {&__pyx_n_s_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1},
    {&__pyx_n_s_b0, __pyx_k_b0, sizeof(__pyx_k_b0), 0, 0, 1, 1},
    {&__pyx_n_s_b1, __pyx_k_b1, sizeof(__pyx_k_b1), 0, 0, 1, 1},
    {&__pyx_n_s_b2, __pyx_k_b2, sizeof(__pyx_k_b2), 0, 0, 1, 1},
    {&__pyx_kp_u_bad_userdata_names, __pyx_k_bad_userdata_names, sizeof(__pyx_k_bad_userdata_names), 0, 1, 0, 0},
    {&__pyx_n_s_base, __pyx_k_base, sizeof(__pyx_k_base), 0, 0, 1, 1},
    {&__pyx_n_s_batch_offset, __pyx_k_batch_offset, sizeof(__pyx_k_batch_offset), 0, 0, 1, 1},
    {&__pyx_kp_u_batch_offset_out_of_range, __pyx_k_batch_offset_out_of_range, sizeof(__pyx_k_batch_offset_out_of_range), 0, 1, 0, 0},
    {&__pyx_n_s_batch_size, __pyx_k_batch_size, sizeof(__pyx_k_batch_size), 0, 0, 1, 1},
    {&__pyx_n_s_batch_size_2, __pyx_k_batch_size_2, sizeof(__pyx_k_batch_size_2), 0, 0, 1, 1},
    {&__pyx_n_u_bin, __pyx_k_bin, sizeof(__pyx_k_bin), 0, 1, 0, 1},
    {&__pyx_n_s_bin_path, __pyx_k_bin_path, sizeof(__pyx_k_bin_path), 0, 0, 1, 1},
    {&__pyx_n_s_body, __pyx_k_body, sizeof(__pyx_k_body), 0, 0, 1, 1},
    {&__pyx_n_s_body_id, __pyx_k_body_id, sizeof(__pyx_k_body_id), 0, 0, 1, 1},
    {&__pyx_n_s_body_id2name, __pyx_k_body_id2name, sizeof(__pyx_k_body_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_body_jacp, __pyx_k_body_jacp, sizeof(__pyx_k_body_jacp), 0, 0, 1, 1},
    {&__pyx_n_s_body_jacr, __pyx_k_body_jacr, sizeof(__pyx_k_body_jacr), 0, 0, 1, 1},
    {&__pyx_n_s_body_mocapid, __pyx_k_body_mocapid, sizeof(__pyx_k_body_mocapid), 0, 0, 1, 1},
    {&__pyx_n_s_body_name2id, __pyx_k_body_name2id, sizeof(__pyx_k_body_name2id), 0, 0, 1, 1},
    {&__pyx_kp_u_body_xmat_should_be_used_instead, __pyx_k_body_xmat_should_be_used_instead, sizeof(__pyx_k_body_xmat_should_be_used_instead), 0, 1, 0, 0},
    {&__pyx_kp_u_body_xpos_should_be_used_instead, __pyx_k_body_xpos_should_be_used_instead, sizeof(__pyx_k_body_xpos_should_be_used_instead), 0, 1, 0, 0},
    {&__pyx_kp_u_body_xquat_should_be_used_instea, __pyx_k_body_xquat_should_be_used_instea, sizeof(__pyx_k_body_xquat_should_be_used_instea), 0, 1, 0, 0},
    {&__pyx_n_s_bodyexclude, __pyx_k_bodyexclude, sizeof(__pyx_k_bodyexclude), 0, 0, 1, 1},
    {&__pyx_n_s_bottom, __pyx_k_bottom, sizeof(__pyx_k_bottom), 0, 0, 1, 1},
    {&__pyx_n_s_buffer, __pyx_k_buffer, sizeof(__pyx_k_buffer), 0, 0, 1, 1},
    {&__pyx_n_s_buffer_sz, __pyx_k_buffer_sz, sizeof(__pyx_k_buffer_sz), 0, 0, 1, 1},
    {&__pyx_n_s_buffer_view, __pyx_k_buffer_view, sizeof(__pyx_k_buffer_view), 0, 0, 1, 1},
    {&__pyx_n_s_build_callback_fn, __pyx_k_build_callback_fn, sizeof(__pyx_k_build_callback_fn), 0, 0, 1, 1},
    {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1},
    {&__pyx_n_u_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 1, 0, 1},
    {&__pyx_n_s_c1, __pyx_k_c1, sizeof(__pyx_k_c1), 0, 0, 1, 1},
    {&__pyx_n_s_c2, __pyx_k_c2, sizeof(__pyx_k_c2), 0, 0, 1, 1},
    {&__pyx_n_s_cam, __pyx_k_cam, sizeof(__pyx_k_cam), 0, 0, 1, 1},
    {&__pyx_n_s_camera_id, __pyx_k_camera_id, sizeof(__pyx_k_camera_id), 0, 0, 1, 1},
    {&__pyx_n_s_camera_id2name, __pyx_k_camera_id2name, sizeof(__pyx_k_camera_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_camera_name, __pyx_k_camera_name, sizeof(__pyx_k_camera_name), 0, 0, 1, 1},
    {&__pyx_n_s_camera_name2id, __pyx_k_camera_name2id, sizeof(__pyx_k_camera_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_catmask, __pyx_k_catmask, sizeof(__pyx_k_catmask), 0, 0, 1, 1},
    {&__pyx_n_s_childNodes, __pyx_k_childNodes, sizeof(__pyx_k_childNodes), 0, 0, 1, 1},
    {&__pyx_n_s_cinit, __pyx_k_cinit, sizeof(__pyx_k_cinit), 0, 0, 1, 1},
    {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1},
    {&__pyx_n_s_class_getitem, __pyx_k_class_getitem, sizeof(__pyx_k_class_getitem), 0, 0, 1, 1},
    {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
    {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1},
    {&__pyx_n_s_colind, __pyx_k_colind, sizeof(__pyx_k_colind), 0, 0, 1, 1},
    {&__pyx_n_s_collections, __pyx_k_collections, sizeof(__pyx_k_collections), 0, 0, 1, 1},
    {&__pyx_kp_s_collections_abc, __pyx_k_collections_abc, sizeof(__pyx_k_collections_abc), 0, 0, 1, 0},
    {&__pyx_n_s_con, __pyx_k_con, sizeof(__pyx_k_con), 0, 0, 1, 1},
    {&__pyx_n_s_concatenate, __pyx_k_concatenate, sizeof(__pyx_k_concatenate), 0, 0, 1, 1},
    {&__pyx_n_s_const, __pyx_k_const, sizeof(__pyx_k_const), 0, 0, 1, 1},
    {&__pyx_kp_s_contiguous_and_direct, __pyx_k_contiguous_and_direct, sizeof(__pyx_k_contiguous_and_direct), 0, 0, 1, 0},
    {&__pyx_kp_s_contiguous_and_indirect, __pyx_k_contiguous_and_indirect, sizeof(__pyx_k_contiguous_and_indirect), 0, 0, 1, 0},
    {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1},
    {&__pyx_n_s_cost, __pyx_k_cost, sizeof(__pyx_k_cost), 0, 0, 1, 1},
    {&__pyx_n_s_count, __pyx_k_count, sizeof(__pyx_k_count), 0, 0, 1, 1},
    {&__pyx_n_s_createElement, __pyx_k_createElement, sizeof(__pyx_k_createElement), 0, 0, 1, 1},
    {&__pyx_n_s_create_window, __pyx_k_create_window, sizeof(__pyx_k_create_window), 0, 0, 1, 1},
    {&__pyx_n_s_create_window_2, __pyx_k_create_window_2, sizeof(__pyx_k_create_window_2), 0, 0, 1, 1},
    {&__pyx_n_s_ctrl, __pyx_k_ctrl, sizeof(__pyx_k_ctrl), 0, 0, 1, 1},
    {&__pyx_n_s_cuda_buffers_are_mapped, __pyx_k_cuda_buffers_are_mapped, sizeof(__pyx_k_cuda_buffers_are_mapped), 0, 0, 1, 1},
    {&__pyx_n_s_cuda_context, __pyx_k_cuda_context, sizeof(__pyx_k_cuda_context), 0, 0, 1, 1},
    {&__pyx_n_s_cuda_depth_buf_size, __pyx_k_cuda_depth_buf_size, sizeof(__pyx_k_cuda_depth_buf_size), 0, 0, 1, 1},
    {&__pyx_n_s_cuda_depth_buffer_pointer, __pyx_k_cuda_depth_buffer_pointer, sizeof(__pyx_k_cuda_depth_buffer_pointer), 0, 0, 1, 1},
    {&__pyx_n_s_cuda_depth_mapping, __pyx_k_cuda_depth_mapping, sizeof(__pyx_k_cuda_depth_mapping), 0, 0, 1, 1},
    {&__pyx_n_s_cuda_depth_pbo, __pyx_k_cuda_depth_pbo, sizeof(__pyx_k_cuda_depth_pbo), 0, 0, 1, 1},
    {&__pyx_n_s_cuda_depth_ptr, __pyx_k_cuda_depth_ptr, sizeof(__pyx_k_cuda_depth_ptr), 0, 0, 1, 1},
    {&__pyx_n_s_cuda_rgb_buf_size, __pyx_k_cuda_rgb_buf_size, sizeof(__pyx_k_cuda_rgb_buf_size), 0, 0, 1, 1},
    {&__pyx_n_s_cuda_rgb_buffer_pointer, __pyx_k_cuda_rgb_buffer_pointer, sizeof(__pyx_k_cuda_rgb_buffer_pointer), 0, 0, 1, 1},
    {&__pyx_n_s_cuda_rgb_mapping, __pyx_k_cuda_rgb_mapping, sizeof(__pyx_k_cuda_rgb_mapping), 0, 0, 1, 1},
    {&__pyx_n_s_cuda_rgb_pbo, __pyx_k_cuda_rgb_pbo, sizeof(__pyx_k_cuda_rgb_pbo), 0, 0, 1, 1},
    {&__pyx_n_s_cuda_rgb_ptr, __pyx_k_cuda_rgb_ptr, sizeof(__pyx_k_cuda_rgb_ptr), 0, 0, 1, 1},
    {&__pyx_n_s_current_batch_offset, __pyx_k_current_batch_offset, sizeof(__pyx_k_current_batch_offset), 0, 0, 1, 1},
    {&__pyx_n_s_d, __pyx_k_d, sizeof(__pyx_k_d), 0, 0, 1, 1},
    {&__pyx_n_u_d, __pyx_k_d, sizeof(__pyx_k_d), 0, 1, 0, 1},
    {&__pyx_n_u_darwin, __pyx_k_darwin, sizeof(__pyx_k_darwin), 0, 1, 0, 1},
    {&__pyx_n_s_data, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1},
    {&__pyx_n_s_deepcopy, __pyx_k_deepcopy, sizeof(__pyx_k_deepcopy), 0, 0, 1, 1},
    {&__pyx_n_s_def, __pyx_k_def, sizeof(__pyx_k_def), 0, 0, 1, 1},
    {&__pyx_n_s_del, __pyx_k_del, sizeof(__pyx_k_del), 0, 0, 1, 1},
    {&__pyx_n_s_delete, __pyx_k_delete, sizeof(__pyx_k_delete), 0, 0, 1, 1},
    {&__pyx_n_s_depth, __pyx_k_depth, sizeof(__pyx_k_depth), 0, 0, 1, 1},
    {&__pyx_n_s_depth_2, __pyx_k_depth_2, sizeof(__pyx_k_depth_2), 0, 0, 1, 1},
    {&__pyx_n_s_depth_arr, __pyx_k_depth_arr, sizeof(__pyx_k_depth_arr), 0, 0, 1, 1},
    {&__pyx_n_s_depth_img, __pyx_k_depth_img, sizeof(__pyx_k_depth_img), 0, 0, 1, 1},
    {&__pyx_n_s_depth_view, __pyx_k_depth_view, sizeof(__pyx_k_depth_view), 0, 0, 1, 1},
    {&__pyx_n_s_derivative_error, __pyx_k_derivative_error, sizeof(__pyx_k_derivative_error), 0, 0, 1, 1},
    {&__pyx_n_s_derivative_gain_smoothing, __pyx_k_derivative_gain_smoothing, sizeof(__pyx_k_derivative_gain_smoothing), 0, 0, 1, 1},
    {&__pyx_n_s_derivative_time_const, __pyx_k_derivative_time_const, sizeof(__pyx_k_derivative_time_const), 0, 0, 1, 1},
    {&__pyx_n_s_description, __pyx_k_description, sizeof(__pyx_k_description), 0, 0, 1, 1},
    {&__pyx_n_s_dest, __pyx_k_dest, sizeof(__pyx_k_dest), 0, 0, 1, 1},
    {&__pyx_n_s_detach, __pyx_k_detach, sizeof(__pyx_k_detach), 0, 0, 1, 1},
    {&__pyx_n_s_device, __pyx_k_device, sizeof(__pyx_k_device), 0, 0, 1, 1},
    {&__pyx_n_s_device_id, __pyx_k_device_id, sizeof(__pyx_k_device_id), 0, 0, 1, 1},
    {&__pyx_n_s_device_id_2, __pyx_k_device_id_2, sizeof(__pyx_k_device_id_2), 0, 0, 1, 1},
    {&__pyx_n_s_device_ptr_and_size, __pyx_k_device_ptr_and_size, sizeof(__pyx_k_device_ptr_and_size), 0, 0, 1, 1},
    {&__pyx_n_s_diag, __pyx_k_diag, sizeof(__pyx_k_diag), 0, 0, 1, 1},
    {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1},
    {&__pyx_n_s_dim, __pyx_k_dim, sizeof(__pyx_k_dim), 0, 0, 1, 1},
    {&__pyx_n_s_directory, __pyx_k_directory, sizeof(__pyx_k_directory), 0, 0, 1, 1},
    {&__pyx_kp_u_disable, __pyx_k_disable, sizeof(__pyx_k_disable), 0, 1, 0, 0},
    {&__pyx_n_s_discover_mujoco, __pyx_k_discover_mujoco, sizeof(__pyx_k_discover_mujoco), 0, 0, 1, 1},
    {&__pyx_n_s_distance, __pyx_k_distance, sizeof(__pyx_k_distance), 0, 0, 1, 1},
    {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1},
    {&__pyx_kp_u_doesn_t_match_old_pointer, __pyx_k_doesn_t_match_old_pointer, sizeof(__pyx_k_doesn_t_match_old_pointer), 0, 1, 0, 0},
    {&__pyx_n_s_dom, __pyx_k_dom, sizeof(__pyx_k_dom), 0, 0, 1, 1},
    {&__pyx_n_s_dot, __pyx_k_dot, sizeof(__pyx_k_dot), 0, 0, 1, 1},
    {&__pyx_n_s_draw_pixels, __pyx_k_draw_pixels, sizeof(__pyx_k_draw_pixels), 0, 0, 1, 1},
    {&__pyx_n_s_driver, __pyx_k_driver, sizeof(__pyx_k_driver), 0, 0, 1, 1},
    {&__pyx_n_s_drv, __pyx_k_drv, sizeof(__pyx_k_drv), 0, 0, 1, 1},
    {&__pyx_n_s_dst, __pyx_k_dst, sizeof(__pyx_k_dst), 0, 0, 1, 1},
    {&__pyx_n_s_dt, __pyx_k_dt, sizeof(__pyx_k_dt), 0, 0, 1, 1},
    {&__pyx_n_s_dt_seconds, __pyx_k_dt_seconds, sizeof(__pyx_k_dt_seconds), 0, 0, 1, 1},
    {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1},
    {&__pyx_n_s_dtype_is_object, __pyx_k_dtype_is_object, sizeof(__pyx_k_dtype_is_object), 0, 0, 1, 1},
    {&__pyx_n_s_eigval, __pyx_k_eigval, sizeof(__pyx_k_eigval), 0, 0, 1, 1},
    {&__pyx_n_s_eigvec, __pyx_k_eigvec, sizeof(__pyx_k_eigvec), 0, 0, 1, 1},
    {&__pyx_n_s_element, __pyx_k_element, sizeof(__pyx_k_element), 0, 0, 1, 1},
    {&__pyx_n_s_empty, __pyx_k_empty, sizeof(__pyx_k_empty), 0, 0, 1, 1},
    {&__pyx_kp_u_enable, __pyx_k_enable, sizeof(__pyx_k_enable), 0, 1, 0, 0},
    {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1},
    {&__pyx_n_s_end_i, __pyx_k_end_i, sizeof(__pyx_k_end_i), 0, 0, 1, 1},
    {&__pyx_n_s_enter, __pyx_k_enter, sizeof(__pyx_k_enter), 0, 0, 1, 1},
    {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1},
    {&__pyx_n_s_environ, __pyx_k_environ, sizeof(__pyx_k_environ), 0, 0, 1, 1},
    {&__pyx_n_s_eq, __pyx_k_eq, sizeof(__pyx_k_eq), 0, 0, 1, 1},
    {&__pyx_n_s_err_callback, __pyx_k_err_callback, sizeof(__pyx_k_err_callback), 0, 0, 1, 1},
    {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1},
    {&__pyx_n_s_error_code, __pyx_k_error_code, sizeof(__pyx_k_error_code), 0, 0, 1, 1},
    {&__pyx_n_s_error_deadband, __pyx_k_error_deadband, sizeof(__pyx_k_error_deadband), 0, 0, 1, 1},
    {&__pyx_n_s_error_sz, __pyx_k_error_sz, sizeof(__pyx_k_error_sz), 0, 0, 1, 1},
    {&__pyx_n_s_errors, __pyx_k_errors, sizeof(__pyx_k_errors), 0, 0, 1, 1},
    {&__pyx_n_s_errstr, __pyx_k_errstr, sizeof(__pyx_k_errstr), 0, 0, 1, 1},
    {&__pyx_n_s_exclude_body, __pyx_k_exclude_body, sizeof(__pyx_k_exclude_body), 0, 0, 1, 1},
    {&__pyx_kp_u_exists_Available_actuator_names, __pyx_k_exists_Available_actuator_names, sizeof(__pyx_k_exists_Available_actuator_names), 0, 1, 0, 0},
    {&__pyx_kp_u_exists_Available_body_names, __pyx_k_exists_Available_body_names, sizeof(__pyx_k_exists_Available_body_names), 0, 1, 0, 0},
    {&__pyx_kp_u_exists_Available_camera_names, __pyx_k_exists_Available_camera_names, sizeof(__pyx_k_exists_Available_camera_names), 0, 1, 0, 0},
    {&__pyx_kp_u_exists_Available_geom_names, __pyx_k_exists_Available_geom_names, sizeof(__pyx_k_exists_Available_geom_names), 0, 1, 0, 0},
    {&__pyx_kp_u_exists_Available_joint_names, __pyx_k_exists_Available_joint_names, sizeof(__pyx_k_exists_Available_joint_names), 0, 1, 0, 0},
    {&__pyx_kp_u_exists_Available_light_names, __pyx_k_exists_Available_light_names, sizeof(__pyx_k_exists_Available_light_names), 0, 1, 0, 0},
    {&__pyx_kp_u_exists_Available_mesh_names, __pyx_k_exists_Available_mesh_names, sizeof(__pyx_k_exists_Available_mesh_names), 0, 1, 0, 0},
    {&__pyx_kp_u_exists_Available_sensor_names, __pyx_k_exists_Available_sensor_names, sizeof(__pyx_k_exists_Available_sensor_names), 0, 1, 0, 0},
    {&__pyx_kp_u_exists_Available_site_names, __pyx_k_exists_Available_site_names, sizeof(__pyx_k_exists_Available_site_names), 0, 1, 0, 0},
    {&__pyx_kp_u_exists_Available_tendon_names, __pyx_k_exists_Available_tendon_names, sizeof(__pyx_k_exists_Available_tendon_names), 0, 1, 0, 0},
    {&__pyx_kp_u_exists_Available_userdata_names, __pyx_k_exists_Available_userdata_names, sizeof(__pyx_k_exists_Available_userdata_names), 0, 1, 0, 0},
    {&__pyx_n_s_exit, __pyx_k_exit, sizeof(__pyx_k_exit), 0, 0, 1, 1},
    {&__pyx_n_s_extent, __pyx_k_extent, sizeof(__pyx_k_extent), 0, 0, 1, 1},
    {&__pyx_n_s_eye, __pyx_k_eye, sizeof(__pyx_k_eye), 0, 0, 1, 1},
    {&__pyx_n_s_f, __pyx_k_f, sizeof(__pyx_k_f), 0, 0, 1, 1},
    {&__pyx_n_s_feedback, __pyx_k_feedback, sizeof(__pyx_k_feedback), 0, 0, 1, 1},
    {&__pyx_n_s_fig, __pyx_k_fig, sizeof(__pyx_k_fig), 0, 0, 1, 1},
    {&__pyx_n_s_file, __pyx_k_file, sizeof(__pyx_k_file), 0, 0, 1, 1},
    {&__pyx_n_s_filename, __pyx_k_filename, sizeof(__pyx_k_filename), 0, 0, 1, 1},
    {&__pyx_n_s_filesize, __pyx_k_filesize, sizeof(__pyx_k_filesize), 0, 0, 1, 1},
    {&__pyx_n_s_fill_value, __pyx_k_fill_value, sizeof(__pyx_k_fill_value), 0, 0, 1, 1},
    {&__pyx_n_s_fixedcamid, __pyx_k_fixedcamid, sizeof(__pyx_k_fixedcamid), 0, 0, 1, 1},
    {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1},
    {&__pyx_n_s_flat_udd_state, __pyx_k_flat_udd_state, sizeof(__pyx_k_flat_udd_state), 0, 0, 1, 1},
    {&__pyx_n_s_flatten, __pyx_k_flatten, sizeof(__pyx_k_flatten), 0, 0, 1, 1},
    {&__pyx_n_s_flatten_dict, __pyx_k_flatten_dict, sizeof(__pyx_k_flatten_dict), 0, 0, 1, 1},
    {&__pyx_n_s_flg_acc, __pyx_k_flg_acc, sizeof(__pyx_k_flg_acc), 0, 0, 1, 1},
    {&__pyx_n_s_flg_color, __pyx_k_flg_color, sizeof(__pyx_k_flg_color), 0, 0, 1, 1},
    {&__pyx_n_s_flg_coneHessian, __pyx_k_flg_coneHessian, sizeof(__pyx_k_flg_coneHessian), 0, 0, 1, 1},
    {&__pyx_n_s_flg_depth, __pyx_k_flg_depth, sizeof(__pyx_k_flg_depth), 0, 0, 1, 1},
    {&__pyx_n_s_flg_force, __pyx_k_flg_force, sizeof(__pyx_k_flg_force), 0, 0, 1, 1},
    {&__pyx_n_s_flg_html, __pyx_k_flg_html, sizeof(__pyx_k_flg_html), 0, 0, 1, 1},
    {&__pyx_n_s_flg_local, __pyx_k_flg_local, sizeof(__pyx_k_flg_local), 0, 0, 1, 1},
    {&__pyx_n_s_flg_pad, __pyx_k_flg_pad, sizeof(__pyx_k_flg_pad), 0, 0, 1, 1},
    {&__pyx_n_s_flg_paused, __pyx_k_flg_paused, sizeof(__pyx_k_flg_paused), 0, 0, 1, 1},
    {&__pyx_n_s_flg_plus, __pyx_k_flg_plus, sizeof(__pyx_k_flg_plus), 0, 0, 1, 1},
    {&__pyx_n_s_flg_static, __pyx_k_flg_static, sizeof(__pyx_k_flg_static), 0, 0, 1, 1},
    {&__pyx_n_s_float32, __pyx_k_float32, sizeof(__pyx_k_float32), 0, 0, 1, 1},
    {&__pyx_n_s_float64, __pyx_k_float64, sizeof(__pyx_k_float64), 0, 0, 1, 1},
    {&__pyx_n_s_flush, __pyx_k_flush, sizeof(__pyx_k_flush), 0, 0, 1, 1},
    {&__pyx_n_s_font, __pyx_k_font, sizeof(__pyx_k_font), 0, 0, 1, 1},
    {&__pyx_n_s_fontscale, __pyx_k_fontscale, sizeof(__pyx_k_fontscale), 0, 0, 1, 1},
    {&__pyx_n_s_force, __pyx_k_force, sizeof(__pyx_k_force), 0, 0, 1, 1},
    {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1},
    {&__pyx_n_s_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 0, 1, 1},
    {&__pyx_n_u_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 1, 0, 1},
    {&__pyx_n_s_forward, __pyx_k_forward, sizeof(__pyx_k_forward), 0, 0, 1, 1},
    {&__pyx_n_s_fp, __pyx_k_fp, sizeof(__pyx_k_fp), 0, 0, 1, 1},
    {&__pyx_n_s_framebuffer, __pyx_k_framebuffer, sizeof(__pyx_k_framebuffer), 0, 0, 1, 1},
    {&__pyx_n_s_from_device, __pyx_k_from_device, sizeof(__pyx_k_from_device), 0, 0, 1, 1},
    {&__pyx_n_s_from_flattened, __pyx_k_from_flattened, sizeof(__pyx_k_from_flattened), 0, 0, 1, 1},
    {&__pyx_n_s_full, __pyx_k_full, sizeof(__pyx_k_full), 0, 0, 1, 1},
    {&__pyx_n_s_g, __pyx_k_g, sizeof(__pyx_k_g), 0, 0, 1, 1},
    {&__pyx_kp_u_gc, __pyx_k_gc, sizeof(__pyx_k_gc), 0, 1, 0, 0},
    {&__pyx_n_s_genexpr, __pyx_k_genexpr, sizeof(__pyx_k_genexpr), 0, 0, 1, 1},
    {&__pyx_n_s_geom, __pyx_k_geom, sizeof(__pyx_k_geom), 0, 0, 1, 1},
    {&__pyx_n_s_geom_id2name, __pyx_k_geom_id2name, sizeof(__pyx_k_geom_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_geom_jacp, __pyx_k_geom_jacp, sizeof(__pyx_k_geom_jacp), 0, 0, 1, 1},
    {&__pyx_n_s_geom_jacr, __pyx_k_geom_jacr, sizeof(__pyx_k_geom_jacr), 0, 0, 1, 1},
    {&__pyx_n_s_geom_name2id, __pyx_k_geom_name2id, sizeof(__pyx_k_geom_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_geom_xpos, __pyx_k_geom_xpos, sizeof(__pyx_k_geom_xpos), 0, 0, 1, 1},
    {&__pyx_n_s_geomgroup, __pyx_k_geomgroup, sizeof(__pyx_k_geomgroup), 0, 0, 1, 1},
    {&__pyx_n_s_geomgroup_view, __pyx_k_geomgroup_view, sizeof(__pyx_k_geomgroup_view), 0, 0, 1, 1},
    {&__pyx_n_s_geomid, __pyx_k_geomid, sizeof(__pyx_k_geomid), 0, 0, 1, 1},
    {&__pyx_n_s_geomtype, __pyx_k_geomtype, sizeof(__pyx_k_geomtype), 0, 0, 1, 1},
    {&__pyx_n_s_getElementsByTagName, __pyx_k_getElementsByTagName, sizeof(__pyx_k_getElementsByTagName), 0, 0, 1, 1},
    {&__pyx_n_s_get_body_jacp, __pyx_k_get_body_jacp, sizeof(__pyx_k_get_body_jacp), 0, 0, 1, 1},
    {&__pyx_n_s_get_body_jacr, __pyx_k_get_body_jacr, sizeof(__pyx_k_get_body_jacr), 0, 0, 1, 1},
    {&__pyx_n_s_get_body_ximat, __pyx_k_get_body_ximat, sizeof(__pyx_k_get_body_ximat), 0, 0, 1, 1},
    {&__pyx_kp_u_get_body_ximat_should_be_used_in, __pyx_k_get_body_ximat_should_be_used_in, sizeof(__pyx_k_get_body_ximat_should_be_used_in), 0, 1, 0, 0},
    {&__pyx_n_s_get_body_xipos, __pyx_k_get_body_xipos, sizeof(__pyx_k_get_body_xipos), 0, 0, 1, 1},
    {&__pyx_kp_u_get_body_xipos_should_be_used_in, __pyx_k_get_body_xipos_should_be_used_in, sizeof(__pyx_k_get_body_xipos_should_be_used_in), 0, 1, 0, 0},
    {&__pyx_n_s_get_body_xmat, __pyx_k_get_body_xmat, sizeof(__pyx_k_get_body_xmat), 0, 0, 1, 1},
    {&__pyx_kp_u_get_body_xmat_should_be_used_ins, __pyx_k_get_body_xmat_should_be_used_ins, sizeof(__pyx_k_get_body_xmat_should_be_used_ins), 0, 1, 0, 0},
    {&__pyx_n_s_get_body_xpos, __pyx_k_get_body_xpos, sizeof(__pyx_k_get_body_xpos), 0, 0, 1, 1},
    {&__pyx_kp_u_get_body_xpos_should_be_used_ins, __pyx_k_get_body_xpos_should_be_used_ins, sizeof(__pyx_k_get_body_xpos_should_be_used_ins), 0, 1, 0, 0},
    {&__pyx_n_s_get_body_xquat, __pyx_k_get_body_xquat, sizeof(__pyx_k_get_body_xquat), 0, 0, 1, 1},
    {&__pyx_kp_u_get_body_xquat_should_be_used_in, __pyx_k_get_body_xquat_should_be_used_in, sizeof(__pyx_k_get_body_xquat_should_be_used_in), 0, 1, 0, 0},
    {&__pyx_n_s_get_body_xvelp, __pyx_k_get_body_xvelp, sizeof(__pyx_k_get_body_xvelp), 0, 0, 1, 1},
    {&__pyx_n_s_get_body_xvelr, __pyx_k_get_body_xvelr, sizeof(__pyx_k_get_body_xvelr), 0, 0, 1, 1},
    {&__pyx_n_s_get_buffer_size, __pyx_k_get_buffer_size, sizeof(__pyx_k_get_buffer_size), 0, 0, 1, 1},
    {&__pyx_n_s_get_cam_xmat, __pyx_k_get_cam_xmat, sizeof(__pyx_k_get_cam_xmat), 0, 0, 1, 1},
    {&__pyx_n_s_get_cam_xpos, __pyx_k_get_cam_xpos, sizeof(__pyx_k_get_cam_xpos), 0, 0, 1, 1},
    {&__pyx_n_s_get_camera_xmat, __pyx_k_get_camera_xmat, sizeof(__pyx_k_get_camera_xmat), 0, 0, 1, 1},
    {&__pyx_kp_u_get_camera_xmat_should_be_used_i, __pyx_k_get_camera_xmat_should_be_used_i, sizeof(__pyx_k_get_camera_xmat_should_be_used_i), 0, 1, 0, 0},
    {&__pyx_n_s_get_camera_xpos, __pyx_k_get_camera_xpos, sizeof(__pyx_k_get_camera_xpos), 0, 0, 1, 1},
    {&__pyx_kp_u_get_camera_xpos_should_be_used_i, __pyx_k_get_camera_xpos_should_be_used_i, sizeof(__pyx_k_get_camera_xpos_should_be_used_i), 0, 1, 0, 0},
    {&__pyx_n_s_get_error_callback, __pyx_k_get_error_callback, sizeof(__pyx_k_get_error_callback), 0, 0, 1, 1},
    {&__pyx_n_s_get_framebuffer_size, __pyx_k_get_framebuffer_size, sizeof(__pyx_k_get_framebuffer_size), 0, 0, 1, 1},
    {&__pyx_n_s_get_geom_jacp, __pyx_k_get_geom_jacp, sizeof(__pyx_k_get_geom_jacp), 0, 0, 1, 1},
    {&__pyx_n_s_get_geom_jacr, __pyx_k_get_geom_jacr, sizeof(__pyx_k_get_geom_jacr), 0, 0, 1, 1},
    {&__pyx_n_s_get_geom_xmat, __pyx_k_get_geom_xmat, sizeof(__pyx_k_get_geom_xmat), 0, 0, 1, 1},
    {&__pyx_n_s_get_geom_xpos, __pyx_k_get_geom_xpos, sizeof(__pyx_k_get_geom_xpos), 0, 0, 1, 1},
    {&__pyx_n_s_get_geom_xvelp, __pyx_k_get_geom_xvelp, sizeof(__pyx_k_get_geom_xvelp), 0, 0, 1, 1},
    {&__pyx_n_s_get_geom_xvelr, __pyx_k_get_geom_xvelr, sizeof(__pyx_k_get_geom_xvelr), 0, 0, 1, 1},
    {&__pyx_n_s_get_joint_qpos, __pyx_k_get_joint_qpos, sizeof(__pyx_k_get_joint_qpos), 0, 0, 1, 1},
    {&__pyx_n_s_get_joint_qpos_addr, __pyx_k_get_joint_qpos_addr, sizeof(__pyx_k_get_joint_qpos_addr), 0, 0, 1, 1},
    {&__pyx_n_s_get_joint_qvel, __pyx_k_get_joint_qvel, sizeof(__pyx_k_get_joint_qvel), 0, 0, 1, 1},
    {&__pyx_n_s_get_joint_qvel_addr, __pyx_k_get_joint_qvel_addr, sizeof(__pyx_k_get_joint_qvel_addr), 0, 0, 1, 1},
    {&__pyx_n_s_get_joint_xanchor, __pyx_k_get_joint_xanchor, sizeof(__pyx_k_get_joint_xanchor), 0, 0, 1, 1},
    {&__pyx_kp_u_get_joint_xanchor_should_be_used, __pyx_k_get_joint_xanchor_should_be_used, sizeof(__pyx_k_get_joint_xanchor_should_be_used), 0, 1, 0, 0},
    {&__pyx_n_s_get_joint_xaxis, __pyx_k_get_joint_xaxis, sizeof(__pyx_k_get_joint_xaxis), 0, 0, 1, 1},
    {&__pyx_kp_u_get_joint_xaxis_should_be_used_i, __pyx_k_get_joint_xaxis_should_be_used_i, sizeof(__pyx_k_get_joint_xaxis_should_be_used_i), 0, 1, 0, 0},
    {&__pyx_n_s_get_light_xdir, __pyx_k_get_light_xdir, sizeof(__pyx_k_get_light_xdir), 0, 0, 1, 1},
    {&__pyx_n_s_get_light_xpos, __pyx_k_get_light_xpos, sizeof(__pyx_k_get_light_xpos), 0, 0, 1, 1},
    {&__pyx_n_s_get_mjb, __pyx_k_get_mjb, sizeof(__pyx_k_get_mjb), 0, 0, 1, 1},
    {&__pyx_n_s_get_mocap_pos, __pyx_k_get_mocap_pos, sizeof(__pyx_k_get_mocap_pos), 0, 0, 1, 1},
    {&__pyx_n_s_get_mocap_quat, __pyx_k_get_mocap_quat, sizeof(__pyx_k_get_mocap_quat), 0, 0, 1, 1},
    {&__pyx_n_s_get_primary_monitor, __pyx_k_get_primary_monitor, sizeof(__pyx_k_get_primary_monitor), 0, 0, 1, 1},
    {&__pyx_n_s_get_sensor, __pyx_k_get_sensor, sizeof(__pyx_k_get_sensor), 0, 0, 1, 1},
    {&__pyx_kp_u_get_sensor_should_be_used_instea, __pyx_k_get_sensor_should_be_used_instea, sizeof(__pyx_k_get_sensor_should_be_used_instea), 0, 1, 0, 0},
    {&__pyx_n_s_get_sensordata, __pyx_k_get_sensordata, sizeof(__pyx_k_get_sensordata), 0, 0, 1, 1},
    {&__pyx_n_s_get_site_jacp, __pyx_k_get_site_jacp, sizeof(__pyx_k_get_site_jacp), 0, 0, 1, 1},
    {&__pyx_n_s_get_site_jacr, __pyx_k_get_site_jacr, sizeof(__pyx_k_get_site_jacr), 0, 0, 1, 1},
    {&__pyx_n_s_get_site_xmat, __pyx_k_get_site_xmat, sizeof(__pyx_k_get_site_xmat), 0, 0, 1, 1},
    {&__pyx_n_s_get_site_xpos, __pyx_k_get_site_xpos, sizeof(__pyx_k_get_site_xpos), 0, 0, 1, 1},
    {&__pyx_n_s_get_site_xvelp, __pyx_k_get_site_xvelp, sizeof(__pyx_k_get_site_xvelp), 0, 0, 1, 1},
    {&__pyx_n_s_get_site_xvelr, __pyx_k_get_site_xvelr, sizeof(__pyx_k_get_site_xvelr), 0, 0, 1, 1},
    {&__pyx_n_s_get_state, __pyx_k_get_state, sizeof(__pyx_k_get_state), 0, 0, 1, 1},
    {&__pyx_n_s_get_userdata, __pyx_k_get_userdata, sizeof(__pyx_k_get_userdata), 0, 0, 1, 1},
    {&__pyx_n_s_get_video_mode, __pyx_k_get_video_mode, sizeof(__pyx_k_get_video_mode), 0, 0, 1, 1},
    {&__pyx_n_s_get_warning_callback, __pyx_k_get_warning_callback, sizeof(__pyx_k_get_warning_callback), 0, 0, 1, 1},
    {&__pyx_n_s_get_xanchor, __pyx_k_get_xanchor, sizeof(__pyx_k_get_xanchor), 0, 0, 1, 1},
    {&__pyx_n_s_get_xaxis, __pyx_k_get_xaxis, sizeof(__pyx_k_get_xaxis), 0, 0, 1, 1},
    {&__pyx_n_s_get_ximat, __pyx_k_get_ximat, sizeof(__pyx_k_get_ximat), 0, 0, 1, 1},
    {&__pyx_n_s_get_xipos, __pyx_k_get_xipos, sizeof(__pyx_k_get_xipos), 0, 0, 1, 1},
    {&__pyx_n_s_get_xmat, __pyx_k_get_xmat, sizeof(__pyx_k_get_xmat), 0, 0, 1, 1},
    {&__pyx_n_s_get_xml, __pyx_k_get_xml, sizeof(__pyx_k_get_xml), 0, 0, 1, 1},
    {&__pyx_n_s_get_xpos, __pyx_k_get_xpos, sizeof(__pyx_k_get_xpos), 0, 0, 1, 1},
    {&__pyx_n_s_get_xquat, __pyx_k_get_xquat, sizeof(__pyx_k_get_xquat), 0, 0, 1, 1},
    {&__pyx_n_s_getenv, __pyx_k_getenv, sizeof(__pyx_k_getenv), 0, 0, 1, 1},
    {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1},
    {&__pyx_n_s_glfw, __pyx_k_glfw, sizeof(__pyx_k_glfw), 0, 0, 1, 1},
    {&__pyx_n_u_glfw, __pyx_k_glfw, sizeof(__pyx_k_glfw), 0, 1, 0, 1},
    {&__pyx_n_s_glfw_error_callback, __pyx_k_glfw_error_callback, sizeof(__pyx_k_glfw_error_callback), 0, 0, 1, 1},
    {&__pyx_kp_u_got, __pyx_k_got, sizeof(__pyx_k_got), 0, 1, 0, 0},
    {&__pyx_kp_u_got_differing_extents_in_dimensi, __pyx_k_got_differing_extents_in_dimensi, sizeof(__pyx_k_got_differing_extents_in_dimensi), 0, 1, 0, 0},
    {&__pyx_n_s_gridpos, __pyx_k_gridpos, sizeof(__pyx_k_gridpos), 0, 0, 1, 1},
    {&__pyx_n_s_group_filter, __pyx_k_group_filter, sizeof(__pyx_k_group_filter), 0, 0, 1, 1},
    {&__pyx_n_s_headpos, __pyx_k_headpos, sizeof(__pyx_k_headpos), 0, 0, 1, 1},
    {&__pyx_n_s_height, __pyx_k_height, sizeof(__pyx_k_height), 0, 0, 1, 1},
    {&__pyx_n_s_height_2, __pyx_k_height_2, sizeof(__pyx_k_height_2), 0, 0, 1, 1},
    {&__pyx_n_s_hfieldid, __pyx_k_hfieldid, sizeof(__pyx_k_hfieldid), 0, 0, 1, 1},
    {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1},
    {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1},
    {&__pyx_n_s_idx, __pyx_k_idx, sizeof(__pyx_k_idx), 0, 0, 1, 1},
    {&__pyx_n_s_idx_act, __pyx_k_idx_act, sizeof(__pyx_k_idx_act), 0, 0, 1, 1},
    {&__pyx_n_s_idx_qpos, __pyx_k_idx_qpos, sizeof(__pyx_k_idx_qpos), 0, 0, 1, 1},
    {&__pyx_n_s_idx_qvel, __pyx_k_idx_qvel, sizeof(__pyx_k_idx_qvel), 0, 0, 1, 1},
    {&__pyx_n_s_idx_time, __pyx_k_idx_time, sizeof(__pyx_k_idx_time), 0, 0, 1, 1},
    {&__pyx_n_s_idx_udd, __pyx_k_idx_udd, sizeof(__pyx_k_idx_udd), 0, 0, 1, 1},
    {&__pyx_n_s_image, __pyx_k_image, sizeof(__pyx_k_image), 0, 0, 1, 1},
    {&__pyx_n_s_image_view, __pyx_k_image_view, sizeof(__pyx_k_image_view), 0, 0, 1, 1},
    {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
    {&__pyx_n_s_include_static_geoms, __pyx_k_include_static_geoms, sizeof(__pyx_k_include_static_geoms), 0, 0, 1, 1},
    {&__pyx_n_s_indent, __pyx_k_indent, sizeof(__pyx_k_indent), 0, 0, 1, 1},
    {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1},
    {&__pyx_n_u_inertial, __pyx_k_inertial, sizeof(__pyx_k_inertial), 0, 1, 0, 1},
    {&__pyx_n_s_info, __pyx_k_info, sizeof(__pyx_k_info), 0, 0, 1, 1},
    {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1},
    {&__pyx_n_s_init_2, __pyx_k_init_2, sizeof(__pyx_k_init_2), 0, 0, 1, 1},
    {&__pyx_n_s_init_camera, __pyx_k_init_camera, sizeof(__pyx_k_init_camera), 0, 0, 1, 1},
    {&__pyx_n_s_init_cuda, __pyx_k_init_cuda, sizeof(__pyx_k_init_cuda), 0, 0, 1, 1},
    {&__pyx_n_s_init_glfw, __pyx_k_init_glfw, sizeof(__pyx_k_init_glfw), 0, 0, 1, 1},
    {&__pyx_n_s_init_height, __pyx_k_init_height, sizeof(__pyx_k_init_height), 0, 0, 1, 1},
    {&__pyx_n_s_init_subclass, __pyx_k_init_subclass, sizeof(__pyx_k_init_subclass), 0, 0, 1, 1},
    {&__pyx_n_s_init_width, __pyx_k_init_width, sizeof(__pyx_k_init_width), 0, 0, 1, 1},
    {&__pyx_n_s_initializing, __pyx_k_initializing, sizeof(__pyx_k_initializing), 0, 0, 1, 1},
    {&__pyx_kp_u_insufficient_userdata, __pyx_k_insufficient_userdata, sizeof(__pyx_k_insufficient_userdata), 0, 1, 0, 0},
    {&__pyx_n_s_int32, __pyx_k_int32, sizeof(__pyx_k_int32), 0, 0, 1, 1},
    {&__pyx_n_s_int64, __pyx_k_int64, sizeof(__pyx_k_int64), 0, 0, 1, 1},
    {&__pyx_n_s_integral_error, __pyx_k_integral_error, sizeof(__pyx_k_integral_error), 0, 0, 1, 1},
    {&__pyx_n_s_integral_max_clamp, __pyx_k_integral_max_clamp, sizeof(__pyx_k_integral_max_clamp), 0, 0, 1, 1},
    {&__pyx_n_s_integral_time_const, __pyx_k_integral_time_const, sizeof(__pyx_k_integral_time_const), 0, 0, 1, 1},
    {&__pyx_kp_u_invalid, __pyx_k_invalid, sizeof(__pyx_k_invalid), 0, 1, 0, 0},
    {&__pyx_n_s_is_coroutine, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1},
    {&__pyx_kp_u_isenabled, __pyx_k_isenabled, sizeof(__pyx_k_isenabled), 0, 1, 0, 0},
    {&__pyx_n_s_item, __pyx_k_item, sizeof(__pyx_k_item), 0, 0, 1, 1},
    {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1},
    {&__pyx_n_s_itemsize, __pyx_k_itemsize, sizeof(__pyx_k_itemsize), 0, 0, 1, 1},
    {&__pyx_kp_s_itemsize_0_for_cython_array, __pyx_k_itemsize_0_for_cython_array, sizeof(__pyx_k_itemsize_0_for_cython_array), 0, 0, 1, 0},
    {&__pyx_n_s_jacAxis, __pyx_k_jacAxis, sizeof(__pyx_k_jacAxis), 0, 0, 1, 1},
    {&__pyx_n_s_jacPoint, __pyx_k_jacPoint, sizeof(__pyx_k_jacPoint), 0, 0, 1, 1},
    {&__pyx_n_s_jacp, __pyx_k_jacp, sizeof(__pyx_k_jacp), 0, 0, 1, 1},
    {&__pyx_n_s_jacp_view, __pyx_k_jacp_view, sizeof(__pyx_k_jacp_view), 0, 0, 1, 1},
    {&__pyx_n_s_jacr, __pyx_k_jacr, sizeof(__pyx_k_jacr), 0, 0, 1, 1},
    {&__pyx_n_s_jacr_view, __pyx_k_jacr_view, sizeof(__pyx_k_jacr_view), 0, 0, 1, 1},
    {&__pyx_n_s_jar, __pyx_k_jar, sizeof(__pyx_k_jar), 0, 0, 1, 1},
    {&__pyx_n_s_jnt_dofadr, __pyx_k_jnt_dofadr, sizeof(__pyx_k_jnt_dofadr), 0, 0, 1, 1},
    {&__pyx_n_s_jnt_qposadr, __pyx_k_jnt_qposadr, sizeof(__pyx_k_jnt_qposadr), 0, 0, 1, 1},
    {&__pyx_n_s_jnt_type, __pyx_k_jnt_type, sizeof(__pyx_k_jnt_type), 0, 0, 1, 1},
    {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1},
    {&__pyx_n_s_joint_addr, __pyx_k_joint_addr, sizeof(__pyx_k_joint_addr), 0, 0, 1, 1},
    {&__pyx_n_s_joint_id, __pyx_k_joint_id, sizeof(__pyx_k_joint_id), 0, 0, 1, 1},
    {&__pyx_n_s_joint_id2name, __pyx_k_joint_id2name, sizeof(__pyx_k_joint_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_joint_name2id, __pyx_k_joint_name2id, sizeof(__pyx_k_joint_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_joint_type, __pyx_k_joint_type, sizeof(__pyx_k_joint_type), 0, 0, 1, 1},
    {&__pyx_n_s_k, __pyx_k_k, sizeof(__pyx_k_k), 0, 0, 1, 1},
    {&__pyx_n_s_keep_inertials, __pyx_k_keep_inertials, sizeof(__pyx_k_keep_inertials), 0, 0, 1, 1},
    {&__pyx_n_s_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 0, 1, 1},
    {&__pyx_n_u_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 1, 0, 1},
    {&__pyx_n_s_key_el, __pyx_k_key_el, sizeof(__pyx_k_key_el), 0, 0, 1, 1},
    {&__pyx_n_u_keyframe, __pyx_k_keyframe, sizeof(__pyx_k_keyframe), 0, 1, 0, 1},
    {&__pyx_n_s_keyframe_el, __pyx_k_keyframe_el, sizeof(__pyx_k_keyframe_el), 0, 0, 1, 1},
    {&__pyx_n_s_keys, __pyx_k_keys, sizeof(__pyx_k_keys), 0, 0, 1, 1},
    {&__pyx_n_u_label, __pyx_k_label, sizeof(__pyx_k_label), 0, 1, 0, 1},
    {&__pyx_n_s_left, __pyx_k_left, sizeof(__pyx_k_left), 0, 0, 1, 1},
    {&__pyx_n_s_len, __pyx_k_len, sizeof(__pyx_k_len), 0, 0, 1, 1},
    {&__pyx_n_s_lengthrange, __pyx_k_lengthrange, sizeof(__pyx_k_lengthrange), 0, 0, 1, 1},
    {&__pyx_n_s_light_id2name, __pyx_k_light_id2name, sizeof(__pyx_k_light_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_light_name2id, __pyx_k_light_name2id, sizeof(__pyx_k_light_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_list, __pyx_k_list, sizeof(__pyx_k_list), 0, 0, 1, 1},
    {&__pyx_n_s_load_model_from_mjb, __pyx_k_load_model_from_mjb, sizeof(__pyx_k_load_model_from_mjb), 0, 0, 1, 1},
    {&__pyx_n_s_load_model_from_path, __pyx_k_load_model_from_path, sizeof(__pyx_k_load_model_from_path), 0, 0, 1, 1},
    {&__pyx_n_s_load_model_from_xml, __pyx_k_load_model_from_xml, sizeof(__pyx_k_load_model_from_xml), 0, 0, 1, 1},
    {&__pyx_n_s_logging, __pyx_k_logging, sizeof(__pyx_k_logging), 0, 0, 1, 1},
    {&__pyx_n_s_lookat, __pyx_k_lookat, sizeof(__pyx_k_lookat), 0, 0, 1, 1},
    {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1},
    {&__pyx_n_s_m, __pyx_k_m, sizeof(__pyx_k_m), 0, 0, 1, 1},
    {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
    {&__pyx_n_s_make_context, __pyx_k_make_context, sizeof(__pyx_k_make_context), 0, 0, 1, 1},
    {&__pyx_n_s_make_context_current, __pyx_k_make_context_current, sizeof(__pyx_k_make_context_current), 0, 0, 1, 1},
    {&__pyx_n_s_map, __pyx_k_map, sizeof(__pyx_k_map), 0, 0, 1, 1},
    {&__pyx_n_s_marker_params, __pyx_k_marker_params, sizeof(__pyx_k_marker_params), 0, 0, 1, 1},
    {&__pyx_n_s_mat, __pyx_k_mat, sizeof(__pyx_k_mat), 0, 0, 1, 1},
    {&__pyx_n_s_mat1, __pyx_k_mat1, sizeof(__pyx_k_mat1), 0, 0, 1, 1},
    {&__pyx_n_s_mat2, __pyx_k_mat2, sizeof(__pyx_k_mat2), 0, 0, 1, 1},
    {&__pyx_n_s_maxgeom, __pyx_k_maxgeom, sizeof(__pyx_k_maxgeom), 0, 0, 1, 1},
    {&__pyx_n_s_median, __pyx_k_median, sizeof(__pyx_k_median), 0, 0, 1, 1},
    {&__pyx_n_s_memview, __pyx_k_memview, sizeof(__pyx_k_memview), 0, 0, 1, 1},
    {&__pyx_n_s_mesh_id2name, __pyx_k_mesh_id2name, sizeof(__pyx_k_mesh_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_mesh_name2id, __pyx_k_mesh_name2id, sizeof(__pyx_k_mesh_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_meshid, __pyx_k_meshid, sizeof(__pyx_k_meshid), 0, 0, 1, 1},
    {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1},
    {&__pyx_n_s_mindiag, __pyx_k_mindiag, sizeof(__pyx_k_mindiag), 0, 0, 1, 1},
    {&__pyx_n_s_minidom, __pyx_k_minidom, sizeof(__pyx_k_minidom), 0, 0, 1, 1},
    {&__pyx_n_s_mj_Euler, __pyx_k_mj_Euler, sizeof(__pyx_k_mj_Euler), 0, 0, 1, 1},
    {&__pyx_n_s_mj_RungeKutta, __pyx_k_mj_RungeKutta, sizeof(__pyx_k_mj_RungeKutta), 0, 0, 1, 1},
    {&__pyx_n_s_mj_activate, __pyx_k_mj_activate, sizeof(__pyx_k_mj_activate), 0, 0, 1, 1},
    {&__pyx_n_s_mj_addContact, __pyx_k_mj_addContact, sizeof(__pyx_k_mj_addContact), 0, 0, 1, 1},
    {&__pyx_n_s_mj_addFileVFS, __pyx_k_mj_addFileVFS, sizeof(__pyx_k_mj_addFileVFS), 0, 0, 1, 1},
    {&__pyx_n_s_mj_addM, __pyx_k_mj_addM, sizeof(__pyx_k_mj_addM), 0, 0, 1, 1},
    {&__pyx_n_s_mj_applyFT, __pyx_k_mj_applyFT, sizeof(__pyx_k_mj_applyFT), 0, 0, 1, 1},
    {&__pyx_n_s_mj_camlight, __pyx_k_mj_camlight, sizeof(__pyx_k_mj_camlight), 0, 0, 1, 1},
    {&__pyx_n_s_mj_checkAcc, __pyx_k_mj_checkAcc, sizeof(__pyx_k_mj_checkAcc), 0, 0, 1, 1},
    {&__pyx_n_s_mj_checkPos, __pyx_k_mj_checkPos, sizeof(__pyx_k_mj_checkPos), 0, 0, 1, 1},
    {&__pyx_n_s_mj_checkVel, __pyx_k_mj_checkVel, sizeof(__pyx_k_mj_checkVel), 0, 0, 1, 1},
    {&__pyx_n_s_mj_collision, __pyx_k_mj_collision, sizeof(__pyx_k_mj_collision), 0, 0, 1, 1},
    {&__pyx_n_s_mj_comPos, __pyx_k_mj_comPos, sizeof(__pyx_k_mj_comPos), 0, 0, 1, 1},
    {&__pyx_n_s_mj_comVel, __pyx_k_mj_comVel, sizeof(__pyx_k_mj_comVel), 0, 0, 1, 1},
    {&__pyx_n_s_mj_compareFwdInv, __pyx_k_mj_compareFwdInv, sizeof(__pyx_k_mj_compareFwdInv), 0, 0, 1, 1},
    {&__pyx_n_s_mj_constraintUpdate, __pyx_k_mj_constraintUpdate, sizeof(__pyx_k_mj_constraintUpdate), 0, 0, 1, 1},
    {&__pyx_n_s_mj_contactForce, __pyx_k_mj_contactForce, sizeof(__pyx_k_mj_contactForce), 0, 0, 1, 1},
    {&__pyx_n_s_mj_copyModel, __pyx_k_mj_copyModel, sizeof(__pyx_k_mj_copyModel), 0, 0, 1, 1},
    {&__pyx_n_s_mj_crb, __pyx_k_mj_crb, sizeof(__pyx_k_mj_crb), 0, 0, 1, 1},
    {&__pyx_n_s_mj_deactivate, __pyx_k_mj_deactivate, sizeof(__pyx_k_mj_deactivate), 0, 0, 1, 1},
    {&__pyx_n_s_mj_defaultLROpt, __pyx_k_mj_defaultLROpt, sizeof(__pyx_k_mj_defaultLROpt), 0, 0, 1, 1},
    {&__pyx_n_s_mj_defaultOption, __pyx_k_mj_defaultOption, sizeof(__pyx_k_mj_defaultOption), 0, 0, 1, 1},
    {&__pyx_n_s_mj_defaultSolRefImp, __pyx_k_mj_defaultSolRefImp, sizeof(__pyx_k_mj_defaultSolRefImp), 0, 0, 1, 1},
    {&__pyx_n_s_mj_defaultVFS, __pyx_k_mj_defaultVFS, sizeof(__pyx_k_mj_defaultVFS), 0, 0, 1, 1},
    {&__pyx_n_s_mj_defaultVisual, __pyx_k_mj_defaultVisual, sizeof(__pyx_k_mj_defaultVisual), 0, 0, 1, 1},
    {&__pyx_n_s_mj_deleteData, __pyx_k_mj_deleteData, sizeof(__pyx_k_mj_deleteData), 0, 0, 1, 1},
    {&__pyx_n_s_mj_deleteFileVFS, __pyx_k_mj_deleteFileVFS, sizeof(__pyx_k_mj_deleteFileVFS), 0, 0, 1, 1},
    {&__pyx_n_s_mj_deleteModel, __pyx_k_mj_deleteModel, sizeof(__pyx_k_mj_deleteModel), 0, 0, 1, 1},
    {&__pyx_n_s_mj_deleteVFS, __pyx_k_mj_deleteVFS, sizeof(__pyx_k_mj_deleteVFS), 0, 0, 1, 1},
    {&__pyx_n_s_mj_differentiatePos, __pyx_k_mj_differentiatePos, sizeof(__pyx_k_mj_differentiatePos), 0, 0, 1, 1},
    {&__pyx_n_s_mj_energyPos, __pyx_k_mj_energyPos, sizeof(__pyx_k_mj_energyPos), 0, 0, 1, 1},
    {&__pyx_n_s_mj_energyVel, __pyx_k_mj_energyVel, sizeof(__pyx_k_mj_energyVel), 0, 0, 1, 1},
    {&__pyx_n_s_mj_factorM, __pyx_k_mj_factorM, sizeof(__pyx_k_mj_factorM), 0, 0, 1, 1},
    {&__pyx_n_s_mj_findFileVFS, __pyx_k_mj_findFileVFS, sizeof(__pyx_k_mj_findFileVFS), 0, 0, 1, 1},
    {&__pyx_n_s_mj_forward, __pyx_k_mj_forward, sizeof(__pyx_k_mj_forward), 0, 0, 1, 1},
    {&__pyx_n_s_mj_forwardSkip, __pyx_k_mj_forwardSkip, sizeof(__pyx_k_mj_forwardSkip), 0, 0, 1, 1},
    {&__pyx_n_s_mj_freeLastXML, __pyx_k_mj_freeLastXML, sizeof(__pyx_k_mj_freeLastXML), 0, 0, 1, 1},
    {&__pyx_n_s_mj_fullM, __pyx_k_mj_fullM, sizeof(__pyx_k_mj_fullM), 0, 0, 1, 1},
    {&__pyx_n_s_mj_fwdAcceleration, __pyx_k_mj_fwdAcceleration, sizeof(__pyx_k_mj_fwdAcceleration), 0, 0, 1, 1},
    {&__pyx_n_s_mj_fwdActuation, __pyx_k_mj_fwdActuation, sizeof(__pyx_k_mj_fwdActuation), 0, 0, 1, 1},
    {&__pyx_n_s_mj_fwdConstraint, __pyx_k_mj_fwdConstraint, sizeof(__pyx_k_mj_fwdConstraint), 0, 0, 1, 1},
    {&__pyx_n_s_mj_fwdPosition, __pyx_k_mj_fwdPosition, sizeof(__pyx_k_mj_fwdPosition), 0, 0, 1, 1},
    {&__pyx_n_s_mj_fwdVelocity, __pyx_k_mj_fwdVelocity, sizeof(__pyx_k_mj_fwdVelocity), 0, 0, 1, 1},
    {&__pyx_n_s_mj_getTotalmass, __pyx_k_mj_getTotalmass, sizeof(__pyx_k_mj_getTotalmass), 0, 0, 1, 1},
    {&__pyx_n_s_mj_integratePos, __pyx_k_mj_integratePos, sizeof(__pyx_k_mj_integratePos), 0, 0, 1, 1},
    {&__pyx_n_s_mj_invConstraint, __pyx_k_mj_invConstraint, sizeof(__pyx_k_mj_invConstraint), 0, 0, 1, 1},
    {&__pyx_n_s_mj_invPosition, __pyx_k_mj_invPosition, sizeof(__pyx_k_mj_invPosition), 0, 0, 1, 1},
    {&__pyx_n_s_mj_invVelocity, __pyx_k_mj_invVelocity, sizeof(__pyx_k_mj_invVelocity), 0, 0, 1, 1},
    {&__pyx_n_s_mj_inverse, __pyx_k_mj_inverse, sizeof(__pyx_k_mj_inverse), 0, 0, 1, 1},
    {&__pyx_n_s_mj_inverseSkip, __pyx_k_mj_inverseSkip, sizeof(__pyx_k_mj_inverseSkip), 0, 0, 1, 1},
    {&__pyx_n_s_mj_isDual, __pyx_k_mj_isDual, sizeof(__pyx_k_mj_isDual), 0, 0, 1, 1},
    {&__pyx_n_s_mj_isPyramidal, __pyx_k_mj_isPyramidal, sizeof(__pyx_k_mj_isPyramidal), 0, 0, 1, 1},
    {&__pyx_n_s_mj_isSparse, __pyx_k_mj_isSparse, sizeof(__pyx_k_mj_isSparse), 0, 0, 1, 1},
    {&__pyx_n_s_mj_jac, __pyx_k_mj_jac, sizeof(__pyx_k_mj_jac), 0, 0, 1, 1},
    {&__pyx_n_s_mj_jacBody, __pyx_k_mj_jacBody, sizeof(__pyx_k_mj_jacBody), 0, 0, 1, 1},
    {&__pyx_n_s_mj_jacBodyCom, __pyx_k_mj_jacBodyCom, sizeof(__pyx_k_mj_jacBodyCom), 0, 0, 1, 1},
    {&__pyx_n_s_mj_jacGeom, __pyx_k_mj_jacGeom, sizeof(__pyx_k_mj_jacGeom), 0, 0, 1, 1},
    {&__pyx_n_s_mj_jacPointAxis, __pyx_k_mj_jacPointAxis, sizeof(__pyx_k_mj_jacPointAxis), 0, 0, 1, 1},
    {&__pyx_n_s_mj_jacSite, __pyx_k_mj_jacSite, sizeof(__pyx_k_mj_jacSite), 0, 0, 1, 1},
    {&__pyx_n_s_mj_kinematics, __pyx_k_mj_kinematics, sizeof(__pyx_k_mj_kinematics), 0, 0, 1, 1},
    {&__pyx_n_s_mj_loadModel, __pyx_k_mj_loadModel, sizeof(__pyx_k_mj_loadModel), 0, 0, 1, 1},
    {&__pyx_n_s_mj_loadXML, __pyx_k_mj_loadXML, sizeof(__pyx_k_mj_loadXML), 0, 0, 1, 1},
    {&__pyx_kp_u_mj_loadXML_error, __pyx_k_mj_loadXML_error, sizeof(__pyx_k_mj_loadXML_error), 0, 1, 0, 0},
    {&__pyx_n_s_mj_local2Global, __pyx_k_mj_local2Global, sizeof(__pyx_k_mj_local2Global), 0, 0, 1, 1},
    {&__pyx_n_s_mj_makeConstraint, __pyx_k_mj_makeConstraint, sizeof(__pyx_k_mj_makeConstraint), 0, 0, 1, 1},
    {&__pyx_kp_u_mj_makeData_failed, __pyx_k_mj_makeData_failed, sizeof(__pyx_k_mj_makeData_failed), 0, 1, 0, 0},
    {&__pyx_n_s_mj_makeEmptyFileVFS, __pyx_k_mj_makeEmptyFileVFS, sizeof(__pyx_k_mj_makeEmptyFileVFS), 0, 0, 1, 1},
    {&__pyx_n_s_mj_mulJacTVec, __pyx_k_mj_mulJacTVec, sizeof(__pyx_k_mj_mulJacTVec), 0, 0, 1, 1},
    {&__pyx_n_s_mj_mulJacVec, __pyx_k_mj_mulJacVec, sizeof(__pyx_k_mj_mulJacVec), 0, 0, 1, 1},
    {&__pyx_n_s_mj_mulM, __pyx_k_mj_mulM, sizeof(__pyx_k_mj_mulM), 0, 0, 1, 1},
    {&__pyx_n_s_mj_mulM2, __pyx_k_mj_mulM2, sizeof(__pyx_k_mj_mulM2), 0, 0, 1, 1},
    {&__pyx_n_s_mj_name2id, __pyx_k_mj_name2id, sizeof(__pyx_k_mj_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_mj_normalizeQuat, __pyx_k_mj_normalizeQuat, sizeof(__pyx_k_mj_normalizeQuat), 0, 0, 1, 1},
    {&__pyx_n_s_mj_objectAcceleration, __pyx_k_mj_objectAcceleration, sizeof(__pyx_k_mj_objectAcceleration), 0, 0, 1, 1},
    {&__pyx_n_s_mj_objectVelocity, __pyx_k_mj_objectVelocity, sizeof(__pyx_k_mj_objectVelocity), 0, 0, 1, 1},
    {&__pyx_n_s_mj_passive, __pyx_k_mj_passive, sizeof(__pyx_k_mj_passive), 0, 0, 1, 1},
    {&__pyx_n_s_mj_printData, __pyx_k_mj_printData, sizeof(__pyx_k_mj_printData), 0, 0, 1, 1},
    {&__pyx_n_s_mj_printModel, __pyx_k_mj_printModel, sizeof(__pyx_k_mj_printModel), 0, 0, 1, 1},
    {&__pyx_n_s_mj_printSchema, __pyx_k_mj_printSchema, sizeof(__pyx_k_mj_printSchema), 0, 0, 1, 1},
    {&__pyx_n_s_mj_projectConstraint, __pyx_k_mj_projectConstraint, sizeof(__pyx_k_mj_projectConstraint), 0, 0, 1, 1},
    {&__pyx_n_s_mj_ray, __pyx_k_mj_ray, sizeof(__pyx_k_mj_ray), 0, 0, 1, 1},
    {&__pyx_n_s_mj_rayHfield, __pyx_k_mj_rayHfield, sizeof(__pyx_k_mj_rayHfield), 0, 0, 1, 1},
    {&__pyx_n_s_mj_rayMesh, __pyx_k_mj_rayMesh, sizeof(__pyx_k_mj_rayMesh), 0, 0, 1, 1},
    {&__pyx_n_s_mj_referenceConstraint, __pyx_k_mj_referenceConstraint, sizeof(__pyx_k_mj_referenceConstraint), 0, 0, 1, 1},
    {&__pyx_n_s_mj_resetCallbacks, __pyx_k_mj_resetCallbacks, sizeof(__pyx_k_mj_resetCallbacks), 0, 0, 1, 1},
    {&__pyx_n_s_mj_resetData, __pyx_k_mj_resetData, sizeof(__pyx_k_mj_resetData), 0, 0, 1, 1},
    {&__pyx_n_s_mj_resetDataKeyframe, __pyx_k_mj_resetDataKeyframe, sizeof(__pyx_k_mj_resetDataKeyframe), 0, 0, 1, 1},
    {&__pyx_n_s_mj_rne, __pyx_k_mj_rne, sizeof(__pyx_k_mj_rne), 0, 0, 1, 1},
    {&__pyx_n_s_mj_rnePostConstraint, __pyx_k_mj_rnePostConstraint, sizeof(__pyx_k_mj_rnePostConstraint), 0, 0, 1, 1},
    {&__pyx_n_s_mj_saveLastXML, __pyx_k_mj_saveLastXML, sizeof(__pyx_k_mj_saveLastXML), 0, 0, 1, 1},
    {&__pyx_n_s_mj_sensorAcc, __pyx_k_mj_sensorAcc, sizeof(__pyx_k_mj_sensorAcc), 0, 0, 1, 1},
    {&__pyx_n_s_mj_sensorPos, __pyx_k_mj_sensorPos, sizeof(__pyx_k_mj_sensorPos), 0, 0, 1, 1},
    {&__pyx_n_s_mj_sensorVel, __pyx_k_mj_sensorVel, sizeof(__pyx_k_mj_sensorVel), 0, 0, 1, 1},
    {&__pyx_n_s_mj_setConst, __pyx_k_mj_setConst, sizeof(__pyx_k_mj_setConst), 0, 0, 1, 1},
    {&__pyx_n_s_mj_setLengthRange, __pyx_k_mj_setLengthRange, sizeof(__pyx_k_mj_setLengthRange), 0, 0, 1, 1},
    {&__pyx_n_s_mj_setTotalmass, __pyx_k_mj_setTotalmass, sizeof(__pyx_k_mj_setTotalmass), 0, 0, 1, 1},
    {&__pyx_n_s_mj_sizeModel, __pyx_k_mj_sizeModel, sizeof(__pyx_k_mj_sizeModel), 0, 0, 1, 1},
    {&__pyx_n_s_mj_solveM, __pyx_k_mj_solveM, sizeof(__pyx_k_mj_solveM), 0, 0, 1, 1},
    {&__pyx_n_s_mj_solveM2, __pyx_k_mj_solveM2, sizeof(__pyx_k_mj_solveM2), 0, 0, 1, 1},
    {&__pyx_n_s_mj_step, __pyx_k_mj_step, sizeof(__pyx_k_mj_step), 0, 0, 1, 1},
    {&__pyx_n_s_mj_step1, __pyx_k_mj_step1, sizeof(__pyx_k_mj_step1), 0, 0, 1, 1},
    {&__pyx_n_s_mj_step2, __pyx_k_mj_step2, sizeof(__pyx_k_mj_step2), 0, 0, 1, 1},
    {&__pyx_n_s_mj_subtreeVel, __pyx_k_mj_subtreeVel, sizeof(__pyx_k_mj_subtreeVel), 0, 0, 1, 1},
    {&__pyx_n_s_mj_tendon, __pyx_k_mj_tendon, sizeof(__pyx_k_mj_tendon), 0, 0, 1, 1},
    {&__pyx_n_s_mj_transmission, __pyx_k_mj_transmission, sizeof(__pyx_k_mj_transmission), 0, 0, 1, 1},
    {&__pyx_n_s_mj_version, __pyx_k_mj_version, sizeof(__pyx_k_mj_version), 0, 0, 1, 1},
    {&__pyx_n_s_mj_warning, __pyx_k_mj_warning, sizeof(__pyx_k_mj_warning), 0, 0, 1, 1},
    {&__pyx_n_u_mjb, __pyx_k_mjb, sizeof(__pyx_k_mjb), 0, 1, 0, 1},
    {&__pyx_kp_u_mjb_2, __pyx_k_mjb_2, sizeof(__pyx_k_mjb_2), 0, 1, 0, 0},
    {&__pyx_n_s_mjb_bytes, __pyx_k_mjb_bytes, sizeof(__pyx_k_mjb_bytes), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_addAux, __pyx_k_mjr_addAux, sizeof(__pyx_k_mjr_addAux), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_blitAux, __pyx_k_mjr_blitAux, sizeof(__pyx_k_mjr_blitAux), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_blitBuffer, __pyx_k_mjr_blitBuffer, sizeof(__pyx_k_mjr_blitBuffer), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_changeFont, __pyx_k_mjr_changeFont, sizeof(__pyx_k_mjr_changeFont), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_defaultContext, __pyx_k_mjr_defaultContext, sizeof(__pyx_k_mjr_defaultContext), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_figure, __pyx_k_mjr_figure, sizeof(__pyx_k_mjr_figure), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_findRect, __pyx_k_mjr_findRect, sizeof(__pyx_k_mjr_findRect), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_finish, __pyx_k_mjr_finish, sizeof(__pyx_k_mjr_finish), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_freeContext, __pyx_k_mjr_freeContext, sizeof(__pyx_k_mjr_freeContext), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_getError, __pyx_k_mjr_getError, sizeof(__pyx_k_mjr_getError), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_makeContext, __pyx_k_mjr_makeContext, sizeof(__pyx_k_mjr_makeContext), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_overlay, __pyx_k_mjr_overlay, sizeof(__pyx_k_mjr_overlay), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_render, __pyx_k_mjr_render, sizeof(__pyx_k_mjr_render), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_restoreBuffer, __pyx_k_mjr_restoreBuffer, sizeof(__pyx_k_mjr_restoreBuffer), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_setAux, __pyx_k_mjr_setAux, sizeof(__pyx_k_mjr_setAux), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_setBuffer, __pyx_k_mjr_setBuffer, sizeof(__pyx_k_mjr_setBuffer), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_uploadHField, __pyx_k_mjr_uploadHField, sizeof(__pyx_k_mjr_uploadHField), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_uploadMesh, __pyx_k_mjr_uploadMesh, sizeof(__pyx_k_mjr_uploadMesh), 0, 0, 1, 1},
    {&__pyx_n_s_mjr_uploadTexture, __pyx_k_mjr_uploadTexture, sizeof(__pyx_k_mjr_uploadTexture), 0, 0, 1, 1},
    {&__pyx_n_s_mju_Halton, __pyx_k_mju_Halton, sizeof(__pyx_k_mju_Halton), 0, 0, 1, 1},
    {&__pyx_n_s_mju_L1, __pyx_k_mju_L1, sizeof(__pyx_k_mju_L1), 0, 0, 1, 1},
    {&__pyx_n_s_mju_add, __pyx_k_mju_add, sizeof(__pyx_k_mju_add), 0, 0, 1, 1},
    {&__pyx_n_s_mju_add3, __pyx_k_mju_add3, sizeof(__pyx_k_mju_add3), 0, 0, 1, 1},
    {&__pyx_n_s_mju_addScl, __pyx_k_mju_addScl, sizeof(__pyx_k_mju_addScl), 0, 0, 1, 1},
    {&__pyx_n_s_mju_addScl3, __pyx_k_mju_addScl3, sizeof(__pyx_k_mju_addScl3), 0, 0, 1, 1},
    {&__pyx_n_s_mju_addTo, __pyx_k_mju_addTo, sizeof(__pyx_k_mju_addTo), 0, 0, 1, 1},
    {&__pyx_n_s_mju_addTo3, __pyx_k_mju_addTo3, sizeof(__pyx_k_mju_addTo3), 0, 0, 1, 1},
    {&__pyx_n_s_mju_addToScl, __pyx_k_mju_addToScl, sizeof(__pyx_k_mju_addToScl), 0, 0, 1, 1},
    {&__pyx_n_s_mju_addToScl3, __pyx_k_mju_addToScl3, sizeof(__pyx_k_mju_addToScl3), 0, 0, 1, 1},
    {&__pyx_n_s_mju_axisAngle2Quat, __pyx_k_mju_axisAngle2Quat, sizeof(__pyx_k_mju_axisAngle2Quat), 0, 0, 1, 1},
    {&__pyx_n_s_mju_cholFactor, __pyx_k_mju_cholFactor, sizeof(__pyx_k_mju_cholFactor), 0, 0, 1, 1},
    {&__pyx_n_s_mju_cholSolve, __pyx_k_mju_cholSolve, sizeof(__pyx_k_mju_cholSolve), 0, 0, 1, 1},
    {&__pyx_n_s_mju_cholUpdate, __pyx_k_mju_cholUpdate, sizeof(__pyx_k_mju_cholUpdate), 0, 0, 1, 1},
    {&__pyx_n_s_mju_clearHandlers, __pyx_k_mju_clearHandlers, sizeof(__pyx_k_mju_clearHandlers), 0, 0, 1, 1},
    {&__pyx_n_s_mju_copy, __pyx_k_mju_copy, sizeof(__pyx_k_mju_copy), 0, 0, 1, 1},
    {&__pyx_n_s_mju_copy3, __pyx_k_mju_copy3, sizeof(__pyx_k_mju_copy3), 0, 0, 1, 1},
    {&__pyx_n_s_mju_copy4, __pyx_k_mju_copy4, sizeof(__pyx_k_mju_copy4), 0, 0, 1, 1},
    {&__pyx_n_s_mju_cross, __pyx_k_mju_cross, sizeof(__pyx_k_mju_cross), 0, 0, 1, 1},
    {&__pyx_n_s_mju_decodePyramid, __pyx_k_mju_decodePyramid, sizeof(__pyx_k_mju_decodePyramid), 0, 0, 1, 1},
    {&__pyx_n_s_mju_derivQuat, __pyx_k_mju_derivQuat, sizeof(__pyx_k_mju_derivQuat), 0, 0, 1, 1},
    {&__pyx_n_s_mju_dist3, __pyx_k_mju_dist3, sizeof(__pyx_k_mju_dist3), 0, 0, 1, 1},
    {&__pyx_n_s_mju_dot, __pyx_k_mju_dot, sizeof(__pyx_k_mju_dot), 0, 0, 1, 1},
    {&__pyx_n_s_mju_dot3, __pyx_k_mju_dot3, sizeof(__pyx_k_mju_dot3), 0, 0, 1, 1},
    {&__pyx_n_s_mju_eig3, __pyx_k_mju_eig3, sizeof(__pyx_k_mju_eig3), 0, 0, 1, 1},
    {&__pyx_n_s_mju_encodePyramid, __pyx_k_mju_encodePyramid, sizeof(__pyx_k_mju_encodePyramid), 0, 0, 1, 1},
    {&__pyx_n_s_mju_error, __pyx_k_mju_error, sizeof(__pyx_k_mju_error), 0, 0, 1, 1},
    {&__pyx_n_s_mju_error_i, __pyx_k_mju_error_i, sizeof(__pyx_k_mju_error_i), 0, 0, 1, 1},
    {&__pyx_n_s_mju_error_s, __pyx_k_mju_error_s, sizeof(__pyx_k_mju_error_s), 0, 0, 1, 1},
    {&__pyx_n_s_mju_insertionSort, __pyx_k_mju_insertionSort, sizeof(__pyx_k_mju_insertionSort), 0, 0, 1, 1},
    {&__pyx_n_s_mju_insertionSortInt, __pyx_k_mju_insertionSortInt, sizeof(__pyx_k_mju_insertionSortInt), 0, 0, 1, 1},
    {&__pyx_n_s_mju_isBad, __pyx_k_mju_isBad, sizeof(__pyx_k_mju_isBad), 0, 0, 1, 1},
    {&__pyx_n_s_mju_isZero, __pyx_k_mju_isZero, sizeof(__pyx_k_mju_isZero), 0, 0, 1, 1},
    {&__pyx_n_s_mju_mat2Quat, __pyx_k_mju_mat2Quat, sizeof(__pyx_k_mju_mat2Quat), 0, 0, 1, 1},
    {&__pyx_n_s_mju_max, __pyx_k_mju_max, sizeof(__pyx_k_mju_max), 0, 0, 1, 1},
    {&__pyx_n_s_mju_min, __pyx_k_mju_min, sizeof(__pyx_k_mju_min), 0, 0, 1, 1},
    {&__pyx_n_s_mju_mulMatMat, __pyx_k_mju_mulMatMat, sizeof(__pyx_k_mju_mulMatMat), 0, 0, 1, 1},
    {&__pyx_n_s_mju_mulMatMatT, __pyx_k_mju_mulMatMatT, sizeof(__pyx_k_mju_mulMatMatT), 0, 0, 1, 1},
    {&__pyx_n_s_mju_mulMatTMat, __pyx_k_mju_mulMatTMat, sizeof(__pyx_k_mju_mulMatTMat), 0, 0, 1, 1},
    {&__pyx_n_s_mju_mulMatTVec, __pyx_k_mju_mulMatTVec, sizeof(__pyx_k_mju_mulMatTVec), 0, 0, 1, 1},
    {&__pyx_n_s_mju_mulMatVec, __pyx_k_mju_mulMatVec, sizeof(__pyx_k_mju_mulMatVec), 0, 0, 1, 1},
    {&__pyx_n_s_mju_mulPose, __pyx_k_mju_mulPose, sizeof(__pyx_k_mju_mulPose), 0, 0, 1, 1},
    {&__pyx_n_s_mju_mulQuat, __pyx_k_mju_mulQuat, sizeof(__pyx_k_mju_mulQuat), 0, 0, 1, 1},
    {&__pyx_n_s_mju_mulQuatAxis, __pyx_k_mju_mulQuatAxis, sizeof(__pyx_k_mju_mulQuatAxis), 0, 0, 1, 1},
    {&__pyx_n_s_mju_muscleBias, __pyx_k_mju_muscleBias, sizeof(__pyx_k_mju_muscleBias), 0, 0, 1, 1},
    {&__pyx_n_s_mju_muscleDynamics, __pyx_k_mju_muscleDynamics, sizeof(__pyx_k_mju_muscleDynamics), 0, 0, 1, 1},
    {&__pyx_n_s_mju_muscleGain, __pyx_k_mju_muscleGain, sizeof(__pyx_k_mju_muscleGain), 0, 0, 1, 1},
    {&__pyx_n_s_mju_negPose, __pyx_k_mju_negPose, sizeof(__pyx_k_mju_negPose), 0, 0, 1, 1},
    {&__pyx_n_s_mju_negQuat, __pyx_k_mju_negQuat, sizeof(__pyx_k_mju_negQuat), 0, 0, 1, 1},
    {&__pyx_n_s_mju_norm, __pyx_k_mju_norm, sizeof(__pyx_k_mju_norm), 0, 0, 1, 1},
    {&__pyx_n_s_mju_norm3, __pyx_k_mju_norm3, sizeof(__pyx_k_mju_norm3), 0, 0, 1, 1},
    {&__pyx_n_s_mju_normalize, __pyx_k_mju_normalize, sizeof(__pyx_k_mju_normalize), 0, 0, 1, 1},
    {&__pyx_n_s_mju_normalize3, __pyx_k_mju_normalize3, sizeof(__pyx_k_mju_normalize3), 0, 0, 1, 1},
    {&__pyx_n_s_mju_normalize4, __pyx_k_mju_normalize4, sizeof(__pyx_k_mju_normalize4), 0, 0, 1, 1},
    {&__pyx_n_s_mju_printMat, __pyx_k_mju_printMat, sizeof(__pyx_k_mju_printMat), 0, 0, 1, 1},
    {&__pyx_n_s_mju_printMatSparse, __pyx_k_mju_printMatSparse, sizeof(__pyx_k_mju_printMatSparse), 0, 0, 1, 1},
    {&__pyx_n_s_mju_quat2Mat, __pyx_k_mju_quat2Mat, sizeof(__pyx_k_mju_quat2Mat), 0, 0, 1, 1},
    {&__pyx_n_s_mju_quat2Vel, __pyx_k_mju_quat2Vel, sizeof(__pyx_k_mju_quat2Vel), 0, 0, 1, 1},
    {&__pyx_n_s_mju_quatIntegrate, __pyx_k_mju_quatIntegrate, sizeof(__pyx_k_mju_quatIntegrate), 0, 0, 1, 1},
    {&__pyx_n_s_mju_quatZ2Vec, __pyx_k_mju_quatZ2Vec, sizeof(__pyx_k_mju_quatZ2Vec), 0, 0, 1, 1},
    {&__pyx_n_s_mju_rayGeom, __pyx_k_mju_rayGeom, sizeof(__pyx_k_mju_rayGeom), 0, 0, 1, 1},
    {&__pyx_n_s_mju_rotVecMat, __pyx_k_mju_rotVecMat, sizeof(__pyx_k_mju_rotVecMat), 0, 0, 1, 1},
    {&__pyx_n_s_mju_rotVecMatT, __pyx_k_mju_rotVecMatT, sizeof(__pyx_k_mju_rotVecMatT), 0, 0, 1, 1},
    {&__pyx_n_s_mju_rotVecQuat, __pyx_k_mju_rotVecQuat, sizeof(__pyx_k_mju_rotVecQuat), 0, 0, 1, 1},
    {&__pyx_n_s_mju_round, __pyx_k_mju_round, sizeof(__pyx_k_mju_round), 0, 0, 1, 1},
    {&__pyx_n_s_mju_scl, __pyx_k_mju_scl, sizeof(__pyx_k_mju_scl), 0, 0, 1, 1},
    {&__pyx_n_s_mju_scl3, __pyx_k_mju_scl3, sizeof(__pyx_k_mju_scl3), 0, 0, 1, 1},
    {&__pyx_n_s_mju_sigmoid, __pyx_k_mju_sigmoid, sizeof(__pyx_k_mju_sigmoid), 0, 0, 1, 1},
    {&__pyx_n_s_mju_sign, __pyx_k_mju_sign, sizeof(__pyx_k_mju_sign), 0, 0, 1, 1},
    {&__pyx_n_s_mju_springDamper, __pyx_k_mju_springDamper, sizeof(__pyx_k_mju_springDamper), 0, 0, 1, 1},
    {&__pyx_n_s_mju_sqrMatTD, __pyx_k_mju_sqrMatTD, sizeof(__pyx_k_mju_sqrMatTD), 0, 0, 1, 1},
    {&__pyx_n_s_mju_standardNormal, __pyx_k_mju_standardNormal, sizeof(__pyx_k_mju_standardNormal), 0, 0, 1, 1},
    {&__pyx_n_s_mju_str2Type, __pyx_k_mju_str2Type, sizeof(__pyx_k_mju_str2Type), 0, 0, 1, 1},
    {&__pyx_n_s_mju_sub, __pyx_k_mju_sub, sizeof(__pyx_k_mju_sub), 0, 0, 1, 1},
    {&__pyx_n_s_mju_sub3, __pyx_k_mju_sub3, sizeof(__pyx_k_mju_sub3), 0, 0, 1, 1},
    {&__pyx_n_s_mju_subFrom, __pyx_k_mju_subFrom, sizeof(__pyx_k_mju_subFrom), 0, 0, 1, 1},
    {&__pyx_n_s_mju_subFrom3, __pyx_k_mju_subFrom3, sizeof(__pyx_k_mju_subFrom3), 0, 0, 1, 1},
    {&__pyx_n_s_mju_subQuat, __pyx_k_mju_subQuat, sizeof(__pyx_k_mju_subQuat), 0, 0, 1, 1},
    {&__pyx_n_s_mju_sum, __pyx_k_mju_sum, sizeof(__pyx_k_mju_sum), 0, 0, 1, 1},
    {&__pyx_n_s_mju_transformSpatial, __pyx_k_mju_transformSpatial, sizeof(__pyx_k_mju_transformSpatial), 0, 0, 1, 1},
    {&__pyx_n_s_mju_transpose, __pyx_k_mju_transpose, sizeof(__pyx_k_mju_transpose), 0, 0, 1, 1},
    {&__pyx_n_s_mju_trnVecPose, __pyx_k_mju_trnVecPose, sizeof(__pyx_k_mju_trnVecPose), 0, 0, 1, 1},
    {&__pyx_n_s_mju_unit4, __pyx_k_mju_unit4, sizeof(__pyx_k_mju_unit4), 0, 0, 1, 1},
    {&__pyx_n_s_mju_warning, __pyx_k_mju_warning, sizeof(__pyx_k_mju_warning), 0, 0, 1, 1},
    {&__pyx_n_s_mju_warning_i, __pyx_k_mju_warning_i, sizeof(__pyx_k_mju_warning_i), 0, 0, 1, 1},
    {&__pyx_n_s_mju_warning_s, __pyx_k_mju_warning_s, sizeof(__pyx_k_mju_warning_s), 0, 0, 1, 1},
    {&__pyx_n_s_mju_writeLog, __pyx_k_mju_writeLog, sizeof(__pyx_k_mju_writeLog), 0, 0, 1, 1},
    {&__pyx_n_s_mju_zero, __pyx_k_mju_zero, sizeof(__pyx_k_mju_zero), 0, 0, 1, 1},
    {&__pyx_n_s_mju_zero3, __pyx_k_mju_zero3, sizeof(__pyx_k_mju_zero3), 0, 0, 1, 1},
    {&__pyx_n_s_mju_zero4, __pyx_k_mju_zero4, sizeof(__pyx_k_mju_zero4), 0, 0, 1, 1},
    {&__pyx_n_s_mjui_add, __pyx_k_mjui_add, sizeof(__pyx_k_mjui_add), 0, 0, 1, 1},
    {&__pyx_n_s_mjui_addToSection, __pyx_k_mjui_addToSection, sizeof(__pyx_k_mjui_addToSection), 0, 0, 1, 1},
    {&__pyx_n_s_mjui_event, __pyx_k_mjui_event, sizeof(__pyx_k_mjui_event), 0, 0, 1, 1},
    {&__pyx_n_s_mjui_render, __pyx_k_mjui_render, sizeof(__pyx_k_mjui_render), 0, 0, 1, 1},
    {&__pyx_n_s_mjui_resize, __pyx_k_mjui_resize, sizeof(__pyx_k_mjui_resize), 0, 0, 1, 1},
    {&__pyx_n_s_mjui_update, __pyx_k_mjui_update, sizeof(__pyx_k_mjui_update), 0, 0, 1, 1},
    {&__pyx_kp_u_mjvGeom_doesn_t_have_field_s, __pyx_k_mjvGeom_doesn_t_have_field_s, sizeof(__pyx_k_mjvGeom_doesn_t_have_field_s), 0, 1, 0, 0},
    {&__pyx_kp_u_mjvGeom_has_attr_but_type_is_inv, __pyx_k_mjvGeom_has_attr_but_type_is_inv, sizeof(__pyx_k_mjvGeom_has_attr_but_type_is_inv), 0, 1, 0, 0},
    {&__pyx_n_s_mjv_addGeoms, __pyx_k_mjv_addGeoms, sizeof(__pyx_k_mjv_addGeoms), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_alignToCamera, __pyx_k_mjv_alignToCamera, sizeof(__pyx_k_mjv_alignToCamera), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_applyPerturbForce, __pyx_k_mjv_applyPerturbForce, sizeof(__pyx_k_mjv_applyPerturbForce), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_applyPerturbPose, __pyx_k_mjv_applyPerturbPose, sizeof(__pyx_k_mjv_applyPerturbPose), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_cameraInModel, __pyx_k_mjv_cameraInModel, sizeof(__pyx_k_mjv_cameraInModel), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_cameraInRoom, __pyx_k_mjv_cameraInRoom, sizeof(__pyx_k_mjv_cameraInRoom), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_defaultCamera, __pyx_k_mjv_defaultCamera, sizeof(__pyx_k_mjv_defaultCamera), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_defaultFigure, __pyx_k_mjv_defaultFigure, sizeof(__pyx_k_mjv_defaultFigure), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_defaultOption, __pyx_k_mjv_defaultOption, sizeof(__pyx_k_mjv_defaultOption), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_defaultPerturb, __pyx_k_mjv_defaultPerturb, sizeof(__pyx_k_mjv_defaultPerturb), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_defaultScene, __pyx_k_mjv_defaultScene, sizeof(__pyx_k_mjv_defaultScene), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_freeScene, __pyx_k_mjv_freeScene, sizeof(__pyx_k_mjv_freeScene), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_frustumHeight, __pyx_k_mjv_frustumHeight, sizeof(__pyx_k_mjv_frustumHeight), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_initPerturb, __pyx_k_mjv_initPerturb, sizeof(__pyx_k_mjv_initPerturb), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_makeConnector, __pyx_k_mjv_makeConnector, sizeof(__pyx_k_mjv_makeConnector), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_makeLights, __pyx_k_mjv_makeLights, sizeof(__pyx_k_mjv_makeLights), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_makeScene, __pyx_k_mjv_makeScene, sizeof(__pyx_k_mjv_makeScene), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_model2room, __pyx_k_mjv_model2room, sizeof(__pyx_k_mjv_model2room), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_moveCamera, __pyx_k_mjv_moveCamera, sizeof(__pyx_k_mjv_moveCamera), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_moveModel, __pyx_k_mjv_moveModel, sizeof(__pyx_k_mjv_moveModel), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_movePerturb, __pyx_k_mjv_movePerturb, sizeof(__pyx_k_mjv_movePerturb), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_room2model, __pyx_k_mjv_room2model, sizeof(__pyx_k_mjv_room2model), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_select, __pyx_k_mjv_select, sizeof(__pyx_k_mjv_select), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_updateCamera, __pyx_k_mjv_updateCamera, sizeof(__pyx_k_mjv_updateCamera), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_updateScene, __pyx_k_mjv_updateScene, sizeof(__pyx_k_mjv_updateScene), 0, 0, 1, 1},
    {&__pyx_n_s_mjv_updateSkin, __pyx_k_mjv_updateSkin, sizeof(__pyx_k_mjv_updateSkin), 0, 0, 1, 1},
    {&__pyx_n_s_mocap_id, __pyx_k_mocap_id, sizeof(__pyx_k_mocap_id), 0, 0, 1, 1},
    {&__pyx_n_s_mocap_pos, __pyx_k_mocap_pos, sizeof(__pyx_k_mocap_pos), 0, 0, 1, 1},
    {&__pyx_n_s_mocap_quat, __pyx_k_mocap_quat, sizeof(__pyx_k_mocap_quat), 0, 0, 1, 1},
    {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1},
    {&__pyx_n_s_model, __pyx_k_model, sizeof(__pyx_k_model), 0, 0, 1, 1},
    {&__pyx_kp_u_model_mjb, __pyx_k_model_mjb, sizeof(__pyx_k_model_mjb), 0, 1, 0, 0},
    {&__pyx_kp_u_model_xml, __pyx_k_model_xml, sizeof(__pyx_k_model_xml), 0, 1, 0, 0},
    {&__pyx_n_s_modelpos, __pyx_k_modelpos, sizeof(__pyx_k_modelpos), 0, 0, 1, 1},
    {&__pyx_n_s_modelquat, __pyx_k_modelquat, sizeof(__pyx_k_modelquat), 0, 0, 1, 1},
    {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1},
    {&__pyx_n_s_move_camera, __pyx_k_move_camera, sizeof(__pyx_k_move_camera), 0, 0, 1, 1},
    {&__pyx_n_s_mro_entries, __pyx_k_mro_entries, sizeof(__pyx_k_mro_entries), 0, 0, 1, 1},
    {&__pyx_n_s_msg, __pyx_k_msg, sizeof(__pyx_k_msg), 0, 0, 1, 1},
    {&__pyx_n_s_mu, __pyx_k_mu, sizeof(__pyx_k_mu), 0, 0, 1, 1},
    {&__pyx_n_u_mujoco, __pyx_k_mujoco, sizeof(__pyx_k_mujoco), 0, 1, 0, 1},
    {&__pyx_n_s_mujoco_node, __pyx_k_mujoco_node, sizeof(__pyx_k_mujoco_node), 0, 0, 1, 1},
    {&__pyx_n_s_mujoco_path, __pyx_k_mujoco_path, sizeof(__pyx_k_mujoco_path), 0, 0, 1, 1},
    {&__pyx_n_u_mujoco_py, __pyx_k_mujoco_py, sizeof(__pyx_k_mujoco_py), 0, 1, 0, 1},
    {&__pyx_n_s_mujoco_py_builder, __pyx_k_mujoco_py_builder, sizeof(__pyx_k_mujoco_py_builder), 0, 0, 1, 1},
    {&__pyx_n_s_mujoco_py_cymj, __pyx_k_mujoco_py_cymj, sizeof(__pyx_k_mujoco_py_cymj), 0, 0, 1, 1},
    {&__pyx_kp_s_mujoco_py_cymj_pyx, __pyx_k_mujoco_py_cymj_pyx, sizeof(__pyx_k_mujoco_py_cymj_pyx), 0, 0, 1, 0},
    {&__pyx_n_s_mujoco_py_generated, __pyx_k_mujoco_py_generated, sizeof(__pyx_k_mujoco_py_generated), 0, 0, 1, 1},
    {&__pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_k_mujoco_py_generated_wrappers_pxi, sizeof(__pyx_k_mujoco_py_generated_wrappers_pxi), 0, 0, 1, 0},
    {&__pyx_kp_s_mujoco_py_mjbatchrenderer_pyx, __pyx_k_mujoco_py_mjbatchrenderer_pyx, sizeof(__pyx_k_mujoco_py_mjbatchrenderer_pyx), 0, 0, 1, 0},
    {&__pyx_kp_s_mujoco_py_mjpid_pyx, __pyx_k_mujoco_py_mjpid_pyx, sizeof(__pyx_k_mujoco_py_mjpid_pyx), 0, 0, 1, 0},
    {&__pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_k_mujoco_py_mjrendercontext_pyx, sizeof(__pyx_k_mujoco_py_mjrendercontext_pyx), 0, 0, 1, 0},
    {&__pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_k_mujoco_py_mjsim_pyx, sizeof(__pyx_k_mujoco_py_mjsim_pyx), 0, 0, 1, 0},
    {&__pyx_kp_s_mujoco_py_mjsimstate_pyx, __pyx_k_mujoco_py_mjsimstate_pyx, sizeof(__pyx_k_mujoco_py_mjsimstate_pyx), 0, 0, 1, 0},
    {&__pyx_n_s_mujoco_py_mjviewer, __pyx_k_mujoco_py_mjviewer, sizeof(__pyx_k_mujoco_py_mjviewer), 0, 0, 1, 1},
    {&__pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_k_mujoco_py_opengl_context_pyx, sizeof(__pyx_k_mujoco_py_opengl_context_pyx), 0, 0, 1, 0},
    {&__pyx_n_s_mujoco_py_utils, __pyx_k_mujoco_py_utils, sizeof(__pyx_k_mujoco_py_utils), 0, 0, 1, 1},
    {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1},
    {&__pyx_n_s_nM, __pyx_k_nM, sizeof(__pyx_k_nM), 0, 0, 1, 1},
    {&__pyx_n_s_na, __pyx_k_na, sizeof(__pyx_k_na), 0, 0, 1, 1},
    {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
    {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1},
    {&__pyx_n_s_namedtuple, __pyx_k_namedtuple, sizeof(__pyx_k_namedtuple), 0, 0, 1, 1},
    {&__pyx_kp_u_names_must_all_be_strings, __pyx_k_names_must_all_be_strings, sizeof(__pyx_k_names_must_all_be_strings), 0, 1, 0, 0},
    {&__pyx_n_s_nbody, __pyx_k_nbody, sizeof(__pyx_k_nbody), 0, 0, 1, 1},
    {&__pyx_n_s_nc, __pyx_k_nc, sizeof(__pyx_k_nc), 0, 0, 1, 1},
    {&__pyx_n_s_ncam, __pyx_k_ncam, sizeof(__pyx_k_ncam), 0, 0, 1, 1},
    {&__pyx_n_s_nconmax, __pyx_k_nconmax, sizeof(__pyx_k_nconmax), 0, 0, 1, 1},
    {&__pyx_n_s_ndim, __pyx_k_ndim, sizeof(__pyx_k_ndim), 0, 0, 1, 1},
    {&__pyx_n_s_ne, __pyx_k_ne, sizeof(__pyx_k_ne), 0, 0, 1, 1},
    {&__pyx_n_s_ne_2, __pyx_k_ne_2, sizeof(__pyx_k_ne_2), 0, 0, 1, 1},
    {&__pyx_n_s_nefc, __pyx_k_nefc, sizeof(__pyx_k_nefc), 0, 0, 1, 1},
    {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1},
    {&__pyx_n_s_new_height, __pyx_k_new_height, sizeof(__pyx_k_new_height), 0, 0, 1, 1},
    {&__pyx_n_s_new_model, __pyx_k_new_model, sizeof(__pyx_k_new_model), 0, 0, 1, 1},
    {&__pyx_n_s_new_sim, __pyx_k_new_sim, sizeof(__pyx_k_new_sim), 0, 0, 1, 1},
    {&__pyx_n_s_new_width, __pyx_k_new_width, sizeof(__pyx_k_new_width), 0, 0, 1, 1},
    {&__pyx_n_s_newmass, __pyx_k_newmass, sizeof(__pyx_k_newmass), 0, 0, 1, 1},
    {&__pyx_n_s_newpos, __pyx_k_newpos, sizeof(__pyx_k_newpos), 0, 0, 1, 1},
    {&__pyx_n_s_ngeom, __pyx_k_ngeom, sizeof(__pyx_k_ngeom), 0, 0, 1, 1},
    {&__pyx_n_s_njmax, __pyx_k_njmax, sizeof(__pyx_k_njmax), 0, 0, 1, 1},
    {&__pyx_n_s_njnt, __pyx_k_njnt, sizeof(__pyx_k_njnt), 0, 0, 1, 1},
    {&__pyx_n_s_nlight, __pyx_k_nlight, sizeof(__pyx_k_nlight), 0, 0, 1, 1},
    {&__pyx_n_s_nmocap, __pyx_k_nmocap, sizeof(__pyx_k_nmocap), 0, 0, 1, 1},
    {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0},
    {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1},
    {&__pyx_n_s_nq, __pyx_k_nq, sizeof(__pyx_k_nq), 0, 0, 1, 1},
    {&__pyx_n_s_nr, __pyx_k_nr, sizeof(__pyx_k_nr), 0, 0, 1, 1},
    {&__pyx_n_s_nrect, __pyx_k_nrect, sizeof(__pyx_k_nrect), 0, 0, 1, 1},
    {&__pyx_n_s_nsensordata, __pyx_k_nsensordata, sizeof(__pyx_k_nsensordata), 0, 0, 1, 1},
    {&__pyx_n_s_nsite, __pyx_k_nsite, sizeof(__pyx_k_nsite), 0, 0, 1, 1},
    {&__pyx_n_s_nsubsteps, __pyx_k_nsubsteps, sizeof(__pyx_k_nsubsteps), 0, 0, 1, 1},
    {&__pyx_n_s_ntendon, __pyx_k_ntendon, sizeof(__pyx_k_ntendon), 0, 0, 1, 1},
    {&__pyx_n_s_nu, __pyx_k_nu, sizeof(__pyx_k_nu), 0, 0, 1, 1},
    {&__pyx_n_s_num2, __pyx_k_num2, sizeof(__pyx_k_num2), 0, 0, 1, 1},
    {&__pyx_n_s_numbers, __pyx_k_numbers, sizeof(__pyx_k_numbers), 0, 0, 1, 1},
    {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1},
    {&__pyx_kp_u_numpy__core_multiarray_failed_to, __pyx_k_numpy__core_multiarray_failed_to, sizeof(__pyx_k_numpy__core_multiarray_failed_to), 0, 1, 0, 0},
    {&__pyx_kp_u_numpy__core_umath_failed_to_impo, __pyx_k_numpy__core_umath_failed_to_impo, sizeof(__pyx_k_numpy__core_umath_failed_to_impo), 0, 1, 0, 0},
    {&__pyx_n_s_nuser_actuator, __pyx_k_nuser_actuator, sizeof(__pyx_k_nuser_actuator), 0, 0, 1, 1},
    {&__pyx_kp_u_nuser_actuator_is_not_set_large, __pyx_k_nuser_actuator_is_not_set_large, sizeof(__pyx_k_nuser_actuator_is_not_set_large), 0, 1, 0, 0},
    {&__pyx_n_s_nuserdata, __pyx_k_nuserdata, sizeof(__pyx_k_nuserdata), 0, 0, 1, 1},
    {&__pyx_kp_u_nuserdata_is_not_set_large_enoug, __pyx_k_nuserdata_is_not_set_large_enoug, sizeof(__pyx_k_nuserdata_is_not_set_large_enoug), 0, 1, 0, 0},
    {&__pyx_n_s_nv, __pyx_k_nv, sizeof(__pyx_k_nv), 0, 0, 1, 1},
    {&__pyx_n_s_nwrap, __pyx_k_nwrap, sizeof(__pyx_k_nwrap), 0, 0, 1, 1},
    {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1},
    {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1},
    {&__pyx_n_s_objid, __pyx_k_objid, sizeof(__pyx_k_objid), 0, 0, 1, 1},
    {&__pyx_n_s_objtype, __pyx_k_objtype, sizeof(__pyx_k_objtype), 0, 0, 1, 1},
    {&__pyx_n_s_offscreen, __pyx_k_offscreen, sizeof(__pyx_k_offscreen), 0, 0, 1, 1},
    {&__pyx_n_u_offscreen, __pyx_k_offscreen, sizeof(__pyx_k_offscreen), 0, 1, 0, 1},
    {&__pyx_n_s_old_dyld_library_path, __pyx_k_old_dyld_library_path, sizeof(__pyx_k_old_dyld_library_path), 0, 0, 1, 1},
    {&__pyx_n_s_oldpos, __pyx_k_oldpos, sizeof(__pyx_k_oldpos), 0, 0, 1, 1},
    {&__pyx_n_s_ones, __pyx_k_ones, sizeof(__pyx_k_ones), 0, 0, 1, 1},
    {&__pyx_n_s_open, __pyx_k_open, sizeof(__pyx_k_open), 0, 0, 1, 1},
    {&__pyx_n_s_opengl_backend, __pyx_k_opengl_backend, sizeof(__pyx_k_opengl_backend), 0, 0, 1, 1},
    {&__pyx_n_s_opengl_context, __pyx_k_opengl_context, sizeof(__pyx_k_opengl_context), 0, 0, 1, 1},
    {&__pyx_n_s_opt, __pyx_k_opt, sizeof(__pyx_k_opt), 0, 0, 1, 1},
    {&__pyx_n_s_os, __pyx_k_os, sizeof(__pyx_k_os), 0, 0, 1, 1},
    {&__pyx_n_s_other, __pyx_k_other, sizeof(__pyx_k_other), 0, 0, 1, 1},
    {&__pyx_n_s_output, __pyx_k_output, sizeof(__pyx_k_output), 0, 0, 1, 1},
    {&__pyx_n_s_overlay, __pyx_k_overlay, sizeof(__pyx_k_overlay), 0, 0, 1, 1},
    {&__pyx_n_s_overlay2, __pyx_k_overlay2, sizeof(__pyx_k_overlay2), 0, 0, 1, 1},
    {&__pyx_n_s_pack, __pyx_k_pack, sizeof(__pyx_k_pack), 0, 0, 1, 1},
    {&__pyx_n_s_parentNode, __pyx_k_parentNode, sizeof(__pyx_k_parentNode), 0, 0, 1, 1},
    {&__pyx_n_s_parseString, __pyx_k_parseString, sizeof(__pyx_k_parseString), 0, 0, 1, 1},
    {&__pyx_n_s_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 0, 1, 1},
    {&__pyx_n_s_pbo_depth, __pyx_k_pbo_depth, sizeof(__pyx_k_pbo_depth), 0, 0, 1, 1},
    {&__pyx_n_s_pbo_rgb, __pyx_k_pbo_rgb, sizeof(__pyx_k_pbo_rgb), 0, 0, 1, 1},
    {&__pyx_n_s_pert, __pyx_k_pert, sizeof(__pyx_k_pert), 0, 0, 1, 1},
    {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1},
    {&__pyx_n_s_platform, __pyx_k_platform, sizeof(__pyx_k_platform), 0, 0, 1, 1},
    {&__pyx_n_s_pnt, __pyx_k_pnt, sizeof(__pyx_k_pnt), 0, 0, 1, 1},
    {&__pyx_n_s_pnt_view, __pyx_k_pnt_view, sizeof(__pyx_k_pnt_view), 0, 0, 1, 1},
    {&__pyx_n_s_point, __pyx_k_point, sizeof(__pyx_k_point), 0, 0, 1, 1},
    {&__pyx_n_s_pop, __pyx_k_pop, sizeof(__pyx_k_pop), 0, 0, 1, 1},
    {&__pyx_n_s_pos, __pyx_k_pos, sizeof(__pyx_k_pos), 0, 0, 1, 1},
    {&__pyx_n_s_pos0, __pyx_k_pos0, sizeof(__pyx_k_pos0), 0, 0, 1, 1},
    {&__pyx_n_s_pos1, __pyx_k_pos1, sizeof(__pyx_k_pos1), 0, 0, 1, 1},
    {&__pyx_n_s_pos2, __pyx_k_pos2, sizeof(__pyx_k_pos2), 0, 0, 1, 1},
    {&__pyx_n_s_posres, __pyx_k_posres, sizeof(__pyx_k_posres), 0, 0, 1, 1},
    {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1},
    {&__pyx_n_s_prepare_render_context, __pyx_k_prepare_render_context, sizeof(__pyx_k_prepare_render_context), 0, 0, 1, 1},
    {&__pyx_n_s_previous_errors, __pyx_k_previous_errors, sizeof(__pyx_k_previous_errors), 0, 0, 1, 1},
    {&__pyx_n_s_print, __pyx_k_print, sizeof(__pyx_k_print), 0, 0, 1, 1},
    {&__pyx_n_s_prm, __pyx_k_prm, sizeof(__pyx_k_prm), 0, 0, 1, 1},
    {&__pyx_n_s_property, __pyx_k_property, sizeof(__pyx_k_property), 0, 0, 1, 1},
    {&__pyx_n_s_ptr, __pyx_k_ptr, sizeof(__pyx_k_ptr), 0, 0, 1, 1},
    {&__pyx_n_s_push, __pyx_k_push, sizeof(__pyx_k_push), 0, 0, 1, 1},
    {&__pyx_n_s_pycuda, __pyx_k_pycuda, sizeof(__pyx_k_pycuda), 0, 0, 1, 1},
    {&__pyx_n_s_pycuda_driver, __pyx_k_pycuda_driver, sizeof(__pyx_k_pycuda_driver), 0, 0, 1, 1},
    {&__pyx_n_s_pycuda_gl, __pyx_k_pycuda_gl, sizeof(__pyx_k_pycuda_gl), 0, 0, 1, 1},
    {&__pyx_n_s_pyramid, __pyx_k_pyramid, sizeof(__pyx_k_pyramid), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Enum, __pyx_k_pyx_unpickle_Enum, sizeof(__pyx_k_pyx_unpickle_Enum), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
    {&__pyx_n_s_qa, __pyx_k_qa, sizeof(__pyx_k_qa), 0, 0, 1, 1},
    {&__pyx_n_s_qb, __pyx_k_qb, sizeof(__pyx_k_qb), 0, 0, 1, 1},
    {&__pyx_n_s_qfrc_target, __pyx_k_qfrc_target, sizeof(__pyx_k_qfrc_target), 0, 0, 1, 1},
    {&__pyx_n_s_qpos, __pyx_k_qpos, sizeof(__pyx_k_qpos), 0, 0, 1, 1},
    {&__pyx_n_u_qpos, __pyx_k_qpos, sizeof(__pyx_k_qpos), 0, 1, 0, 1},
    {&__pyx_n_s_qpos1, __pyx_k_qpos1, sizeof(__pyx_k_qpos1), 0, 0, 1, 1},
    {&__pyx_n_s_qpos2, __pyx_k_qpos2, sizeof(__pyx_k_qpos2), 0, 0, 1, 1},
    {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1},
    {&__pyx_n_s_quat, __pyx_k_quat, sizeof(__pyx_k_quat), 0, 0, 1, 1},
    {&__pyx_n_s_quat1, __pyx_k_quat1, sizeof(__pyx_k_quat1), 0, 0, 1, 1},
    {&__pyx_n_s_quat2, __pyx_k_quat2, sizeof(__pyx_k_quat2), 0, 0, 1, 1},
    {&__pyx_n_s_quatres, __pyx_k_quatres, sizeof(__pyx_k_quatres), 0, 0, 1, 1},
    {&__pyx_n_s_quiet, __pyx_k_quiet, sizeof(__pyx_k_quiet), 0, 0, 1, 1},
    {&__pyx_n_s_qvel, __pyx_k_qvel, sizeof(__pyx_k_qvel), 0, 0, 1, 1},
    {&__pyx_n_u_qvel, __pyx_k_qvel, sizeof(__pyx_k_qvel), 0, 1, 0, 1},
    {&__pyx_n_s_r1, __pyx_k_r1, sizeof(__pyx_k_r1), 0, 0, 1, 1},
    {&__pyx_n_s_r2, __pyx_k_r2, sizeof(__pyx_k_r2), 0, 0, 1, 1},
    {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
    {&__pyx_n_s_ravel, __pyx_k_ravel, sizeof(__pyx_k_ravel), 0, 0, 1, 1},
    {&__pyx_n_s_ray, __pyx_k_ray, sizeof(__pyx_k_ray), 0, 0, 1, 1},
    {&__pyx_n_s_ray_fast_group, __pyx_k_ray_fast_group, sizeof(__pyx_k_ray_fast_group), 0, 0, 1, 1},
    {&__pyx_n_s_ray_fast_nogroup, __pyx_k_ray_fast_nogroup, sizeof(__pyx_k_ray_fast_nogroup), 0, 0, 1, 1},
    {&__pyx_n_u_rb, __pyx_k_rb, sizeof(__pyx_k_rb), 0, 1, 0, 1},
    {&__pyx_n_s_read, __pyx_k_read, sizeof(__pyx_k_read), 0, 0, 1, 1},
    {&__pyx_n_s_read_cuda, __pyx_k_read_cuda, sizeof(__pyx_k_read_cuda), 0, 0, 1, 1},
    {&__pyx_n_s_read_nocuda, __pyx_k_read_nocuda, sizeof(__pyx_k_read_nocuda), 0, 0, 1, 1},
    {&__pyx_n_s_read_pixels, __pyx_k_read_pixels, sizeof(__pyx_k_read_pixels), 0, 0, 1, 1},
    {&__pyx_n_s_read_pixels_depth, __pyx_k_read_pixels_depth, sizeof(__pyx_k_read_pixels_depth), 0, 0, 1, 1},
    {&__pyx_n_s_rect, __pyx_k_rect, sizeof(__pyx_k_rect), 0, 0, 1, 1},
    {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1},
    {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1},
    {&__pyx_n_s_refresh_rate, __pyx_k_refresh_rate, sizeof(__pyx_k_refresh_rate), 0, 0, 1, 1},
    {&__pyx_n_s_register, __pyx_k_register, sizeof(__pyx_k_register), 0, 0, 1, 1},
    {&__pyx_n_s_reldx, __pyx_k_reldx, sizeof(__pyx_k_reldx), 0, 0, 1, 1},
    {&__pyx_n_s_reldy, __pyx_k_reldy, sizeof(__pyx_k_reldy), 0, 0, 1, 1},
    {&__pyx_n_s_relx, __pyx_k_relx, sizeof(__pyx_k_relx), 0, 0, 1, 1},
    {&__pyx_n_s_rely, __pyx_k_rely, sizeof(__pyx_k_rely), 0, 0, 1, 1},
    {&__pyx_n_s_removeChild, __pyx_k_removeChild, sizeof(__pyx_k_removeChild), 0, 0, 1, 1},
    {&__pyx_n_s_remove_empty_lines, __pyx_k_remove_empty_lines, sizeof(__pyx_k_remove_empty_lines), 0, 0, 1, 1},
    {&__pyx_n_s_render, __pyx_k_render, sizeof(__pyx_k_render), 0, 0, 1, 1},
    {&__pyx_n_s_render_callback, __pyx_k_render_callback, sizeof(__pyx_k_render_callback), 0, 0, 1, 1},
    {&__pyx_n_s_render_context, __pyx_k_render_context, sizeof(__pyx_k_render_context), 0, 0, 1, 1},
    {&__pyx_n_s_render_contexts, __pyx_k_render_contexts, sizeof(__pyx_k_render_contexts), 0, 0, 1, 1},
    {&__pyx_n_s_render_swap_callback, __pyx_k_render_swap_callback, sizeof(__pyx_k_render_swap_callback), 0, 0, 1, 1},
    {&__pyx_n_s_res, __pyx_k_res, sizeof(__pyx_k_res), 0, 0, 1, 1},
    {&__pyx_n_s_reset, __pyx_k_reset, sizeof(__pyx_k_reset), 0, 0, 1, 1},
    {&__pyx_n_s_reshape, __pyx_k_reshape, sizeof(__pyx_k_reshape), 0, 0, 1, 1},
    {&__pyx_n_s_resolution, __pyx_k_resolution, sizeof(__pyx_k_resolution), 0, 0, 1, 1},
    {&__pyx_n_s_result, __pyx_k_result, sizeof(__pyx_k_result), 0, 0, 1, 1},
    {&__pyx_n_s_result_xml, __pyx_k_result_xml, sizeof(__pyx_k_result_xml), 0, 0, 1, 1},
    {&__pyx_n_s_ret, __pyx_k_ret, sizeof(__pyx_k_ret), 0, 0, 1, 1},
    {&__pyx_n_s_ret_img, __pyx_k_ret_img, sizeof(__pyx_k_ret_img), 0, 0, 1, 1},
    {&__pyx_n_s_rgb_arr, __pyx_k_rgb_arr, sizeof(__pyx_k_rgb_arr), 0, 0, 1, 1},
    {&__pyx_n_s_rgb_img, __pyx_k_rgb_img, sizeof(__pyx_k_rgb_img), 0, 0, 1, 1},
    {&__pyx_n_s_rgb_view, __pyx_k_rgb_view, sizeof(__pyx_k_rgb_view), 0, 0, 1, 1},
    {&__pyx_n_s_roompos, __pyx_k_roompos, sizeof(__pyx_k_roompos), 0, 0, 1, 1},
    {&__pyx_n_s_roomquat, __pyx_k_roomquat, sizeof(__pyx_k_roomquat), 0, 0, 1, 1},
    {&__pyx_n_s_roomup, __pyx_k_roomup, sizeof(__pyx_k_roomup), 0, 0, 1, 1},
    {&__pyx_n_s_rotnew2old, __pyx_k_rotnew2old, sizeof(__pyx_k_rotnew2old), 0, 0, 1, 1},
    {&__pyx_n_s_rowadr, __pyx_k_rowadr, sizeof(__pyx_k_rowadr), 0, 0, 1, 1},
    {&__pyx_n_s_rownnz, __pyx_k_rownnz, sizeof(__pyx_k_rownnz), 0, 0, 1, 1},
    {&__pyx_kp_u_s_Failed_to_load_MJB, __pyx_k_s_Failed_to_load_MJB, sizeof(__pyx_k_s_Failed_to_load_MJB), 0, 1, 0, 0},
    {&__pyx_n_s_sameframe, __pyx_k_sameframe, sizeof(__pyx_k_sameframe), 0, 0, 1, 1},
    {&__pyx_n_s_samples, __pyx_k_samples, sizeof(__pyx_k_samples), 0, 0, 1, 1},
    {&__pyx_n_s_save, __pyx_k_save, sizeof(__pyx_k_save), 0, 0, 1, 1},
    {&__pyx_n_s_save_locals_str_array, __pyx_k_save_locals_str_array, sizeof(__pyx_k_save_locals_str_array), 0, 0, 1, 1},
    {&__pyx_n_s_scale, __pyx_k_scale, sizeof(__pyx_k_scale), 0, 0, 1, 1},
    {&__pyx_n_s_schema_example, __pyx_k_schema_example, sizeof(__pyx_k_schema_example), 0, 0, 1, 1},
    {&__pyx_n_s_schema_val, __pyx_k_schema_val, sizeof(__pyx_k_schema_val), 0, 0, 1, 1},
    {&__pyx_n_s_scl, __pyx_k_scl, sizeof(__pyx_k_scl), 0, 0, 1, 1},
    {&__pyx_n_s_scn, __pyx_k_scn, sizeof(__pyx_k_scn), 0, 0, 1, 1},
    {&__pyx_n_s_sect, __pyx_k_sect, sizeof(__pyx_k_sect), 0, 0, 1, 1},
    {&__pyx_n_s_section, __pyx_k_section, sizeof(__pyx_k_section), 0, 0, 1, 1},
    {&__pyx_n_s_seg_ids, __pyx_k_seg_ids, sizeof(__pyx_k_seg_ids), 0, 0, 1, 1},
    {&__pyx_n_s_seg_img, __pyx_k_seg_img, sizeof(__pyx_k_seg_img), 0, 0, 1, 1},
    {&__pyx_n_s_segmentation, __pyx_k_segmentation, sizeof(__pyx_k_segmentation), 0, 0, 1, 1},
    {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1},
    {&__pyx_kp_s_self_ptr_cannot_be_converted_to, __pyx_k_self_ptr_cannot_be_converted_to, sizeof(__pyx_k_self_ptr_cannot_be_converted_to), 0, 0, 1, 0},
    {&__pyx_n_s_selpnt, __pyx_k_selpnt, sizeof(__pyx_k_selpnt), 0, 0, 1, 1},
    {&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1},
    {&__pyx_n_s_sensor_id2name, __pyx_k_sensor_id2name, sizeof(__pyx_k_sensor_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_sensor_name2id, __pyx_k_sensor_name2id, sizeof(__pyx_k_sensor_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_setAttribute, __pyx_k_setAttribute, sizeof(__pyx_k_setAttribute), 0, 0, 1, 1},
    {&__pyx_n_s_set_buffer_size, __pyx_k_set_buffer_size, sizeof(__pyx_k_set_buffer_size), 0, 0, 1, 1},
    {&__pyx_n_s_set_constants, __pyx_k_set_constants, sizeof(__pyx_k_set_constants), 0, 0, 1, 1},
    {&__pyx_n_s_set_error_callback, __pyx_k_set_error_callback, sizeof(__pyx_k_set_error_callback), 0, 0, 1, 1},
    {&__pyx_n_s_set_joint_qpos, __pyx_k_set_joint_qpos, sizeof(__pyx_k_set_joint_qpos), 0, 0, 1, 1},
    {&__pyx_n_s_set_joint_qvel, __pyx_k_set_joint_qvel, sizeof(__pyx_k_set_joint_qvel), 0, 0, 1, 1},
    {&__pyx_n_s_set_mocap_pos, __pyx_k_set_mocap_pos, sizeof(__pyx_k_set_mocap_pos), 0, 0, 1, 1},
    {&__pyx_n_s_set_mocap_quat, __pyx_k_set_mocap_quat, sizeof(__pyx_k_set_mocap_quat), 0, 0, 1, 1},
    {&__pyx_n_s_set_mujoco_buffers, __pyx_k_set_mujoco_buffers, sizeof(__pyx_k_set_mujoco_buffers), 0, 0, 1, 1},
    {&__pyx_n_s_set_name, __pyx_k_set_name, sizeof(__pyx_k_set_name), 0, 0, 1, 1},
    {&__pyx_n_s_set_pid_control, __pyx_k_set_pid_control, sizeof(__pyx_k_set_pid_control), 0, 0, 1, 1},
    {&__pyx_n_s_set_state, __pyx_k_set_state, sizeof(__pyx_k_set_state), 0, 0, 1, 1},
    {&__pyx_n_s_set_state_from_flattened, __pyx_k_set_state_from_flattened, sizeof(__pyx_k_set_state_from_flattened), 0, 0, 1, 1},
    {&__pyx_n_s_set_substep_callback, __pyx_k_set_substep_callback, sizeof(__pyx_k_set_substep_callback), 0, 0, 1, 1},
    {&__pyx_n_s_set_userdata_names, __pyx_k_set_userdata_names, sizeof(__pyx_k_set_userdata_names), 0, 0, 1, 1},
    {&__pyx_n_s_set_warning_callback, __pyx_k_set_warning_callback, sizeof(__pyx_k_set_warning_callback), 0, 0, 1, 1},
    {&__pyx_n_s_set_window_size, __pyx_k_set_window_size, sizeof(__pyx_k_set_window_size), 0, 0, 1, 1},
    {&__pyx_n_s_set_window_size_2, __pyx_k_set_window_size_2, sizeof(__pyx_k_set_window_size_2), 0, 0, 1, 1},
    {&__pyx_n_s_setpoint, __pyx_k_setpoint, sizeof(__pyx_k_setpoint), 0, 0, 1, 1},
    {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1},
    {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_setup_opengl_context, __pyx_k_setup_opengl_context, sizeof(__pyx_k_setup_opengl_context), 0, 0, 1, 1},
    {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1},
    {&__pyx_n_s_sim, __pyx_k_sim, sizeof(__pyx_k_sim), 0, 0, 1, 1},
    {&__pyx_n_s_site, __pyx_k_site, sizeof(__pyx_k_site), 0, 0, 1, 1},
    {&__pyx_n_s_site_id2name, __pyx_k_site_id2name, sizeof(__pyx_k_site_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_site_jacp, __pyx_k_site_jacp, sizeof(__pyx_k_site_jacp), 0, 0, 1, 1},
    {&__pyx_n_s_site_jacr, __pyx_k_site_jacr, sizeof(__pyx_k_site_jacr), 0, 0, 1, 1},
    {&__pyx_n_s_site_name2id, __pyx_k_site_name2id, sizeof(__pyx_k_site_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1},
    {&__pyx_n_s_skinid, __pyx_k_skinid, sizeof(__pyx_k_skinid), 0, 0, 1, 1},
    {&__pyx_n_s_skipsensor, __pyx_k_skipsensor, sizeof(__pyx_k_skipsensor), 0, 0, 1, 1},
    {&__pyx_n_s_skipstage, __pyx_k_skipstage, sizeof(__pyx_k_skipstage), 0, 0, 1, 1},
    {&__pyx_n_s_slots, __pyx_k_slots, sizeof(__pyx_k_slots), 0, 0, 1, 1},
    {&__pyx_n_s_solimp, __pyx_k_solimp, sizeof(__pyx_k_solimp), 0, 0, 1, 1},
    {&__pyx_n_s_solref, __pyx_k_solref, sizeof(__pyx_k_solref), 0, 0, 1, 1},
    {&__pyx_n_s_spec, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1},
    {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1},
    {&__pyx_n_s_src, __pyx_k_src, sizeof(__pyx_k_src), 0, 0, 1, 1},
    {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1},
    {&__pyx_n_s_start_i, __pyx_k_start_i, sizeof(__pyx_k_start_i), 0, 0, 1, 1},
    {&__pyx_n_s_stat, __pyx_k_stat, sizeof(__pyx_k_stat), 0, 0, 1, 1},
    {&__pyx_n_s_state, __pyx_k_state, sizeof(__pyx_k_state), 0, 0, 1, 1},
    {&__pyx_n_s_state_tuple, __pyx_k_state_tuple, sizeof(__pyx_k_state_tuple), 0, 0, 1, 1},
    {&__pyx_n_s_staticmethod, __pyx_k_staticmethod, sizeof(__pyx_k_staticmethod), 0, 0, 1, 1},
    {&__pyx_n_s_step, __pyx_k_step, sizeof(__pyx_k_step), 0, 0, 1, 1},
    {&__pyx_n_s_step_udd, __pyx_k_step_udd, sizeof(__pyx_k_step_udd), 0, 0, 1, 1},
    {&__pyx_n_s_stop, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1},
    {&__pyx_n_s_str, __pyx_k_str, sizeof(__pyx_k_str), 0, 0, 1, 1},
    {&__pyx_n_s_str_array, __pyx_k_str_array, sizeof(__pyx_k_str_array), 0, 0, 1, 1},
    {&__pyx_kp_s_strided_and_direct, __pyx_k_strided_and_direct, sizeof(__pyx_k_strided_and_direct), 0, 0, 1, 0},
    {&__pyx_kp_s_strided_and_direct_or_indirect, __pyx_k_strided_and_direct_or_indirect, sizeof(__pyx_k_strided_and_direct_or_indirect), 0, 0, 1, 0},
    {&__pyx_kp_s_strided_and_indirect, __pyx_k_strided_and_indirect, sizeof(__pyx_k_strided_and_indirect), 0, 0, 1, 0},
    {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0},
    {&__pyx_n_s_struct, __pyx_k_struct, sizeof(__pyx_k_struct), 0, 0, 1, 1},
    {&__pyx_n_s_substep_callback, __pyx_k_substep_callback, sizeof(__pyx_k_substep_callback), 0, 0, 1, 1},
    {&__pyx_n_s_suffix, __pyx_k_suffix, sizeof(__pyx_k_suffix), 0, 0, 1, 1},
    {&__pyx_n_s_super, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1},
    {&__pyx_n_s_swap_buffers, __pyx_k_swap_buffers, sizeof(__pyx_k_swap_buffers), 0, 0, 1, 1},
    {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1},
    {&__pyx_n_s_tagName, __pyx_k_tagName, sizeof(__pyx_k_tagName), 0, 0, 1, 1},
    {&__pyx_n_s_target_height, __pyx_k_target_height, sizeof(__pyx_k_target_height), 0, 0, 1, 1},
    {&__pyx_n_s_target_width, __pyx_k_target_width, sizeof(__pyx_k_target_width), 0, 0, 1, 1},
    {&__pyx_n_s_td, __pyx_k_td, sizeof(__pyx_k_td), 0, 0, 1, 1},
    {&__pyx_n_s_tempfile, __pyx_k_tempfile, sizeof(__pyx_k_tempfile), 0, 0, 1, 1},
    {&__pyx_n_s_tendon_id2name, __pyx_k_tendon_id2name, sizeof(__pyx_k_tendon_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_tendon_name2id, __pyx_k_tendon_name2id, sizeof(__pyx_k_tendon_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
    {&__pyx_n_s_tex_id, __pyx_k_tex_id, sizeof(__pyx_k_tex_id), 0, 0, 1, 1},
    {&__pyx_n_s_texid, __pyx_k_texid, sizeof(__pyx_k_texid), 0, 0, 1, 1},
    {&__pyx_n_s_text, __pyx_k_text, sizeof(__pyx_k_text), 0, 0, 1, 1},
    {&__pyx_n_s_text1, __pyx_k_text1, sizeof(__pyx_k_text1), 0, 0, 1, 1},
    {&__pyx_n_s_text2, __pyx_k_text2, sizeof(__pyx_k_text2), 0, 0, 1, 1},
    {&__pyx_n_s_threading, __pyx_k_threading, sizeof(__pyx_k_threading), 0, 0, 1, 1},
    {&__pyx_n_s_throw, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1},
    {&__pyx_n_s_time, __pyx_k_time, sizeof(__pyx_k_time), 0, 0, 1, 1},
    {&__pyx_n_u_time, __pyx_k_time, sizeof(__pyx_k_time), 0, 1, 0, 1},
    {&__pyx_kp_u_time_qpos_qvel_act_udd_state, __pyx_k_time_qpos_qvel_act_udd_state, sizeof(__pyx_k_time_qpos_qvel_act_udd_state), 0, 1, 0, 0},
    {&__pyx_n_s_toprettyxml, __pyx_k_toprettyxml, sizeof(__pyx_k_toprettyxml), 0, 0, 1, 1},
    {&__pyx_n_s_torque, __pyx_k_torque, sizeof(__pyx_k_torque), 0, 0, 1, 1},
    {&__pyx_n_s_traceback, __pyx_k_traceback, sizeof(__pyx_k_traceback), 0, 0, 1, 1},
    {&__pyx_n_s_type, __pyx_k_type, sizeof(__pyx_k_type), 0, 0, 1, 1},
    {&__pyx_n_s_udd_callback, __pyx_k_udd_callback, sizeof(__pyx_k_udd_callback), 0, 0, 1, 1},
    {&__pyx_n_s_udd_state, __pyx_k_udd_state, sizeof(__pyx_k_udd_state), 0, 0, 1, 1},
    {&__pyx_n_s_ui, __pyx_k_ui, sizeof(__pyx_k_ui), 0, 0, 1, 1},
    {&__pyx_n_s_uint16, __pyx_k_uint16, sizeof(__pyx_k_uint16), 0, 0, 1, 1},
    {&__pyx_n_s_uint8, __pyx_k_uint8, sizeof(__pyx_k_uint8), 0, 0, 1, 1},
    {&__pyx_kp_s_unable_to_allocate_array_data, __pyx_k_unable_to_allocate_array_data, sizeof(__pyx_k_unable_to_allocate_array_data), 0, 0, 1, 0},
    {&__pyx_kp_s_unable_to_allocate_shape_and_str, __pyx_k_unable_to_allocate_shape_and_str, sizeof(__pyx_k_unable_to_allocate_shape_and_str), 0, 0, 1, 0},
    {&__pyx_n_s_unflatten_dict, __pyx_k_unflatten_dict, sizeof(__pyx_k_unflatten_dict), 0, 0, 1, 1},
    {&__pyx_n_s_unmap, __pyx_k_unmap, sizeof(__pyx_k_unmap), 0, 0, 1, 1},
    {&__pyx_n_s_unpack, __pyx_k_unpack, sizeof(__pyx_k_unpack), 0, 0, 1, 1},
    {&__pyx_n_s_unregister, __pyx_k_unregister, sizeof(__pyx_k_unregister), 0, 0, 1, 1},
    {&__pyx_n_s_up, __pyx_k_up, sizeof(__pyx_k_up), 0, 0, 1, 1},
    {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
    {&__pyx_n_s_update_offscreen_size, __pyx_k_update_offscreen_size, sizeof(__pyx_k_update_offscreen_size), 0, 0, 1, 1},
    {&__pyx_n_s_update_sim, __pyx_k_update_sim, sizeof(__pyx_k_update_sim), 0, 0, 1, 1},
    {&__pyx_n_s_upload_texture, __pyx_k_upload_texture, sizeof(__pyx_k_upload_texture), 0, 0, 1, 1},
    {&__pyx_n_s_use_cuda, __pyx_k_use_cuda, sizeof(__pyx_k_use_cuda), 0, 0, 1, 1},
    {&__pyx_n_s_use_cuda_2, __pyx_k_use_cuda_2, sizeof(__pyx_k_use_cuda_2), 0, 0, 1, 1},
    {&__pyx_n_s_userdata, __pyx_k_userdata, sizeof(__pyx_k_userdata), 0, 0, 1, 1},
    {&__pyx_n_s_userdata_id2name, __pyx_k_userdata_id2name, sizeof(__pyx_k_userdata_id2name), 0, 0, 1, 1},
    {&__pyx_n_s_userdata_name2id, __pyx_k_userdata_name2id, sizeof(__pyx_k_userdata_name2id), 0, 0, 1, 1},
    {&__pyx_n_s_userdata_names, __pyx_k_userdata_names, sizeof(__pyx_k_userdata_names), 0, 0, 1, 1},
    {&__pyx_n_s_v, __pyx_k_v, sizeof(__pyx_k_v), 0, 0, 1, 1},
    {&__pyx_n_s_val, __pyx_k_val, sizeof(__pyx_k_val), 0, 0, 1, 1},
    {&__pyx_n_s_val_array, __pyx_k_val_array, sizeof(__pyx_k_val_array), 0, 0, 1, 1},
    {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1},
    {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1},
    {&__pyx_n_s_vec, __pyx_k_vec, sizeof(__pyx_k_vec), 0, 0, 1, 1},
    {&__pyx_n_s_vec1, __pyx_k_vec1, sizeof(__pyx_k_vec1), 0, 0, 1, 1},
    {&__pyx_n_s_vec2, __pyx_k_vec2, sizeof(__pyx_k_vec2), 0, 0, 1, 1},
    {&__pyx_n_s_vec_view, __pyx_k_vec_view, sizeof(__pyx_k_vec_view), 0, 0, 1, 1},
    {&__pyx_n_s_vel, __pyx_k_vel, sizeof(__pyx_k_vel), 0, 0, 1, 1},
    {&__pyx_n_s_vel0, __pyx_k_vel0, sizeof(__pyx_k_vel0), 0, 0, 1, 1},
    {&__pyx_n_s_version_info, __pyx_k_version_info, sizeof(__pyx_k_version_info), 0, 0, 1, 1},
    {&__pyx_n_s_vfs, __pyx_k_vfs, sizeof(__pyx_k_vfs), 0, 0, 1, 1},
    {&__pyx_n_s_viewport, __pyx_k_viewport, sizeof(__pyx_k_viewport), 0, 0, 1, 1},
    {&__pyx_n_s_vis, __pyx_k_vis, sizeof(__pyx_k_vis), 0, 0, 1, 1},
    {&__pyx_n_s_vopt, __pyx_k_vopt, sizeof(__pyx_k_vopt), 0, 0, 1, 1},
    {&__pyx_n_s_warn, __pyx_k_warn, sizeof(__pyx_k_warn), 0, 0, 1, 1},
    {&__pyx_n_s_warning, __pyx_k_warning, sizeof(__pyx_k_warning), 0, 0, 1, 1},
    {&__pyx_n_u_wb, __pyx_k_wb, sizeof(__pyx_k_wb), 0, 1, 0, 1},
    {&__pyx_n_s_width, __pyx_k_width, sizeof(__pyx_k_width), 0, 0, 1, 1},
    {&__pyx_n_s_width_2, __pyx_k_width_2, sizeof(__pyx_k_width_2), 0, 0, 1, 1},
    {&__pyx_n_s_window, __pyx_k_window, sizeof(__pyx_k_window), 0, 0, 1, 1},
    {&__pyx_n_u_window, __pyx_k_window, sizeof(__pyx_k_window), 0, 1, 0, 1},
    {&__pyx_n_s_window_hint, __pyx_k_window_hint, sizeof(__pyx_k_window_hint), 0, 0, 1, 1},
    {&__pyx_n_s_window_should_close, __pyx_k_window_should_close, sizeof(__pyx_k_window_should_close), 0, 0, 1, 1},
    {&__pyx_n_s_with_udd, __pyx_k_with_udd, sizeof(__pyx_k_with_udd), 0, 0, 1, 1},
    {&__pyx_n_s_wrap_mujoco_warning, __pyx_k_wrap_mujoco_warning, sizeof(__pyx_k_wrap_mujoco_warning), 0, 0, 1, 1},
    {&__pyx_n_s_wrap_mujoco_warning___enter, __pyx_k_wrap_mujoco_warning___enter, sizeof(__pyx_k_wrap_mujoco_warning___enter), 0, 0, 1, 1},
    {&__pyx_n_s_wrap_mujoco_warning___exit, __pyx_k_wrap_mujoco_warning___exit, sizeof(__pyx_k_wrap_mujoco_warning___exit), 0, 0, 1, 1},
    {&__pyx_n_s_wrapped, __pyx_k_wrapped, sizeof(__pyx_k_wrapped), 0, 0, 1, 1},
    {&__pyx_n_s_write, __pyx_k_write, sizeof(__pyx_k_write), 0, 0, 1, 1},
    {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1},
    {&__pyx_n_s_xmat, __pyx_k_xmat, sizeof(__pyx_k_xmat), 0, 0, 1, 1},
    {&__pyx_n_u_xml, __pyx_k_xml, sizeof(__pyx_k_xml), 0, 1, 0, 1},
    {&__pyx_kp_u_xml_2, __pyx_k_xml_2, sizeof(__pyx_k_xml_2), 0, 1, 0, 0},
    {&__pyx_n_s_xml_dom, __pyx_k_xml_dom, sizeof(__pyx_k_xml_dom), 0, 0, 1, 1},
    {&__pyx_n_s_xml_str, __pyx_k_xml_str, sizeof(__pyx_k_xml_str), 0, 0, 1, 1},
    {&__pyx_n_s_xpos, __pyx_k_xpos, sizeof(__pyx_k_xpos), 0, 0, 1, 1},
    {&__pyx_n_s_xvelp, __pyx_k_xvelp, sizeof(__pyx_k_xvelp), 0, 0, 1, 1},
    {&__pyx_n_s_xvelr, __pyx_k_xvelr, sizeof(__pyx_k_xvelr), 0, 0, 1, 1},
    {&__pyx_n_s_y, __pyx_k_y, sizeof(__pyx_k_y), 0, 0, 1, 1},
    {&__pyx_n_s_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1},
    {0, 0, 0, 0, 0, 0, 0}
  };
  return __Pyx_InitStrings(__pyx_string_tab);
}
/* #### Code section: cached_builtins ### */
static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
  __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(0, 18, __pyx_L1_error)
  __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(0, 33, __pyx_L1_error)
  __pyx_builtin_staticmethod = __Pyx_GetBuiltinName(__pyx_n_s_staticmethod); if (!__pyx_builtin_staticmethod) __PYX_ERR(0, 51, __pyx_L1_error)
  __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_n_s_property); if (!__pyx_builtin_property) __PYX_ERR(1, 317, __pyx_L1_error)
  __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(2, 27, __pyx_L1_error)
  __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(3, 2, __pyx_L1_error)
  __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(4, 85, __pyx_L1_error)
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(4, 1016, __pyx_L1_error)
  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(4, 1134, __pyx_L1_error)
  __pyx_builtin_AssertionError = __Pyx_GetBuiltinName(__pyx_n_s_AssertionError); if (!__pyx_builtin_AssertionError) __PYX_ERR(4, 1139, __pyx_L1_error)
  __pyx_builtin_open = __Pyx_GetBuiltinName(__pyx_n_s_open); if (!__pyx_builtin_open) __PYX_ERR(4, 1155, __pyx_L1_error)
  __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(4, 1170, __pyx_L1_error)
  __pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_n_s_NotImplementedError); if (!__pyx_builtin_NotImplementedError) __PYX_ERR(0, 26, __pyx_L1_error)
  __pyx_builtin_print = __Pyx_GetBuiltinName(__pyx_n_s_print); if (!__pyx_builtin_print) __PYX_ERR(0, 79, __pyx_L1_error)
  __pyx_builtin_map = __Pyx_GetBuiltinName(__pyx_n_s_map); if (!__pyx_builtin_map) __PYX_ERR(5, 323, __pyx_L1_error)
  __pyx_builtin_NotImplemented = __Pyx_GetBuiltinName(__pyx_n_s_NotImplemented); if (!__pyx_builtin_NotImplemented) __PYX_ERR(6, 12, __pyx_L1_error)
  __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s_super); if (!__pyx_builtin_super) __PYX_ERR(1, 306, __pyx_L1_error)
  __pyx_builtin_OverflowError = __Pyx_GetBuiltinName(__pyx_n_s_OverflowError); if (!__pyx_builtin_OverflowError) __PYX_ERR(3, 83, __pyx_L1_error)
  __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(3, 96, __pyx_L1_error)
  __pyx_builtin___import__ = __Pyx_GetBuiltinName(__pyx_n_s_import); if (!__pyx_builtin___import__) __PYX_ERR(3, 100, __pyx_L1_error)
  __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis); if (!__pyx_builtin_Ellipsis) __PYX_ERR(3, 408, __pyx_L1_error)
  __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(3, 618, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: cached_constants ### */

static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  /* "View.MemoryView":582
 *     def suboffsets(self):
 *         if self.view.suboffsets == NULL:
 *             return (-1,) * self.view.ndim             # <<<<<<<<<<<<<<
 * 
 *         return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])
 */
  __pyx_tuple__4 = PyTuple_New(1); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(3, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__4);
  __Pyx_INCREF(__pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_tuple__4, 0, __pyx_int_neg_1)) __PYX_ERR(3, 582, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_tuple__4);

  /* "View.MemoryView":679
 *     tup = <tuple>index if isinstance(index, tuple) else (index,)
 * 
 *     result = [slice(None)] * ndim             # <<<<<<<<<<<<<<
 *     have_slices = False
 *     seen_ellipsis = False
 */
  __pyx_slice__5 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__5)) __PYX_ERR(3, 679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_slice__5);
  __Pyx_GIVEREF(__pyx_slice__5);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x82a3537, 0x6ae9995, 0xb068931):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
 */
  __pyx_tuple__8 = PyTuple_Pack(3, __pyx_int_136983863, __pyx_int_112105877, __pyx_int_184977713); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(3, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__8);
  __Pyx_GIVEREF(__pyx_tuple__8);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1043
 *         __pyx_import_array()
 *     except Exception:
 *         raise ImportError("numpy._core.multiarray failed to import")             # <<<<<<<<<<<<<<
 * 
 * cdef inline int import_umath() except -1:
 */
  __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_u_numpy__core_multiarray_failed_to); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(8, 1043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__15);
  __Pyx_GIVEREF(__pyx_tuple__15);

  /* "../../../../tmp/build-env-6c48j3q7/lib/python3.13/site-packages/numpy/__init__.cython-30.pxd":1049
 *         _import_umath()
 *     except Exception:
 *         raise ImportError("numpy._core.umath failed to import")             # <<<<<<<<<<<<<<
 * 
 * cdef inline int import_ufunc() except -1:
 */
  __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_u_numpy__core_umath_failed_to_impo); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(8, 1049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__16);
  __Pyx_GIVEREF(__pyx_tuple__16);

  /* "mujoco_py/generated/wrappers.pxi":1151
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.xml')
 *             with wrap_mujoco_warning():             # <<<<<<<<<<<<<<
 *                 ret = mj_saveLastXML(filename.encode(), self.ptr, errstr, 300)
 *             if ret == 0:
 */
  __pyx_tuple__17 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(4, 1151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__17);
  __Pyx_GIVEREF(__pyx_tuple__17);

  /* "mujoco_py/generated/wrappers.pxi":2616
 * 
 *     def get_xpos(self, name):
 *         raise RuntimeError("get_body_xpos should be used instead of get_xpos")             # <<<<<<<<<<<<<<
 * 
 *     def get_body_xquat(self, name):
 */
  __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_u_get_body_xpos_should_be_used_ins); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(4, 2616, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__18);
  __Pyx_GIVEREF(__pyx_tuple__18);

  /* "mujoco_py/generated/wrappers.pxi":2623
 * 
 *     def get_xquat(self, name):
 *         raise RuntimeError("get_body_xquat should be used instead of get_xquat")             # <<<<<<<<<<<<<<
 * 
 *     def get_body_xmat(self, name):
 */
  __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_u_get_body_xquat_should_be_used_in); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(4, 2623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__19);
  __Pyx_GIVEREF(__pyx_tuple__19);

  /* "mujoco_py/generated/wrappers.pxi":2627
 *     def get_body_xmat(self, name):
 *         id = self._model.body_name2id(name)
 *         return self._xmat[id].reshape((3, 3))             # <<<<<<<<<<<<<<
 * 
 *     def get_xmat(self, name):
 */
  __pyx_tuple__20 = PyTuple_Pack(2, __pyx_int_3, __pyx_int_3); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(4, 2627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__20);
  __Pyx_GIVEREF(__pyx_tuple__20);

  /* "mujoco_py/generated/wrappers.pxi":2630
 * 
 *     def get_xmat(self, name):
 *         raise RuntimeError("get_body_xmat should be used instead of get_xmat")             # <<<<<<<<<<<<<<
 * 
 *     def get_body_xipos(self, name):
 */
  __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_u_get_body_xmat_should_be_used_ins); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(4, 2630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__21);
  __Pyx_GIVEREF(__pyx_tuple__21);

  /* "mujoco_py/generated/wrappers.pxi":2637
 * 
 *     def get_xipos(self, name):
 *         raise RuntimeError("get_body_xipos should be used instead of get_xipos")             # <<<<<<<<<<<<<<
 * 
 *     def get_body_ximat(self, name):
 */
  __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_u_get_body_xipos_should_be_used_in); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(4, 2637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__22);
  __Pyx_GIVEREF(__pyx_tuple__22);

  /* "mujoco_py/generated/wrappers.pxi":2644
 * 
 *     def get_ximat(self, name):
 *         raise RuntimeError("get_body_ximat should be used instead of get_ximat")             # <<<<<<<<<<<<<<
 * 
 *     def get_body_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):
 */
  __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_u_get_body_ximat_should_be_used_in); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(4, 2644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__23);
  __Pyx_GIVEREF(__pyx_tuple__23);

  /* "mujoco_py/generated/wrappers.pxi":2679
 * 
 *     def get_xanchor(self, name):
 *         raise RuntimeError("get_joint_xanchor should be used instead of get_xanchor")             # <<<<<<<<<<<<<<
 * 
 *     def get_joint_xaxis(self, name):
 */
  __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_u_get_joint_xanchor_should_be_used); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(4, 2679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__24);
  __Pyx_GIVEREF(__pyx_tuple__24);

  /* "mujoco_py/generated/wrappers.pxi":2686
 * 
 *     def get_xaxis(self, name):
 *         raise RuntimeError("get_joint_xaxis should be used instead of get_xaxis")             # <<<<<<<<<<<<<<
 * 
 *     def get_geom_xpos(self, name):
 */
  __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_u_get_joint_xaxis_should_be_used_i); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(4, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__25);
  __Pyx_GIVEREF(__pyx_tuple__25);

  /* "mujoco_py/generated/wrappers.pxi":2765
 * 
 *     def get_cam_xpos(self, name):
 *         raise RuntimeError("get_camera_xpos should be used instead of get_cam_xpos")             # <<<<<<<<<<<<<<
 * 
 *     def get_camera_xmat(self, name):
 */
  __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_u_get_camera_xpos_should_be_used_i); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(4, 2765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__26);
  __Pyx_GIVEREF(__pyx_tuple__26);

  /* "mujoco_py/generated/wrappers.pxi":2772
 * 
 *     def get_cam_xmat(self, name):
 *         raise RuntimeError("get_camera_xmat should be used instead of get_cam_xmat")             # <<<<<<<<<<<<<<
 * 
 *     def get_light_xpos(self, name):
 */
  __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_u_get_camera_xmat_should_be_used_i); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(4, 2772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__27);
  __Pyx_GIVEREF(__pyx_tuple__27);

  /* "mujoco_py/generated/wrappers.pxi":2787
 * 
 *     def get_sensordata(self, name):
 *         raise RuntimeError("get_sensor should be used instead of get_sensordata")             # <<<<<<<<<<<<<<
 * 
 *     def get_userdata(self, name):
 */
  __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_u_get_sensor_should_be_used_instea); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(4, 2787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__28);
  __Pyx_GIVEREF(__pyx_tuple__28);

  /* "mujoco_py/generated/wrappers.pxi":3040
 *     @property
 *     def xpos(self):
 *         raise RuntimeError("body_xpos should be used instead of xpos")             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_u_body_xpos_should_be_used_instead); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(4, 3040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__29);
  __Pyx_GIVEREF(__pyx_tuple__29);

  /* "mujoco_py/generated/wrappers.pxi":3045
 *     @property
 *     def xquat(self):
 *         raise RuntimeError("body_xquat should be used instead of xquat")             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_u_body_xquat_should_be_used_instea); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(4, 3045, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__30);
  __Pyx_GIVEREF(__pyx_tuple__30);

  /* "mujoco_py/generated/wrappers.pxi":3050
 *     @property
 *     def xmat(self):
 *         raise RuntimeError("body_xmat should be used instead of xmat")             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_tuple__31 = PyTuple_Pack(1, __pyx_kp_u_body_xmat_should_be_used_instead); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(4, 3050, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__31);
  __Pyx_GIVEREF(__pyx_tuple__31);

  /* "mujoco_py/generated/wrappers.pxi":3143
 *     @property
 *     def efc_pos(self):
 *         raise RuntimeError("active_contacts_efc_pos should be used instead of efc_pos")             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_tuple__32 = PyTuple_Pack(1, __pyx_kp_u_active_contacts_efc_pos_should_b); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(4, 3143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__32);
  __Pyx_GIVEREF(__pyx_tuple__32);

  /* "mujoco_py/opengl_context.pyx":10
 *     mujoco_path = discover_mujoco()
 *     bin_path = os.path.join(mujoco_path, "bin")
 *     old_dyld_library_path = os.getenv("DYLD_LIBRARY_PATH", "")             # <<<<<<<<<<<<<<
 *     os.environ["DYLD_LIBRARY_PATH"] = "{}:{}".format(
 *         bin_path, old_dyld_library_path)
 */
  __pyx_tuple__33 = PyTuple_Pack(2, __pyx_n_u_DYLD_LIBRARY_PATH, __pyx_kp_u__10); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__33);
  __Pyx_GIVEREF(__pyx_tuple__33);

  /* "mujoco_py/opengl_context.pyx":79
 *         if offscreen:
 *             if not quiet:
 *                 print("Creating offscreen glfw")             # <<<<<<<<<<<<<<
 *             glfw.window_hint(glfw.VISIBLE, 0)
 *             glfw.window_hint(glfw.DOUBLEBUFFER, 0)
 */
  __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_u_Creating_offscreen_glfw); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__35);
  __Pyx_GIVEREF(__pyx_tuple__35);

  /* "mujoco_py/opengl_context.pyx":85
 *         else:
 *             if not quiet:
 *                 print("Creating window glfw")             # <<<<<<<<<<<<<<
 *             glfw.window_hint(glfw.SAMPLES, 4)
 *             glfw.window_hint(glfw.VISIBLE, 1)
 */
  __pyx_tuple__36 = PyTuple_Pack(1, __pyx_kp_u_Creating_window_glfw); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__36);
  __Pyx_GIVEREF(__pyx_tuple__36);

  /* "mujoco_py/opengl_context.pyx":130
 *         res = initOpenGL(device_id)
 *         if res != 1:
 *             raise RuntimeError("Failed to initialize OpenGL")             # <<<<<<<<<<<<<<
 * 
 *     def close(self):
 */
  __pyx_tuple__37 = PyTuple_Pack(1, __pyx_kp_u_Failed_to_initialize_OpenGL); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__37);
  __Pyx_GIVEREF(__pyx_tuple__37);

  /* "mujoco_py/opengl_context.pyx":142
 *         res = setOpenGLBufferSize(self.device_id, width, height)
 *         if res != 1:
 *             raise RuntimeError("Failed to set buffer size")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__38 = PyTuple_Pack(1, __pyx_kp_u_Failed_to_set_buffer_size); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__38);
  __Pyx_GIVEREF(__pyx_tuple__38);

  /* "mujoco_py/mjsim.pyx":77
 *                 _data = mj_makeData(self.model.ptr)
 *             if _data == NULL:
 *                 raise Exception('mj_makeData failed!')             # <<<<<<<<<<<<<<
 *             self.data = WrapMjData(_data, self.model)
 *         else:
 */
  __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_u_mj_makeData_failed); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(5, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__39);
  __Pyx_GIVEREF(__pyx_tuple__39);

  /* "mujoco_py/mjsim.pyx":177
 * 
 *         else:
 *             raise ValueError("Mode must be either 'window' or 'offscreen'.")             # <<<<<<<<<<<<<<
 * 
 *     def add_render_context(self, render_context):
 */
  __pyx_tuple__40 = PyTuple_Pack(1, __pyx_kp_u_Mode_must_be_either_window_or_of); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(5, 177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__40);
  __Pyx_GIVEREF(__pyx_tuple__40);

  /* "mujoco_py/mjsim.pyx":322
 *         mujoco_node.appendChild(keyframe_el)
 * 
 *         def str_array(arr):             # <<<<<<<<<<<<<<
 *             return " ".join(map(str, arr))
 * 
 */
  __pyx_tuple__42 = PyTuple_Pack(1, __pyx_n_s_arr); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(5, 322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__42);
  __Pyx_GIVEREF(__pyx_tuple__42);
  __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__42, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_str_array, 322, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(5, 322, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":343
 *             file.write(new_model.get_mjb())
 *         else:
 *             raise ValueError("Unsupported format. Valid ones are 'xml' and 'mjb'")             # <<<<<<<<<<<<<<
 * 
 *     def ray(self, pnt, vec, include_static_geoms=True, exclude_body=-1, group_filter=None):
 */
  __pyx_tuple__45 = PyTuple_Pack(1, __pyx_kp_u_Unsupported_format_Valid_ones_ar); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(5, 343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__45);
  __Pyx_GIVEREF(__pyx_tuple__45);

  /* "mujoco_py/mjrendercontext.pyx":89
 *             mjr_setBuffer(mjFB_OFFSCREEN, &self._con);
 *             if self._con.currentBuffer != mjFB_OFFSCREEN:
 *                 raise RuntimeError('Offscreen rendering not supported')             # <<<<<<<<<<<<<<
 *         else:
 *             mjr_setBuffer(mjFB_WINDOW, &self._con);
 */
  __pyx_tuple__46 = PyTuple_Pack(1, __pyx_kp_u_Offscreen_rendering_not_supporte); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(1, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__46);
  __Pyx_GIVEREF(__pyx_tuple__46);

  /* "mujoco_py/mjrendercontext.pyx":93
 *             mjr_setBuffer(mjFB_WINDOW, &self._con);
 *             if self._con.currentBuffer != mjFB_WINDOW:
 *                 raise RuntimeError('Window rendering not supported')             # <<<<<<<<<<<<<<
 *         self.con = WrapMjrContext(&self._con)
 * 
 */
  __pyx_tuple__47 = PyTuple_Pack(1, __pyx_kp_u_Window_rendering_not_supported); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(1, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__47);
  __Pyx_GIVEREF(__pyx_tuple__47);

  /* "mujoco_py/mjrendercontext.pyx":108
 *                     device_id = os.environ["GPUS"]
 *                 else:
 *                     device_id = os.getenv('CUDA_VISIBLE_DEVICES', '')             # <<<<<<<<<<<<<<
 *                 if len(device_id) > 0:
 *                     device_id = int(device_id.split(',')[0])
 */
  __pyx_tuple__48 = PyTuple_Pack(2, __pyx_n_u_CUDA_VISIBLE_DEVICES, __pyx_kp_u__10); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(1, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__48);
  __Pyx_GIVEREF(__pyx_tuple__48);

  /* "mujoco_py/mjrendercontext.pyx":195
 *         ret_img = rgb_img
 *         if segmentation:
 *             seg_img = (rgb_img[:, :, 0] + rgb_img[:, :, 1] * (2**8) + rgb_img[:, :, 2] * (2 ** 16))             # <<<<<<<<<<<<<<
 *             seg_img[seg_img >= (self._scn.ngeom + 1)] = 0
 *             seg_ids = np.full((self._scn.ngeom + 1, 2), fill_value=-1, dtype=np.int32)
 */
  __pyx_tuple__49 = PyTuple_Pack(3, __pyx_slice__5, __pyx_slice__5, __pyx_int_0); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(1, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__49);
  __Pyx_GIVEREF(__pyx_tuple__49);
  __pyx_tuple__50 = PyTuple_Pack(3, __pyx_slice__5, __pyx_slice__5, __pyx_int_1); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(1, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__50);
  __Pyx_GIVEREF(__pyx_tuple__50);
  __pyx_tuple__51 = PyTuple_Pack(3, __pyx_slice__5, __pyx_slice__5, __pyx_int_2); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(1, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__51);
  __Pyx_GIVEREF(__pyx_tuple__51);

  /* "mujoco_py/mjbatchrenderer.pyx":88
 *     def _init_cuda(self):
 *         if drv is None:
 *             raise ImportError("Failed to import pycuda.")             # <<<<<<<<<<<<<<
 *         # Use local imports so that we don't have to make pycuda
 *         # opengl interop a requirement
 */
  __pyx_tuple__53 = PyTuple_Pack(1, __pyx_kp_u_Failed_to_import_pycuda); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(2, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__53);
  __Pyx_GIVEREF(__pyx_tuple__53);

  /* "mujoco_py/mjbatchrenderer.pyx":192
 *         if batch_offset is not None:
 *             if batch_offset < 0 or batch_offset >= self._batch_size:
 *                 raise ValueError("batch_offset out of range")             # <<<<<<<<<<<<<<
 *             self._current_batch_offset = batch_offset
 * 
 */
  __pyx_tuple__54 = PyTuple_Pack(1, __pyx_kp_u_batch_offset_out_of_range); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(2, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__54);
  __Pyx_GIVEREF(__pyx_tuple__54);

  /* "mujoco_py/mjbatchrenderer.pyx":283
 *             raise CudaBufferNotMappedError()
 *         if not self._depth:
 *             raise RuntimeError("Depth not enabled. Use depth=True on initialization.")             # <<<<<<<<<<<<<<
 *         return self._cuda_depth_ptr
 * 
 */
  __pyx_tuple__55 = PyTuple_Pack(1, __pyx_kp_u_Depth_not_enabled_Use_depth_True); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(2, 283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__55);
  __Pyx_GIVEREF(__pyx_tuple__55);

  /* "mujoco_py/mjpid.pyx":276
 * 
 *     if m.nuserdata < m.nu * NUM_USER_DATA_PER_ACT:
 *         raise Exception('nuserdata is not set large enough to store PID internal states.')             # <<<<<<<<<<<<<<
 * 
 *     if m.nuser_actuator < m.nu * NUM_ACTUATOR_DATA:
 */
  __pyx_tuple__56 = PyTuple_Pack(1, __pyx_kp_u_nuserdata_is_not_set_large_enoug); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(9, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__56);
  __Pyx_GIVEREF(__pyx_tuple__56);

  /* "mujoco_py/mjpid.pyx":279
 * 
 *     if m.nuser_actuator < m.nu * NUM_ACTUATOR_DATA:
 *         raise Exception('nuser_actuator is not set large enough to store controller types')             # <<<<<<<<<<<<<<
 * 
 *     for i in range(m.nuserdata):
 */
  __pyx_tuple__57 = PyTuple_Pack(1, __pyx_kp_u_nuser_actuator_is_not_set_large); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(9, 279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__57);
  __Pyx_GIVEREF(__pyx_tuple__57);

  /* "mujoco_py/cymj.pyx":208
 *             model = mj_loadModel(filename.encode(), NULL)
 *     if model == NULL:
 *         raise Exception('%s\nFailed to load MJB')             # <<<<<<<<<<<<<<
 *     return WrapMjModel(model)
 */
  __pyx_tuple__58 = PyTuple_Pack(1, __pyx_kp_u_s_Failed_to_load_MJB); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(7, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__58);
  __Pyx_GIVEREF(__pyx_tuple__58);

  /* "View.MemoryView":100
 * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
 * try:
 *     if __import__("sys").version_info >= (3, 3):             # <<<<<<<<<<<<<<
 *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
 *     else:
 */
  __pyx_tuple__59 = PyTuple_Pack(1, __pyx_n_s_sys); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(3, 100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__59);
  __Pyx_GIVEREF(__pyx_tuple__59);

  /* "View.MemoryView":101
 * try:
 *     if __import__("sys").version_info >= (3, 3):
 *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence             # <<<<<<<<<<<<<<
 *     else:
 *         __pyx_collections_abc_Sequence = __import__("collections").Sequence
 */
  __pyx_tuple__60 = PyTuple_Pack(1, __pyx_kp_s_collections_abc); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(3, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__60);
  __Pyx_GIVEREF(__pyx_tuple__60);

  /* "View.MemoryView":103
 *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
 *     else:
 *         __pyx_collections_abc_Sequence = __import__("collections").Sequence             # <<<<<<<<<<<<<<
 * except:
 * 
 */
  __pyx_tuple__61 = PyTuple_Pack(1, __pyx_n_s_collections); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(3, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__61);
  __Pyx_GIVEREF(__pyx_tuple__61);

  /* "View.MemoryView":309
 *         return self.name
 * 
 * cdef generic = Enum("<strided and direct or indirect>")             # <<<<<<<<<<<<<<
 * cdef strided = Enum("<strided and direct>") # default
 * cdef indirect = Enum("<strided and indirect>")
 */
  __pyx_tuple__62 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect); if (unlikely(!__pyx_tuple__62)) __PYX_ERR(3, 309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__62);
  __Pyx_GIVEREF(__pyx_tuple__62);

  /* "View.MemoryView":310
 * 
 * cdef generic = Enum("<strided and direct or indirect>")
 * cdef strided = Enum("<strided and direct>") # default             # <<<<<<<<<<<<<<
 * cdef indirect = Enum("<strided and indirect>")
 * 
 */
  __pyx_tuple__63 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(3, 310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__63);
  __Pyx_GIVEREF(__pyx_tuple__63);

  /* "View.MemoryView":311
 * cdef generic = Enum("<strided and direct or indirect>")
 * cdef strided = Enum("<strided and direct>") # default
 * cdef indirect = Enum("<strided and indirect>")             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_tuple__64 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(3, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__64);
  __Pyx_GIVEREF(__pyx_tuple__64);

  /* "View.MemoryView":314
 * 
 * 
 * cdef contiguous = Enum("<contiguous and direct>")             # <<<<<<<<<<<<<<
 * cdef indirect_contiguous = Enum("<contiguous and indirect>")
 * 
 */
  __pyx_tuple__65 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(3, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__65);
  __Pyx_GIVEREF(__pyx_tuple__65);

  /* "View.MemoryView":315
 * 
 * cdef contiguous = Enum("<contiguous and direct>")
 * cdef indirect_contiguous = Enum("<contiguous and indirect>")             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_tuple__66 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(3, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__66);
  __Pyx_GIVEREF(__pyx_tuple__66);

  /* "(tree fragment)":1
 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_tuple__67 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__67)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__67);
  __Pyx_GIVEREF(__pyx_tuple__67);
  __pyx_codeobj__68 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__67, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Enum, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__68)) __PYX_ERR(3, 1, __pyx_L1_error)
  __pyx_tuple__69 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__69);
  __Pyx_GIVEREF(__pyx_tuple__69);
  __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_tuple__71 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__71);
  __Pyx_GIVEREF(__pyx_tuple__71);
  __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__73)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__77 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__77)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__79 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__79)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__83 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__83)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1014
 *     cdef readonly dict _body_name2id, _joint_name2id, _geom_name2id, _site_name2id, _light_name2id, _camera_name2id, _actuator_name2id, _sensor_name2id, _tendon_name2id, _mesh_name2id
 * 
 *     def body_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._body_id2name:
 *             raise ValueError("No body with id %d exists." % id)
 */
  __pyx_tuple__93 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_id); if (unlikely(!__pyx_tuple__93)) __PYX_ERR(4, 1014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__93);
  __Pyx_GIVEREF(__pyx_tuple__93);
  __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_body_id2name, 1014, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(4, 1014, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1019
 *         return self._body_id2name[id]
 * 
 *     def body_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._body_name2id:
 *             raise ValueError("No \"body\" with name %s exists. Available \"body\" names = %s." % (name, self.body_names))
 */
  __pyx_tuple__95 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_name); if (unlikely(!__pyx_tuple__95)) __PYX_ERR(4, 1019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__95);
  __Pyx_GIVEREF(__pyx_tuple__95);
  __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_body_name2id, 1019, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(4, 1019, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1024
 *         return self._body_name2id[name]
 * 
 *     def joint_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._joint_id2name:
 *             raise ValueError("No joint with id %d exists." % id)
 */
  __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_joint_id2name, 1024, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(4, 1024, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1029
 *         return self._joint_id2name[id]
 * 
 *     def joint_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._joint_name2id:
 *             raise ValueError("No \"joint\" with name %s exists. Available \"joint\" names = %s." % (name, self.joint_names))
 */
  __pyx_codeobj__98 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_joint_name2id, 1029, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__98)) __PYX_ERR(4, 1029, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1034
 *         return self._joint_name2id[name]
 * 
 *     def geom_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._geom_id2name:
 *             raise ValueError("No geom with id %d exists." % id)
 */
  __pyx_codeobj__99 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_geom_id2name, 1034, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(4, 1034, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1039
 *         return self._geom_id2name[id]
 * 
 *     def geom_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._geom_name2id:
 *             raise ValueError("No \"geom\" with name %s exists. Available \"geom\" names = %s." % (name, self.geom_names))
 */
  __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_geom_name2id, 1039, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(4, 1039, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1044
 *         return self._geom_name2id[name]
 * 
 *     def site_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._site_id2name:
 *             raise ValueError("No site with id %d exists." % id)
 */
  __pyx_codeobj__101 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_site_id2name, 1044, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__101)) __PYX_ERR(4, 1044, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1049
 *         return self._site_id2name[id]
 * 
 *     def site_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._site_name2id:
 *             raise ValueError("No \"site\" with name %s exists. Available \"site\" names = %s." % (name, self.site_names))
 */
  __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_site_name2id, 1049, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(4, 1049, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1054
 *         return self._site_name2id[name]
 * 
 *     def light_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._light_id2name:
 *             raise ValueError("No light with id %d exists." % id)
 */
  __pyx_codeobj__103 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_light_id2name, 1054, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__103)) __PYX_ERR(4, 1054, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1059
 *         return self._light_id2name[id]
 * 
 *     def light_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._light_name2id:
 *             raise ValueError("No \"light\" with name %s exists. Available \"light\" names = %s." % (name, self.light_names))
 */
  __pyx_codeobj__104 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_light_name2id, 1059, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(4, 1059, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1064
 *         return self._light_name2id[name]
 * 
 *     def camera_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._camera_id2name:
 *             raise ValueError("No camera with id %d exists." % id)
 */
  __pyx_codeobj__105 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_camera_id2name, 1064, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__105)) __PYX_ERR(4, 1064, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1069
 *         return self._camera_id2name[id]
 * 
 *     def camera_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._camera_name2id:
 *             raise ValueError("No \"camera\" with name %s exists. Available \"camera\" names = %s." % (name, self.camera_names))
 */
  __pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_camera_name2id, 1069, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(4, 1069, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1074
 *         return self._camera_name2id[name]
 * 
 *     def actuator_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._actuator_id2name:
 *             raise ValueError("No actuator with id %d exists." % id)
 */
  __pyx_codeobj__107 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_actuator_id2name, 1074, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__107)) __PYX_ERR(4, 1074, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1079
 *         return self._actuator_id2name[id]
 * 
 *     def actuator_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._actuator_name2id:
 *             raise ValueError("No \"actuator\" with name %s exists. Available \"actuator\" names = %s." % (name, self.actuator_names))
 */
  __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_actuator_name2id, 1079, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(4, 1079, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1084
 *         return self._actuator_name2id[name]
 * 
 *     def sensor_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._sensor_id2name:
 *             raise ValueError("No sensor with id %d exists." % id)
 */
  __pyx_codeobj__109 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_sensor_id2name, 1084, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__109)) __PYX_ERR(4, 1084, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1089
 *         return self._sensor_id2name[id]
 * 
 *     def sensor_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._sensor_name2id:
 *             raise ValueError("No \"sensor\" with name %s exists. Available \"sensor\" names = %s." % (name, self.sensor_names))
 */
  __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_sensor_name2id, 1089, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(4, 1089, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1094
 *         return self._sensor_name2id[name]
 * 
 *     def tendon_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._tendon_id2name:
 *             raise ValueError("No tendon with id %d exists." % id)
 */
  __pyx_codeobj__111 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_tendon_id2name, 1094, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__111)) __PYX_ERR(4, 1094, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1099
 *         return self._tendon_id2name[id]
 * 
 *     def tendon_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._tendon_name2id:
 *             raise ValueError("No \"tendon\" with name %s exists. Available \"tendon\" names = %s." % (name, self.tendon_names))
 */
  __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_tendon_name2id, 1099, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(4, 1099, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1104
 *         return self._tendon_name2id[name]
 * 
 *     def mesh_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._mesh_id2name:
 *             raise ValueError("No mesh with id %d exists." % id)
 */
  __pyx_codeobj__113 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mesh_id2name, 1104, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__113)) __PYX_ERR(4, 1104, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1109
 *         return self._mesh_id2name[id]
 * 
 *     def mesh_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._mesh_name2id:
 *             raise ValueError("No \"mesh\" with name %s exists. Available \"mesh\" names = %s." % (name, self.mesh_names))
 */
  __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mesh_name2id, 1109, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(4, 1109, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1117
 *     cdef public dict _userdata_name2id
 * 
 *     def userdata_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._userdata_id2name:
 *             raise ValueError("No userdata with id %d exists." % id)
 */
  __pyx_codeobj__115 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_userdata_id2name, 1117, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__115)) __PYX_ERR(4, 1117, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1122
 *         return self._userdata_id2name[id]
 * 
 *     def userdata_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._userdata_name2id:
 *             raise ValueError("No \"userdata\" with name %s exists. Available \"userdata\" names = %s." % (name, self.userdata_names))
 */
  __pyx_codeobj__116 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_userdata_name2id, 1122, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__116)) __PYX_ERR(4, 1122, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1146
 *         return tuple(id2name[id] for id in sorted(name2id.values())), name2id, id2name
 * 
 *     def get_xml(self):             # <<<<<<<<<<<<<<
 *         cdef char errstr[300]
 *         cdef int ret
 */
  __pyx_tuple__117 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_errstr, __pyx_n_s_ret, __pyx_n_s_td, __pyx_n_s_filename); if (unlikely(!__pyx_tuple__117)) __PYX_ERR(4, 1146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__117);
  __Pyx_GIVEREF(__pyx_tuple__117);
  __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__117, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_xml, 1146, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(4, 1146, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1157
 *             return open(filename).read()
 * 
 *     def get_mjb(self):             # <<<<<<<<<<<<<<
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.mjb')
 */
  __pyx_tuple__119 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_td, __pyx_n_s_filename); if (unlikely(!__pyx_tuple__119)) __PYX_ERR(4, 1157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__119);
  __Pyx_GIVEREF(__pyx_tuple__119);
  __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__119, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_mjb, 1157, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(4, 1157, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1164
 *             return open(filename, 'rb').read()
 * 
 *     def set_userdata_names(self, userdata_names):             # <<<<<<<<<<<<<<
 *         assert isinstance(userdata_names, (list, tuple)), 'bad userdata names'
 *         assert len(userdata_names) <= self.nuserdata, 'insufficient userdata'
 */
  __pyx_tuple__121 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_userdata_names, __pyx_n_s_i, __pyx_n_s_name); if (unlikely(!__pyx_tuple__121)) __PYX_ERR(4, 1164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__121);
  __Pyx_GIVEREF(__pyx_tuple__121);
  __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__121, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_set_userdata_names, 1164, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(4, 1164, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1178
 *         mj_deleteModel(self.ptr)
 * 
 *     def get_joint_qpos_addr(self, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Returns the qpos address for given joint.
 */
  __pyx_tuple__123 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_name, __pyx_n_s_joint_id, __pyx_n_s_joint_type, __pyx_n_s_joint_addr, __pyx_n_s_ndim); if (unlikely(!__pyx_tuple__123)) __PYX_ERR(4, 1178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__123);
  __Pyx_GIVEREF(__pyx_tuple__123);
  __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__123, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_joint_qpos_addr, 1178, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(4, 1178, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":1202
 *             return (joint_addr, joint_addr + ndim)
 * 
 *     def get_joint_qvel_addr(self, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Returns the qvel address for given joint.
 */
  __pyx_codeobj__125 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__123, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_joint_qvel_addr, 1202, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__125)) __PYX_ERR(4, 1202, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__126 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 */
  __pyx_codeobj__127 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__127)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__128 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__129 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__129)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__131 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__131)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__133 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__133)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__135 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__135)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2611
 * 
 * 
 *     def get_body_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xpos[id]
 */
  __pyx_tuple__136 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_name, __pyx_n_s_id); if (unlikely(!__pyx_tuple__136)) __PYX_ERR(4, 2611, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__136);
  __Pyx_GIVEREF(__pyx_tuple__136);
  __pyx_codeobj__137 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_body_xpos, 2611, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__137)) __PYX_ERR(4, 2611, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2615
 *         return self._xpos[id]
 * 
 *     def get_xpos(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xpos should be used instead of get_xpos")
 * 
 */
  __pyx_codeobj__138 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_xpos, 2615, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__138)) __PYX_ERR(4, 2615, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2618
 *         raise RuntimeError("get_body_xpos should be used instead of get_xpos")
 * 
 *     def get_body_xquat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xquat[id]
 */
  __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_body_xquat, 2618, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(4, 2618, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2622
 *         return self._xquat[id]
 * 
 *     def get_xquat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xquat should be used instead of get_xquat")
 * 
 */
  __pyx_codeobj__140 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_xquat, 2622, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__140)) __PYX_ERR(4, 2622, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2625
 *         raise RuntimeError("get_body_xquat should be used instead of get_xquat")
 * 
 *     def get_body_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xmat[id].reshape((3, 3))
 */
  __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_body_xmat, 2625, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) __PYX_ERR(4, 2625, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2629
 *         return self._xmat[id].reshape((3, 3))
 * 
 *     def get_xmat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xmat should be used instead of get_xmat")
 * 
 */
  __pyx_codeobj__142 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_xmat, 2629, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) __PYX_ERR(4, 2629, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2632
 *         raise RuntimeError("get_body_xmat should be used instead of get_xmat")
 * 
 *     def get_body_xipos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xipos[id]
 */
  __pyx_codeobj__143 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_body_xipos, 2632, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__143)) __PYX_ERR(4, 2632, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2636
 *         return self._xipos[id]
 * 
 *     def get_xipos(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xipos should be used instead of get_xipos")
 * 
 */
  __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_xipos, 2636, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(4, 2636, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2639
 *         raise RuntimeError("get_body_xipos should be used instead of get_xipos")
 * 
 *     def get_body_ximat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._ximat[id].reshape((3, 3))
 */
  __pyx_codeobj__145 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_body_ximat, 2639, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__145)) __PYX_ERR(4, 2639, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2643
 *         return self._ximat[id].reshape((3, 3))
 * 
 *     def get_ximat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_ximat should be used instead of get_ximat")
 * 
 */
  __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_ximat, 2643, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(4, 2643, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2646
 *         raise RuntimeError("get_body_ximat should be used instead of get_ximat")
 * 
 *     def get_body_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         if jacp is None:
 */
  __pyx_tuple__147 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_name, __pyx_n_s_jacp, __pyx_n_s_id, __pyx_n_s_jacp_view); if (unlikely(!__pyx_tuple__147)) __PYX_ERR(4, 2646, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__147);
  __Pyx_GIVEREF(__pyx_tuple__147);
  __pyx_codeobj__148 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__147, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_body_jacp, 2646, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) __PYX_ERR(4, 2646, __pyx_L1_error)
  __pyx_tuple__149 = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(4, 2646, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__149);
  __Pyx_GIVEREF(__pyx_tuple__149);

  /* "mujoco_py/generated/wrappers.pxi":2654
 *         return jacp
 * 
 *     def get_body_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         if jacr is None:
 */
  __pyx_tuple__150 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_name, __pyx_n_s_jacr, __pyx_n_s_id, __pyx_n_s_jacr_view); if (unlikely(!__pyx_tuple__150)) __PYX_ERR(4, 2654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__150);
  __Pyx_GIVEREF(__pyx_tuple__150);
  __pyx_codeobj__151 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__150, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_body_jacr, 2654, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__151)) __PYX_ERR(4, 2654, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2662
 *         return jacr
 * 
 *     def get_body_xvelp(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         jacp = self.get_body_jacp(name).reshape((3, self._model.nv))
 */
  __pyx_tuple__152 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_name, __pyx_n_s_id, __pyx_n_s_jacp, __pyx_n_s_xvelp); if (unlikely(!__pyx_tuple__152)) __PYX_ERR(4, 2662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__152);
  __Pyx_GIVEREF(__pyx_tuple__152);
  __pyx_codeobj__153 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__152, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_body_xvelp, 2662, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__153)) __PYX_ERR(4, 2662, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2668
 *         return xvelp
 * 
 *     def get_body_xvelr(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         jacr = self.get_body_jacr(name).reshape((3, self._model.nv))
 */
  __pyx_tuple__154 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_name, __pyx_n_s_id, __pyx_n_s_jacr, __pyx_n_s_xvelr); if (unlikely(!__pyx_tuple__154)) __PYX_ERR(4, 2668, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__154);
  __Pyx_GIVEREF(__pyx_tuple__154);
  __pyx_codeobj__155 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__154, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_body_xvelr, 2668, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__155)) __PYX_ERR(4, 2668, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2674
 *         return xvelr
 * 
 *     def get_joint_xanchor(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.joint_name2id(name)
 *         return self._xanchor[id]
 */
  __pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_joint_xanchor, 2674, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(4, 2674, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2678
 *         return self._xanchor[id]
 * 
 *     def get_xanchor(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_joint_xanchor should be used instead of get_xanchor")
 * 
 */
  __pyx_codeobj__157 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_xanchor, 2678, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__157)) __PYX_ERR(4, 2678, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2681
 *         raise RuntimeError("get_joint_xanchor should be used instead of get_xanchor")
 * 
 *     def get_joint_xaxis(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.joint_name2id(name)
 *         return self._xaxis[id]
 */
  __pyx_codeobj__158 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_joint_xaxis, 2681, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__158)) __PYX_ERR(4, 2681, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2685
 *         return self._xaxis[id]
 * 
 *     def get_xaxis(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_joint_xaxis should be used instead of get_xaxis")
 * 
 */
  __pyx_codeobj__159 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_xaxis, 2685, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__159)) __PYX_ERR(4, 2685, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2688
 *         raise RuntimeError("get_joint_xaxis should be used instead of get_xaxis")
 * 
 *     def get_geom_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         return self._geom_xpos[id]
 */
  __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_geom_xpos, 2688, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) __PYX_ERR(4, 2688, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2692
 *         return self._geom_xpos[id]
 * 
 *     def get_geom_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         return self._geom_xmat[id].reshape((3, 3))
 */
  __pyx_codeobj__161 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_geom_xmat, 2692, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__161)) __PYX_ERR(4, 2692, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2696
 *         return self._geom_xmat[id].reshape((3, 3))
 * 
 *     def get_geom_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         if jacp is None:
 */
  __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__147, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_geom_jacp, 2696, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) __PYX_ERR(4, 2696, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2704
 *         return jacp
 * 
 *     def get_geom_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         if jacr is None:
 */
  __pyx_codeobj__163 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__150, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_geom_jacr, 2704, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__163)) __PYX_ERR(4, 2704, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2712
 *         return jacr
 * 
 *     def get_geom_xvelp(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         jacp = self.get_geom_jacp(name).reshape((3, self._model.nv))
 */
  __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__152, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_geom_xvelp, 2712, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(4, 2712, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2718
 *         return xvelp
 * 
 *     def get_geom_xvelr(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         jacr = self.get_geom_jacr(name).reshape((3, self._model.nv))
 */
  __pyx_codeobj__165 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__154, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_geom_xvelr, 2718, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__165)) __PYX_ERR(4, 2718, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2724
 *         return xvelr
 * 
 *     def get_site_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         return self._site_xpos[id]
 */
  __pyx_codeobj__166 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_site_xpos, 2724, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) __PYX_ERR(4, 2724, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2728
 *         return self._site_xpos[id]
 * 
 *     def get_site_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         return self._site_xmat[id].reshape((3, 3))
 */
  __pyx_codeobj__167 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_site_xmat, 2728, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__167)) __PYX_ERR(4, 2728, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2732
 *         return self._site_xmat[id].reshape((3, 3))
 * 
 *     def get_site_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         if jacp is None:
 */
  __pyx_codeobj__168 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__147, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_site_jacp, 2732, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__168)) __PYX_ERR(4, 2732, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2740
 *         return jacp
 * 
 *     def get_site_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         if jacr is None:
 */
  __pyx_codeobj__169 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__150, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_site_jacr, 2740, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__169)) __PYX_ERR(4, 2740, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2748
 *         return jacr
 * 
 *     def get_site_xvelp(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         jacp = self.get_site_jacp(name).reshape((3, self._model.nv))
 */
  __pyx_codeobj__170 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__152, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_site_xvelp, 2748, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__170)) __PYX_ERR(4, 2748, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2754
 *         return xvelp
 * 
 *     def get_site_xvelr(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         jacr = self.get_site_jacr(name).reshape((3, self._model.nv))
 */
  __pyx_codeobj__171 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__154, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_site_xvelr, 2754, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__171)) __PYX_ERR(4, 2754, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2760
 *         return xvelr
 * 
 *     def get_camera_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.camera_name2id(name)
 *         return self._cam_xpos[id]
 */
  __pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_camera_xpos, 2760, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) __PYX_ERR(4, 2760, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2764
 *         return self._cam_xpos[id]
 * 
 *     def get_cam_xpos(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_camera_xpos should be used instead of get_cam_xpos")
 * 
 */
  __pyx_codeobj__173 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_cam_xpos, 2764, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__173)) __PYX_ERR(4, 2764, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2767
 *         raise RuntimeError("get_camera_xpos should be used instead of get_cam_xpos")
 * 
 *     def get_camera_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.camera_name2id(name)
 *         return self._cam_xmat[id].reshape((3, 3))
 */
  __pyx_codeobj__174 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_camera_xmat, 2767, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__174)) __PYX_ERR(4, 2767, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2771
 *         return self._cam_xmat[id].reshape((3, 3))
 * 
 *     def get_cam_xmat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_camera_xmat should be used instead of get_cam_xmat")
 * 
 */
  __pyx_codeobj__175 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_cam_xmat, 2771, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__175)) __PYX_ERR(4, 2771, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2774
 *         raise RuntimeError("get_camera_xmat should be used instead of get_cam_xmat")
 * 
 *     def get_light_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.light_name2id(name)
 *         return self._light_xpos[id]
 */
  __pyx_codeobj__176 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_light_xpos, 2774, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__176)) __PYX_ERR(4, 2774, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2778
 *         return self._light_xpos[id]
 * 
 *     def get_light_xdir(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.light_name2id(name)
 *         return self._light_xdir[id]
 */
  __pyx_codeobj__177 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_light_xdir, 2778, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__177)) __PYX_ERR(4, 2778, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2782
 *         return self._light_xdir[id]
 * 
 *     def get_sensor(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.sensor_name2id(name)
 *         return self._sensordata[id]
 */
  __pyx_codeobj__178 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_sensor, 2782, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__178)) __PYX_ERR(4, 2782, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2786
 *         return self._sensordata[id]
 * 
 *     def get_sensordata(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_sensor should be used instead of get_sensordata")
 * 
 */
  __pyx_codeobj__179 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_sensordata, 2786, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__179)) __PYX_ERR(4, 2786, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2789
 *         raise RuntimeError("get_sensor should be used instead of get_sensordata")
 * 
 *     def get_userdata(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.userdata_name2id(name)
 *         return self._userdata[id]
 */
  __pyx_codeobj__180 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_userdata, 2789, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__180)) __PYX_ERR(4, 2789, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2793
 *         return self._userdata[id]
 * 
 *     def get_mocap_pos(self, name):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */
  __pyx_tuple__181 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_name, __pyx_n_s_body_id, __pyx_n_s_mocap_id); if (unlikely(!__pyx_tuple__181)) __PYX_ERR(4, 2793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__181);
  __Pyx_GIVEREF(__pyx_tuple__181);
  __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__181, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_mocap_pos, 2793, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) __PYX_ERR(4, 2793, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2798
 *         return self.mocap_pos[mocap_id]
 * 
 *     def set_mocap_pos(self, name, value):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */
  __pyx_tuple__183 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_name, __pyx_n_s_value, __pyx_n_s_body_id, __pyx_n_s_mocap_id); if (unlikely(!__pyx_tuple__183)) __PYX_ERR(4, 2798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__183);
  __Pyx_GIVEREF(__pyx_tuple__183);
  __pyx_codeobj__184 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__183, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_set_mocap_pos, 2798, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) __PYX_ERR(4, 2798, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2803
 *         self.mocap_pos[mocap_id] = value
 * 
 *     def get_mocap_quat(self, name):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */
  __pyx_codeobj__185 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__181, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_mocap_quat, 2803, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__185)) __PYX_ERR(4, 2803, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2808
 *         return self.mocap_quat[mocap_id]
 * 
 *     def set_mocap_quat(self, name, value):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */
  __pyx_codeobj__186 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__183, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_set_mocap_quat, 2808, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__186)) __PYX_ERR(4, 2808, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2813
 *         self.mocap_quat[mocap_id] = value
 * 
 *     def get_joint_qpos(self, name):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qpos_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */
  __pyx_tuple__187 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_name, __pyx_n_s_addr, __pyx_n_s_start_i, __pyx_n_s_end_i); if (unlikely(!__pyx_tuple__187)) __PYX_ERR(4, 2813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__187);
  __Pyx_GIVEREF(__pyx_tuple__187);
  __pyx_codeobj__188 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__187, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_joint_qpos, 2813, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__188)) __PYX_ERR(4, 2813, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2821
 *             return self.qpos[start_i:end_i]
 * 
 *     def set_joint_qpos(self, name, value):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qpos_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */
  __pyx_tuple__189 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_name, __pyx_n_s_value, __pyx_n_s_addr, __pyx_n_s_start_i, __pyx_n_s_end_i); if (unlikely(!__pyx_tuple__189)) __PYX_ERR(4, 2821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__189);
  __Pyx_GIVEREF(__pyx_tuple__189);
  __pyx_codeobj__190 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__189, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_set_joint_qpos, 2821, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) __PYX_ERR(4, 2821, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2832
 *             self.qpos[start_i:end_i] = value
 * 
 *     def get_joint_qvel(self, name):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qvel_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */
  __pyx_codeobj__191 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__187, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_get_joint_qvel, 2832, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__191)) __PYX_ERR(4, 2832, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":2840
 *             return self.qvel[start_i:end_i]
 * 
 *     def set_joint_qvel(self, name, value):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qvel_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */
  __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__189, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_set_joint_qvel, 2840, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(4, 2840, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__193 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__193)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 */
  __pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__195 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__195)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__196 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__197 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__197)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__198 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__199 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__199)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__200 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__200)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__201 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__201)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__203 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__203)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__204 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__204)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__205 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__205)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__206 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__206)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__207 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__207)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__208 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__208)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__209 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__209)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__210 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__210)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__211 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__211)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__212 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__212)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__213 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__213)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__214 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__214)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__215 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__215)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__216 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__216)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__217 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__217)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__218 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__218)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__219 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__219)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__220 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__220)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__221 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__221)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__222 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__222)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__223 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__223)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__224 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__224)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__225 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__225)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__226 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__226)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__227 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__227)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__228 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__228)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4797
 *     return np.asarray(b)
 * 
 * def _mj_activate(str filename):             # <<<<<<<<<<<<<<
 *     return mj_activate(filename.encode())
 * 
 */
  __pyx_tuple__229 = PyTuple_Pack(1, __pyx_n_s_filename); if (unlikely(!__pyx_tuple__229)) __PYX_ERR(4, 4797, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__229);
  __Pyx_GIVEREF(__pyx_tuple__229);
  __pyx_codeobj__230 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__229, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_activate, 4797, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__230)) __PYX_ERR(4, 4797, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4800
 *     return mj_activate(filename.encode())
 * 
 * def _mj_deactivate():             # <<<<<<<<<<<<<<
 *     mj_deactivate()
 * 
 */
  __pyx_codeobj__231 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_deactivate, 4800, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__231)) __PYX_ERR(4, 4800, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4803
 *     mj_deactivate()
 * 
 * def _mj_defaultVFS(PyMjVFS vfs):             # <<<<<<<<<<<<<<
 *     mj_defaultVFS(vfs.ptr)
 * 
 */
  __pyx_tuple__232 = PyTuple_Pack(1, __pyx_n_s_vfs); if (unlikely(!__pyx_tuple__232)) __PYX_ERR(4, 4803, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__232);
  __Pyx_GIVEREF(__pyx_tuple__232);
  __pyx_codeobj__233 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__232, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_defaultVFS, 4803, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__233)) __PYX_ERR(4, 4803, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4806
 *     mj_defaultVFS(vfs.ptr)
 * 
 * def _mj_addFileVFS(PyMjVFS vfs, str directory, str filename):             # <<<<<<<<<<<<<<
 *     return mj_addFileVFS(vfs.ptr, directory.encode(), filename.encode())
 * 
 */
  __pyx_tuple__234 = PyTuple_Pack(3, __pyx_n_s_vfs, __pyx_n_s_directory, __pyx_n_s_filename); if (unlikely(!__pyx_tuple__234)) __PYX_ERR(4, 4806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__234);
  __Pyx_GIVEREF(__pyx_tuple__234);
  __pyx_codeobj__235 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__234, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_addFileVFS, 4806, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__235)) __PYX_ERR(4, 4806, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4809
 *     return mj_addFileVFS(vfs.ptr, directory.encode(), filename.encode())
 * 
 * def _mj_makeEmptyFileVFS(PyMjVFS vfs, str filename, int filesize):             # <<<<<<<<<<<<<<
 *     return mj_makeEmptyFileVFS(vfs.ptr, filename.encode(), filesize)
 * 
 */
  __pyx_tuple__236 = PyTuple_Pack(3, __pyx_n_s_vfs, __pyx_n_s_filename, __pyx_n_s_filesize); if (unlikely(!__pyx_tuple__236)) __PYX_ERR(4, 4809, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__236);
  __Pyx_GIVEREF(__pyx_tuple__236);
  __pyx_codeobj__237 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__236, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_makeEmptyFileVFS, 4809, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__237)) __PYX_ERR(4, 4809, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4812
 *     return mj_makeEmptyFileVFS(vfs.ptr, filename.encode(), filesize)
 * 
 * def _mj_findFileVFS(PyMjVFS vfs, str filename):             # <<<<<<<<<<<<<<
 *     return mj_findFileVFS(vfs.ptr, filename.encode())
 * 
 */
  __pyx_tuple__238 = PyTuple_Pack(2, __pyx_n_s_vfs, __pyx_n_s_filename); if (unlikely(!__pyx_tuple__238)) __PYX_ERR(4, 4812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__238);
  __Pyx_GIVEREF(__pyx_tuple__238);
  __pyx_codeobj__239 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__238, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_findFileVFS, 4812, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__239)) __PYX_ERR(4, 4812, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4815
 *     return mj_findFileVFS(vfs.ptr, filename.encode())
 * 
 * def _mj_deleteFileVFS(PyMjVFS vfs, str filename):             # <<<<<<<<<<<<<<
 *     return mj_deleteFileVFS(vfs.ptr, filename.encode())
 * 
 */
  __pyx_codeobj__240 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__238, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_deleteFileVFS, 4815, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__240)) __PYX_ERR(4, 4815, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4818
 *     return mj_deleteFileVFS(vfs.ptr, filename.encode())
 * 
 * def _mj_deleteVFS(PyMjVFS vfs):             # <<<<<<<<<<<<<<
 *     mj_deleteVFS(vfs.ptr)
 * 
 */
  __pyx_codeobj__241 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__232, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_deleteVFS, 4818, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__241)) __PYX_ERR(4, 4818, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4821
 *     mj_deleteVFS(vfs.ptr)
 * 
 * def _mj_loadXML(str filename, PyMjVFS vfs, str error, int error_sz):             # <<<<<<<<<<<<<<
 *     return WrapMjModel(mj_loadXML(filename.encode(), vfs.ptr, error.encode(), error_sz))
 * 
 */
  __pyx_tuple__242 = PyTuple_Pack(4, __pyx_n_s_filename, __pyx_n_s_vfs, __pyx_n_s_error, __pyx_n_s_error_sz); if (unlikely(!__pyx_tuple__242)) __PYX_ERR(4, 4821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__242);
  __Pyx_GIVEREF(__pyx_tuple__242);
  __pyx_codeobj__243 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__242, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_loadXML, 4821, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__243)) __PYX_ERR(4, 4821, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4824
 *     return WrapMjModel(mj_loadXML(filename.encode(), vfs.ptr, error.encode(), error_sz))
 * 
 * def _mj_saveLastXML(str filename, PyMjModel m, str error, int error_sz):             # <<<<<<<<<<<<<<
 *     return mj_saveLastXML(filename.encode(), m.ptr, error.encode(), error_sz)
 * 
 */
  __pyx_tuple__244 = PyTuple_Pack(4, __pyx_n_s_filename, __pyx_n_s_m, __pyx_n_s_error, __pyx_n_s_error_sz); if (unlikely(!__pyx_tuple__244)) __PYX_ERR(4, 4824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__244);
  __Pyx_GIVEREF(__pyx_tuple__244);
  __pyx_codeobj__245 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__244, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_saveLastXML, 4824, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__245)) __PYX_ERR(4, 4824, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4827
 *     return mj_saveLastXML(filename.encode(), m.ptr, error.encode(), error_sz)
 * 
 * def _mj_freeLastXML():             # <<<<<<<<<<<<<<
 *     mj_freeLastXML()
 * 
 */
  __pyx_codeobj__246 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_freeLastXML, 4827, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__246)) __PYX_ERR(4, 4827, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4830
 *     mj_freeLastXML()
 * 
 * def _mj_printSchema(str filename, str buffer, int buffer_sz, int flg_html, int flg_pad):             # <<<<<<<<<<<<<<
 *     return mj_printSchema(filename.encode(), buffer.encode(), buffer_sz, flg_html, flg_pad)
 * 
 */
  __pyx_tuple__247 = PyTuple_Pack(5, __pyx_n_s_filename, __pyx_n_s_buffer, __pyx_n_s_buffer_sz, __pyx_n_s_flg_html, __pyx_n_s_flg_pad); if (unlikely(!__pyx_tuple__247)) __PYX_ERR(4, 4830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__247);
  __Pyx_GIVEREF(__pyx_tuple__247);
  __pyx_codeobj__248 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__247, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_printSchema, 4830, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__248)) __PYX_ERR(4, 4830, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4833
 *     return mj_printSchema(filename.encode(), buffer.encode(), buffer_sz, flg_html, flg_pad)
 * 
 * def _mj_step(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_step(m.ptr, d.ptr)
 * 
 */
  __pyx_tuple__249 = PyTuple_Pack(2, __pyx_n_s_m, __pyx_n_s_d); if (unlikely(!__pyx_tuple__249)) __PYX_ERR(4, 4833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__249);
  __Pyx_GIVEREF(__pyx_tuple__249);
  __pyx_codeobj__250 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_step, 4833, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__250)) __PYX_ERR(4, 4833, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4836
 *     mj_step(m.ptr, d.ptr)
 * 
 * def _mj_step1(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_step1(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__251 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_step1, 4836, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__251)) __PYX_ERR(4, 4836, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4839
 *     mj_step1(m.ptr, d.ptr)
 * 
 * def _mj_step2(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_step2(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__252 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_step2, 4839, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__252)) __PYX_ERR(4, 4839, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4842
 *     mj_step2(m.ptr, d.ptr)
 * 
 * def _mj_forward(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_forward(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__253 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_forward, 4842, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__253)) __PYX_ERR(4, 4842, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4845
 *     mj_forward(m.ptr, d.ptr)
 * 
 * def _mj_inverse(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_inverse(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__254 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_inverse, 4845, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__254)) __PYX_ERR(4, 4845, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4848
 *     mj_inverse(m.ptr, d.ptr)
 * 
 * def _mj_forwardSkip(PyMjModel m, PyMjData d, int skipstage, int skipsensor):             # <<<<<<<<<<<<<<
 *     mj_forwardSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 */
  __pyx_tuple__255 = PyTuple_Pack(4, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_skipstage, __pyx_n_s_skipsensor); if (unlikely(!__pyx_tuple__255)) __PYX_ERR(4, 4848, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__255);
  __Pyx_GIVEREF(__pyx_tuple__255);
  __pyx_codeobj__256 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__255, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_forwardSkip, 4848, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__256)) __PYX_ERR(4, 4848, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4851
 *     mj_forwardSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 * def _mj_inverseSkip(PyMjModel m, PyMjData d, int skipstage, int skipsensor):             # <<<<<<<<<<<<<<
 *     mj_inverseSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 */
  __pyx_codeobj__257 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__255, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_inverseSkip, 4851, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__257)) __PYX_ERR(4, 4851, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4854
 *     mj_inverseSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 * def _mj_defaultLROpt(PyMjLROpt opt):             # <<<<<<<<<<<<<<
 *     mj_defaultLROpt(opt.ptr)
 * 
 */
  __pyx_tuple__258 = PyTuple_Pack(1, __pyx_n_s_opt); if (unlikely(!__pyx_tuple__258)) __PYX_ERR(4, 4854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__258);
  __Pyx_GIVEREF(__pyx_tuple__258);
  __pyx_codeobj__259 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__258, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_defaultLROpt, 4854, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__259)) __PYX_ERR(4, 4854, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4857
 *     mj_defaultLROpt(opt.ptr)
 * 
 * def _mj_defaultSolRefImp(np.ndarray[np.float64_t, mode="c", ndim=1] solref, np.ndarray[np.float64_t, mode="c", ndim=1] solimp):             # <<<<<<<<<<<<<<
 *     mj_defaultSolRefImp(&solref[0], &solimp[0])
 * 
 */
  __pyx_tuple__260 = PyTuple_Pack(2, __pyx_n_s_solref, __pyx_n_s_solimp); if (unlikely(!__pyx_tuple__260)) __PYX_ERR(4, 4857, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__260);
  __Pyx_GIVEREF(__pyx_tuple__260);
  __pyx_codeobj__261 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__260, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_defaultSolRefImp, 4857, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__261)) __PYX_ERR(4, 4857, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4860
 *     mj_defaultSolRefImp(&solref[0], &solimp[0])
 * 
 * def _mj_defaultOption(PyMjOption opt):             # <<<<<<<<<<<<<<
 *     mj_defaultOption(opt.ptr)
 * 
 */
  __pyx_codeobj__262 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__258, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_defaultOption, 4860, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__262)) __PYX_ERR(4, 4860, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4863
 *     mj_defaultOption(opt.ptr)
 * 
 * def _mj_defaultVisual(PyMjVisual vis):             # <<<<<<<<<<<<<<
 *     mj_defaultVisual(vis.ptr)
 * 
 */
  __pyx_tuple__263 = PyTuple_Pack(1, __pyx_n_s_vis); if (unlikely(!__pyx_tuple__263)) __PYX_ERR(4, 4863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__263);
  __Pyx_GIVEREF(__pyx_tuple__263);
  __pyx_codeobj__264 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__263, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_defaultVisual, 4863, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__264)) __PYX_ERR(4, 4863, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4866
 *     mj_defaultVisual(vis.ptr)
 * 
 * def _mj_copyModel(PyMjModel dest, PyMjModel src):             # <<<<<<<<<<<<<<
 *     return WrapMjModel(mj_copyModel(dest.ptr, src.ptr))
 * 
 */
  __pyx_tuple__265 = PyTuple_Pack(2, __pyx_n_s_dest, __pyx_n_s_src); if (unlikely(!__pyx_tuple__265)) __PYX_ERR(4, 4866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__265);
  __Pyx_GIVEREF(__pyx_tuple__265);
  __pyx_codeobj__266 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__265, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_copyModel, 4866, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__266)) __PYX_ERR(4, 4866, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4869
 *     return WrapMjModel(mj_copyModel(dest.ptr, src.ptr))
 * 
 * def _mj_loadModel(str filename, PyMjVFS vfs):             # <<<<<<<<<<<<<<
 *     return WrapMjModel(mj_loadModel(filename.encode(), vfs.ptr))
 * 
 */
  __pyx_tuple__267 = PyTuple_Pack(2, __pyx_n_s_filename, __pyx_n_s_vfs); if (unlikely(!__pyx_tuple__267)) __PYX_ERR(4, 4869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__267);
  __Pyx_GIVEREF(__pyx_tuple__267);
  __pyx_codeobj__268 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__267, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_loadModel, 4869, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__268)) __PYX_ERR(4, 4869, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4872
 *     return WrapMjModel(mj_loadModel(filename.encode(), vfs.ptr))
 * 
 * def _mj_deleteModel(PyMjModel m):             # <<<<<<<<<<<<<<
 *     mj_deleteModel(m.ptr)
 * 
 */
  __pyx_tuple__269 = PyTuple_Pack(1, __pyx_n_s_m); if (unlikely(!__pyx_tuple__269)) __PYX_ERR(4, 4872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__269);
  __Pyx_GIVEREF(__pyx_tuple__269);
  __pyx_codeobj__270 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__269, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_deleteModel, 4872, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__270)) __PYX_ERR(4, 4872, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4875
 *     mj_deleteModel(m.ptr)
 * 
 * def _mj_sizeModel(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_sizeModel(m.ptr)
 * 
 */
  __pyx_codeobj__271 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__269, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_sizeModel, 4875, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__271)) __PYX_ERR(4, 4875, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4878
 *     return mj_sizeModel(m.ptr)
 * 
 * def _mj_resetData(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_resetData(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__272 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_resetData, 4878, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__272)) __PYX_ERR(4, 4878, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4881
 *     mj_resetData(m.ptr, d.ptr)
 * 
 * def _mj_resetDataKeyframe(PyMjModel m, PyMjData d, int key):             # <<<<<<<<<<<<<<
 *     mj_resetDataKeyframe(m.ptr, d.ptr, key)
 * 
 */
  __pyx_tuple__273 = PyTuple_Pack(3, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_key); if (unlikely(!__pyx_tuple__273)) __PYX_ERR(4, 4881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__273);
  __Pyx_GIVEREF(__pyx_tuple__273);
  __pyx_codeobj__274 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__273, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_resetDataKeyframe, 4881, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__274)) __PYX_ERR(4, 4881, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4884
 *     mj_resetDataKeyframe(m.ptr, d.ptr, key)
 * 
 * def _mj_deleteData(PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_deleteData(d.ptr)
 * 
 */
  __pyx_tuple__275 = PyTuple_Pack(1, __pyx_n_s_d); if (unlikely(!__pyx_tuple__275)) __PYX_ERR(4, 4884, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__275);
  __Pyx_GIVEREF(__pyx_tuple__275);
  __pyx_codeobj__276 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__275, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_deleteData, 4884, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__276)) __PYX_ERR(4, 4884, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4887
 *     mj_deleteData(d.ptr)
 * 
 * def _mj_resetCallbacks():             # <<<<<<<<<<<<<<
 *     mj_resetCallbacks()
 * 
 */
  __pyx_codeobj__277 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_resetCallbacks, 4887, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__277)) __PYX_ERR(4, 4887, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4890
 *     mj_resetCallbacks()
 * 
 * def _mj_setConst(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_setConst(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__278 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_setConst, 4890, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__278)) __PYX_ERR(4, 4890, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4893
 *     mj_setConst(m.ptr, d.ptr)
 * 
 * def _mj_setLengthRange(PyMjModel m, PyMjData d, int index, PyMjLROpt opt, str error, int error_sz):             # <<<<<<<<<<<<<<
 *     return mj_setLengthRange(m.ptr, d.ptr, index, opt.ptr, error.encode(), error_sz)
 * 
 */
  __pyx_tuple__279 = PyTuple_Pack(6, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_index, __pyx_n_s_opt, __pyx_n_s_error, __pyx_n_s_error_sz); if (unlikely(!__pyx_tuple__279)) __PYX_ERR(4, 4893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__279);
  __Pyx_GIVEREF(__pyx_tuple__279);
  __pyx_codeobj__280 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__279, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_setLengthRange, 4893, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__280)) __PYX_ERR(4, 4893, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4896
 *     return mj_setLengthRange(m.ptr, d.ptr, index, opt.ptr, error.encode(), error_sz)
 * 
 * def _mj_printModel(PyMjModel m, str filename):             # <<<<<<<<<<<<<<
 *     mj_printModel(m.ptr, filename.encode())
 * 
 */
  __pyx_tuple__281 = PyTuple_Pack(2, __pyx_n_s_m, __pyx_n_s_filename); if (unlikely(!__pyx_tuple__281)) __PYX_ERR(4, 4896, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__281);
  __Pyx_GIVEREF(__pyx_tuple__281);
  __pyx_codeobj__282 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__281, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_printModel, 4896, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__282)) __PYX_ERR(4, 4896, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4899
 *     mj_printModel(m.ptr, filename.encode())
 * 
 * def _mj_printData(PyMjModel m, PyMjData d, str filename):             # <<<<<<<<<<<<<<
 *     mj_printData(m.ptr, d.ptr, filename.encode())
 * 
 */
  __pyx_tuple__283 = PyTuple_Pack(3, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_filename); if (unlikely(!__pyx_tuple__283)) __PYX_ERR(4, 4899, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__283);
  __Pyx_GIVEREF(__pyx_tuple__283);
  __pyx_codeobj__284 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__283, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_printData, 4899, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__284)) __PYX_ERR(4, 4899, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4902
 *     mj_printData(m.ptr, d.ptr, filename.encode())
 * 
 * def _mju_printMat(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_printMat(&mat[0], nr, nc)
 * 
 */
  __pyx_tuple__285 = PyTuple_Pack(3, __pyx_n_s_mat, __pyx_n_s_nr, __pyx_n_s_nc); if (unlikely(!__pyx_tuple__285)) __PYX_ERR(4, 4902, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__285);
  __Pyx_GIVEREF(__pyx_tuple__285);
  __pyx_codeobj__286 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__285, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_printMat, 4902, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__286)) __PYX_ERR(4, 4902, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4905
 *     mju_printMat(&mat[0], nr, nc)
 * 
 * def _mju_printMatSparse(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, uintptr_t rownnz, uintptr_t rowadr, uintptr_t colind):             # <<<<<<<<<<<<<<
 *     mju_printMatSparse(&mat[0], nr, <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 */
  __pyx_tuple__287 = PyTuple_Pack(5, __pyx_n_s_mat, __pyx_n_s_nr, __pyx_n_s_rownnz, __pyx_n_s_rowadr, __pyx_n_s_colind); if (unlikely(!__pyx_tuple__287)) __PYX_ERR(4, 4905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__287);
  __Pyx_GIVEREF(__pyx_tuple__287);
  __pyx_codeobj__288 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__287, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_printMatSparse, 4905, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__288)) __PYX_ERR(4, 4905, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4908
 *     mju_printMatSparse(&mat[0], nr, <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 * def _mj_fwdPosition(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdPosition(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__289 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_fwdPosition, 4908, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__289)) __PYX_ERR(4, 4908, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4911
 *     mj_fwdPosition(m.ptr, d.ptr)
 * 
 * def _mj_fwdVelocity(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdVelocity(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__290 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_fwdVelocity, 4911, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__290)) __PYX_ERR(4, 4911, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4914
 *     mj_fwdVelocity(m.ptr, d.ptr)
 * 
 * def _mj_fwdActuation(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdActuation(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__291 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_fwdActuation, 4914, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__291)) __PYX_ERR(4, 4914, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4917
 *     mj_fwdActuation(m.ptr, d.ptr)
 * 
 * def _mj_fwdAcceleration(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdAcceleration(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__292 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_fwdAcceleration, 4917, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__292)) __PYX_ERR(4, 4917, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4920
 *     mj_fwdAcceleration(m.ptr, d.ptr)
 * 
 * def _mj_fwdConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdConstraint(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__293 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_fwdConstraint, 4920, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__293)) __PYX_ERR(4, 4920, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4923
 *     mj_fwdConstraint(m.ptr, d.ptr)
 * 
 * def _mj_Euler(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_Euler(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__294 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_Euler, 4923, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__294)) __PYX_ERR(4, 4923, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4926
 *     mj_Euler(m.ptr, d.ptr)
 * 
 * def _mj_RungeKutta(PyMjModel m, PyMjData d, int N):             # <<<<<<<<<<<<<<
 *     mj_RungeKutta(m.ptr, d.ptr, N)
 * 
 */
  __pyx_tuple__295 = PyTuple_Pack(3, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_N); if (unlikely(!__pyx_tuple__295)) __PYX_ERR(4, 4926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__295);
  __Pyx_GIVEREF(__pyx_tuple__295);
  __pyx_codeobj__296 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__295, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_RungeKutta, 4926, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__296)) __PYX_ERR(4, 4926, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4929
 *     mj_RungeKutta(m.ptr, d.ptr, N)
 * 
 * def _mj_invPosition(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_invPosition(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__297 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_invPosition, 4929, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__297)) __PYX_ERR(4, 4929, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4932
 *     mj_invPosition(m.ptr, d.ptr)
 * 
 * def _mj_invVelocity(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_invVelocity(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__298 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_invVelocity, 4932, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__298)) __PYX_ERR(4, 4932, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4935
 *     mj_invVelocity(m.ptr, d.ptr)
 * 
 * def _mj_invConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_invConstraint(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__299 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_invConstraint, 4935, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__299)) __PYX_ERR(4, 4935, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4938
 *     mj_invConstraint(m.ptr, d.ptr)
 * 
 * def _mj_compareFwdInv(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_compareFwdInv(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__300 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_compareFwdInv, 4938, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__300)) __PYX_ERR(4, 4938, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4941
 *     mj_compareFwdInv(m.ptr, d.ptr)
 * 
 * def _mj_sensorPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_sensorPos(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__301 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_sensorPos, 4941, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__301)) __PYX_ERR(4, 4941, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4944
 *     mj_sensorPos(m.ptr, d.ptr)
 * 
 * def _mj_sensorVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_sensorVel(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__302 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_sensorVel, 4944, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__302)) __PYX_ERR(4, 4944, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4947
 *     mj_sensorVel(m.ptr, d.ptr)
 * 
 * def _mj_sensorAcc(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_sensorAcc(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__303 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_sensorAcc, 4947, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__303)) __PYX_ERR(4, 4947, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4950
 *     mj_sensorAcc(m.ptr, d.ptr)
 * 
 * def _mj_energyPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_energyPos(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__304 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_energyPos, 4950, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__304)) __PYX_ERR(4, 4950, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4953
 *     mj_energyPos(m.ptr, d.ptr)
 * 
 * def _mj_energyVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_energyVel(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__305 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_energyVel, 4953, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__305)) __PYX_ERR(4, 4953, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4956
 *     mj_energyVel(m.ptr, d.ptr)
 * 
 * def _mj_checkPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_checkPos(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__306 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_checkPos, 4956, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__306)) __PYX_ERR(4, 4956, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4959
 *     mj_checkPos(m.ptr, d.ptr)
 * 
 * def _mj_checkVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_checkVel(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__307 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_checkVel, 4959, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__307)) __PYX_ERR(4, 4959, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4962
 *     mj_checkVel(m.ptr, d.ptr)
 * 
 * def _mj_checkAcc(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_checkAcc(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__308 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_checkAcc, 4962, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__308)) __PYX_ERR(4, 4962, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4965
 *     mj_checkAcc(m.ptr, d.ptr)
 * 
 * def _mj_kinematics(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_kinematics(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__309 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_kinematics, 4965, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__309)) __PYX_ERR(4, 4965, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4968
 *     mj_kinematics(m.ptr, d.ptr)
 * 
 * def _mj_comPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_comPos(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__310 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_comPos, 4968, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__310)) __PYX_ERR(4, 4968, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4971
 *     mj_comPos(m.ptr, d.ptr)
 * 
 * def _mj_camlight(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_camlight(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__311 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_camlight, 4971, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__311)) __PYX_ERR(4, 4971, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4974
 *     mj_camlight(m.ptr, d.ptr)
 * 
 * def _mj_tendon(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_tendon(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__312 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_tendon, 4974, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__312)) __PYX_ERR(4, 4974, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4977
 *     mj_tendon(m.ptr, d.ptr)
 * 
 * def _mj_transmission(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_transmission(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__313 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_transmission, 4977, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__313)) __PYX_ERR(4, 4977, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4980
 *     mj_transmission(m.ptr, d.ptr)
 * 
 * def _mj_crb(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_crb(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__314 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_crb, 4980, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__314)) __PYX_ERR(4, 4980, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4983
 *     mj_crb(m.ptr, d.ptr)
 * 
 * def _mj_factorM(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_factorM(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__315 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_factorM, 4983, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__315)) __PYX_ERR(4, 4983, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4986
 *     mj_factorM(m.ptr, d.ptr)
 * 
 * def _mj_solveM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] x, np.ndarray[np.float64_t, mode="c", ndim=1] y, int n):             # <<<<<<<<<<<<<<
 *     mj_solveM(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 */
  __pyx_tuple__316 = PyTuple_Pack(5, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_n); if (unlikely(!__pyx_tuple__316)) __PYX_ERR(4, 4986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__316);
  __Pyx_GIVEREF(__pyx_tuple__316);
  __pyx_codeobj__317 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__316, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_solveM, 4986, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__317)) __PYX_ERR(4, 4986, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4989
 *     mj_solveM(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 * def _mj_solveM2(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] x, np.ndarray[np.float64_t, mode="c", ndim=1] y, int n):             # <<<<<<<<<<<<<<
 *     mj_solveM2(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 */
  __pyx_codeobj__318 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__316, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_solveM2, 4989, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__318)) __PYX_ERR(4, 4989, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4992
 *     mj_solveM2(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 * def _mj_comVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_comVel(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__319 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_comVel, 4992, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__319)) __PYX_ERR(4, 4992, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4995
 *     mj_comVel(m.ptr, d.ptr)
 * 
 * def _mj_passive(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_passive(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__320 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_passive, 4995, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__320)) __PYX_ERR(4, 4995, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":4998
 *     mj_passive(m.ptr, d.ptr)
 * 
 * def _mj_subtreeVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_subtreeVel(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__321 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_subtreeVel, 4998, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__321)) __PYX_ERR(4, 4998, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5001
 *     mj_subtreeVel(m.ptr, d.ptr)
 * 
 * def _mj_rne(PyMjModel m, PyMjData d, int flg_acc, np.ndarray[np.float64_t, mode="c", ndim=1] result):             # <<<<<<<<<<<<<<
 *     mj_rne(m.ptr, d.ptr, flg_acc, &result[0])
 * 
 */
  __pyx_tuple__322 = PyTuple_Pack(4, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_flg_acc, __pyx_n_s_result); if (unlikely(!__pyx_tuple__322)) __PYX_ERR(4, 5001, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__322);
  __Pyx_GIVEREF(__pyx_tuple__322);
  __pyx_codeobj__323 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__322, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_rne, 5001, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__323)) __PYX_ERR(4, 5001, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5004
 *     mj_rne(m.ptr, d.ptr, flg_acc, &result[0])
 * 
 * def _mj_rnePostConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_rnePostConstraint(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__324 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_rnePostConstraint, 5004, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__324)) __PYX_ERR(4, 5004, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5007
 *     mj_rnePostConstraint(m.ptr, d.ptr)
 * 
 * def _mj_collision(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_collision(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__325 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_collision, 5007, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__325)) __PYX_ERR(4, 5007, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5010
 *     mj_collision(m.ptr, d.ptr)
 * 
 * def _mj_makeConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_makeConstraint(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__326 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_makeConstraint, 5010, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__326)) __PYX_ERR(4, 5010, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5013
 *     mj_makeConstraint(m.ptr, d.ptr)
 * 
 * def _mj_projectConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_projectConstraint(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__327 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_projectConstraint, 5013, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__327)) __PYX_ERR(4, 5013, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5016
 *     mj_projectConstraint(m.ptr, d.ptr)
 * 
 * def _mj_referenceConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_referenceConstraint(m.ptr, d.ptr)
 * 
 */
  __pyx_codeobj__328 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_referenceConstraint, 5016, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__328)) __PYX_ERR(4, 5016, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5019
 *     mj_referenceConstraint(m.ptr, d.ptr)
 * 
 * def _mj_constraintUpdate(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jar, np.ndarray[np.float64_t, mode="c", ndim=1] cost, int flg_coneHessian):             # <<<<<<<<<<<<<<
 *     mj_constraintUpdate(m.ptr, d.ptr, &jar[0], &cost[0], flg_coneHessian)
 * 
 */
  __pyx_tuple__329 = PyTuple_Pack(5, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_jar, __pyx_n_s_cost, __pyx_n_s_flg_coneHessian); if (unlikely(!__pyx_tuple__329)) __PYX_ERR(4, 5019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__329);
  __Pyx_GIVEREF(__pyx_tuple__329);
  __pyx_codeobj__330 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__329, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_constraintUpdate, 5019, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__330)) __PYX_ERR(4, 5019, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5022
 *     mj_constraintUpdate(m.ptr, d.ptr, &jar[0], &cost[0], flg_coneHessian)
 * 
 * def _mj_addContact(PyMjModel m, PyMjData d, PyMjContact con):             # <<<<<<<<<<<<<<
 *     return mj_addContact(m.ptr, d.ptr, con.ptr)
 * 
 */
  __pyx_tuple__331 = PyTuple_Pack(3, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_con); if (unlikely(!__pyx_tuple__331)) __PYX_ERR(4, 5022, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__331);
  __Pyx_GIVEREF(__pyx_tuple__331);
  __pyx_codeobj__332 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__331, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_addContact, 5022, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__332)) __PYX_ERR(4, 5022, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5025
 *     return mj_addContact(m.ptr, d.ptr, con.ptr)
 * 
 * def _mj_isPyramidal(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_isPyramidal(m.ptr)
 * 
 */
  __pyx_codeobj__333 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__269, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_isPyramidal, 5025, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__333)) __PYX_ERR(4, 5025, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5028
 *     return mj_isPyramidal(m.ptr)
 * 
 * def _mj_isSparse(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_isSparse(m.ptr)
 * 
 */
  __pyx_codeobj__334 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__269, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_isSparse, 5028, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__334)) __PYX_ERR(4, 5028, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5031
 *     return mj_isSparse(m.ptr)
 * 
 * def _mj_isDual(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_isDual(m.ptr)
 * 
 */
  __pyx_codeobj__335 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__269, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_isDual, 5031, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__335)) __PYX_ERR(4, 5031, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5034
 *     return mj_isDual(m.ptr)
 * 
 * def _mj_mulJacVec(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulJacVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */
  __pyx_tuple__336 = PyTuple_Pack(4, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_res, __pyx_n_s_vec); if (unlikely(!__pyx_tuple__336)) __PYX_ERR(4, 5034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__336);
  __Pyx_GIVEREF(__pyx_tuple__336);
  __pyx_codeobj__337 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_mulJacVec, 5034, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__337)) __PYX_ERR(4, 5034, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5037
 *     mj_mulJacVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_mulJacTVec(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulJacTVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */
  __pyx_codeobj__338 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_mulJacTVec, 5037, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__338)) __PYX_ERR(4, 5037, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5040
 *     mj_mulJacTVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_jac(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, np.ndarray[np.float64_t, mode="c", ndim=1] point, int body):             # <<<<<<<<<<<<<<
 *     mj_jac(m.ptr, d.ptr, &jacp[0], &jacr[0], &point[0], body)
 * 
 */
  __pyx_tuple__339 = PyTuple_Pack(6, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_jacp, __pyx_n_s_jacr, __pyx_n_s_point, __pyx_n_s_body); if (unlikely(!__pyx_tuple__339)) __PYX_ERR(4, 5040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__339);
  __Pyx_GIVEREF(__pyx_tuple__339);
  __pyx_codeobj__340 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__339, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_jac, 5040, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__340)) __PYX_ERR(4, 5040, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5043
 *     mj_jac(m.ptr, d.ptr, &jacp[0], &jacr[0], &point[0], body)
 * 
 * def _mj_jacBody(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int body):             # <<<<<<<<<<<<<<
 *     mj_jacBody(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 */
  __pyx_tuple__341 = PyTuple_Pack(5, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_jacp, __pyx_n_s_jacr, __pyx_n_s_body); if (unlikely(!__pyx_tuple__341)) __PYX_ERR(4, 5043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__341);
  __Pyx_GIVEREF(__pyx_tuple__341);
  __pyx_codeobj__342 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__341, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_jacBody, 5043, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__342)) __PYX_ERR(4, 5043, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5046
 *     mj_jacBody(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 * def _mj_jacBodyCom(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int body):             # <<<<<<<<<<<<<<
 *     mj_jacBodyCom(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 */
  __pyx_codeobj__343 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__341, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_jacBodyCom, 5046, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__343)) __PYX_ERR(4, 5046, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5049
 *     mj_jacBodyCom(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 * def _mj_jacGeom(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int geom):             # <<<<<<<<<<<<<<
 *     mj_jacGeom(m.ptr, d.ptr, &jacp[0], &jacr[0], geom)
 * 
 */
  __pyx_tuple__344 = PyTuple_Pack(5, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_jacp, __pyx_n_s_jacr, __pyx_n_s_geom); if (unlikely(!__pyx_tuple__344)) __PYX_ERR(4, 5049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__344);
  __Pyx_GIVEREF(__pyx_tuple__344);
  __pyx_codeobj__345 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_jacGeom, 5049, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__345)) __PYX_ERR(4, 5049, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5052
 *     mj_jacGeom(m.ptr, d.ptr, &jacp[0], &jacr[0], geom)
 * 
 * def _mj_jacSite(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int site):             # <<<<<<<<<<<<<<
 *     mj_jacSite(m.ptr, d.ptr, &jacp[0], &jacr[0], site)
 * 
 */
  __pyx_tuple__346 = PyTuple_Pack(5, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_jacp, __pyx_n_s_jacr, __pyx_n_s_site); if (unlikely(!__pyx_tuple__346)) __PYX_ERR(4, 5052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__346);
  __Pyx_GIVEREF(__pyx_tuple__346);
  __pyx_codeobj__347 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__346, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_jacSite, 5052, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__347)) __PYX_ERR(4, 5052, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5055
 *     mj_jacSite(m.ptr, d.ptr, &jacp[0], &jacr[0], site)
 * 
 * def _mj_jacPointAxis(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacPoint, np.ndarray[np.float64_t, mode="c", ndim=1] jacAxis, np.ndarray[np.float64_t, mode="c", ndim=1] point, np.ndarray[np.float64_t, mode="c", ndim=1] axis, int body):             # <<<<<<<<<<<<<<
 *     mj_jacPointAxis(m.ptr, d.ptr, &jacPoint[0], &jacAxis[0], &point[0], &axis[0], body)
 * 
 */
  __pyx_tuple__348 = PyTuple_Pack(7, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_jacPoint, __pyx_n_s_jacAxis, __pyx_n_s_point, __pyx_n_s_axis, __pyx_n_s_body); if (unlikely(!__pyx_tuple__348)) __PYX_ERR(4, 5055, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__348);
  __Pyx_GIVEREF(__pyx_tuple__348);
  __pyx_codeobj__349 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__348, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_jacPointAxis, 5055, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__349)) __PYX_ERR(4, 5055, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5058
 *     mj_jacPointAxis(m.ptr, d.ptr, &jacPoint[0], &jacAxis[0], &point[0], &axis[0], body)
 * 
 * def _mj_name2id(PyMjModel m, int type, str name):             # <<<<<<<<<<<<<<
 *     return mj_name2id(m.ptr, type, name.encode())
 * 
 */
  __pyx_tuple__350 = PyTuple_Pack(3, __pyx_n_s_m, __pyx_n_s_type, __pyx_n_s_name); if (unlikely(!__pyx_tuple__350)) __PYX_ERR(4, 5058, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__350);
  __Pyx_GIVEREF(__pyx_tuple__350);
  __pyx_codeobj__351 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__350, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_name2id, 5058, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__351)) __PYX_ERR(4, 5058, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5061
 *     return mj_name2id(m.ptr, type, name.encode())
 * 
 * def _mj_fullM(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] dst, np.ndarray[np.float64_t, mode="c", ndim=1] M):             # <<<<<<<<<<<<<<
 *     mj_fullM(m.ptr, &dst[0], &M[0])
 * 
 */
  __pyx_tuple__352 = PyTuple_Pack(3, __pyx_n_s_m, __pyx_n_s_dst, __pyx_n_s_M); if (unlikely(!__pyx_tuple__352)) __PYX_ERR(4, 5061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__352);
  __Pyx_GIVEREF(__pyx_tuple__352);
  __pyx_codeobj__353 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__352, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_fullM, 5061, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__353)) __PYX_ERR(4, 5061, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5064
 *     mj_fullM(m.ptr, &dst[0], &M[0])
 * 
 * def _mj_mulM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulM(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */
  __pyx_codeobj__354 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_mulM, 5064, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__354)) __PYX_ERR(4, 5064, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5067
 *     mj_mulM(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_mulM2(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulM2(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */
  __pyx_codeobj__355 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_mulM2, 5067, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__355)) __PYX_ERR(4, 5067, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5070
 *     mj_mulM2(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_addM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] dst, uintptr_t rownnz, uintptr_t rowadr, uintptr_t colind):             # <<<<<<<<<<<<<<
 *     mj_addM(m.ptr, d.ptr, &dst[0], <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 */
  __pyx_tuple__356 = PyTuple_Pack(6, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_dst, __pyx_n_s_rownnz, __pyx_n_s_rowadr, __pyx_n_s_colind); if (unlikely(!__pyx_tuple__356)) __PYX_ERR(4, 5070, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__356);
  __Pyx_GIVEREF(__pyx_tuple__356);
  __pyx_codeobj__357 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__356, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_addM, 5070, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__357)) __PYX_ERR(4, 5070, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5073
 *     mj_addM(m.ptr, d.ptr, &dst[0], <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 * def _mj_applyFT(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] torque, np.ndarray[np.float64_t, mode="c", ndim=1] point, int body, np.ndarray[np.float64_t, mode="c", ndim=1] qfrc_target):             # <<<<<<<<<<<<<<
 *     mj_applyFT(m.ptr, d.ptr, &force[0], &torque[0], &point[0], body, &qfrc_target[0])
 * 
 */
  __pyx_tuple__358 = PyTuple_Pack(7, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_force, __pyx_n_s_torque, __pyx_n_s_point, __pyx_n_s_body, __pyx_n_s_qfrc_target); if (unlikely(!__pyx_tuple__358)) __PYX_ERR(4, 5073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__358);
  __Pyx_GIVEREF(__pyx_tuple__358);
  __pyx_codeobj__359 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__358, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_applyFT, 5073, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__359)) __PYX_ERR(4, 5073, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5076
 *     mj_applyFT(m.ptr, d.ptr, &force[0], &torque[0], &point[0], body, &qfrc_target[0])
 * 
 * def _mj_objectVelocity(PyMjModel m, PyMjData d, int objtype, int objid, np.ndarray[np.float64_t, mode="c", ndim=1] res, int flg_local):             # <<<<<<<<<<<<<<
 *     mj_objectVelocity(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 */
  __pyx_tuple__360 = PyTuple_Pack(6, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_objtype, __pyx_n_s_objid, __pyx_n_s_res, __pyx_n_s_flg_local); if (unlikely(!__pyx_tuple__360)) __PYX_ERR(4, 5076, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__360);
  __Pyx_GIVEREF(__pyx_tuple__360);
  __pyx_codeobj__361 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__360, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_objectVelocity, 5076, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__361)) __PYX_ERR(4, 5076, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5079
 *     mj_objectVelocity(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 * def _mj_objectAcceleration(PyMjModel m, PyMjData d, int objtype, int objid, np.ndarray[np.float64_t, mode="c", ndim=1] res, int flg_local):             # <<<<<<<<<<<<<<
 *     mj_objectAcceleration(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 */
  __pyx_codeobj__362 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__360, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_objectAcceleration, 5079, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__362)) __PYX_ERR(4, 5079, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5082
 *     mj_objectAcceleration(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 * def _mj_contactForce(PyMjModel m, PyMjData d, int id, np.ndarray[np.float64_t, mode="c", ndim=1] result):             # <<<<<<<<<<<<<<
 *     mj_contactForce(m.ptr, d.ptr, id, &result[0])
 * 
 */
  __pyx_tuple__363 = PyTuple_Pack(4, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_id, __pyx_n_s_result); if (unlikely(!__pyx_tuple__363)) __PYX_ERR(4, 5082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__363);
  __Pyx_GIVEREF(__pyx_tuple__363);
  __pyx_codeobj__364 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__363, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_contactForce, 5082, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__364)) __PYX_ERR(4, 5082, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5085
 *     mj_contactForce(m.ptr, d.ptr, id, &result[0])
 * 
 * def _mj_differentiatePos(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qvel, float dt, np.ndarray[np.float64_t, mode="c", ndim=1] qpos1, np.ndarray[np.float64_t, mode="c", ndim=1] qpos2):             # <<<<<<<<<<<<<<
 *     mj_differentiatePos(m.ptr, &qvel[0], dt, &qpos1[0], &qpos2[0])
 * 
 */
  __pyx_tuple__365 = PyTuple_Pack(5, __pyx_n_s_m, __pyx_n_s_qvel, __pyx_n_s_dt, __pyx_n_s_qpos1, __pyx_n_s_qpos2); if (unlikely(!__pyx_tuple__365)) __PYX_ERR(4, 5085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__365);
  __Pyx_GIVEREF(__pyx_tuple__365);
  __pyx_codeobj__366 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__365, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_differentiatePos, 5085, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__366)) __PYX_ERR(4, 5085, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5088
 *     mj_differentiatePos(m.ptr, &qvel[0], dt, &qpos1[0], &qpos2[0])
 * 
 * def _mj_integratePos(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qpos, np.ndarray[np.float64_t, mode="c", ndim=1] qvel, float dt):             # <<<<<<<<<<<<<<
 *     mj_integratePos(m.ptr, &qpos[0], &qvel[0], dt)
 * 
 */
  __pyx_tuple__367 = PyTuple_Pack(4, __pyx_n_s_m, __pyx_n_s_qpos, __pyx_n_s_qvel, __pyx_n_s_dt); if (unlikely(!__pyx_tuple__367)) __PYX_ERR(4, 5088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__367);
  __Pyx_GIVEREF(__pyx_tuple__367);
  __pyx_codeobj__368 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__367, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_integratePos, 5088, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__368)) __PYX_ERR(4, 5088, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5091
 *     mj_integratePos(m.ptr, &qpos[0], &qvel[0], dt)
 * 
 * def _mj_normalizeQuat(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qpos):             # <<<<<<<<<<<<<<
 *     mj_normalizeQuat(m.ptr, &qpos[0])
 * 
 */
  __pyx_tuple__369 = PyTuple_Pack(2, __pyx_n_s_m, __pyx_n_s_qpos); if (unlikely(!__pyx_tuple__369)) __PYX_ERR(4, 5091, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__369);
  __Pyx_GIVEREF(__pyx_tuple__369);
  __pyx_codeobj__370 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__369, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_normalizeQuat, 5091, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__370)) __PYX_ERR(4, 5091, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5094
 *     mj_normalizeQuat(m.ptr, &qpos[0])
 * 
 * def _mj_local2Global(PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] xpos, np.ndarray[np.float64_t, mode="c", ndim=1] xmat, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat, int body, int sameframe):             # <<<<<<<<<<<<<<
 *     mj_local2Global(d.ptr, &xpos[0], &xmat[0], &pos[0], &quat[0], body, sameframe)
 * 
 */
  __pyx_tuple__371 = PyTuple_Pack(7, __pyx_n_s_d, __pyx_n_s_xpos, __pyx_n_s_xmat, __pyx_n_s_pos, __pyx_n_s_quat, __pyx_n_s_body, __pyx_n_s_sameframe); if (unlikely(!__pyx_tuple__371)) __PYX_ERR(4, 5094, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__371);
  __Pyx_GIVEREF(__pyx_tuple__371);
  __pyx_codeobj__372 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__371, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_local2Global, 5094, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__372)) __PYX_ERR(4, 5094, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5097
 *     mj_local2Global(d.ptr, &xpos[0], &xmat[0], &pos[0], &quat[0], body, sameframe)
 * 
 * def _mj_getTotalmass(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_getTotalmass(m.ptr)
 * 
 */
  __pyx_codeobj__373 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__269, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_getTotalmass, 5097, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__373)) __PYX_ERR(4, 5097, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5100
 *     return mj_getTotalmass(m.ptr)
 * 
 * def _mj_setTotalmass(PyMjModel m, float newmass):             # <<<<<<<<<<<<<<
 *     mj_setTotalmass(m.ptr, newmass)
 * 
 */
  __pyx_tuple__374 = PyTuple_Pack(2, __pyx_n_s_m, __pyx_n_s_newmass); if (unlikely(!__pyx_tuple__374)) __PYX_ERR(4, 5100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__374);
  __Pyx_GIVEREF(__pyx_tuple__374);
  __pyx_codeobj__375 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__374, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_setTotalmass, 5100, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__375)) __PYX_ERR(4, 5100, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5103
 *     mj_setTotalmass(m.ptr, newmass)
 * 
 * def _mj_version():             # <<<<<<<<<<<<<<
 *     return mj_version()
 * 
 */
  __pyx_codeobj__376 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_version, 5103, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__376)) __PYX_ERR(4, 5103, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5106
 *     return mj_version()
 * 
 * def _mj_ray(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.uint8_t, mode="c", ndim=1] geomgroup, int flg_static, int bodyexclude, uintptr_t geomid):             # <<<<<<<<<<<<<<
 *     return mj_ray(m.ptr, d.ptr, &pnt[0], &vec[0], &geomgroup[0], flg_static, bodyexclude, <int*>geomid)
 * 
 */
  __pyx_tuple__377 = PyTuple_Pack(8, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_pnt, __pyx_n_s_vec, __pyx_n_s_geomgroup, __pyx_n_s_flg_static, __pyx_n_s_bodyexclude, __pyx_n_s_geomid); if (unlikely(!__pyx_tuple__377)) __PYX_ERR(4, 5106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__377);
  __Pyx_GIVEREF(__pyx_tuple__377);
  __pyx_codeobj__378 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__377, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_ray, 5106, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__378)) __PYX_ERR(4, 5106, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5109
 *     return mj_ray(m.ptr, d.ptr, &pnt[0], &vec[0], &geomgroup[0], flg_static, bodyexclude, <int*>geomid)
 * 
 * def _mj_rayHfield(PyMjModel m, PyMjData d, int geomid, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     return mj_rayHfield(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 */
  __pyx_tuple__379 = PyTuple_Pack(5, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_geomid, __pyx_n_s_pnt, __pyx_n_s_vec); if (unlikely(!__pyx_tuple__379)) __PYX_ERR(4, 5109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__379);
  __Pyx_GIVEREF(__pyx_tuple__379);
  __pyx_codeobj__380 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__379, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_rayHfield, 5109, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__380)) __PYX_ERR(4, 5109, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5112
 *     return mj_rayHfield(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 * def _mj_rayMesh(PyMjModel m, PyMjData d, int geomid, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     return mj_rayMesh(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 */
  __pyx_codeobj__381 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__379, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_rayMesh, 5112, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__381)) __PYX_ERR(4, 5112, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5115
 *     return mj_rayMesh(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 * def _mju_rayGeom(np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] size, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int geomtype):             # <<<<<<<<<<<<<<
 *     return mju_rayGeom(&pos[0], &mat[0], &size[0], &pnt[0], &vec[0], geomtype)
 * 
 */
  __pyx_tuple__382 = PyTuple_Pack(6, __pyx_n_s_pos, __pyx_n_s_mat, __pyx_n_s_size, __pyx_n_s_pnt, __pyx_n_s_vec, __pyx_n_s_geomtype); if (unlikely(!__pyx_tuple__382)) __PYX_ERR(4, 5115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__382);
  __Pyx_GIVEREF(__pyx_tuple__382);
  __pyx_codeobj__383 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__382, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_rayGeom, 5115, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__383)) __PYX_ERR(4, 5115, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5118
 *     return mju_rayGeom(&pos[0], &mat[0], &size[0], &pnt[0], &vec[0], geomtype)
 * 
 * def _mjv_defaultCamera(PyMjvCamera cam):             # <<<<<<<<<<<<<<
 *     mjv_defaultCamera(cam.ptr)
 * 
 */
  __pyx_tuple__384 = PyTuple_Pack(1, __pyx_n_s_cam); if (unlikely(!__pyx_tuple__384)) __PYX_ERR(4, 5118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__384);
  __Pyx_GIVEREF(__pyx_tuple__384);
  __pyx_codeobj__385 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__384, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_defaultCamera, 5118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__385)) __PYX_ERR(4, 5118, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5121
 *     mjv_defaultCamera(cam.ptr)
 * 
 * def _mjv_defaultPerturb(PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_defaultPerturb(pert.ptr)
 * 
 */
  __pyx_tuple__386 = PyTuple_Pack(1, __pyx_n_s_pert); if (unlikely(!__pyx_tuple__386)) __PYX_ERR(4, 5121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__386);
  __Pyx_GIVEREF(__pyx_tuple__386);
  __pyx_codeobj__387 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__386, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_defaultPerturb, 5121, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__387)) __PYX_ERR(4, 5121, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5124
 *     mjv_defaultPerturb(pert.ptr)
 * 
 * def _mjv_room2model(np.ndarray[np.float64_t, mode="c", ndim=1] modelpos, np.ndarray[np.float64_t, mode="c", ndim=1] modelquat, np.ndarray[np.float64_t, mode="c", ndim=1] roompos, np.ndarray[np.float64_t, mode="c", ndim=1] roomquat, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_room2model(&modelpos[0], &modelquat[0], &roompos[0], &roomquat[0], scn.ptr)
 * 
 */
  __pyx_tuple__388 = PyTuple_Pack(5, __pyx_n_s_modelpos, __pyx_n_s_modelquat, __pyx_n_s_roompos, __pyx_n_s_roomquat, __pyx_n_s_scn); if (unlikely(!__pyx_tuple__388)) __PYX_ERR(4, 5124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__388);
  __Pyx_GIVEREF(__pyx_tuple__388);
  __pyx_codeobj__389 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__388, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_room2model, 5124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__389)) __PYX_ERR(4, 5124, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5127
 *     mjv_room2model(&modelpos[0], &modelquat[0], &roompos[0], &roomquat[0], scn.ptr)
 * 
 * def _mjv_model2room(np.ndarray[np.float64_t, mode="c", ndim=1] roompos, np.ndarray[np.float64_t, mode="c", ndim=1] roomquat, np.ndarray[np.float64_t, mode="c", ndim=1] modelpos, np.ndarray[np.float64_t, mode="c", ndim=1] modelquat, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_model2room(&roompos[0], &roomquat[0], &modelpos[0], &modelquat[0], scn.ptr)
 * 
 */
  __pyx_tuple__390 = PyTuple_Pack(5, __pyx_n_s_roompos, __pyx_n_s_roomquat, __pyx_n_s_modelpos, __pyx_n_s_modelquat, __pyx_n_s_scn); if (unlikely(!__pyx_tuple__390)) __PYX_ERR(4, 5127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__390);
  __Pyx_GIVEREF(__pyx_tuple__390);
  __pyx_codeobj__391 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__390, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_model2room, 5127, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__391)) __PYX_ERR(4, 5127, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5130
 *     mjv_model2room(&roompos[0], &roomquat[0], &modelpos[0], &modelquat[0], scn.ptr)
 * 
 * def _mjv_cameraInModel(np.ndarray[np.float64_t, mode="c", ndim=1] headpos, np.ndarray[np.float64_t, mode="c", ndim=1] forward, np.ndarray[np.float64_t, mode="c", ndim=1] up, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_cameraInModel(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 */
  __pyx_tuple__392 = PyTuple_Pack(4, __pyx_n_s_headpos, __pyx_n_s_forward, __pyx_n_s_up, __pyx_n_s_scn); if (unlikely(!__pyx_tuple__392)) __PYX_ERR(4, 5130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__392);
  __Pyx_GIVEREF(__pyx_tuple__392);
  __pyx_codeobj__393 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__392, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_cameraInModel, 5130, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__393)) __PYX_ERR(4, 5130, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5133
 *     mjv_cameraInModel(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 * def _mjv_cameraInRoom(np.ndarray[np.float64_t, mode="c", ndim=1] headpos, np.ndarray[np.float64_t, mode="c", ndim=1] forward, np.ndarray[np.float64_t, mode="c", ndim=1] up, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_cameraInRoom(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 */
  __pyx_codeobj__394 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__392, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_cameraInRoom, 5133, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__394)) __PYX_ERR(4, 5133, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5136
 *     mjv_cameraInRoom(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 * def _mjv_frustumHeight(PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     return mjv_frustumHeight(scn.ptr)
 * 
 */
  __pyx_tuple__395 = PyTuple_Pack(1, __pyx_n_s_scn); if (unlikely(!__pyx_tuple__395)) __PYX_ERR(4, 5136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__395);
  __Pyx_GIVEREF(__pyx_tuple__395);
  __pyx_codeobj__396 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__395, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_frustumHeight, 5136, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__396)) __PYX_ERR(4, 5136, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5139
 *     return mjv_frustumHeight(scn.ptr)
 * 
 * def _mjv_alignToCamera(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] forward):             # <<<<<<<<<<<<<<
 *     mjv_alignToCamera(&res[0], &vec[0], &forward[0])
 * 
 */
  __pyx_tuple__397 = PyTuple_Pack(3, __pyx_n_s_res, __pyx_n_s_vec, __pyx_n_s_forward); if (unlikely(!__pyx_tuple__397)) __PYX_ERR(4, 5139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__397);
  __Pyx_GIVEREF(__pyx_tuple__397);
  __pyx_codeobj__398 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__397, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_alignToCamera, 5139, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__398)) __PYX_ERR(4, 5139, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5142
 *     mjv_alignToCamera(&res[0], &vec[0], &forward[0])
 * 
 * def _mjv_moveCamera(PyMjModel m, int action, float reldx, float reldy, PyMjvScene scn, PyMjvCamera cam):             # <<<<<<<<<<<<<<
 *     mjv_moveCamera(m.ptr, action, reldx, reldy, scn.ptr, cam.ptr)
 * 
 */
  __pyx_tuple__399 = PyTuple_Pack(6, __pyx_n_s_m, __pyx_n_s_action, __pyx_n_s_reldx, __pyx_n_s_reldy, __pyx_n_s_scn, __pyx_n_s_cam); if (unlikely(!__pyx_tuple__399)) __PYX_ERR(4, 5142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__399);
  __Pyx_GIVEREF(__pyx_tuple__399);
  __pyx_codeobj__400 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_moveCamera, 5142, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__400)) __PYX_ERR(4, 5142, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5145
 *     mjv_moveCamera(m.ptr, action, reldx, reldy, scn.ptr, cam.ptr)
 * 
 * def _mjv_movePerturb(PyMjModel m, PyMjData d, int action, float reldx, float reldy, PyMjvScene scn, PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_movePerturb(m.ptr, d.ptr, action, reldx, reldy, scn.ptr, pert.ptr)
 * 
 */
  __pyx_tuple__401 = PyTuple_Pack(7, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_action, __pyx_n_s_reldx, __pyx_n_s_reldy, __pyx_n_s_scn, __pyx_n_s_pert); if (unlikely(!__pyx_tuple__401)) __PYX_ERR(4, 5145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__401);
  __Pyx_GIVEREF(__pyx_tuple__401);
  __pyx_codeobj__402 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__401, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_movePerturb, 5145, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__402)) __PYX_ERR(4, 5145, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5148
 *     mjv_movePerturb(m.ptr, d.ptr, action, reldx, reldy, scn.ptr, pert.ptr)
 * 
 * def _mjv_moveModel(PyMjModel m, int action, float reldx, float reldy, np.ndarray[np.float64_t, mode="c", ndim=1] roomup, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_moveModel(m.ptr, action, reldx, reldy, &roomup[0], scn.ptr)
 * 
 */
  __pyx_tuple__403 = PyTuple_Pack(6, __pyx_n_s_m, __pyx_n_s_action, __pyx_n_s_reldx, __pyx_n_s_reldy, __pyx_n_s_roomup, __pyx_n_s_scn); if (unlikely(!__pyx_tuple__403)) __PYX_ERR(4, 5148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__403);
  __Pyx_GIVEREF(__pyx_tuple__403);
  __pyx_codeobj__404 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__403, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_moveModel, 5148, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__404)) __PYX_ERR(4, 5148, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5151
 *     mjv_moveModel(m.ptr, action, reldx, reldy, &roomup[0], scn.ptr)
 * 
 * def _mjv_initPerturb(PyMjModel m, PyMjData d, PyMjvScene scn, PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_initPerturb(m.ptr, d.ptr, scn.ptr, pert.ptr)
 * 
 */
  __pyx_tuple__405 = PyTuple_Pack(4, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_scn, __pyx_n_s_pert); if (unlikely(!__pyx_tuple__405)) __PYX_ERR(4, 5151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__405);
  __Pyx_GIVEREF(__pyx_tuple__405);
  __pyx_codeobj__406 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__405, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_initPerturb, 5151, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__406)) __PYX_ERR(4, 5151, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5154
 *     mjv_initPerturb(m.ptr, d.ptr, scn.ptr, pert.ptr)
 * 
 * def _mjv_applyPerturbPose(PyMjModel m, PyMjData d, PyMjvPerturb pert, int flg_paused):             # <<<<<<<<<<<<<<
 *     mjv_applyPerturbPose(m.ptr, d.ptr, pert.ptr, flg_paused)
 * 
 */
  __pyx_tuple__407 = PyTuple_Pack(4, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_pert, __pyx_n_s_flg_paused); if (unlikely(!__pyx_tuple__407)) __PYX_ERR(4, 5154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__407);
  __Pyx_GIVEREF(__pyx_tuple__407);
  __pyx_codeobj__408 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__407, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_applyPerturbPose, 5154, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__408)) __PYX_ERR(4, 5154, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5157
 *     mjv_applyPerturbPose(m.ptr, d.ptr, pert.ptr, flg_paused)
 * 
 * def _mjv_applyPerturbForce(PyMjModel m, PyMjData d, PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_applyPerturbForce(m.ptr, d.ptr, pert.ptr)
 * 
 */
  __pyx_tuple__409 = PyTuple_Pack(3, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_pert); if (unlikely(!__pyx_tuple__409)) __PYX_ERR(4, 5157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__409);
  __Pyx_GIVEREF(__pyx_tuple__409);
  __pyx_codeobj__410 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__409, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_applyPerturbForce, 5157, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__410)) __PYX_ERR(4, 5157, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5160
 *     mjv_applyPerturbForce(m.ptr, d.ptr, pert.ptr)
 * 
 * def _mjv_select(PyMjModel m, PyMjData d, PyMjvOption vopt, float aspectratio, float relx, float rely, PyMjvScene scn, np.ndarray[np.float64_t, mode="c", ndim=1] selpnt, uintptr_t geomid, uintptr_t skinid):             # <<<<<<<<<<<<<<
 *     return mjv_select(m.ptr, d.ptr, vopt.ptr, aspectratio, relx, rely, scn.ptr, &selpnt[0], <int*>geomid, <int*>skinid)
 * 
 */
  __pyx_tuple__411 = PyTuple_Pack(10, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_vopt, __pyx_n_s_aspectratio, __pyx_n_s_relx, __pyx_n_s_rely, __pyx_n_s_scn, __pyx_n_s_selpnt, __pyx_n_s_geomid, __pyx_n_s_skinid); if (unlikely(!__pyx_tuple__411)) __PYX_ERR(4, 5160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__411);
  __Pyx_GIVEREF(__pyx_tuple__411);
  __pyx_codeobj__412 = (PyObject*)__Pyx_PyCode_New(10, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__411, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_select, 5160, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__412)) __PYX_ERR(4, 5160, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5163
 *     return mjv_select(m.ptr, d.ptr, vopt.ptr, aspectratio, relx, rely, scn.ptr, &selpnt[0], <int*>geomid, <int*>skinid)
 * 
 * def _mjv_defaultOption(PyMjvOption opt):             # <<<<<<<<<<<<<<
 *     mjv_defaultOption(opt.ptr)
 * 
 */
  __pyx_codeobj__413 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__258, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_defaultOption, 5163, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__413)) __PYX_ERR(4, 5163, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5166
 *     mjv_defaultOption(opt.ptr)
 * 
 * def _mjv_defaultFigure(PyMjvFigure fig):             # <<<<<<<<<<<<<<
 *     mjv_defaultFigure(fig.ptr)
 * 
 */
  __pyx_tuple__414 = PyTuple_Pack(1, __pyx_n_s_fig); if (unlikely(!__pyx_tuple__414)) __PYX_ERR(4, 5166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__414);
  __Pyx_GIVEREF(__pyx_tuple__414);
  __pyx_codeobj__415 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__414, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_defaultFigure, 5166, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__415)) __PYX_ERR(4, 5166, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5169
 *     mjv_defaultFigure(fig.ptr)
 * 
 * def _mjv_makeConnector(PyMjvGeom geom, int type, float width, float a0, float a1, float a2, float b0, float b1, float b2):             # <<<<<<<<<<<<<<
 *     mjv_makeConnector(geom.ptr, type, width, a0, a1, a2, b0, b1, b2)
 * 
 */
  __pyx_tuple__416 = PyTuple_Pack(9, __pyx_n_s_geom, __pyx_n_s_type, __pyx_n_s_width, __pyx_n_s_a0, __pyx_n_s_a1, __pyx_n_s_a2, __pyx_n_s_b0, __pyx_n_s_b1, __pyx_n_s_b2); if (unlikely(!__pyx_tuple__416)) __PYX_ERR(4, 5169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__416);
  __Pyx_GIVEREF(__pyx_tuple__416);
  __pyx_codeobj__417 = (PyObject*)__Pyx_PyCode_New(9, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__416, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_makeConnector, 5169, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__417)) __PYX_ERR(4, 5169, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5172
 *     mjv_makeConnector(geom.ptr, type, width, a0, a1, a2, b0, b1, b2)
 * 
 * def _mjv_defaultScene(PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_defaultScene(scn.ptr)
 * 
 */
  __pyx_codeobj__418 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__395, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_defaultScene, 5172, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__418)) __PYX_ERR(4, 5172, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5175
 *     mjv_defaultScene(scn.ptr)
 * 
 * def _mjv_makeScene(PyMjModel m, PyMjvScene scn, int maxgeom):             # <<<<<<<<<<<<<<
 *     mjv_makeScene(m.ptr, scn.ptr, maxgeom)
 * 
 */
  __pyx_tuple__419 = PyTuple_Pack(3, __pyx_n_s_m, __pyx_n_s_scn, __pyx_n_s_maxgeom); if (unlikely(!__pyx_tuple__419)) __PYX_ERR(4, 5175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__419);
  __Pyx_GIVEREF(__pyx_tuple__419);
  __pyx_codeobj__420 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__419, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_makeScene, 5175, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__420)) __PYX_ERR(4, 5175, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5178
 *     mjv_makeScene(m.ptr, scn.ptr, maxgeom)
 * 
 * def _mjv_freeScene(PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_freeScene(scn.ptr)
 * 
 */
  __pyx_codeobj__421 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__395, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_freeScene, 5178, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__421)) __PYX_ERR(4, 5178, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5181
 *     mjv_freeScene(scn.ptr)
 * 
 * def _mjv_updateScene(PyMjModel m, PyMjData d, PyMjvOption opt, PyMjvPerturb pert, PyMjvCamera cam, int catmask, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_updateScene(m.ptr, d.ptr, opt.ptr, pert.ptr, cam.ptr, catmask, scn.ptr)
 * 
 */
  __pyx_tuple__422 = PyTuple_Pack(7, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_opt, __pyx_n_s_pert, __pyx_n_s_cam, __pyx_n_s_catmask, __pyx_n_s_scn); if (unlikely(!__pyx_tuple__422)) __PYX_ERR(4, 5181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__422);
  __Pyx_GIVEREF(__pyx_tuple__422);
  __pyx_codeobj__423 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__422, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_updateScene, 5181, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__423)) __PYX_ERR(4, 5181, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5184
 *     mjv_updateScene(m.ptr, d.ptr, opt.ptr, pert.ptr, cam.ptr, catmask, scn.ptr)
 * 
 * def _mjv_addGeoms(PyMjModel m, PyMjData d, PyMjvOption opt, PyMjvPerturb pert, int catmask, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_addGeoms(m.ptr, d.ptr, opt.ptr, pert.ptr, catmask, scn.ptr)
 * 
 */
  __pyx_tuple__424 = PyTuple_Pack(6, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_opt, __pyx_n_s_pert, __pyx_n_s_catmask, __pyx_n_s_scn); if (unlikely(!__pyx_tuple__424)) __PYX_ERR(4, 5184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__424);
  __Pyx_GIVEREF(__pyx_tuple__424);
  __pyx_codeobj__425 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__424, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_addGeoms, 5184, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__425)) __PYX_ERR(4, 5184, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5187
 *     mjv_addGeoms(m.ptr, d.ptr, opt.ptr, pert.ptr, catmask, scn.ptr)
 * 
 * def _mjv_makeLights(PyMjModel m, PyMjData d, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_makeLights(m.ptr, d.ptr, scn.ptr)
 * 
 */
  __pyx_tuple__426 = PyTuple_Pack(3, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_scn); if (unlikely(!__pyx_tuple__426)) __PYX_ERR(4, 5187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__426);
  __Pyx_GIVEREF(__pyx_tuple__426);
  __pyx_codeobj__427 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__426, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_makeLights, 5187, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__427)) __PYX_ERR(4, 5187, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5190
 *     mjv_makeLights(m.ptr, d.ptr, scn.ptr)
 * 
 * def _mjv_updateCamera(PyMjModel m, PyMjData d, PyMjvCamera cam, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_updateCamera(m.ptr, d.ptr, cam.ptr, scn.ptr)
 * 
 */
  __pyx_tuple__428 = PyTuple_Pack(4, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_cam, __pyx_n_s_scn); if (unlikely(!__pyx_tuple__428)) __PYX_ERR(4, 5190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__428);
  __Pyx_GIVEREF(__pyx_tuple__428);
  __pyx_codeobj__429 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__428, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_updateCamera, 5190, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__429)) __PYX_ERR(4, 5190, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5193
 *     mjv_updateCamera(m.ptr, d.ptr, cam.ptr, scn.ptr)
 * 
 * def _mjv_updateSkin(PyMjModel m, PyMjData d, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_updateSkin(m.ptr, d.ptr, scn.ptr)
 * 
 */
  __pyx_codeobj__430 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__426, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjv_updateSkin, 5193, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__430)) __PYX_ERR(4, 5193, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5196
 *     mjv_updateSkin(m.ptr, d.ptr, scn.ptr)
 * 
 * def _mjr_defaultContext(PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_defaultContext(con.ptr)
 * 
 */
  __pyx_tuple__431 = PyTuple_Pack(1, __pyx_n_s_con); if (unlikely(!__pyx_tuple__431)) __PYX_ERR(4, 5196, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__431);
  __Pyx_GIVEREF(__pyx_tuple__431);
  __pyx_codeobj__432 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__431, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_defaultContext, 5196, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__432)) __PYX_ERR(4, 5196, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5199
 *     mjr_defaultContext(con.ptr)
 * 
 * def _mjr_makeContext(PyMjModel m, PyMjrContext con, int fontscale):             # <<<<<<<<<<<<<<
 *     mjr_makeContext(m.ptr, con.ptr, fontscale)
 * 
 */
  __pyx_tuple__433 = PyTuple_Pack(3, __pyx_n_s_m, __pyx_n_s_con, __pyx_n_s_fontscale); if (unlikely(!__pyx_tuple__433)) __PYX_ERR(4, 5199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__433);
  __Pyx_GIVEREF(__pyx_tuple__433);
  __pyx_codeobj__434 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__433, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_makeContext, 5199, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__434)) __PYX_ERR(4, 5199, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5202
 *     mjr_makeContext(m.ptr, con.ptr, fontscale)
 * 
 * def _mjr_changeFont(int fontscale, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_changeFont(fontscale, con.ptr)
 * 
 */
  __pyx_tuple__435 = PyTuple_Pack(2, __pyx_n_s_fontscale, __pyx_n_s_con); if (unlikely(!__pyx_tuple__435)) __PYX_ERR(4, 5202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__435);
  __Pyx_GIVEREF(__pyx_tuple__435);
  __pyx_codeobj__436 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__435, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_changeFont, 5202, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__436)) __PYX_ERR(4, 5202, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5205
 *     mjr_changeFont(fontscale, con.ptr)
 * 
 * def _mjr_addAux(int index, int width, int height, int samples, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_addAux(index, width, height, samples, con.ptr)
 * 
 */
  __pyx_tuple__437 = PyTuple_Pack(5, __pyx_n_s_index, __pyx_n_s_width, __pyx_n_s_height, __pyx_n_s_samples, __pyx_n_s_con); if (unlikely(!__pyx_tuple__437)) __PYX_ERR(4, 5205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__437);
  __Pyx_GIVEREF(__pyx_tuple__437);
  __pyx_codeobj__438 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__437, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_addAux, 5205, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__438)) __PYX_ERR(4, 5205, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5208
 *     mjr_addAux(index, width, height, samples, con.ptr)
 * 
 * def _mjr_freeContext(PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_freeContext(con.ptr)
 * 
 */
  __pyx_codeobj__439 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__431, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_freeContext, 5208, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__439)) __PYX_ERR(4, 5208, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5211
 *     mjr_freeContext(con.ptr)
 * 
 * def _mjr_uploadTexture(PyMjModel m, PyMjrContext con, int texid):             # <<<<<<<<<<<<<<
 *     mjr_uploadTexture(m.ptr, con.ptr, texid)
 * 
 */
  __pyx_tuple__440 = PyTuple_Pack(3, __pyx_n_s_m, __pyx_n_s_con, __pyx_n_s_texid); if (unlikely(!__pyx_tuple__440)) __PYX_ERR(4, 5211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__440);
  __Pyx_GIVEREF(__pyx_tuple__440);
  __pyx_codeobj__441 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__440, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_uploadTexture, 5211, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__441)) __PYX_ERR(4, 5211, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5214
 *     mjr_uploadTexture(m.ptr, con.ptr, texid)
 * 
 * def _mjr_uploadMesh(PyMjModel m, PyMjrContext con, int meshid):             # <<<<<<<<<<<<<<
 *     mjr_uploadMesh(m.ptr, con.ptr, meshid)
 * 
 */
  __pyx_tuple__442 = PyTuple_Pack(3, __pyx_n_s_m, __pyx_n_s_con, __pyx_n_s_meshid); if (unlikely(!__pyx_tuple__442)) __PYX_ERR(4, 5214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__442);
  __Pyx_GIVEREF(__pyx_tuple__442);
  __pyx_codeobj__443 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__442, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_uploadMesh, 5214, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__443)) __PYX_ERR(4, 5214, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5217
 *     mjr_uploadMesh(m.ptr, con.ptr, meshid)
 * 
 * def _mjr_uploadHField(PyMjModel m, PyMjrContext con, int hfieldid):             # <<<<<<<<<<<<<<
 *     mjr_uploadHField(m.ptr, con.ptr, hfieldid)
 * 
 */
  __pyx_tuple__444 = PyTuple_Pack(3, __pyx_n_s_m, __pyx_n_s_con, __pyx_n_s_hfieldid); if (unlikely(!__pyx_tuple__444)) __PYX_ERR(4, 5217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__444);
  __Pyx_GIVEREF(__pyx_tuple__444);
  __pyx_codeobj__445 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__444, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_uploadHField, 5217, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__445)) __PYX_ERR(4, 5217, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5220
 *     mjr_uploadHField(m.ptr, con.ptr, hfieldid)
 * 
 * def _mjr_restoreBuffer(PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_restoreBuffer(con.ptr)
 * 
 */
  __pyx_codeobj__446 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__431, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_restoreBuffer, 5220, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__446)) __PYX_ERR(4, 5220, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5223
 *     mjr_restoreBuffer(con.ptr)
 * 
 * def _mjr_setBuffer(int framebuffer, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_setBuffer(framebuffer, con.ptr)
 * 
 */
  __pyx_tuple__447 = PyTuple_Pack(2, __pyx_n_s_framebuffer, __pyx_n_s_con); if (unlikely(!__pyx_tuple__447)) __PYX_ERR(4, 5223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__447);
  __Pyx_GIVEREF(__pyx_tuple__447);
  __pyx_codeobj__448 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__447, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_setBuffer, 5223, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__448)) __PYX_ERR(4, 5223, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5226
 *     mjr_setBuffer(framebuffer, con.ptr)
 * 
 * def _mjr_blitBuffer(PyMjrRect src, PyMjrRect dst, int flg_color, int flg_depth, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_blitBuffer(src.ptr[0], dst.ptr[0], flg_color, flg_depth, con.ptr)
 * 
 */
  __pyx_tuple__449 = PyTuple_Pack(5, __pyx_n_s_src, __pyx_n_s_dst, __pyx_n_s_flg_color, __pyx_n_s_flg_depth, __pyx_n_s_con); if (unlikely(!__pyx_tuple__449)) __PYX_ERR(4, 5226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__449);
  __Pyx_GIVEREF(__pyx_tuple__449);
  __pyx_codeobj__450 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__449, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_blitBuffer, 5226, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__450)) __PYX_ERR(4, 5226, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5229
 *     mjr_blitBuffer(src.ptr[0], dst.ptr[0], flg_color, flg_depth, con.ptr)
 * 
 * def _mjr_setAux(int index, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_setAux(index, con.ptr)
 * 
 */
  __pyx_tuple__451 = PyTuple_Pack(2, __pyx_n_s_index, __pyx_n_s_con); if (unlikely(!__pyx_tuple__451)) __PYX_ERR(4, 5229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__451);
  __Pyx_GIVEREF(__pyx_tuple__451);
  __pyx_codeobj__452 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__451, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_setAux, 5229, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__452)) __PYX_ERR(4, 5229, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5232
 *     mjr_setAux(index, con.ptr)
 * 
 * def _mjr_blitAux(int index, PyMjrRect src, int left, int bottom, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_blitAux(index, src.ptr[0], left, bottom, con.ptr)
 * 
 */
  __pyx_tuple__453 = PyTuple_Pack(5, __pyx_n_s_index, __pyx_n_s_src, __pyx_n_s_left, __pyx_n_s_bottom, __pyx_n_s_con); if (unlikely(!__pyx_tuple__453)) __PYX_ERR(4, 5232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__453);
  __Pyx_GIVEREF(__pyx_tuple__453);
  __pyx_codeobj__454 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__453, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_blitAux, 5232, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__454)) __PYX_ERR(4, 5232, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5235
 *     mjr_blitAux(index, src.ptr[0], left, bottom, con.ptr)
 * 
 * def _mjr_overlay(int font, int gridpos, PyMjrRect viewport, str overlay, str overlay2, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_overlay(font, gridpos, viewport.ptr[0], overlay.encode(), overlay2.encode(), con.ptr)
 * 
 */
  __pyx_tuple__455 = PyTuple_Pack(6, __pyx_n_s_font, __pyx_n_s_gridpos, __pyx_n_s_viewport, __pyx_n_s_overlay, __pyx_n_s_overlay2, __pyx_n_s_con); if (unlikely(!__pyx_tuple__455)) __PYX_ERR(4, 5235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__455);
  __Pyx_GIVEREF(__pyx_tuple__455);
  __pyx_codeobj__456 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__455, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_overlay, 5235, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__456)) __PYX_ERR(4, 5235, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5238
 *     mjr_overlay(font, gridpos, viewport.ptr[0], overlay.encode(), overlay2.encode(), con.ptr)
 * 
 * def _mjr_figure(PyMjrRect viewport, PyMjvFigure fig, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_figure(viewport.ptr[0], fig.ptr, con.ptr)
 * 
 */
  __pyx_tuple__457 = PyTuple_Pack(3, __pyx_n_s_viewport, __pyx_n_s_fig, __pyx_n_s_con); if (unlikely(!__pyx_tuple__457)) __PYX_ERR(4, 5238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__457);
  __Pyx_GIVEREF(__pyx_tuple__457);
  __pyx_codeobj__458 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__457, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_figure, 5238, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__458)) __PYX_ERR(4, 5238, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5241
 *     mjr_figure(viewport.ptr[0], fig.ptr, con.ptr)
 * 
 * def _mjr_render(PyMjrRect viewport, PyMjvScene scn, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_render(viewport.ptr[0], scn.ptr, con.ptr)
 * 
 */
  __pyx_tuple__459 = PyTuple_Pack(3, __pyx_n_s_viewport, __pyx_n_s_scn, __pyx_n_s_con); if (unlikely(!__pyx_tuple__459)) __PYX_ERR(4, 5241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__459);
  __Pyx_GIVEREF(__pyx_tuple__459);
  __pyx_codeobj__460 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__459, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_render, 5241, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__460)) __PYX_ERR(4, 5241, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5244
 *     mjr_render(viewport.ptr[0], scn.ptr, con.ptr)
 * 
 * def _mjr_finish():             # <<<<<<<<<<<<<<
 *     mjr_finish()
 * 
 */
  __pyx_codeobj__461 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_finish, 5244, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__461)) __PYX_ERR(4, 5244, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5247
 *     mjr_finish()
 * 
 * def _mjr_getError():             # <<<<<<<<<<<<<<
 *     return mjr_getError()
 * 
 */
  __pyx_codeobj__462 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_getError, 5247, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__462)) __PYX_ERR(4, 5247, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5250
 *     return mjr_getError()
 * 
 * def _mjr_findRect(int x, int y, int nrect, PyMjrRect rect):             # <<<<<<<<<<<<<<
 *     return mjr_findRect(x, y, nrect, rect.ptr)
 * 
 */
  __pyx_tuple__463 = PyTuple_Pack(4, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_nrect, __pyx_n_s_rect); if (unlikely(!__pyx_tuple__463)) __PYX_ERR(4, 5250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__463);
  __Pyx_GIVEREF(__pyx_tuple__463);
  __pyx_codeobj__464 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__463, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjr_findRect, 5250, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__464)) __PYX_ERR(4, 5250, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5253
 *     return mjr_findRect(x, y, nrect, rect.ptr)
 * 
 * def _mjui_add(PyMjUI ui, PyMjuiDef _def):             # <<<<<<<<<<<<<<
 *     mjui_add(ui.ptr, _def.ptr)
 * 
 */
  __pyx_tuple__465 = PyTuple_Pack(2, __pyx_n_s_ui, __pyx_n_s_def); if (unlikely(!__pyx_tuple__465)) __PYX_ERR(4, 5253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__465);
  __Pyx_GIVEREF(__pyx_tuple__465);
  __pyx_codeobj__466 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__465, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjui_add, 5253, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__466)) __PYX_ERR(4, 5253, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5256
 *     mjui_add(ui.ptr, _def.ptr)
 * 
 * def _mjui_addToSection(PyMjUI ui, int sect, PyMjuiDef _def):             # <<<<<<<<<<<<<<
 *     mjui_addToSection(ui.ptr, sect, _def.ptr)
 * 
 */
  __pyx_tuple__467 = PyTuple_Pack(3, __pyx_n_s_ui, __pyx_n_s_sect, __pyx_n_s_def); if (unlikely(!__pyx_tuple__467)) __PYX_ERR(4, 5256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__467);
  __Pyx_GIVEREF(__pyx_tuple__467);
  __pyx_codeobj__468 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__467, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjui_addToSection, 5256, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__468)) __PYX_ERR(4, 5256, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5259
 *     mjui_addToSection(ui.ptr, sect, _def.ptr)
 * 
 * def _mjui_resize(PyMjUI ui, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjui_resize(ui.ptr, con.ptr)
 * 
 */
  __pyx_tuple__469 = PyTuple_Pack(2, __pyx_n_s_ui, __pyx_n_s_con); if (unlikely(!__pyx_tuple__469)) __PYX_ERR(4, 5259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__469);
  __Pyx_GIVEREF(__pyx_tuple__469);
  __pyx_codeobj__470 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__469, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjui_resize, 5259, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__470)) __PYX_ERR(4, 5259, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5262
 *     mjui_resize(ui.ptr, con.ptr)
 * 
 * def _mjui_update(int section, int item, PyMjUI ui, PyMjuiState state, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjui_update(section, item, ui.ptr, state.ptr, con.ptr)
 * 
 */
  __pyx_tuple__471 = PyTuple_Pack(5, __pyx_n_s_section, __pyx_n_s_item, __pyx_n_s_ui, __pyx_n_s_state, __pyx_n_s_con); if (unlikely(!__pyx_tuple__471)) __PYX_ERR(4, 5262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__471);
  __Pyx_GIVEREF(__pyx_tuple__471);
  __pyx_codeobj__472 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__471, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjui_update, 5262, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__472)) __PYX_ERR(4, 5262, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5265
 *     mjui_update(section, item, ui.ptr, state.ptr, con.ptr)
 * 
 * def _mjui_event(PyMjUI ui, PyMjuiState state, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     return WrapMjuiItem(mjui_event(ui.ptr, state.ptr, con.ptr))
 * 
 */
  __pyx_tuple__473 = PyTuple_Pack(3, __pyx_n_s_ui, __pyx_n_s_state, __pyx_n_s_con); if (unlikely(!__pyx_tuple__473)) __PYX_ERR(4, 5265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__473);
  __Pyx_GIVEREF(__pyx_tuple__473);
  __pyx_codeobj__474 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__473, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjui_event, 5265, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__474)) __PYX_ERR(4, 5265, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5268
 *     return WrapMjuiItem(mjui_event(ui.ptr, state.ptr, con.ptr))
 * 
 * def _mjui_render(PyMjUI ui, PyMjuiState state, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjui_render(ui.ptr, state.ptr, con.ptr)
 * 
 */
  __pyx_codeobj__475 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__473, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mjui_render, 5268, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__475)) __PYX_ERR(4, 5268, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5271
 *     mjui_render(ui.ptr, state.ptr, con.ptr)
 * 
 * def _mju_error(str msg):             # <<<<<<<<<<<<<<
 *     mju_error(msg.encode())
 * 
 */
  __pyx_tuple__476 = PyTuple_Pack(1, __pyx_n_s_msg); if (unlikely(!__pyx_tuple__476)) __PYX_ERR(4, 5271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__476);
  __Pyx_GIVEREF(__pyx_tuple__476);
  __pyx_codeobj__477 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__476, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_error, 5271, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__477)) __PYX_ERR(4, 5271, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5274
 *     mju_error(msg.encode())
 * 
 * def _mju_error_i(str msg, int i):             # <<<<<<<<<<<<<<
 *     mju_error_i(msg.encode(), i)
 * 
 */
  __pyx_tuple__478 = PyTuple_Pack(2, __pyx_n_s_msg, __pyx_n_s_i); if (unlikely(!__pyx_tuple__478)) __PYX_ERR(4, 5274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__478);
  __Pyx_GIVEREF(__pyx_tuple__478);
  __pyx_codeobj__479 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__478, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_error_i, 5274, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__479)) __PYX_ERR(4, 5274, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5277
 *     mju_error_i(msg.encode(), i)
 * 
 * def _mju_error_s(str msg, str text):             # <<<<<<<<<<<<<<
 *     mju_error_s(msg.encode(), text.encode())
 * 
 */
  __pyx_tuple__480 = PyTuple_Pack(2, __pyx_n_s_msg, __pyx_n_s_text); if (unlikely(!__pyx_tuple__480)) __PYX_ERR(4, 5277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__480);
  __Pyx_GIVEREF(__pyx_tuple__480);
  __pyx_codeobj__481 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__480, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_error_s, 5277, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__481)) __PYX_ERR(4, 5277, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5280
 *     mju_error_s(msg.encode(), text.encode())
 * 
 * def _mju_warning(str msg):             # <<<<<<<<<<<<<<
 *     mju_warning(msg.encode())
 * 
 */
  __pyx_codeobj__482 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__476, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_warning, 5280, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__482)) __PYX_ERR(4, 5280, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5283
 *     mju_warning(msg.encode())
 * 
 * def _mju_warning_i(str msg, int i):             # <<<<<<<<<<<<<<
 *     mju_warning_i(msg.encode(), i)
 * 
 */
  __pyx_codeobj__483 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__478, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_warning_i, 5283, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__483)) __PYX_ERR(4, 5283, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5286
 *     mju_warning_i(msg.encode(), i)
 * 
 * def _mju_warning_s(str msg, str text):             # <<<<<<<<<<<<<<
 *     mju_warning_s(msg.encode(), text.encode())
 * 
 */
  __pyx_codeobj__484 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__480, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_warning_s, 5286, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__484)) __PYX_ERR(4, 5286, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5289
 *     mju_warning_s(msg.encode(), text.encode())
 * 
 * def _mju_clearHandlers():             # <<<<<<<<<<<<<<
 *     mju_clearHandlers()
 * 
 */
  __pyx_codeobj__485 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_clearHandlers, 5289, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__485)) __PYX_ERR(4, 5289, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5292
 *     mju_clearHandlers()
 * 
 * def _mj_warning(PyMjData d, int warning, int info):             # <<<<<<<<<<<<<<
 *     mj_warning(d.ptr, warning, info)
 * 
 */
  __pyx_tuple__486 = PyTuple_Pack(3, __pyx_n_s_d, __pyx_n_s_warning, __pyx_n_s_info); if (unlikely(!__pyx_tuple__486)) __PYX_ERR(4, 5292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__486);
  __Pyx_GIVEREF(__pyx_tuple__486);
  __pyx_codeobj__487 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__486, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mj_warning, 5292, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__487)) __PYX_ERR(4, 5292, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5295
 *     mj_warning(d.ptr, warning, info)
 * 
 * def _mju_writeLog(str type, str msg):             # <<<<<<<<<<<<<<
 *     mju_writeLog(type.encode(), msg.encode())
 * 
 */
  __pyx_tuple__488 = PyTuple_Pack(2, __pyx_n_s_type, __pyx_n_s_msg); if (unlikely(!__pyx_tuple__488)) __PYX_ERR(4, 5295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__488);
  __Pyx_GIVEREF(__pyx_tuple__488);
  __pyx_codeobj__489 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__488, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_writeLog, 5295, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__489)) __PYX_ERR(4, 5295, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5298
 *     mju_writeLog(type.encode(), msg.encode())
 * 
 * def _mju_zero3(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     mju_zero3(&res[0])
 * 
 */
  __pyx_tuple__490 = PyTuple_Pack(1, __pyx_n_s_res); if (unlikely(!__pyx_tuple__490)) __PYX_ERR(4, 5298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__490);
  __Pyx_GIVEREF(__pyx_tuple__490);
  __pyx_codeobj__491 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__490, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_zero3, 5298, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__491)) __PYX_ERR(4, 5298, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5301
 *     mju_zero3(&res[0])
 * 
 * def _mju_copy3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data):             # <<<<<<<<<<<<<<
 *     mju_copy3(&res[0], &data[0])
 * 
 */
  __pyx_tuple__492 = PyTuple_Pack(2, __pyx_n_s_res, __pyx_n_s_data); if (unlikely(!__pyx_tuple__492)) __PYX_ERR(4, 5301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__492);
  __Pyx_GIVEREF(__pyx_tuple__492);
  __pyx_codeobj__493 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__492, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_copy3, 5301, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__493)) __PYX_ERR(4, 5301, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5304
 *     mju_copy3(&res[0], &data[0])
 * 
 * def _mju_scl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl):             # <<<<<<<<<<<<<<
 *     mju_scl3(&res[0], &vec[0], scl)
 * 
 */
  __pyx_tuple__494 = PyTuple_Pack(3, __pyx_n_s_res, __pyx_n_s_vec, __pyx_n_s_scl); if (unlikely(!__pyx_tuple__494)) __PYX_ERR(4, 5304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__494);
  __Pyx_GIVEREF(__pyx_tuple__494);
  __pyx_codeobj__495 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__494, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_scl3, 5304, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__495)) __PYX_ERR(4, 5304, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5307
 *     mju_scl3(&res[0], &vec[0], scl)
 * 
 * def _mju_add3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):             # <<<<<<<<<<<<<<
 *     mju_add3(&res[0], &vec1[0], &vec2[0])
 * 
 */
  __pyx_tuple__496 = PyTuple_Pack(3, __pyx_n_s_res, __pyx_n_s_vec1, __pyx_n_s_vec2); if (unlikely(!__pyx_tuple__496)) __PYX_ERR(4, 5307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__496);
  __Pyx_GIVEREF(__pyx_tuple__496);
  __pyx_codeobj__497 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__496, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_add3, 5307, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__497)) __PYX_ERR(4, 5307, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5310
 *     mju_add3(&res[0], &vec1[0], &vec2[0])
 * 
 * def _mju_sub3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):             # <<<<<<<<<<<<<<
 *     mju_sub3(&res[0], &vec1[0], &vec2[0])
 * 
 */
  __pyx_codeobj__498 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__496, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_sub3, 5310, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__498)) __PYX_ERR(4, 5310, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5313
 *     mju_sub3(&res[0], &vec1[0], &vec2[0])
 * 
 * def _mju_addTo3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_addTo3(&res[0], &vec[0])
 * 
 */
  __pyx_tuple__499 = PyTuple_Pack(2, __pyx_n_s_res, __pyx_n_s_vec); if (unlikely(!__pyx_tuple__499)) __PYX_ERR(4, 5313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__499);
  __Pyx_GIVEREF(__pyx_tuple__499);
  __pyx_codeobj__500 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__499, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_addTo3, 5313, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__500)) __PYX_ERR(4, 5313, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5316
 *     mju_addTo3(&res[0], &vec[0])
 * 
 * def _mju_subFrom3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_subFrom3(&res[0], &vec[0])
 * 
 */
  __pyx_codeobj__501 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__499, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_subFrom3, 5316, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__501)) __PYX_ERR(4, 5316, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5319
 *     mju_subFrom3(&res[0], &vec[0])
 * 
 * def _mju_addToScl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl):             # <<<<<<<<<<<<<<
 *     mju_addToScl3(&res[0], &vec[0], scl)
 * 
 */
  __pyx_codeobj__502 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__494, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_addToScl3, 5319, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__502)) __PYX_ERR(4, 5319, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5322
 *     mju_addToScl3(&res[0], &vec[0], scl)
 * 
 * def _mju_addScl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, float scl):             # <<<<<<<<<<<<<<
 *     mju_addScl3(&res[0], &vec1[0], &vec2[0], scl)
 * 
 */
  __pyx_tuple__503 = PyTuple_Pack(4, __pyx_n_s_res, __pyx_n_s_vec1, __pyx_n_s_vec2, __pyx_n_s_scl); if (unlikely(!__pyx_tuple__503)) __PYX_ERR(4, 5322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__503);
  __Pyx_GIVEREF(__pyx_tuple__503);
  __pyx_codeobj__504 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__503, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_addScl3, 5322, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__504)) __PYX_ERR(4, 5322, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5325
 *     mju_addScl3(&res[0], &vec1[0], &vec2[0], scl)
 * 
 * def _mju_normalize3(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     return mju_normalize3(&res[0])
 * 
 */
  __pyx_codeobj__505 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__490, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_normalize3, 5325, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__505)) __PYX_ERR(4, 5325, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5328
 *     return mju_normalize3(&res[0])
 * 
 * def _mju_norm3(np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     return mju_norm3(&vec[0])
 * 
 */
  __pyx_tuple__506 = PyTuple_Pack(1, __pyx_n_s_vec); if (unlikely(!__pyx_tuple__506)) __PYX_ERR(4, 5328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__506);
  __Pyx_GIVEREF(__pyx_tuple__506);
  __pyx_codeobj__507 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__506, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_norm3, 5328, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__507)) __PYX_ERR(4, 5328, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5331
 *     return mju_norm3(&vec[0])
 * 
 * def _mju_dot3(np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):             # <<<<<<<<<<<<<<
 *     return mju_dot3(&vec1[0], &vec2[0])
 * 
 */
  __pyx_tuple__508 = PyTuple_Pack(2, __pyx_n_s_vec1, __pyx_n_s_vec2); if (unlikely(!__pyx_tuple__508)) __PYX_ERR(4, 5331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__508);
  __Pyx_GIVEREF(__pyx_tuple__508);
  __pyx_codeobj__509 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__508, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_dot3, 5331, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__509)) __PYX_ERR(4, 5331, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5334
 *     return mju_dot3(&vec1[0], &vec2[0])
 * 
 * def _mju_dist3(np.ndarray[np.float64_t, mode="c", ndim=1] pos1, np.ndarray[np.float64_t, mode="c", ndim=1] pos2):             # <<<<<<<<<<<<<<
 *     return mju_dist3(&pos1[0], &pos2[0])
 * 
 */
  __pyx_tuple__510 = PyTuple_Pack(2, __pyx_n_s_pos1, __pyx_n_s_pos2); if (unlikely(!__pyx_tuple__510)) __PYX_ERR(4, 5334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__510);
  __Pyx_GIVEREF(__pyx_tuple__510);
  __pyx_codeobj__511 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__510, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_dist3, 5334, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__511)) __PYX_ERR(4, 5334, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5337
 *     return mju_dist3(&pos1[0], &pos2[0])
 * 
 * def _mju_rotVecMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     mju_rotVecMat(&res[0], &vec[0], &mat[0])
 * 
 */
  __pyx_tuple__512 = PyTuple_Pack(3, __pyx_n_s_res, __pyx_n_s_vec, __pyx_n_s_mat); if (unlikely(!__pyx_tuple__512)) __PYX_ERR(4, 5337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__512);
  __Pyx_GIVEREF(__pyx_tuple__512);
  __pyx_codeobj__513 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__512, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_rotVecMat, 5337, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__513)) __PYX_ERR(4, 5337, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5340
 *     mju_rotVecMat(&res[0], &vec[0], &mat[0])
 * 
 * def _mju_rotVecMatT(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     mju_rotVecMatT(&res[0], &vec[0], &mat[0])
 * 
 */
  __pyx_codeobj__514 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__512, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_rotVecMatT, 5340, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__514)) __PYX_ERR(4, 5340, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5343
 *     mju_rotVecMatT(&res[0], &vec[0], &mat[0])
 * 
 * def _mju_cross(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] a, np.ndarray[np.float64_t, mode="c", ndim=1] b):             # <<<<<<<<<<<<<<
 *     mju_cross(&res[0], &a[0], &b[0])
 * 
 */
  __pyx_tuple__515 = PyTuple_Pack(3, __pyx_n_s_res, __pyx_n_s_a, __pyx_n_s_b); if (unlikely(!__pyx_tuple__515)) __PYX_ERR(4, 5343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__515);
  __Pyx_GIVEREF(__pyx_tuple__515);
  __pyx_codeobj__516 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__515, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_cross, 5343, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__516)) __PYX_ERR(4, 5343, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5346
 *     mju_cross(&res[0], &a[0], &b[0])
 * 
 * def _mju_zero4(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     mju_zero4(&res[0])
 * 
 */
  __pyx_codeobj__517 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__490, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_zero4, 5346, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__517)) __PYX_ERR(4, 5346, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5349
 *     mju_zero4(&res[0])
 * 
 * def _mju_unit4(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     mju_unit4(&res[0])
 * 
 */
  __pyx_codeobj__518 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__490, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_unit4, 5349, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__518)) __PYX_ERR(4, 5349, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5352
 *     mju_unit4(&res[0])
 * 
 * def _mju_copy4(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data):             # <<<<<<<<<<<<<<
 *     mju_copy4(&res[0], &data[0])
 * 
 */
  __pyx_codeobj__519 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__492, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_copy4, 5352, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__519)) __PYX_ERR(4, 5352, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5355
 *     mju_copy4(&res[0], &data[0])
 * 
 * def _mju_normalize4(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     return mju_normalize4(&res[0])
 * 
 */
  __pyx_codeobj__520 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__490, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_normalize4, 5355, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__520)) __PYX_ERR(4, 5355, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5358
 *     return mju_normalize4(&res[0])
 * 
 * def _mju_zero(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):             # <<<<<<<<<<<<<<
 *     mju_zero(&res[0], n)
 * 
 */
  __pyx_tuple__521 = PyTuple_Pack(2, __pyx_n_s_res, __pyx_n_s_n); if (unlikely(!__pyx_tuple__521)) __PYX_ERR(4, 5358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__521);
  __Pyx_GIVEREF(__pyx_tuple__521);
  __pyx_codeobj__522 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__521, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_zero, 5358, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__522)) __PYX_ERR(4, 5358, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5361
 *     mju_zero(&res[0], n)
 * 
 * def _mju_copy(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data, int n):             # <<<<<<<<<<<<<<
 *     mju_copy(&res[0], &data[0], n)
 * 
 */
  __pyx_tuple__523 = PyTuple_Pack(3, __pyx_n_s_res, __pyx_n_s_data, __pyx_n_s_n); if (unlikely(!__pyx_tuple__523)) __PYX_ERR(4, 5361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__523);
  __Pyx_GIVEREF(__pyx_tuple__523);
  __pyx_codeobj__524 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__523, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_copy, 5361, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__524)) __PYX_ERR(4, 5361, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5364
 *     mju_copy(&res[0], &data[0], n)
 * 
 * def _mju_sum(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     return mju_sum(&vec[0], n)
 * 
 */
  __pyx_tuple__525 = PyTuple_Pack(2, __pyx_n_s_vec, __pyx_n_s_n); if (unlikely(!__pyx_tuple__525)) __PYX_ERR(4, 5364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__525);
  __Pyx_GIVEREF(__pyx_tuple__525);
  __pyx_codeobj__526 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__525, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_sum, 5364, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__526)) __PYX_ERR(4, 5364, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5367
 *     return mju_sum(&vec[0], n)
 * 
 * def _mju_L1(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     return mju_L1(&vec[0], n)
 * 
 */
  __pyx_codeobj__527 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__525, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_L1, 5367, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__527)) __PYX_ERR(4, 5367, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5370
 *     return mju_L1(&vec[0], n)
 * 
 * def _mju_scl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl, int n):             # <<<<<<<<<<<<<<
 *     mju_scl(&res[0], &vec[0], scl, n)
 * 
 */
  __pyx_tuple__528 = PyTuple_Pack(4, __pyx_n_s_res, __pyx_n_s_vec, __pyx_n_s_scl, __pyx_n_s_n); if (unlikely(!__pyx_tuple__528)) __PYX_ERR(4, 5370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__528);
  __Pyx_GIVEREF(__pyx_tuple__528);
  __pyx_codeobj__529 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__528, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_scl, 5370, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__529)) __PYX_ERR(4, 5370, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5373
 *     mju_scl(&res[0], &vec[0], scl, n)
 * 
 * def _mju_add(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):             # <<<<<<<<<<<<<<
 *     mju_add(&res[0], &vec1[0], &vec2[0], n)
 * 
 */
  __pyx_tuple__530 = PyTuple_Pack(4, __pyx_n_s_res, __pyx_n_s_vec1, __pyx_n_s_vec2, __pyx_n_s_n); if (unlikely(!__pyx_tuple__530)) __PYX_ERR(4, 5373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__530);
  __Pyx_GIVEREF(__pyx_tuple__530);
  __pyx_codeobj__531 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__530, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_add, 5373, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__531)) __PYX_ERR(4, 5373, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5376
 *     mju_add(&res[0], &vec1[0], &vec2[0], n)
 * 
 * def _mju_sub(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):             # <<<<<<<<<<<<<<
 *     mju_sub(&res[0], &vec1[0], &vec2[0], n)
 * 
 */
  __pyx_codeobj__532 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__530, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_sub, 5376, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__532)) __PYX_ERR(4, 5376, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5379
 *     mju_sub(&res[0], &vec1[0], &vec2[0], n)
 * 
 * def _mju_addTo(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     mju_addTo(&res[0], &vec[0], n)
 * 
 */
  __pyx_tuple__533 = PyTuple_Pack(3, __pyx_n_s_res, __pyx_n_s_vec, __pyx_n_s_n); if (unlikely(!__pyx_tuple__533)) __PYX_ERR(4, 5379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__533);
  __Pyx_GIVEREF(__pyx_tuple__533);
  __pyx_codeobj__534 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__533, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_addTo, 5379, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__534)) __PYX_ERR(4, 5379, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5382
 *     mju_addTo(&res[0], &vec[0], n)
 * 
 * def _mju_subFrom(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     mju_subFrom(&res[0], &vec[0], n)
 * 
 */
  __pyx_codeobj__535 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__533, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_subFrom, 5382, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__535)) __PYX_ERR(4, 5382, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5385
 *     mju_subFrom(&res[0], &vec[0], n)
 * 
 * def _mju_addToScl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl, int n):             # <<<<<<<<<<<<<<
 *     mju_addToScl(&res[0], &vec[0], scl, n)
 * 
 */
  __pyx_codeobj__536 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__528, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_addToScl, 5385, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__536)) __PYX_ERR(4, 5385, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5388
 *     mju_addToScl(&res[0], &vec[0], scl, n)
 * 
 * def _mju_addScl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, float scl, int n):             # <<<<<<<<<<<<<<
 *     mju_addScl(&res[0], &vec1[0], &vec2[0], scl, n)
 * 
 */
  __pyx_tuple__537 = PyTuple_Pack(5, __pyx_n_s_res, __pyx_n_s_vec1, __pyx_n_s_vec2, __pyx_n_s_scl, __pyx_n_s_n); if (unlikely(!__pyx_tuple__537)) __PYX_ERR(4, 5388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__537);
  __Pyx_GIVEREF(__pyx_tuple__537);
  __pyx_codeobj__538 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__537, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_addScl, 5388, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__538)) __PYX_ERR(4, 5388, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5391
 *     mju_addScl(&res[0], &vec1[0], &vec2[0], scl, n)
 * 
 * def _mju_normalize(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):             # <<<<<<<<<<<<<<
 *     return mju_normalize(&res[0], n)
 * 
 */
  __pyx_codeobj__539 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__521, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_normalize, 5391, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__539)) __PYX_ERR(4, 5391, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5394
 *     return mju_normalize(&res[0], n)
 * 
 * def _mju_norm(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):             # <<<<<<<<<<<<<<
 *     return mju_norm(&res[0], n)
 * 
 */
  __pyx_codeobj__540 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__521, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_norm, 5394, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__540)) __PYX_ERR(4, 5394, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5397
 *     return mju_norm(&res[0], n)
 * 
 * def _mju_dot(np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):             # <<<<<<<<<<<<<<
 *     return mju_dot(&vec1[0], &vec2[0], n)
 * 
 */
  __pyx_tuple__541 = PyTuple_Pack(3, __pyx_n_s_vec1, __pyx_n_s_vec2, __pyx_n_s_n); if (unlikely(!__pyx_tuple__541)) __PYX_ERR(4, 5397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__541);
  __Pyx_GIVEREF(__pyx_tuple__541);
  __pyx_codeobj__542 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__541, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_dot, 5397, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__542)) __PYX_ERR(4, 5397, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5400
 *     return mju_dot(&vec1[0], &vec2[0], n)
 * 
 * def _mju_mulMatVec(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_mulMatVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 */
  __pyx_tuple__543 = PyTuple_Pack(5, __pyx_n_s_res, __pyx_n_s_mat, __pyx_n_s_vec, __pyx_n_s_nr, __pyx_n_s_nc); if (unlikely(!__pyx_tuple__543)) __PYX_ERR(4, 5400, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__543);
  __Pyx_GIVEREF(__pyx_tuple__543);
  __pyx_codeobj__544 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__543, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_mulMatVec, 5400, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__544)) __PYX_ERR(4, 5400, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5403
 *     mju_mulMatVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 * def _mju_mulMatTVec(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_mulMatTVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 */
  __pyx_codeobj__545 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__543, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_mulMatTVec, 5403, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__545)) __PYX_ERR(4, 5403, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5406
 *     mju_mulMatTVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 * def _mju_transpose(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_transpose(&res[0], &mat[0], nr, nc)
 * 
 */
  __pyx_tuple__546 = PyTuple_Pack(4, __pyx_n_s_res, __pyx_n_s_mat, __pyx_n_s_nr, __pyx_n_s_nc); if (unlikely(!__pyx_tuple__546)) __PYX_ERR(4, 5406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__546);
  __Pyx_GIVEREF(__pyx_tuple__546);
  __pyx_codeobj__547 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__546, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_transpose, 5406, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__547)) __PYX_ERR(4, 5406, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5409
 *     mju_transpose(&res[0], &mat[0], nr, nc)
 * 
 * def _mju_mulMatMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int c2):             # <<<<<<<<<<<<<<
 *     mju_mulMatMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 */
  __pyx_tuple__548 = PyTuple_Pack(6, __pyx_n_s_res, __pyx_n_s_mat1, __pyx_n_s_mat2, __pyx_n_s_r1, __pyx_n_s_c1, __pyx_n_s_c2); if (unlikely(!__pyx_tuple__548)) __PYX_ERR(4, 5409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__548);
  __Pyx_GIVEREF(__pyx_tuple__548);
  __pyx_codeobj__549 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__548, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_mulMatMat, 5409, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__549)) __PYX_ERR(4, 5409, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5412
 *     mju_mulMatMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 * def _mju_mulMatMatT(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int r2):             # <<<<<<<<<<<<<<
 *     mju_mulMatMatT(&res[0], &mat1[0], &mat2[0], r1, c1, r2)
 * 
 */
  __pyx_tuple__550 = PyTuple_Pack(6, __pyx_n_s_res, __pyx_n_s_mat1, __pyx_n_s_mat2, __pyx_n_s_r1, __pyx_n_s_c1, __pyx_n_s_r2); if (unlikely(!__pyx_tuple__550)) __PYX_ERR(4, 5412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__550);
  __Pyx_GIVEREF(__pyx_tuple__550);
  __pyx_codeobj__551 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__550, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_mulMatMatT, 5412, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__551)) __PYX_ERR(4, 5412, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5415
 *     mju_mulMatMatT(&res[0], &mat1[0], &mat2[0], r1, c1, r2)
 * 
 * def _mju_mulMatTMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int c2):             # <<<<<<<<<<<<<<
 *     mju_mulMatTMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 */
  __pyx_codeobj__552 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__548, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_mulMatTMat, 5415, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__552)) __PYX_ERR(4, 5415, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5418
 *     mju_mulMatTMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 * def _mju_sqrMatTD(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] diag, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_sqrMatTD(&res[0], &mat[0], &diag[0], nr, nc)
 * 
 */
  __pyx_tuple__553 = PyTuple_Pack(5, __pyx_n_s_res, __pyx_n_s_mat, __pyx_n_s_diag, __pyx_n_s_nr, __pyx_n_s_nc); if (unlikely(!__pyx_tuple__553)) __PYX_ERR(4, 5418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__553);
  __Pyx_GIVEREF(__pyx_tuple__553);
  __pyx_codeobj__554 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__553, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_sqrMatTD, 5418, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__554)) __PYX_ERR(4, 5418, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5421
 *     mju_sqrMatTD(&res[0], &mat[0], &diag[0], nr, nc)
 * 
 * def _mju_transformSpatial(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int flg_force, np.ndarray[np.float64_t, mode="c", ndim=1] newpos, np.ndarray[np.float64_t, mode="c", ndim=1] oldpos, np.ndarray[np.float64_t, mode="c", ndim=1] rotnew2old):             # <<<<<<<<<<<<<<
 *     mju_transformSpatial(&res[0], &vec[0], flg_force, &newpos[0], &oldpos[0], &rotnew2old[0])
 * 
 */
  __pyx_tuple__555 = PyTuple_Pack(6, __pyx_n_s_res, __pyx_n_s_vec, __pyx_n_s_flg_force, __pyx_n_s_newpos, __pyx_n_s_oldpos, __pyx_n_s_rotnew2old); if (unlikely(!__pyx_tuple__555)) __PYX_ERR(4, 5421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__555);
  __Pyx_GIVEREF(__pyx_tuple__555);
  __pyx_codeobj__556 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__555, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_transformSpatial, 5421, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__556)) __PYX_ERR(4, 5421, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5424
 *     mju_transformSpatial(&res[0], &vec[0], flg_force, &newpos[0], &oldpos[0], &rotnew2old[0])
 * 
 * def _mju_rotVecQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_rotVecQuat(&res[0], &vec[0], &quat[0])
 * 
 */
  __pyx_tuple__557 = PyTuple_Pack(3, __pyx_n_s_res, __pyx_n_s_vec, __pyx_n_s_quat); if (unlikely(!__pyx_tuple__557)) __PYX_ERR(4, 5424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__557);
  __Pyx_GIVEREF(__pyx_tuple__557);
  __pyx_codeobj__558 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__557, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_rotVecQuat, 5424, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__558)) __PYX_ERR(4, 5424, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5427
 *     mju_rotVecQuat(&res[0], &vec[0], &quat[0])
 * 
 * def _mju_negQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_negQuat(&res[0], &quat[0])
 * 
 */
  __pyx_tuple__559 = PyTuple_Pack(2, __pyx_n_s_res, __pyx_n_s_quat); if (unlikely(!__pyx_tuple__559)) __PYX_ERR(4, 5427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__559);
  __Pyx_GIVEREF(__pyx_tuple__559);
  __pyx_codeobj__560 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__559, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_negQuat, 5427, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__560)) __PYX_ERR(4, 5427, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5430
 *     mju_negQuat(&res[0], &quat[0])
 * 
 * def _mju_mulQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat1, np.ndarray[np.float64_t, mode="c", ndim=1] quat2):             # <<<<<<<<<<<<<<
 *     mju_mulQuat(&res[0], &quat1[0], &quat2[0])
 * 
 */
  __pyx_tuple__561 = PyTuple_Pack(3, __pyx_n_s_res, __pyx_n_s_quat1, __pyx_n_s_quat2); if (unlikely(!__pyx_tuple__561)) __PYX_ERR(4, 5430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__561);
  __Pyx_GIVEREF(__pyx_tuple__561);
  __pyx_codeobj__562 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__561, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_mulQuat, 5430, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__562)) __PYX_ERR(4, 5430, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5433
 *     mju_mulQuat(&res[0], &quat1[0], &quat2[0])
 * 
 * def _mju_mulQuatAxis(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] axis):             # <<<<<<<<<<<<<<
 *     mju_mulQuatAxis(&res[0], &quat[0], &axis[0])
 * 
 */
  __pyx_tuple__563 = PyTuple_Pack(3, __pyx_n_s_res, __pyx_n_s_quat, __pyx_n_s_axis); if (unlikely(!__pyx_tuple__563)) __PYX_ERR(4, 5433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__563);
  __Pyx_GIVEREF(__pyx_tuple__563);
  __pyx_codeobj__564 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__563, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_mulQuatAxis, 5433, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__564)) __PYX_ERR(4, 5433, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5436
 *     mju_mulQuatAxis(&res[0], &quat[0], &axis[0])
 * 
 * def _mju_axisAngle2Quat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] axis, float angle):             # <<<<<<<<<<<<<<
 *     mju_axisAngle2Quat(&res[0], &axis[0], angle)
 * 
 */
  __pyx_tuple__565 = PyTuple_Pack(3, __pyx_n_s_res, __pyx_n_s_axis, __pyx_n_s_angle); if (unlikely(!__pyx_tuple__565)) __PYX_ERR(4, 5436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__565);
  __Pyx_GIVEREF(__pyx_tuple__565);
  __pyx_codeobj__566 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__565, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_axisAngle2Quat, 5436, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__566)) __PYX_ERR(4, 5436, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5439
 *     mju_axisAngle2Quat(&res[0], &axis[0], angle)
 * 
 * def _mju_quat2Vel(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, float dt):             # <<<<<<<<<<<<<<
 *     mju_quat2Vel(&res[0], &quat[0], dt)
 * 
 */
  __pyx_tuple__567 = PyTuple_Pack(3, __pyx_n_s_res, __pyx_n_s_quat, __pyx_n_s_dt); if (unlikely(!__pyx_tuple__567)) __PYX_ERR(4, 5439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__567);
  __Pyx_GIVEREF(__pyx_tuple__567);
  __pyx_codeobj__568 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__567, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_quat2Vel, 5439, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__568)) __PYX_ERR(4, 5439, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5442
 *     mju_quat2Vel(&res[0], &quat[0], dt)
 * 
 * def _mju_subQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] qa, np.ndarray[np.float64_t, mode="c", ndim=1] qb):             # <<<<<<<<<<<<<<
 *     mju_subQuat(&res[0], &qa[0], &qb[0])
 * 
 */
  __pyx_tuple__569 = PyTuple_Pack(3, __pyx_n_s_res, __pyx_n_s_qa, __pyx_n_s_qb); if (unlikely(!__pyx_tuple__569)) __PYX_ERR(4, 5442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__569);
  __Pyx_GIVEREF(__pyx_tuple__569);
  __pyx_codeobj__570 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__569, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_subQuat, 5442, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__570)) __PYX_ERR(4, 5442, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5445
 *     mju_subQuat(&res[0], &qa[0], &qb[0])
 * 
 * def _mju_quat2Mat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_quat2Mat(&res[0], &quat[0])
 * 
 */
  __pyx_codeobj__571 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__559, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_quat2Mat, 5445, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__571)) __PYX_ERR(4, 5445, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5448
 *     mju_quat2Mat(&res[0], &quat[0])
 * 
 * def _mju_mat2Quat(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     mju_mat2Quat(&quat[0], &mat[0])
 * 
 */
  __pyx_tuple__572 = PyTuple_Pack(2, __pyx_n_s_quat, __pyx_n_s_mat); if (unlikely(!__pyx_tuple__572)) __PYX_ERR(4, 5448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__572);
  __Pyx_GIVEREF(__pyx_tuple__572);
  __pyx_codeobj__573 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__572, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_mat2Quat, 5448, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__573)) __PYX_ERR(4, 5448, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5451
 *     mju_mat2Quat(&quat[0], &mat[0])
 * 
 * def _mju_derivQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vel):             # <<<<<<<<<<<<<<
 *     mju_derivQuat(&res[0], &quat[0], &vel[0])
 * 
 */
  __pyx_tuple__574 = PyTuple_Pack(3, __pyx_n_s_res, __pyx_n_s_quat, __pyx_n_s_vel); if (unlikely(!__pyx_tuple__574)) __PYX_ERR(4, 5451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__574);
  __Pyx_GIVEREF(__pyx_tuple__574);
  __pyx_codeobj__575 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__574, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_derivQuat, 5451, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__575)) __PYX_ERR(4, 5451, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5454
 *     mju_derivQuat(&res[0], &quat[0], &vel[0])
 * 
 * def _mju_quatIntegrate(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vel, float scale):             # <<<<<<<<<<<<<<
 *     mju_quatIntegrate(&quat[0], &vel[0], scale)
 * 
 */
  __pyx_tuple__576 = PyTuple_Pack(3, __pyx_n_s_quat, __pyx_n_s_vel, __pyx_n_s_scale); if (unlikely(!__pyx_tuple__576)) __PYX_ERR(4, 5454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__576);
  __Pyx_GIVEREF(__pyx_tuple__576);
  __pyx_codeobj__577 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__576, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_quatIntegrate, 5454, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__577)) __PYX_ERR(4, 5454, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5457
 *     mju_quatIntegrate(&quat[0], &vel[0], scale)
 * 
 * def _mju_quatZ2Vec(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_quatZ2Vec(&quat[0], &vec[0])
 * 
 */
  __pyx_tuple__578 = PyTuple_Pack(2, __pyx_n_s_quat, __pyx_n_s_vec); if (unlikely(!__pyx_tuple__578)) __PYX_ERR(4, 5457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__578);
  __Pyx_GIVEREF(__pyx_tuple__578);
  __pyx_codeobj__579 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__578, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_quatZ2Vec, 5457, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__579)) __PYX_ERR(4, 5457, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5460
 *     mju_quatZ2Vec(&quat[0], &vec[0])
 * 
 * def _mju_mulPose(np.ndarray[np.float64_t, mode="c", ndim=1] posres, np.ndarray[np.float64_t, mode="c", ndim=1] quatres, np.ndarray[np.float64_t, mode="c", ndim=1] pos1, np.ndarray[np.float64_t, mode="c", ndim=1] quat1, np.ndarray[np.float64_t, mode="c", ndim=1] pos2, np.ndarray[np.float64_t, mode="c", ndim=1] quat2):             # <<<<<<<<<<<<<<
 *     mju_mulPose(&posres[0], &quatres[0], &pos1[0], &quat1[0], &pos2[0], &quat2[0])
 * 
 */
  __pyx_tuple__580 = PyTuple_Pack(6, __pyx_n_s_posres, __pyx_n_s_quatres, __pyx_n_s_pos1, __pyx_n_s_quat1, __pyx_n_s_pos2, __pyx_n_s_quat2); if (unlikely(!__pyx_tuple__580)) __PYX_ERR(4, 5460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__580);
  __Pyx_GIVEREF(__pyx_tuple__580);
  __pyx_codeobj__581 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__580, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_mulPose, 5460, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__581)) __PYX_ERR(4, 5460, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5463
 *     mju_mulPose(&posres[0], &quatres[0], &pos1[0], &quat1[0], &pos2[0], &quat2[0])
 * 
 * def _mju_negPose(np.ndarray[np.float64_t, mode="c", ndim=1] posres, np.ndarray[np.float64_t, mode="c", ndim=1] quatres, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_negPose(&posres[0], &quatres[0], &pos[0], &quat[0])
 * 
 */
  __pyx_tuple__582 = PyTuple_Pack(4, __pyx_n_s_posres, __pyx_n_s_quatres, __pyx_n_s_pos, __pyx_n_s_quat); if (unlikely(!__pyx_tuple__582)) __PYX_ERR(4, 5463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__582);
  __Pyx_GIVEREF(__pyx_tuple__582);
  __pyx_codeobj__583 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__582, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_negPose, 5463, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__583)) __PYX_ERR(4, 5463, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5466
 *     mju_negPose(&posres[0], &quatres[0], &pos[0], &quat[0])
 * 
 * def _mju_trnVecPose(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_trnVecPose(&res[0], &pos[0], &quat[0], &vec[0])
 * 
 */
  __pyx_tuple__584 = PyTuple_Pack(4, __pyx_n_s_res, __pyx_n_s_pos, __pyx_n_s_quat, __pyx_n_s_vec); if (unlikely(!__pyx_tuple__584)) __PYX_ERR(4, 5466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__584);
  __Pyx_GIVEREF(__pyx_tuple__584);
  __pyx_codeobj__585 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__584, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_trnVecPose, 5466, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__585)) __PYX_ERR(4, 5466, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5469
 *     mju_trnVecPose(&res[0], &pos[0], &quat[0], &vec[0])
 * 
 * def _mju_cholFactor(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int n, float mindiag):             # <<<<<<<<<<<<<<
 *     return mju_cholFactor(&mat[0], n, mindiag)
 * 
 */
  __pyx_tuple__586 = PyTuple_Pack(3, __pyx_n_s_mat, __pyx_n_s_n, __pyx_n_s_mindiag); if (unlikely(!__pyx_tuple__586)) __PYX_ERR(4, 5469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__586);
  __Pyx_GIVEREF(__pyx_tuple__586);
  __pyx_codeobj__587 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__586, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_cholFactor, 5469, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__587)) __PYX_ERR(4, 5469, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5472
 *     return mju_cholFactor(&mat[0], n, mindiag)
 * 
 * def _mju_cholSolve(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     mju_cholSolve(&res[0], &mat[0], &vec[0], n)
 * 
 */
  __pyx_tuple__588 = PyTuple_Pack(4, __pyx_n_s_res, __pyx_n_s_mat, __pyx_n_s_vec, __pyx_n_s_n); if (unlikely(!__pyx_tuple__588)) __PYX_ERR(4, 5472, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__588);
  __Pyx_GIVEREF(__pyx_tuple__588);
  __pyx_codeobj__589 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__588, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_cholSolve, 5472, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__589)) __PYX_ERR(4, 5472, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5475
 *     mju_cholSolve(&res[0], &mat[0], &vec[0], n)
 * 
 * def _mju_cholUpdate(np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] x, int n, int flg_plus):             # <<<<<<<<<<<<<<
 *     return mju_cholUpdate(&mat[0], &x[0], n, flg_plus)
 * 
 */
  __pyx_tuple__590 = PyTuple_Pack(4, __pyx_n_s_mat, __pyx_n_s_x, __pyx_n_s_n, __pyx_n_s_flg_plus); if (unlikely(!__pyx_tuple__590)) __PYX_ERR(4, 5475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__590);
  __Pyx_GIVEREF(__pyx_tuple__590);
  __pyx_codeobj__591 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__590, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_cholUpdate, 5475, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__591)) __PYX_ERR(4, 5475, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5478
 *     return mju_cholUpdate(&mat[0], &x[0], n, flg_plus)
 * 
 * def _mju_eig3(np.ndarray[np.float64_t, mode="c", ndim=1] eigval, np.ndarray[np.float64_t, mode="c", ndim=1] eigvec, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     return mju_eig3(&eigval[0], &eigvec[0], &quat[0], &mat[0])
 * 
 */
  __pyx_tuple__592 = PyTuple_Pack(4, __pyx_n_s_eigval, __pyx_n_s_eigvec, __pyx_n_s_quat, __pyx_n_s_mat); if (unlikely(!__pyx_tuple__592)) __PYX_ERR(4, 5478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__592);
  __Pyx_GIVEREF(__pyx_tuple__592);
  __pyx_codeobj__593 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__592, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_eig3, 5478, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__593)) __PYX_ERR(4, 5478, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5481
 *     return mju_eig3(&eigval[0], &eigvec[0], &quat[0], &mat[0])
 * 
 * def _mju_muscleGain(float len, float vel, np.ndarray[np.float64_t, mode="c", ndim=1] lengthrange, float acc0, np.ndarray[np.float64_t, mode="c", ndim=1] prm):             # <<<<<<<<<<<<<<
 *     return mju_muscleGain(len, vel, &lengthrange[0], acc0, &prm[0])
 * 
 */
  __pyx_tuple__594 = PyTuple_Pack(5, __pyx_n_s_len, __pyx_n_s_vel, __pyx_n_s_lengthrange, __pyx_n_s_acc0, __pyx_n_s_prm); if (unlikely(!__pyx_tuple__594)) __PYX_ERR(4, 5481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__594);
  __Pyx_GIVEREF(__pyx_tuple__594);
  __pyx_codeobj__595 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__594, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_muscleGain, 5481, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__595)) __PYX_ERR(4, 5481, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5484
 *     return mju_muscleGain(len, vel, &lengthrange[0], acc0, &prm[0])
 * 
 * def _mju_muscleBias(float len, np.ndarray[np.float64_t, mode="c", ndim=1] lengthrange, float acc0, np.ndarray[np.float64_t, mode="c", ndim=1] prm):             # <<<<<<<<<<<<<<
 *     return mju_muscleBias(len, &lengthrange[0], acc0, &prm[0])
 * 
 */
  __pyx_tuple__596 = PyTuple_Pack(4, __pyx_n_s_len, __pyx_n_s_lengthrange, __pyx_n_s_acc0, __pyx_n_s_prm); if (unlikely(!__pyx_tuple__596)) __PYX_ERR(4, 5484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__596);
  __Pyx_GIVEREF(__pyx_tuple__596);
  __pyx_codeobj__597 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__596, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_muscleBias, 5484, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__597)) __PYX_ERR(4, 5484, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5487
 *     return mju_muscleBias(len, &lengthrange[0], acc0, &prm[0])
 * 
 * def _mju_muscleDynamics(float ctrl, float act, np.ndarray[np.float64_t, mode="c", ndim=1] prm):             # <<<<<<<<<<<<<<
 *     return mju_muscleDynamics(ctrl, act, &prm[0])
 * 
 */
  __pyx_tuple__598 = PyTuple_Pack(3, __pyx_n_s_ctrl, __pyx_n_s_act, __pyx_n_s_prm); if (unlikely(!__pyx_tuple__598)) __PYX_ERR(4, 5487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__598);
  __Pyx_GIVEREF(__pyx_tuple__598);
  __pyx_codeobj__599 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__598, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_muscleDynamics, 5487, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__599)) __PYX_ERR(4, 5487, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5490
 *     return mju_muscleDynamics(ctrl, act, &prm[0])
 * 
 * def _mju_encodePyramid(np.ndarray[np.float64_t, mode="c", ndim=1] pyramid, np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] mu, int dim):             # <<<<<<<<<<<<<<
 *     mju_encodePyramid(&pyramid[0], &force[0], &mu[0], dim)
 * 
 */
  __pyx_tuple__600 = PyTuple_Pack(4, __pyx_n_s_pyramid, __pyx_n_s_force, __pyx_n_s_mu, __pyx_n_s_dim); if (unlikely(!__pyx_tuple__600)) __PYX_ERR(4, 5490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__600);
  __Pyx_GIVEREF(__pyx_tuple__600);
  __pyx_codeobj__601 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__600, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_encodePyramid, 5490, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__601)) __PYX_ERR(4, 5490, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5493
 *     mju_encodePyramid(&pyramid[0], &force[0], &mu[0], dim)
 * 
 * def _mju_decodePyramid(np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] pyramid, np.ndarray[np.float64_t, mode="c", ndim=1] mu, int dim):             # <<<<<<<<<<<<<<
 *     mju_decodePyramid(&force[0], &pyramid[0], &mu[0], dim)
 * 
 */
  __pyx_tuple__602 = PyTuple_Pack(4, __pyx_n_s_force, __pyx_n_s_pyramid, __pyx_n_s_mu, __pyx_n_s_dim); if (unlikely(!__pyx_tuple__602)) __PYX_ERR(4, 5493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__602);
  __Pyx_GIVEREF(__pyx_tuple__602);
  __pyx_codeobj__603 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__602, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_decodePyramid, 5493, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__603)) __PYX_ERR(4, 5493, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5496
 *     mju_decodePyramid(&force[0], &pyramid[0], &mu[0], dim)
 * 
 * def _mju_springDamper(float pos0, float vel0, float Kp, float Kv, float dt):             # <<<<<<<<<<<<<<
 *     return mju_springDamper(pos0, vel0, Kp, Kv, dt)
 * 
 */
  __pyx_tuple__604 = PyTuple_Pack(5, __pyx_n_s_pos0, __pyx_n_s_vel0, __pyx_n_s_Kp, __pyx_n_s_Kv, __pyx_n_s_dt); if (unlikely(!__pyx_tuple__604)) __PYX_ERR(4, 5496, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__604);
  __Pyx_GIVEREF(__pyx_tuple__604);
  __pyx_codeobj__605 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__604, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_springDamper, 5496, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__605)) __PYX_ERR(4, 5496, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5499
 *     return mju_springDamper(pos0, vel0, Kp, Kv, dt)
 * 
 * def _mju_min(float a, float b):             # <<<<<<<<<<<<<<
 *     return mju_min(a, b)
 * 
 */
  __pyx_tuple__606 = PyTuple_Pack(2, __pyx_n_s_a, __pyx_n_s_b); if (unlikely(!__pyx_tuple__606)) __PYX_ERR(4, 5499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__606);
  __Pyx_GIVEREF(__pyx_tuple__606);
  __pyx_codeobj__607 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__606, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_min, 5499, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__607)) __PYX_ERR(4, 5499, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5502
 *     return mju_min(a, b)
 * 
 * def _mju_max(float a, float b):             # <<<<<<<<<<<<<<
 *     return mju_max(a, b)
 * 
 */
  __pyx_codeobj__608 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__606, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_max, 5502, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__608)) __PYX_ERR(4, 5502, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5505
 *     return mju_max(a, b)
 * 
 * def _mju_sign(float x):             # <<<<<<<<<<<<<<
 *     return mju_sign(x)
 * 
 */
  __pyx_tuple__609 = PyTuple_Pack(1, __pyx_n_s_x); if (unlikely(!__pyx_tuple__609)) __PYX_ERR(4, 5505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__609);
  __Pyx_GIVEREF(__pyx_tuple__609);
  __pyx_codeobj__610 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__609, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_sign, 5505, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__610)) __PYX_ERR(4, 5505, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5508
 *     return mju_sign(x)
 * 
 * def _mju_round(float x):             # <<<<<<<<<<<<<<
 *     return mju_round(x)
 * 
 */
  __pyx_codeobj__611 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__609, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_round, 5508, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__611)) __PYX_ERR(4, 5508, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5511
 *     return mju_round(x)
 * 
 * def _mju_str2Type(str str):             # <<<<<<<<<<<<<<
 *     return mju_str2Type(str.encode())
 * 
 */
  __pyx_tuple__612 = PyTuple_Pack(1, __pyx_n_s_str); if (unlikely(!__pyx_tuple__612)) __PYX_ERR(4, 5511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__612);
  __Pyx_GIVEREF(__pyx_tuple__612);
  __pyx_codeobj__613 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__612, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_str2Type, 5511, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__613)) __PYX_ERR(4, 5511, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5514
 *     return mju_str2Type(str.encode())
 * 
 * def _mju_isBad(float x):             # <<<<<<<<<<<<<<
 *     return mju_isBad(x)
 * 
 */
  __pyx_codeobj__614 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__609, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_isBad, 5514, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__614)) __PYX_ERR(4, 5514, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5517
 *     return mju_isBad(x)
 * 
 * def _mju_isZero(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     return mju_isZero(&vec[0], n)
 * 
 */
  __pyx_codeobj__615 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__525, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_isZero, 5517, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__615)) __PYX_ERR(4, 5517, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5520
 *     return mju_isZero(&vec[0], n)
 * 
 * def _mju_standardNormal(np.ndarray[np.float64_t, mode="c", ndim=1] num2):             # <<<<<<<<<<<<<<
 *     return mju_standardNormal(&num2[0])
 * 
 */
  __pyx_tuple__616 = PyTuple_Pack(1, __pyx_n_s_num2); if (unlikely(!__pyx_tuple__616)) __PYX_ERR(4, 5520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__616);
  __Pyx_GIVEREF(__pyx_tuple__616);
  __pyx_codeobj__617 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__616, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_standardNormal, 5520, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__617)) __PYX_ERR(4, 5520, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5523
 *     return mju_standardNormal(&num2[0])
 * 
 * def _mju_insertionSort(np.ndarray[np.float64_t, mode="c", ndim=1] list, int n):             # <<<<<<<<<<<<<<
 *     mju_insertionSort(&list[0], n)
 * 
 */
  __pyx_tuple__618 = PyTuple_Pack(2, __pyx_n_s_list, __pyx_n_s_n); if (unlikely(!__pyx_tuple__618)) __PYX_ERR(4, 5523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__618);
  __Pyx_GIVEREF(__pyx_tuple__618);
  __pyx_codeobj__619 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__618, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_insertionSort, 5523, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__619)) __PYX_ERR(4, 5523, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5526
 *     mju_insertionSort(&list[0], n)
 * 
 * def _mju_insertionSortInt(uintptr_t list, int n):             # <<<<<<<<<<<<<<
 *     mju_insertionSortInt(<int*>list, n)
 * 
 */
  __pyx_codeobj__620 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__618, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_insertionSortInt, 5526, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__620)) __PYX_ERR(4, 5526, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5529
 *     mju_insertionSortInt(<int*>list, n)
 * 
 * def _mju_Halton(int index, int base):             # <<<<<<<<<<<<<<
 *     return mju_Halton(index, base)
 * 
 */
  __pyx_tuple__621 = PyTuple_Pack(2, __pyx_n_s_index, __pyx_n_s_base); if (unlikely(!__pyx_tuple__621)) __PYX_ERR(4, 5529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__621);
  __Pyx_GIVEREF(__pyx_tuple__621);
  __pyx_codeobj__622 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__621, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_Halton, 5529, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__622)) __PYX_ERR(4, 5529, __pyx_L1_error)

  /* "mujoco_py/generated/wrappers.pxi":5532
 *     return mju_Halton(index, base)
 * 
 * def _mju_sigmoid(float x):             # <<<<<<<<<<<<<<
 *     return mju_sigmoid(x)
 * 
 */
  __pyx_codeobj__623 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__609, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_generated_wrappers_pxi, __pyx_n_s_mju_sigmoid, 5532, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__623)) __PYX_ERR(4, 5532, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":7
 * 
 * 
 * def _add_mujoco_bin_to_dyld_library_path():             # <<<<<<<<<<<<<<
 *     mujoco_path = discover_mujoco()
 *     bin_path = os.path.join(mujoco_path, "bin")
 */
  __pyx_tuple__624 = PyTuple_Pack(3, __pyx_n_s_mujoco_path, __pyx_n_s_bin_path, __pyx_n_s_old_dyld_library_path); if (unlikely(!__pyx_tuple__624)) __PYX_ERR(0, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__624);
  __Pyx_GIVEREF(__pyx_tuple__624);
  __pyx_codeobj__625 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__624, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_n_s_add_mujoco_bin_to_dyld_library, 7, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__625)) __PYX_ERR(0, 7, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":24
 * class OpenGLContext(metaclass=ABCMeta):
 * 
 *     @abstractmethod             # <<<<<<<<<<<<<<
 *     def make_context_current(self):
 *         raise NotImplementedError()
 */
  __pyx_codeobj__626 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_n_s_make_context_current, 24, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__626)) __PYX_ERR(0, 24, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":28
 *         raise NotImplementedError()
 * 
 *     @abstractmethod             # <<<<<<<<<<<<<<
 *     def set_buffer_size(self, width, height):
 *         raise NotImplementedError()
 */
  __pyx_tuple__627 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_width, __pyx_n_s_height); if (unlikely(!__pyx_tuple__627)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__627);
  __Pyx_GIVEREF(__pyx_tuple__627);
  __pyx_codeobj__628 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__627, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_n_s_set_buffer_size, 28, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__628)) __PYX_ERR(0, 28, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":33
 * 
 * 
 * class GlfwError(RuntimeError):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
  __pyx_tuple__629 = PyTuple_Pack(1, __pyx_builtin_RuntimeError); if (unlikely(!__pyx_tuple__629)) __PYX_ERR(0, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__629);
  __Pyx_GIVEREF(__pyx_tuple__629);
  __pyx_tuple__630 = PyTuple_Pack(1, __pyx_builtin_RuntimeError); if (unlikely(!__pyx_tuple__630)) __PYX_ERR(0, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__630);
  __Pyx_GIVEREF(__pyx_tuple__630);

  /* "mujoco_py/opengl_context.pyx":43
 *     _GLFW_IS_INITIALIZED = False
 * 
 *     def __init__(self, offscreen=False, quiet=False):             # <<<<<<<<<<<<<<
 *         GlfwContext._init_glfw()
 * 
 */
  __pyx_tuple__631 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_offscreen, __pyx_n_s_quiet); if (unlikely(!__pyx_tuple__631)) __PYX_ERR(0, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__631);
  __Pyx_GIVEREF(__pyx_tuple__631);
  __pyx_codeobj__632 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__631, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_n_s_init_2, 43, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__632)) __PYX_ERR(0, 43, __pyx_L1_error)
  __pyx_tuple__633 = PyTuple_Pack(2, ((PyObject *)Py_False), ((PyObject *)Py_False)); if (unlikely(!__pyx_tuple__633)) __PYX_ERR(0, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__633);
  __Pyx_GIVEREF(__pyx_tuple__633);

  /* "mujoco_py/opengl_context.pyx":51
 *         self._set_window_size(self._width, self._height)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _init_glfw():
 *         if GlfwContext._GLFW_IS_INITIALIZED:
 */
  __pyx_codeobj__634 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_n_s_init_glfw, 51, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__634)) __PYX_ERR(0, 51, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":68
 *         GlfwContext._GLFW_IS_INITIALIZED = True
 * 
 *     def make_context_current(self):             # <<<<<<<<<<<<<<
 *         glfw.make_context_current(self.window)
 * 
 */
  __pyx_codeobj__635 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_n_s_make_context_current, 68, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__635)) __PYX_ERR(0, 68, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":71
 *         glfw.make_context_current(self.window)
 * 
 *     def set_buffer_size(self, width, height):             # <<<<<<<<<<<<<<
 *         self._set_window_size(width, height)
 *         self._width = width
 */
  __pyx_codeobj__636 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__627, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_n_s_set_buffer_size, 71, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__636)) __PYX_ERR(0, 71, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":76
 *         self._height = height
 * 
 *     def _create_window(self, offscreen, quiet=False):             # <<<<<<<<<<<<<<
 *         if offscreen:
 *             if not quiet:
 */
  __pyx_tuple__638 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_offscreen, __pyx_n_s_quiet, __pyx_n_s_init_width, __pyx_n_s_init_height, __pyx_n_s_resolution, __pyx_n_s__637, __pyx_n_s_refresh_rate, __pyx_n_s_window); if (unlikely(!__pyx_tuple__638)) __PYX_ERR(0, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__638);
  __Pyx_GIVEREF(__pyx_tuple__638);
  __pyx_codeobj__639 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__638, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_n_s_create_window, 76, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__639)) __PYX_ERR(0, 76, __pyx_L1_error)
  __pyx_tuple__640 = PyTuple_Pack(1, ((PyObject *)Py_False)); if (unlikely(!__pyx_tuple__640)) __PYX_ERR(0, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__640);
  __Pyx_GIVEREF(__pyx_tuple__640);

  /* "mujoco_py/opengl_context.pyx":103
 *         return window
 * 
 *     def get_buffer_size(self):             # <<<<<<<<<<<<<<
 *         return glfw.get_framebuffer_size(self.window)
 * 
 */
  __pyx_codeobj__641 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_n_s_get_buffer_size, 103, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__641)) __PYX_ERR(0, 103, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":106
 *         return glfw.get_framebuffer_size(self.window)
 * 
 *     def _set_window_size(self, target_width, target_height):             # <<<<<<<<<<<<<<
 *         self.make_context_current()
 *         if target_width != self._width or target_height != self._height:
 */
  __pyx_tuple__642 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_target_width, __pyx_n_s_target_height, __pyx_n_s_width, __pyx_n_s_height); if (unlikely(!__pyx_tuple__642)) __PYX_ERR(0, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__642);
  __Pyx_GIVEREF(__pyx_tuple__642);
  __pyx_codeobj__643 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__642, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_n_s_set_window_size, 106, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__643)) __PYX_ERR(0, 106, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":119
 *                 glfw.set_window_size(self.window, target_width // 2, target_height // 2)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _glfw_error_callback(error_code, description):
 *         print("GLFW error (code %d): %s", error_code, description)
 */
  __pyx_tuple__644 = PyTuple_Pack(2, __pyx_n_s_error_code, __pyx_n_s_description); if (unlikely(!__pyx_tuple__644)) __PYX_ERR(0, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__644);
  __Pyx_GIVEREF(__pyx_tuple__644);
  __pyx_codeobj__645 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__644, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_n_s_glfw_error_callback, 119, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__645)) __PYX_ERR(0, 119, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":126
 * class OffscreenOpenGLContext():
 * 
 *     def __init__(self, device_id):             # <<<<<<<<<<<<<<
 *         self.device_id = device_id
 *         res = initOpenGL(device_id)
 */
  __pyx_tuple__646 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_device_id, __pyx_n_s_res); if (unlikely(!__pyx_tuple__646)) __PYX_ERR(0, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__646);
  __Pyx_GIVEREF(__pyx_tuple__646);
  __pyx_codeobj__647 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__646, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_n_s_init_2, 126, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__647)) __PYX_ERR(0, 126, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":132
 *             raise RuntimeError("Failed to initialize OpenGL")
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         # TODO: properly close OpenGL in our contexts
 *         closeOpenGL()
 */
  __pyx_codeobj__648 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_n_s_close, 132, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__648)) __PYX_ERR(0, 132, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":136
 *         closeOpenGL()
 * 
 *     def make_context_current(self):             # <<<<<<<<<<<<<<
 *         makeOpenGLContextCurrent(self.device_id)
 * 
 */
  __pyx_codeobj__649 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_n_s_make_context_current, 136, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__649)) __PYX_ERR(0, 136, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":139
 *         makeOpenGLContextCurrent(self.device_id)
 * 
 *     def set_buffer_size(self, int width, int height):             # <<<<<<<<<<<<<<
 *         res = setOpenGLBufferSize(self.device_id, width, height)
 *         if res != 1:
 */
  __pyx_tuple__650 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_width, __pyx_n_s_height, __pyx_n_s_res); if (unlikely(!__pyx_tuple__650)) __PYX_ERR(0, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__650);
  __Pyx_GIVEREF(__pyx_tuple__650);
  __pyx_codeobj__651 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__650, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_opengl_context_pyx, __pyx_n_s_set_buffer_size, 139, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__651)) __PYX_ERR(0, 139, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":91
 *         self.set_substep_callback(substep_callback, userdata_names)
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """
 *         Resets the simulation data and clears buffers.
 */
  __pyx_codeobj__652 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_reset, 91, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__652)) __PYX_ERR(5, 91, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":101
 *         self.step_udd()
 * 
 *     def forward(self):             # <<<<<<<<<<<<<<
 *         """
 *         Computes the forward kinematics. Calls ``mj_forward`` internally.
 */
  __pyx_codeobj__653 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_forward, 101, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__653)) __PYX_ERR(5, 101, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":108
 *             mj_forward(self.model.ptr, self.data.ptr)
 * 
 *     def set_constants(self):             # <<<<<<<<<<<<<<
 *         """
 *         Set constant fields of mjModel, corresponding to qpos0 configuration.
 */
  __pyx_codeobj__654 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_set_constants, 108, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__654)) __PYX_ERR(5, 108, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":115
 *             mj_setConst(self.model.ptr, self.data.ptr)
 * 
 *     def step(self, with_udd=True):             # <<<<<<<<<<<<<<
 *         """
 *         Advances the simulation by calling ``mj_step``.
 */
  __pyx_tuple__655 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_with_udd, __pyx_n_s__637); if (unlikely(!__pyx_tuple__655)) __PYX_ERR(5, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__655);
  __Pyx_GIVEREF(__pyx_tuple__655);
  __pyx_codeobj__656 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__655, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_step, 115, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__656)) __PYX_ERR(5, 115, __pyx_L1_error)
  __pyx_tuple__657 = PyTuple_Pack(1, Py_True); if (unlikely(!__pyx_tuple__657)) __PYX_ERR(5, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__657);
  __Pyx_GIVEREF(__pyx_tuple__657);

  /* "mujoco_py/mjsim.pyx":131
 *                 mj_step(self.model.ptr, self.data.ptr)
 * 
 *     def render(self, width=None, height=None, *, camera_name=None, depth=False,             # <<<<<<<<<<<<<<
 *                mode='offscreen', device_id=-1, segmentation=False):
 *         """
 */
  __pyx_tuple__658 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_width, __pyx_n_s_height, __pyx_n_s_camera_name, __pyx_n_s_depth, __pyx_n_s_mode, __pyx_n_s_device_id, __pyx_n_s_segmentation, __pyx_n_s_camera_id, __pyx_n_s_render_context, __pyx_n_s_MjViewer); if (unlikely(!__pyx_tuple__658)) __PYX_ERR(5, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__658);
  __Pyx_GIVEREF(__pyx_tuple__658);
  __pyx_codeobj__659 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__658, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_render, 131, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__659)) __PYX_ERR(5, 131, __pyx_L1_error)
  __pyx_tuple__660 = PyTuple_Pack(2, Py_None, Py_None); if (unlikely(!__pyx_tuple__660)) __PYX_ERR(5, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__660);
  __Pyx_GIVEREF(__pyx_tuple__660);

  /* "mujoco_py/mjsim.pyx":179
 *             raise ValueError("Mode must be either 'window' or 'offscreen'.")
 * 
 *     def add_render_context(self, render_context):             # <<<<<<<<<<<<<<
 *         self.render_contexts.append(render_context)
 *         if render_context.offscreen and self._render_context_offscreen is None:
 */
  __pyx_tuple__661 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_render_context); if (unlikely(!__pyx_tuple__661)) __PYX_ERR(5, 179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__661);
  __Pyx_GIVEREF(__pyx_tuple__661);
  __pyx_codeobj__662 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__661, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_add_render_context, 179, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__662)) __PYX_ERR(5, 179, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":196
 *         self.step_udd()
 * 
 *     cpdef substep_callback(self):             # <<<<<<<<<<<<<<
 *         if self.substep_callback_ptr:
 *             (<mjfGeneric>self.substep_callback_ptr)(self.model.ptr, self.data.ptr)
 */
  __pyx_codeobj__663 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_substep_callback, 196, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__663)) __PYX_ERR(5, 196, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":200
 *             (<mjfGeneric>self.substep_callback_ptr)(self.model.ptr, self.data.ptr)
 * 
 *     def set_substep_callback(self, substep_callback, userdata_names=None):             # <<<<<<<<<<<<<<
 *         '''
 *         Set a substep callback function.
 */
  __pyx_tuple__664 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_substep_callback, __pyx_n_s_userdata_names); if (unlikely(!__pyx_tuple__664)) __PYX_ERR(5, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__664);
  __Pyx_GIVEREF(__pyx_tuple__664);
  __pyx_codeobj__665 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__664, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_set_substep_callback, 200, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__665)) __PYX_ERR(5, 200, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":226
 *             raise TypeError('invalid: {}'.format(type(substep_callback)))
 * 
 *     def step_udd(self):             # <<<<<<<<<<<<<<
 *         if self._udd_callback is None:
 *             self.udd_state = {}
 */
  __pyx_tuple__666 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_schema_example, __pyx_n_s_keys, __pyx_n_s_key); if (unlikely(!__pyx_tuple__666)) __PYX_ERR(5, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__666);
  __Pyx_GIVEREF(__pyx_tuple__666);
  __pyx_codeobj__667 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__666, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_step_udd, 226, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__667)) __PYX_ERR(5, 226, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":247
 *                             "Numpy array values in udd_state must keep the same dimension across steps."
 * 
 *     def get_state(self):             # <<<<<<<<<<<<<<
 *         """ Returns a copy of the simulator state. """
 *         qpos = np.copy(self.data.qpos)
 */
  __pyx_tuple__668 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_qpos, __pyx_n_s_qvel, __pyx_n_s_act, __pyx_n_s_udd_state); if (unlikely(!__pyx_tuple__668)) __PYX_ERR(5, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__668);
  __Pyx_GIVEREF(__pyx_tuple__668);
  __pyx_codeobj__669 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__668, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_get_state, 247, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__669)) __PYX_ERR(5, 247, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":259
 *         return MjSimState(self.data.time, qpos, qvel, act, udd_state)
 * 
 *     def set_state(self, value):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the state from an MjSimState.
 */
  __pyx_tuple__670 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_value); if (unlikely(!__pyx_tuple__670)) __PYX_ERR(5, 259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__670);
  __Pyx_GIVEREF(__pyx_tuple__670);
  __pyx_codeobj__671 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__670, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_set_state, 259, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__671)) __PYX_ERR(5, 259, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":278
 *         self.udd_state = copy.deepcopy(value.udd_state)
 * 
 *     def set_state_from_flattened(self, value):             # <<<<<<<<<<<<<<
 *         """ This helper method sets the state from an array without requiring a defensive copy."""
 *         state = MjSimState.from_flattened(value, self)
 */
  __pyx_tuple__672 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_value, __pyx_n_s_state); if (unlikely(!__pyx_tuple__672)) __PYX_ERR(5, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__672);
  __Pyx_GIVEREF(__pyx_tuple__672);
  __pyx_codeobj__673 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__672, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_set_state_from_flattened, 278, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__673)) __PYX_ERR(5, 278, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":289
 *         self.udd_state = state.udd_state
 * 
 *     def save(self, file, format='xml', keep_inertials=False):             # <<<<<<<<<<<<<<
 *         """
 *         Saves the simulator model and state to a file as either
 */
  __pyx_tuple__674 = PyTuple_Pack(14, __pyx_n_s_self, __pyx_n_s_file, __pyx_n_s_format, __pyx_n_s_keep_inertials, __pyx_n_s_xml_str, __pyx_n_s_dom, __pyx_n_s_mujoco_node, __pyx_n_s_keyframe_el, __pyx_n_s_key_el, __pyx_n_s_str_array, __pyx_n_s_str_array, __pyx_n_s_element, __pyx_n_s_result_xml, __pyx_n_s_new_model); if (unlikely(!__pyx_tuple__674)) __PYX_ERR(5, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__674);
  __Pyx_GIVEREF(__pyx_tuple__674);
  __pyx_codeobj__675 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__674, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_save, 289, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__675)) __PYX_ERR(5, 289, __pyx_L1_error)
  __pyx_tuple__676 = PyTuple_Pack(2, __pyx_n_u_xml, Py_False); if (unlikely(!__pyx_tuple__676)) __PYX_ERR(5, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__676);
  __Pyx_GIVEREF(__pyx_tuple__676);

  /* "mujoco_py/mjsim.pyx":345
 *             raise ValueError("Unsupported format. Valid ones are 'xml' and 'mjb'")
 * 
 *     def ray(self, pnt, vec, include_static_geoms=True, exclude_body=-1, group_filter=None):             # <<<<<<<<<<<<<<
 *         """
 *         Cast a ray into the scene, and return the first valid geom it intersects.
 */
  __pyx_tuple__677 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_pnt, __pyx_n_s_vec, __pyx_n_s_include_static_geoms, __pyx_n_s_exclude_body, __pyx_n_s_group_filter, __pyx_n_s_distance, __pyx_n_s_pnt_view, __pyx_n_s_vec_view); if (unlikely(!__pyx_tuple__677)) __PYX_ERR(5, 345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__677);
  __Pyx_GIVEREF(__pyx_tuple__677);
  __pyx_codeobj__678 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__677, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_ray, 345, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__678)) __PYX_ERR(5, 345, __pyx_L1_error)
  __pyx_tuple__679 = PyTuple_Pack(3, Py_True, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_tuple__679)) __PYX_ERR(5, 345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__679);
  __Pyx_GIVEREF(__pyx_tuple__679);

  /* "mujoco_py/mjsim.pyx":383
 *                 exclude_body)
 * 
 *     def ray_fast_group(self,             # <<<<<<<<<<<<<<
 *             np.ndarray[np.float64_t, mode="c", ndim=1] pnt,
 *             np.ndarray[np.float64_t, mode="c", ndim=1] vec,
 */
  __pyx_tuple__680 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_pnt, __pyx_n_s_vec, __pyx_n_s_geomgroup, __pyx_n_s_flg_static, __pyx_n_s_bodyexclude, __pyx_n_s_geomid, __pyx_n_s_distance, __pyx_n_s_pnt_view, __pyx_n_s_vec_view, __pyx_n_s_geomgroup_view); if (unlikely(!__pyx_tuple__680)) __PYX_ERR(5, 383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__680);
  __Pyx_GIVEREF(__pyx_tuple__680);
  __pyx_codeobj__681 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__680, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_ray_fast_group, 383, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__681)) __PYX_ERR(5, 383, __pyx_L1_error)
  __pyx_tuple__682 = PyTuple_Pack(2, __pyx_int_1, __pyx_int_neg_1); if (unlikely(!__pyx_tuple__682)) __PYX_ERR(5, 383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__682);
  __Pyx_GIVEREF(__pyx_tuple__682);

  /* "mujoco_py/mjsim.pyx":412
 * 
 * 
 *     def ray_fast_nogroup(self,             # <<<<<<<<<<<<<<
 *             np.ndarray[np.float64_t, mode="c", ndim=1] pnt,
 *             np.ndarray[np.float64_t, mode="c", ndim=1] vec,
 */
  __pyx_tuple__683 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_pnt, __pyx_n_s_vec, __pyx_n_s_flg_static, __pyx_n_s_bodyexclude, __pyx_n_s_geomid, __pyx_n_s_distance, __pyx_n_s_pnt_view, __pyx_n_s_vec_view); if (unlikely(!__pyx_tuple__683)) __PYX_ERR(5, 412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__683);
  __Pyx_GIVEREF(__pyx_tuple__683);
  __pyx_codeobj__684 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__683, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsim_pyx, __pyx_n_s_ray_fast_nogroup, 412, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__684)) __PYX_ERR(5, 412, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__685 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__685)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__686 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__686)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "mujoco_py/mjsimstate.pyx":2
 * 
 * class MjSimState(namedtuple('SimStateBase', 'time qpos qvel act udd_state')):             # <<<<<<<<<<<<<<
 *     """Represents a snapshot of the simulator's state.
 * 
 */
  __pyx_tuple__687 = PyTuple_Pack(2, __pyx_n_u_SimStateBase, __pyx_kp_u_time_qpos_qvel_act_udd_state); if (unlikely(!__pyx_tuple__687)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__687);
  __Pyx_GIVEREF(__pyx_tuple__687);

  /* "mujoco_py/mjsimstate.pyx":10
 * 
 *     # need to implement this because numpy doesn't support == on arrays
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         if not isinstance(other, self.__class__):
 *             return NotImplemented
 */
  __pyx_tuple__688 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_other, __pyx_n_s_k); if (unlikely(!__pyx_tuple__688)) __PYX_ERR(6, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__688);
  __Pyx_GIVEREF(__pyx_tuple__688);
  __pyx_codeobj__689 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__688, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsimstate_pyx, __pyx_n_s_eq, 10, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__689)) __PYX_ERR(6, 10, __pyx_L1_error)

  /* "mujoco_py/mjsimstate.pyx":28
 *                 np.array_equal(self.act, other.act))
 * 
 *     def __ne__(self, other):             # <<<<<<<<<<<<<<
 *         return not self.__eq__(other)
 * 
 */
  __pyx_tuple__690 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_other); if (unlikely(!__pyx_tuple__690)) __PYX_ERR(6, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__690);
  __Pyx_GIVEREF(__pyx_tuple__690);
  __pyx_codeobj__691 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__690, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsimstate_pyx, __pyx_n_s_ne_2, 28, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__691)) __PYX_ERR(6, 28, __pyx_L1_error)

  /* "mujoco_py/mjsimstate.pyx":31
 *         return not self.__eq__(other)
 * 
 *     def flatten(self):             # <<<<<<<<<<<<<<
 *         """ Flattens a state into a numpy array of numbers."""
 *         if self.act is None:
 */
  __pyx_tuple__692 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_act, __pyx_n_s_state_tuple); if (unlikely(!__pyx_tuple__692)) __PYX_ERR(6, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__692);
  __Pyx_GIVEREF(__pyx_tuple__692);
  __pyx_codeobj__693 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__692, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsimstate_pyx, __pyx_n_s_flatten, 31, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__693)) __PYX_ERR(6, 31, __pyx_L1_error)

  /* "mujoco_py/mjsimstate.pyx":41
 *         return np.concatenate(state_tuple)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _flatten_dict(d):
 *         a = []
 */
  __pyx_tuple__694 = PyTuple_Pack(4, __pyx_n_s_d, __pyx_n_s_a, __pyx_n_s_k, __pyx_n_s_v); if (unlikely(!__pyx_tuple__694)) __PYX_ERR(6, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__694);
  __Pyx_GIVEREF(__pyx_tuple__694);
  __pyx_codeobj__695 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__694, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsimstate_pyx, __pyx_n_s_flatten_dict, 41, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__695)) __PYX_ERR(6, 41, __pyx_L1_error)

  /* "mujoco_py/mjsimstate.pyx":53
 *         return np.array(a)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def from_flattened(array, sim):
 *         idx_time = 0
 */
  __pyx_tuple__696 = PyTuple_Pack(13, __pyx_n_s_array, __pyx_n_s_sim, __pyx_n_s_idx_time, __pyx_n_s_idx_qpos, __pyx_n_s_idx_qvel, __pyx_n_s_idx_act, __pyx_n_s_idx_udd, __pyx_n_s_time, __pyx_n_s_qpos, __pyx_n_s_qvel, __pyx_n_s_act, __pyx_n_s_flat_udd_state, __pyx_n_s_udd_state); if (unlikely(!__pyx_tuple__696)) __PYX_ERR(6, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__696);
  __Pyx_GIVEREF(__pyx_tuple__696);
  __pyx_codeobj__697 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__696, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsimstate_pyx, __pyx_n_s_from_flattened, 53, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__697)) __PYX_ERR(6, 53, __pyx_L1_error)

  /* "mujoco_py/mjsimstate.pyx":73
 *         return MjSimState(time, qpos, qvel, act, udd_state)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _unflatten_dict(a, schema_example):
 *         d = {}
 */
  __pyx_tuple__698 = PyTuple_Pack(8, __pyx_n_s_a, __pyx_n_s_schema_example, __pyx_n_s_d, __pyx_n_s_idx, __pyx_n_s_k, __pyx_n_s_schema_val, __pyx_n_s_val, __pyx_n_s_val_array); if (unlikely(!__pyx_tuple__698)) __PYX_ERR(6, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__698);
  __Pyx_GIVEREF(__pyx_tuple__698);
  __pyx_codeobj__699 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__698, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjsimstate_pyx, __pyx_n_s_unflatten_dict, 73, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__699)) __PYX_ERR(6, 73, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":74
 *         self._set_mujoco_buffers()
 * 
 *     def update_sim(self, MjSim new_sim):             # <<<<<<<<<<<<<<
 *         if new_sim == self.sim:
 *             return
 */
  __pyx_tuple__700 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_new_sim, __pyx_n_s_render_context); if (unlikely(!__pyx_tuple__700)) __PYX_ERR(1, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__700);
  __Pyx_GIVEREF(__pyx_tuple__700);
  __pyx_codeobj__701 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__700, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_update_sim, 74, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__701)) __PYX_ERR(1, 74, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":84
 *         self.sim = new_sim
 * 
 *     def _set_mujoco_buffers(self):             # <<<<<<<<<<<<<<
 *         mjr_makeContext(self._model_ptr, &self._con, mjFONTSCALE_150)
 *         if self.offscreen:
 */
  __pyx_codeobj__702 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_set_mujoco_buffers, 84, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__702)) __PYX_ERR(1, 84, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":96
 *         self.con = WrapMjrContext(&self._con)
 * 
 *     def _setup_opengl_context(self, offscreen, device_id, opengl_backend, quiet=False):             # <<<<<<<<<<<<<<
 *         if opengl_backend is None and (not offscreen or sys.platform == 'darwin'):
 *             # default to glfw for onscreen viewing or mac (both offscreen/onscreen)
 */
  __pyx_tuple__703 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_offscreen, __pyx_n_s_device_id, __pyx_n_s_opengl_backend, __pyx_n_s_quiet); if (unlikely(!__pyx_tuple__703)) __PYX_ERR(1, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__703);
  __Pyx_GIVEREF(__pyx_tuple__703);
  __pyx_codeobj__704 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__703, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_setup_opengl_context, 96, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__704)) __PYX_ERR(1, 96, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":116
 *             self.opengl_context = OffscreenOpenGLContext(device_id)
 * 
 *     def _init_camera(self, sim):             # <<<<<<<<<<<<<<
 *         # Make the free camera look at the scene
 *         self.cam.type = const.CAMERA_FREE
 */
  __pyx_tuple__705 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_sim, __pyx_n_s_i); if (unlikely(!__pyx_tuple__705)) __PYX_ERR(1, 116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__705);
  __Pyx_GIVEREF(__pyx_tuple__705);
  __pyx_codeobj__706 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__705, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_init_camera, 116, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__706)) __PYX_ERR(1, 116, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":124
 *         self.cam.distance = sim.model.stat.extent
 * 
 *     def update_offscreen_size(self, width, height):             # <<<<<<<<<<<<<<
 *         if width != self._con.offWidth or height != self._con.offHeight:
 *             self._model_ptr.vis.global_.offwidth = width
 */
  __pyx_codeobj__707 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__627, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_update_offscreen_size, 124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__707)) __PYX_ERR(1, 124, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":131
 *             self._set_mujoco_buffers()
 * 
 *     def render(self, width, height, camera_id=None, segmentation=False):             # <<<<<<<<<<<<<<
 *         cdef mjrRect rect
 *         rect.left = 0
 */
  __pyx_tuple__708 = PyTuple_Pack(12, __pyx_n_s_self, __pyx_n_s_width, __pyx_n_s_height, __pyx_n_s_camera_id, __pyx_n_s_segmentation, __pyx_n_s_rect, __pyx_n_s_new_width, __pyx_n_s_new_height, __pyx_n_s_marker_params, __pyx_n_s_gridpos, __pyx_n_s_text1, __pyx_n_s_text2); if (unlikely(!__pyx_tuple__708)) __PYX_ERR(1, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__708);
  __Pyx_GIVEREF(__pyx_tuple__708);
  __pyx_codeobj__709 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__708, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_render, 131, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__709)) __PYX_ERR(1, 131, __pyx_L1_error)
  __pyx_tuple__710 = PyTuple_Pack(2, Py_None, Py_False); if (unlikely(!__pyx_tuple__710)) __PYX_ERR(1, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__710);
  __Pyx_GIVEREF(__pyx_tuple__710);

  /* "mujoco_py/mjrendercontext.pyx":176
 *             self._scn.flags[const.RND_IDCOLOR] = 0
 * 
 *     def read_pixels(self, width, height, depth=True, segmentation=False):             # <<<<<<<<<<<<<<
 *         cdef mjrRect rect
 *         rect.left = 0
 */
  __pyx_tuple__711 = PyTuple_Pack(17, __pyx_n_s_self, __pyx_n_s_width, __pyx_n_s_height, __pyx_n_s_depth, __pyx_n_s_segmentation, __pyx_n_s_rect, __pyx_n_s_rgb_arr, __pyx_n_s_depth_arr, __pyx_n_s_rgb_view, __pyx_n_s_depth_view, __pyx_n_s_rgb_img, __pyx_n_s_seg_img, __pyx_n_s_seg_ids, __pyx_n_s_ret_img, __pyx_n_s_i, __pyx_n_s_geom, __pyx_n_s_depth_img); if (unlikely(!__pyx_tuple__711)) __PYX_ERR(1, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__711);
  __Pyx_GIVEREF(__pyx_tuple__711);
  __pyx_codeobj__712 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__711, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_read_pixels, 176, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__712)) __PYX_ERR(1, 176, __pyx_L1_error)
  __pyx_tuple__713 = PyTuple_Pack(2, Py_True, Py_False); if (unlikely(!__pyx_tuple__713)) __PYX_ERR(1, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__713);
  __Pyx_GIVEREF(__pyx_tuple__713);

  /* "mujoco_py/mjrendercontext.pyx":212
 *             return ret_img
 * 
 *     def read_pixels_depth(self, np.ndarray[np.float32_t, mode="c", ndim=2] buffer):             # <<<<<<<<<<<<<<
 *             ''' Read depth pixels into a preallocated buffer '''
 *             cdef mjrRect rect
 */
  __pyx_tuple__714 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_buffer, __pyx_n_s_rect, __pyx_n_s_buffer_view); if (unlikely(!__pyx_tuple__714)) __PYX_ERR(1, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__714);
  __Pyx_GIVEREF(__pyx_tuple__714);
  __pyx_codeobj__715 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__714, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_read_pixels_depth, 212, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__715)) __PYX_ERR(1, 212, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":223
 *             mjr_readPixels(NULL, &buffer_view[0], rect, &self._con)
 * 
 *     def upload_texture(self, int tex_id):             # <<<<<<<<<<<<<<
 *         """ Uploads given texture to the GPU. """
 *         self.opengl_context.make_context_current()
 */
  __pyx_tuple__716 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_tex_id); if (unlikely(!__pyx_tuple__716)) __PYX_ERR(1, 223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__716);
  __Pyx_GIVEREF(__pyx_tuple__716);
  __pyx_codeobj__717 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__716, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_upload_texture, 223, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__717)) __PYX_ERR(1, 223, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":228
 *         mjr_uploadTexture(self._model_ptr, &self._con, tex_id)
 * 
 *     def draw_pixels(self, np.ndarray[np.uint8_t, ndim=3] image, int left, int bottom):             # <<<<<<<<<<<<<<
 *         """Draw an image into the OpenGL buffer."""
 *         cdef unsigned char[::view.contiguous] image_view = image.ravel()
 */
  __pyx_tuple__718 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_image, __pyx_n_s_left, __pyx_n_s_bottom, __pyx_n_s_image_view, __pyx_n_s_viewport); if (unlikely(!__pyx_tuple__718)) __PYX_ERR(1, 228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__718);
  __Pyx_GIVEREF(__pyx_tuple__718);
  __pyx_codeobj__719 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__718, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_draw_pixels, 228, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__719)) __PYX_ERR(1, 228, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":238
 *         mjr_drawPixels(&image_view[0], NULL, viewport, &self._con)
 * 
 *     def move_camera(self, int action, double reldx, double reldy):             # <<<<<<<<<<<<<<
 *         """ Moves the camera based on mouse movements. Action is one of mjMOUSE_*. """
 *         mjv_moveCamera(self._model_ptr, action, reldx, reldy, &self._scn, &self._cam)
 */
  __pyx_tuple__720 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_action, __pyx_n_s_reldx, __pyx_n_s_reldy); if (unlikely(!__pyx_tuple__720)) __PYX_ERR(1, 238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__720);
  __Pyx_GIVEREF(__pyx_tuple__720);
  __pyx_codeobj__721 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__720, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_move_camera, 238, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__721)) __PYX_ERR(1, 238, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":242
 *         mjv_moveCamera(self._model_ptr, action, reldx, reldy, &self._scn, &self._cam)
 * 
 *     def add_overlay(self, int gridpos, str text1, str text2):             # <<<<<<<<<<<<<<
 *         """ Overlays text on the scene. """
 *         if gridpos not in self._overlay:
 */
  __pyx_tuple__722 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_gridpos, __pyx_n_s_text1, __pyx_n_s_text2); if (unlikely(!__pyx_tuple__722)) __PYX_ERR(1, 242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__722);
  __Pyx_GIVEREF(__pyx_tuple__722);
  __pyx_codeobj__723 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__722, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_add_overlay, 242, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__723)) __PYX_ERR(1, 242, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":249
 *         self._overlay[gridpos][1] += text2 + "\n"
 * 
 *     def add_marker(self, **marker_params):             # <<<<<<<<<<<<<<
 *         self._markers.append(marker_params)
 * 
 */
  __pyx_tuple__724 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_marker_params); if (unlikely(!__pyx_tuple__724)) __PYX_ERR(1, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__724);
  __Pyx_GIVEREF(__pyx_tuple__724);
  __pyx_codeobj__725 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__724, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_add_marker, 249, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__725)) __PYX_ERR(1, 249, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":252
 *         self._markers.append(marker_params)
 * 
 *     def _add_marker_to_scene(self, marker_params):             # <<<<<<<<<<<<<<
 *         """ Adds marker to scene, and returns the corresponding object. """
 *         if self._scn.ngeom >= self._scn.maxgeom:
 */
  __pyx_tuple__726 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_marker_params, __pyx_n_s_g, __pyx_n_s_wrapped, __pyx_n_s_key, __pyx_n_s_value, __pyx_n_s_attr); if (unlikely(!__pyx_tuple__726)) __PYX_ERR(1, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__726);
  __Pyx_GIVEREF(__pyx_tuple__726);
  __pyx_codeobj__727 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__726, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_add_marker_to_scene, 252, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__727)) __PYX_ERR(1, 252, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_codeobj__728 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__728)) __PYX_ERR(3, 1, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_codeobj__729 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__729)) __PYX_ERR(3, 3, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":305
 * class MjRenderContextOffscreen(MjRenderContext):
 * 
 *     def __cinit__(self, MjSim sim, int device_id):             # <<<<<<<<<<<<<<
 *         super().__init__(sim, offscreen=True, device_id=device_id)
 * 
 */
  __pyx_tuple__730 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_sim, __pyx_n_s_device_id); if (unlikely(!__pyx_tuple__730)) __PYX_ERR(1, 305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__730);
  __Pyx_GIVEREF(__pyx_tuple__730);
  __pyx_codeobj__731 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__730, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_cinit, 305, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__731)) __PYX_ERR(1, 305, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":310
 * class MjRenderContextWindow(MjRenderContext):
 * 
 *     def __init__(self, MjSim sim):             # <<<<<<<<<<<<<<
 *         super().__init__(sim, offscreen=False)
 *         self.render_swap_callback = None
 */
  __pyx_tuple__732 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_sim); if (unlikely(!__pyx_tuple__732)) __PYX_ERR(1, 310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__732);
  __Pyx_GIVEREF(__pyx_tuple__732);
  __pyx_codeobj__733 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__732, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_init_2, 310, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__733)) __PYX_ERR(1, 310, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":317
 *             "Only GlfwContext supported for windowed rendering")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def window(self):
 *         return self.opengl_context.window
 */
  __pyx_codeobj__734 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_window, 317, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__734)) __PYX_ERR(1, 317, __pyx_L1_error)

  /* "mujoco_py/mjrendercontext.pyx":321
 *         return self.opengl_context.window
 * 
 *     def render(self):             # <<<<<<<<<<<<<<
 *         if self.window is None or glfw.window_should_close(self.window):
 *             return
 */
  __pyx_codeobj__735 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjrendercontext_pyx, __pyx_n_s_render, 321, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__735)) __PYX_ERR(1, 321, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":2
 * try:
 *     import pycuda.driver as drv             # <<<<<<<<<<<<<<
 * except ImportError:
 *     drv = None
 */
  __pyx_tuple__736 = PyTuple_Pack(2, __pyx_n_s_pycuda, __pyx_n_s_driver); if (unlikely(!__pyx_tuple__736)) __PYX_ERR(2, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__736);
  __Pyx_GIVEREF(__pyx_tuple__736);

  /* "mujoco_py/mjbatchrenderer.pyx":27
 * 
 * 
 * class MjBatchRenderer(object):             # <<<<<<<<<<<<<<
 *     """
 *     Utility class for rendering into OpenGL Pixel Buffer Objects (PBOs),
 */
  __pyx_tuple__737 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__737)) __PYX_ERR(2, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__737);
  __Pyx_GIVEREF(__pyx_tuple__737);
  __pyx_tuple__738 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__738)) __PYX_ERR(2, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__738);
  __Pyx_GIVEREF(__pyx_tuple__738);

  /* "mujoco_py/mjbatchrenderer.pyx":44
 *     """
 * 
 *     def __init__(self, width, height, batch_size=1, device_id=0,             # <<<<<<<<<<<<<<
 *                  depth=False, use_cuda=False):
 *         """
 */
  __pyx_tuple__739 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_width, __pyx_n_s_height, __pyx_n_s_batch_size, __pyx_n_s_device_id, __pyx_n_s_depth, __pyx_n_s_use_cuda); if (unlikely(!__pyx_tuple__739)) __PYX_ERR(2, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__739);
  __Pyx_GIVEREF(__pyx_tuple__739);
  __pyx_codeobj__740 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__739, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjbatchrenderer_pyx, __pyx_n_s_init_2, 44, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__740)) __PYX_ERR(2, 44, __pyx_L1_error)
  __pyx_tuple__741 = PyTuple_Pack(4, ((PyObject *)__pyx_int_1), ((PyObject *)__pyx_int_0), ((PyObject *)Py_False), ((PyObject *)Py_False)); if (unlikely(!__pyx_tuple__741)) __PYX_ERR(2, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__741);
  __Pyx_GIVEREF(__pyx_tuple__741);

  /* "mujoco_py/mjbatchrenderer.pyx":86
 *             self._init_cuda()
 * 
 *     def _init_cuda(self):             # <<<<<<<<<<<<<<
 *         if drv is None:
 *             raise ImportError("Failed to import pycuda.")
 */
  __pyx_tuple__742 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_RegisteredBuffer, __pyx_n_s_device); if (unlikely(!__pyx_tuple__742)) __PYX_ERR(2, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__742);
  __Pyx_GIVEREF(__pyx_tuple__742);
  __pyx_codeobj__743 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__742, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjbatchrenderer_pyx, __pyx_n_s_init_cuda, 86, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__743)) __PYX_ERR(2, 86, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":102
 *             self._cuda_depth_pbo = RegisteredBuffer(self.pbo_depth)
 * 
 *     def map(self):             # <<<<<<<<<<<<<<
 *         """ Map OpenGL buffer to CUDA for reading. """
 *         if not self._use_cuda:
 */
  __pyx_tuple__744 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_ptr); if (unlikely(!__pyx_tuple__744)) __PYX_ERR(2, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__744);
  __Pyx_GIVEREF(__pyx_tuple__744);
  __pyx_codeobj__745 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__744, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjbatchrenderer_pyx, __pyx_n_s_map, 102, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__745)) __PYX_ERR(2, 102, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":139
 *         self._cuda_buffers_are_mapped = True
 * 
 *     def unmap(self):             # <<<<<<<<<<<<<<
 *         """ Unmap OpenGL buffer from CUDA so that it can be rendered into. """
 *         if not self._use_cuda:
 */
  __pyx_codeobj__746 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjbatchrenderer_pyx, __pyx_n_s_unmap, 139, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__746)) __PYX_ERR(2, 139, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":157
 *         self._cuda_buffers_are_mapped = False
 * 
 *     def prepare_render_context(self, sim):             # <<<<<<<<<<<<<<
 *         """
 *         Set up the rendering context for an MjSim. Also happens automatically
 */
  __pyx_tuple__747 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_sim, __pyx_n_s_c); if (unlikely(!__pyx_tuple__747)) __PYX_ERR(2, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__747);
  __Pyx_GIVEREF(__pyx_tuple__747);
  __pyx_codeobj__748 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__747, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjbatchrenderer_pyx, __pyx_n_s_prepare_render_context, 157, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__748)) __PYX_ERR(2, 157, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":170
 *         return MjRenderContext(sim, device_id=self._device_id)
 * 
 *     def render(self, sim, camera_id=None, batch_offset=None):             # <<<<<<<<<<<<<<
 *         """
 *         Render current scene from the MjSim into the buffer. By
 */
  __pyx_tuple__749 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_sim, __pyx_n_s_camera_id, __pyx_n_s_batch_offset, __pyx_n_s_render_context, __pyx_n_s_viewport, __pyx_n_s_con); if (unlikely(!__pyx_tuple__749)) __PYX_ERR(2, 170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__749);
  __Pyx_GIVEREF(__pyx_tuple__749);
  __pyx_codeobj__750 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__749, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjbatchrenderer_pyx, __pyx_n_s_render, 170, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__750)) __PYX_ERR(2, 170, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":214
 *         self._current_batch_offset = (self._current_batch_offset + 1) % self._batch_size
 * 
 *     def read(self):             # <<<<<<<<<<<<<<
 *         """
 *         Transfer a copy of the buffer from the GPU to the CPU as a numpy array.
 */
  __pyx_codeobj__751 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjbatchrenderer_pyx, __pyx_n_s_read, 214, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__751)) __PYX_ERR(2, 214, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":227
 *             return self._read_nocuda()
 * 
 *     def _read_cuda(self):             # <<<<<<<<<<<<<<
 *         if not self._cuda_buffers_are_mapped:
 *             raise CudaBufferNotMappedError(
 */
  __pyx_tuple__752 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_rgb_arr, __pyx_n_s_depth_arr); if (unlikely(!__pyx_tuple__752)) __PYX_ERR(2, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__752);
  __Pyx_GIVEREF(__pyx_tuple__752);
  __pyx_codeobj__753 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__752, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjbatchrenderer_pyx, __pyx_n_s_read_cuda, 227, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__753)) __PYX_ERR(2, 227, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":247
 *         return rgb_arr, depth_arr
 * 
 *     def _read_nocuda(self):             # <<<<<<<<<<<<<<
 *         rgb_arr = np.zeros(3 * self._width * self._height * self._batch_size, dtype=np.uint8)
 *         cdef unsigned char[::view.contiguous] rgb_view = rgb_arr
 */
  __pyx_tuple__754 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_rgb_arr, __pyx_n_s_rgb_view, __pyx_n_s_depth_arr, __pyx_n_s_depth_view); if (unlikely(!__pyx_tuple__754)) __PYX_ERR(2, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__754);
  __Pyx_GIVEREF(__pyx_tuple__754);
  __pyx_codeobj__755 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__754, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjbatchrenderer_pyx, __pyx_n_s_read_nocuda, 247, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__755)) __PYX_ERR(2, 247, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":266
 *         return rgb_arr, depth_arr
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def cuda_rgb_buffer_pointer(self):
 *         """ Pointer to CUDA buffer for RGB batch. """
 */
  __pyx_codeobj__756 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjbatchrenderer_pyx, __pyx_n_s_cuda_rgb_buffer_pointer, 266, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__756)) __PYX_ERR(2, 266, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":275
 *         return self._cuda_rgb_ptr
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def cuda_depth_buffer_pointer(self):
 *         """ Pointer to CUDA buffer for depth batch. """
 */
  __pyx_codeobj__757 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjbatchrenderer_pyx, __pyx_n_s_cuda_depth_buffer_pointer, 275, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__757)) __PYX_ERR(2, 275, __pyx_L1_error)

  /* "mujoco_py/mjbatchrenderer.pyx":286
 *         return self._cuda_depth_ptr
 * 
 *     def __del__(self):             # <<<<<<<<<<<<<<
 *         if self._use_cuda:
 *             self._cuda_context.push()
 */
  __pyx_codeobj__758 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjbatchrenderer_pyx, __pyx_n_s_del, 286, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__758)) __PYX_ERR(2, 286, __pyx_L1_error)

  /* "mujoco_py/mjpid.pyx":271
 *     return c_pid_bias(m, d, id)
 * 
 * def set_pid_control(m, d):             # <<<<<<<<<<<<<<
 *     global mjcb_act_gain
 *     global mjcb_act_bias
 */
  __pyx_tuple__759 = PyTuple_Pack(3, __pyx_n_s_m, __pyx_n_s_d, __pyx_n_s_i); if (unlikely(!__pyx_tuple__759)) __PYX_ERR(9, 271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__759);
  __Pyx_GIVEREF(__pyx_tuple__759);
  __pyx_codeobj__760 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__759, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_mjpid_pyx, __pyx_n_s_set_pid_control, 271, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__760)) __PYX_ERR(9, 271, __pyx_L1_error)

  /* "mujoco_py/cymj.pyx":83
 * 
 * 
 * def set_warning_callback(warn):             # <<<<<<<<<<<<<<
 *     '''
 *     Set a user-defined warning callback.  It should take in a string message
 */
  __pyx_tuple__761 = PyTuple_Pack(1, __pyx_n_s_warn); if (unlikely(!__pyx_tuple__761)) __PYX_ERR(7, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__761);
  __Pyx_GIVEREF(__pyx_tuple__761);
  __pyx_codeobj__762 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__761, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_cymj_pyx, __pyx_n_s_set_warning_callback, 83, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__762)) __PYX_ERR(7, 83, __pyx_L1_error)

  /* "mujoco_py/cymj.pyx":95
 * 
 * 
 * def get_warning_callback():             # <<<<<<<<<<<<<<
 *     '''
 *     Returns the user-defined warning callback, for use in e.g. a context
 */
  __pyx_codeobj__763 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_cymj_pyx, __pyx_n_s_get_warning_callback, 95, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__763)) __PYX_ERR(7, 95, __pyx_L1_error)

  /* "mujoco_py/cymj.pyx":118
 * 
 * 
 * def set_error_callback(err_callback):             # <<<<<<<<<<<<<<
 *     '''
 *     Set a user-defined error callback.  It should take in a string message
 */
  __pyx_tuple__764 = PyTuple_Pack(1, __pyx_n_s_err_callback); if (unlikely(!__pyx_tuple__764)) __PYX_ERR(7, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__764);
  __Pyx_GIVEREF(__pyx_tuple__764);
  __pyx_codeobj__765 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__764, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_cymj_pyx, __pyx_n_s_set_error_callback, 118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__765)) __PYX_ERR(7, 118, __pyx_L1_error)

  /* "mujoco_py/cymj.pyx":130
 * 
 * 
 * def get_error_callback():             # <<<<<<<<<<<<<<
 *     '''
 *     Returns the user-defined warning callback, for use in e.g. a context
 */
  __pyx_codeobj__766 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_cymj_pyx, __pyx_n_s_get_error_callback, 130, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__766)) __PYX_ERR(7, 130, __pyx_L1_error)

  /* "mujoco_py/cymj.pyx":139
 * 
 * 
 * class wrap_mujoco_warning(object):             # <<<<<<<<<<<<<<
 *     '''
 *     Class to wrap capturing exceptions raised during warning callbacks.
 */
  __pyx_tuple__767 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__767)) __PYX_ERR(7, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__767);
  __Pyx_GIVEREF(__pyx_tuple__767);
  __pyx_tuple__768 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__768)) __PYX_ERR(7, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__768);
  __Pyx_GIVEREF(__pyx_tuple__768);

  /* "mujoco_py/cymj.pyx":146
 *             mj_somefunc()
 *     '''
 *     def __enter__(self):             # <<<<<<<<<<<<<<
 *         global py_warning_exception
 *         py_warning_exception = None
 */
  __pyx_codeobj__769 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_cymj_pyx, __pyx_n_s_enter, 146, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__769)) __PYX_ERR(7, 146, __pyx_L1_error)

  /* "mujoco_py/cymj.pyx":151
 *         global py_error_exception
 *         py_error_exception = None
 *     def __exit__(self, type, value, traceback):             # <<<<<<<<<<<<<<
 *         global py_warning_exception
 *         global py_error_exception
 */
  __pyx_tuple__770 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_type, __pyx_n_s_value, __pyx_n_s_traceback); if (unlikely(!__pyx_tuple__770)) __PYX_ERR(7, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__770);
  __Pyx_GIVEREF(__pyx_tuple__770);
  __pyx_codeobj__771 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__770, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_cymj_pyx, __pyx_n_s_exit, 151, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__771)) __PYX_ERR(7, 151, __pyx_L1_error)

  /* "mujoco_py/cymj.pyx":162
 * 
 * 
 * def load_model_from_path(str path):             # <<<<<<<<<<<<<<
 *     """Loads model from path."""
 *     cdef char errstr[300]
 */
  __pyx_tuple__772 = PyTuple_Pack(3, __pyx_n_s_path, __pyx_n_s_errstr, __pyx_n_s_model); if (unlikely(!__pyx_tuple__772)) __PYX_ERR(7, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__772);
  __Pyx_GIVEREF(__pyx_tuple__772);
  __pyx_codeobj__773 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__772, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_cymj_pyx, __pyx_n_s_load_model_from_path, 162, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__773)) __PYX_ERR(7, 162, __pyx_L1_error)

  /* "mujoco_py/cymj.pyx":178
 *     return WrapMjModel(model)
 * 
 * def load_model_from_xml(str xml_str):             # <<<<<<<<<<<<<<
 *     """
 *     Loads and returns a PyMjModel model from a string containing XML markup.
 */
  __pyx_tuple__774 = PyTuple_Pack(4, __pyx_n_s_xml_str, __pyx_n_s_errstr, __pyx_n_s_model, __pyx_n_s_fp); if (unlikely(!__pyx_tuple__774)) __PYX_ERR(7, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__774);
  __Pyx_GIVEREF(__pyx_tuple__774);
  __pyx_codeobj__775 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__774, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_cymj_pyx, __pyx_n_s_load_model_from_xml, 178, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__775)) __PYX_ERR(7, 178, __pyx_L1_error)

  /* "mujoco_py/cymj.pyx":195
 * 
 * 
 * def load_model_from_mjb(bytes mjb_bytes):             # <<<<<<<<<<<<<<
 *     """
 *     Loads and returns a PyMjModel model from bytes encoded MJB.
 */
  __pyx_tuple__776 = PyTuple_Pack(5, __pyx_n_s_mjb_bytes, __pyx_n_s_model, __pyx_n_s_td, __pyx_n_s_filename, __pyx_n_s_f); if (unlikely(!__pyx_tuple__776)) __PYX_ERR(7, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__776);
  __Pyx_GIVEREF(__pyx_tuple__776);
  __pyx_codeobj__777 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__776, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_mujoco_py_cymj_pyx, __pyx_n_s_load_model_from_mjb, 195, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__777)) __PYX_ERR(7, 195, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}
/* #### Code section: init_constants ### */

static CYTHON_SMALL_CODE int __Pyx_InitConstants(void) {
  __pyx_umethod_PyDict_Type_keys.type = (PyObject*)&PyDict_Type;
  __pyx_umethod_PyDict_Type_keys.method_name = &__pyx_n_s_keys;
  __pyx_umethod_PyDict_Type_values.type = (PyObject*)&PyDict_Type;
  __pyx_umethod_PyDict_Type_values.method_name = &__pyx_n_s_values;
  __pyx_umethod_PyList_Type_pop.type = (PyObject*)&PyList_Type;
  __pyx_umethod_PyList_Type_pop.method_name = &__pyx_n_s_pop;
  if (__Pyx_CreateStringTabAndInitStrings() < 0) __PYX_ERR(7, 1, __pyx_L1_error);
  __pyx_float_0_0 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_float_0_0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_float_0_1 = PyFloat_FromDouble(0.1); if (unlikely(!__pyx_float_0_1)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_int_6 = PyInt_FromLong(6); if (unlikely(!__pyx_int_6)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_int_7 = PyInt_FromLong(7); if (unlikely(!__pyx_int_7)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_int_256 = PyInt_FromLong(256); if (unlikely(!__pyx_int_256)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_int_1000 = PyInt_FromLong(1000); if (unlikely(!__pyx_int_1000)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_int_65536 = PyInt_FromLong(65536L); if (unlikely(!__pyx_int_65536)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_int_112105877 = PyInt_FromLong(112105877L); if (unlikely(!__pyx_int_112105877)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_int_136983863 = PyInt_FromLong(136983863L); if (unlikely(!__pyx_int_136983863)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_int_184977713 = PyInt_FromLong(184977713L); if (unlikely(!__pyx_int_184977713)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(7, 1, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: init_globals ### */

static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
  /* AssertionsEnabled.init */
  if (likely(__Pyx_init_assertions_enabled() == 0)); else

if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 1, __pyx_L1_error)

  /* NumpyImportArray.init */
  /*
 * Cython has automatically inserted a call to _import_array since
 * you didn't include one when you cimported numpy. To disable this
 * add the line
 *   <void>numpy._import_array
 */
#ifdef NPY_FEATURE_VERSION
#ifndef NO_IMPORT_ARRAY
if (unlikely(_import_array() == -1)) {
    PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import "
    "(auto-generated because you didn't call 'numpy.import_array()' after cimporting numpy; "
    "use '<void>numpy._import_array' to disable if you are certain you don't need it).");
}
#endif
#endif

if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 1, __pyx_L1_error)

  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: init_module ### */

static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/

static int __Pyx_modinit_global_init_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
  /*--- Global init code ---*/
  __pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT = Py_None; Py_INCREF(Py_None);
  __pyx_v_9mujoco_py_4cymj_py_warning_callback = Py_None; Py_INCREF(Py_None);
  __pyx_v_9mujoco_py_4cymj_py_error_callback = Py_None; Py_INCREF(Py_None);
  __pyx_v_9mujoco_py_4cymj_py_warning_exception = Py_None; Py_INCREF(Py_None);
  __pyx_v_9mujoco_py_4cymj_py_error_exception = Py_None; Py_INCREF(Py_None);
  __pyx_collections_abc_Sequence = Py_None; Py_INCREF(Py_None);
  generic = Py_None; Py_INCREF(Py_None);
  strided = Py_None; Py_INCREF(Py_None);
  indirect = Py_None; Py_INCREF(Py_None);
  contiguous = Py_None; Py_INCREF(Py_None);
  indirect_contiguous = Py_None; Py_INCREF(Py_None);
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_variable_export_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
  /*--- Variable export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_export_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
  /*--- Function export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_type_init_code(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
  /*--- Type init code ---*/
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjLROpt = &__pyx_vtable_9mujoco_py_4cymj_PyMjLROpt;
  __pyx_vtable_9mujoco_py_4cymj_PyMjLROpt._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjLROpt *, mjLROpt *))__pyx_f_9mujoco_py_4cymj_9PyMjLROpt__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjLROpt = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjLROpt_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjLROpt)) __PYX_ERR(4, 11, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjLROpt_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjLROpt) < 0) __PYX_ERR(4, 11, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjLROpt = &__pyx_type_9mujoco_py_4cymj_PyMjLROpt;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjLROpt) < 0) __PYX_ERR(4, 11, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjLROpt->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjLROpt->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjLROpt->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjLROpt->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjLROpt, __pyx_vtabptr_9mujoco_py_4cymj_PyMjLROpt) < 0) __PYX_ERR(4, 11, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjLROpt) < 0) __PYX_ERR(4, 11, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjLROpt, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjLROpt) < 0) __PYX_ERR(4, 11, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjLROpt) < 0) __PYX_ERR(4, 11, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjVFS = &__pyx_vtable_9mujoco_py_4cymj_PyMjVFS;
  __pyx_vtable_9mujoco_py_4cymj_PyMjVFS._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVFS *, mjVFS *))__pyx_f_9mujoco_py_4cymj_7PyMjVFS__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjVFS = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjVFS_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVFS)) __PYX_ERR(4, 75, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjVFS_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjVFS) < 0) __PYX_ERR(4, 75, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjVFS = &__pyx_type_9mujoco_py_4cymj_PyMjVFS;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjVFS) < 0) __PYX_ERR(4, 75, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjVFS->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVFS->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjVFS->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjVFS->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjVFS, __pyx_vtabptr_9mujoco_py_4cymj_PyMjVFS) < 0) __PYX_ERR(4, 75, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjVFS) < 0) __PYX_ERR(4, 75, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjVFS, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVFS) < 0) __PYX_ERR(4, 75, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVFS) < 0) __PYX_ERR(4, 75, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjOption = &__pyx_vtable_9mujoco_py_4cymj_PyMjOption;
  __pyx_vtable_9mujoco_py_4cymj_PyMjOption._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjOption *, mjOption *))__pyx_f_9mujoco_py_4cymj_10PyMjOption__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjOption = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjOption_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjOption)) __PYX_ERR(4, 116, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjOption_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjOption) < 0) __PYX_ERR(4, 116, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjOption = &__pyx_type_9mujoco_py_4cymj_PyMjOption;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjOption) < 0) __PYX_ERR(4, 116, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjOption->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjOption->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjOption->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjOption->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjOption, __pyx_vtabptr_9mujoco_py_4cymj_PyMjOption) < 0) __PYX_ERR(4, 116, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjOption) < 0) __PYX_ERR(4, 116, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjOption, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjOption) < 0) __PYX_ERR(4, 116, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjOption) < 0) __PYX_ERR(4, 116, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual = &__pyx_vtable_9mujoco_py_4cymj_PyMjVisual;
  __pyx_vtable_9mujoco_py_4cymj_PyMjVisual._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual *, mjVisual *))__pyx_f_9mujoco_py_4cymj_10PyMjVisual__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjVisual_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVisual)) __PYX_ERR(4, 236, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjVisual_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjVisual) < 0) __PYX_ERR(4, 236, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual = &__pyx_type_9mujoco_py_4cymj_PyMjVisual;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual) < 0) __PYX_ERR(4, 236, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVisual->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjVisual->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjVisual->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual, __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual) < 0) __PYX_ERR(4, 236, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual) < 0) __PYX_ERR(4, 236, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjVisual, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVisual) < 0) __PYX_ERR(4, 236, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVisual) < 0) __PYX_ERR(4, 236, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_global_ = &__pyx_vtable_9mujoco_py_4cymj_PyMjVisual_global_;
  __pyx_vtable_9mujoco_py_4cymj_PyMjVisual_global_._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_global_ *, struct __pyx_t_9mujoco_py_4cymj_mjVisual_global_ *))__pyx_f_9mujoco_py_4cymj_18PyMjVisual_global___set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_ = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjVisual_global__spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_)) __PYX_ERR(4, 284, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjVisual_global__spec, __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_) < 0) __PYX_ERR(4, 284, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_ = &__pyx_type_9mujoco_py_4cymj_PyMjVisual_global_;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_) < 0) __PYX_ERR(4, 284, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_, __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_global_) < 0) __PYX_ERR(4, 284, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_) < 0) __PYX_ERR(4, 284, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjVisual_global, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_) < 0) __PYX_ERR(4, 284, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_global_) < 0) __PYX_ERR(4, 284, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_quality = &__pyx_vtable_9mujoco_py_4cymj_PyMjVisual_quality;
  __pyx_vtable_9mujoco_py_4cymj_PyMjVisual_quality._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_quality *, struct __pyx_t_9mujoco_py_4cymj_mjVisual_quality *))__pyx_f_9mujoco_py_4cymj_18PyMjVisual_quality__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjVisual_quality_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality)) __PYX_ERR(4, 332, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjVisual_quality_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality) < 0) __PYX_ERR(4, 332, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality = &__pyx_type_9mujoco_py_4cymj_PyMjVisual_quality;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality) < 0) __PYX_ERR(4, 332, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality, __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_quality) < 0) __PYX_ERR(4, 332, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality) < 0) __PYX_ERR(4, 332, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjVisual_quality, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality) < 0) __PYX_ERR(4, 332, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_quality) < 0) __PYX_ERR(4, 332, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_headlight = &__pyx_vtable_9mujoco_py_4cymj_PyMjVisual_headlight;
  __pyx_vtable_9mujoco_py_4cymj_PyMjVisual_headlight._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_headlight *, struct __pyx_t_9mujoco_py_4cymj_mjVisual_headlight *))__pyx_f_9mujoco_py_4cymj_20PyMjVisual_headlight__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjVisual_headlight_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight)) __PYX_ERR(4, 376, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjVisual_headlight_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight) < 0) __PYX_ERR(4, 376, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight = &__pyx_type_9mujoco_py_4cymj_PyMjVisual_headlight;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight) < 0) __PYX_ERR(4, 376, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight, __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_headlight) < 0) __PYX_ERR(4, 376, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight) < 0) __PYX_ERR(4, 376, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjVisual_headlight, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight) < 0) __PYX_ERR(4, 376, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_headlight) < 0) __PYX_ERR(4, 376, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_map = &__pyx_vtable_9mujoco_py_4cymj_PyMjVisual_map;
  __pyx_vtable_9mujoco_py_4cymj_PyMjVisual_map._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_map *, struct __pyx_t_9mujoco_py_4cymj_mjVisual_map *))__pyx_f_9mujoco_py_4cymj_14PyMjVisual_map__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjVisual_map_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map)) __PYX_ERR(4, 416, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjVisual_map_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map) < 0) __PYX_ERR(4, 416, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map = &__pyx_type_9mujoco_py_4cymj_PyMjVisual_map;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map) < 0) __PYX_ERR(4, 416, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map, __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_map) < 0) __PYX_ERR(4, 416, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map) < 0) __PYX_ERR(4, 416, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjVisual_map, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map) < 0) __PYX_ERR(4, 416, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_map) < 0) __PYX_ERR(4, 416, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_scale = &__pyx_vtable_9mujoco_py_4cymj_PyMjVisual_scale;
  __pyx_vtable_9mujoco_py_4cymj_PyMjVisual_scale._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_scale *, struct __pyx_t_9mujoco_py_4cymj_mjVisual_scale *))__pyx_f_9mujoco_py_4cymj_16PyMjVisual_scale__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjVisual_scale_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale)) __PYX_ERR(4, 492, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjVisual_scale_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale) < 0) __PYX_ERR(4, 492, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale = &__pyx_type_9mujoco_py_4cymj_PyMjVisual_scale;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale) < 0) __PYX_ERR(4, 492, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale, __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_scale) < 0) __PYX_ERR(4, 492, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale) < 0) __PYX_ERR(4, 492, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjVisual_scale, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale) < 0) __PYX_ERR(4, 492, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_scale) < 0) __PYX_ERR(4, 492, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_rgba = &__pyx_vtable_9mujoco_py_4cymj_PyMjVisual_rgba;
  __pyx_vtable_9mujoco_py_4cymj_PyMjVisual_rgba._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjVisual_rgba *, struct __pyx_t_9mujoco_py_4cymj_mjVisual_rgba *))__pyx_f_9mujoco_py_4cymj_15PyMjVisual_rgba__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjVisual_rgba_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba)) __PYX_ERR(4, 580, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjVisual_rgba_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba) < 0) __PYX_ERR(4, 580, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba = &__pyx_type_9mujoco_py_4cymj_PyMjVisual_rgba;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba) < 0) __PYX_ERR(4, 580, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba, __pyx_vtabptr_9mujoco_py_4cymj_PyMjVisual_rgba) < 0) __PYX_ERR(4, 580, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba) < 0) __PYX_ERR(4, 580, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjVisual_rgba, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba) < 0) __PYX_ERR(4, 580, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjVisual_rgba) < 0) __PYX_ERR(4, 580, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjStatistic = &__pyx_vtable_9mujoco_py_4cymj_PyMjStatistic;
  __pyx_vtable_9mujoco_py_4cymj_PyMjStatistic._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjStatistic *, mjStatistic *))__pyx_f_9mujoco_py_4cymj_13PyMjStatistic__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjStatistic = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjStatistic_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjStatistic)) __PYX_ERR(4, 692, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjStatistic_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjStatistic) < 0) __PYX_ERR(4, 692, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjStatistic = &__pyx_type_9mujoco_py_4cymj_PyMjStatistic;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjStatistic) < 0) __PYX_ERR(4, 692, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjStatistic->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjStatistic->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjStatistic->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjStatistic->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjStatistic, __pyx_vtabptr_9mujoco_py_4cymj_PyMjStatistic) < 0) __PYX_ERR(4, 692, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjStatistic) < 0) __PYX_ERR(4, 692, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjStatistic, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjStatistic) < 0) __PYX_ERR(4, 692, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjStatistic) < 0) __PYX_ERR(4, 692, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjModel = &__pyx_vtable_9mujoco_py_4cymj_PyMjModel;
  __pyx_vtable_9mujoco_py_4cymj_PyMjModel._extract_mj_names = (PyObject *(*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *, mjModel *, int *, int, mjtObj))__pyx_f_9mujoco_py_4cymj_9PyMjModel__extract_mj_names;
  __pyx_vtable_9mujoco_py_4cymj_PyMjModel._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *, mjModel *))__pyx_f_9mujoco_py_4cymj_9PyMjModel__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjModel = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjModel_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjModel)) __PYX_ERR(4, 736, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjModel_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjModel) < 0) __PYX_ERR(4, 736, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjModel = &__pyx_type_9mujoco_py_4cymj_PyMjModel;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjModel) < 0) __PYX_ERR(4, 736, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjModel->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjModel->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjModel->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjModel->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_vtabptr_9mujoco_py_4cymj_PyMjModel) < 0) __PYX_ERR(4, 736, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjModel) < 0) __PYX_ERR(4, 736, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjModel, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjModel) < 0) __PYX_ERR(4, 736, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjModel) < 0) __PYX_ERR(4, 736, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjContact = &__pyx_vtable_9mujoco_py_4cymj_PyMjContact;
  __pyx_vtable_9mujoco_py_4cymj_PyMjContact._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjContact *, mjContact *))__pyx_f_9mujoco_py_4cymj_11PyMjContact__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjContact = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjContact_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjContact)) __PYX_ERR(4, 2291, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjContact_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjContact) < 0) __PYX_ERR(4, 2291, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjContact = &__pyx_type_9mujoco_py_4cymj_PyMjContact;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjContact) < 0) __PYX_ERR(4, 2291, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjContact->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjContact->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjContact->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjContact->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjContact, __pyx_vtabptr_9mujoco_py_4cymj_PyMjContact) < 0) __PYX_ERR(4, 2291, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjContact) < 0) __PYX_ERR(4, 2291, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjContact, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjContact) < 0) __PYX_ERR(4, 2291, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjContact) < 0) __PYX_ERR(4, 2291, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjWarningStat = &__pyx_vtable_9mujoco_py_4cymj_PyMjWarningStat;
  __pyx_vtable_9mujoco_py_4cymj_PyMjWarningStat._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjWarningStat *, mjWarningStat *))__pyx_f_9mujoco_py_4cymj_15PyMjWarningStat__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjWarningStat_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat)) __PYX_ERR(4, 2371, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjWarningStat_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat) < 0) __PYX_ERR(4, 2371, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat = &__pyx_type_9mujoco_py_4cymj_PyMjWarningStat;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat) < 0) __PYX_ERR(4, 2371, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat, __pyx_vtabptr_9mujoco_py_4cymj_PyMjWarningStat) < 0) __PYX_ERR(4, 2371, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat) < 0) __PYX_ERR(4, 2371, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjWarningStat, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat) < 0) __PYX_ERR(4, 2371, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjWarningStat) < 0) __PYX_ERR(4, 2371, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjTimerStat = &__pyx_vtable_9mujoco_py_4cymj_PyMjTimerStat;
  __pyx_vtable_9mujoco_py_4cymj_PyMjTimerStat._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjTimerStat *, mjTimerStat *))__pyx_f_9mujoco_py_4cymj_13PyMjTimerStat__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjTimerStat_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat)) __PYX_ERR(4, 2403, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjTimerStat_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat) < 0) __PYX_ERR(4, 2403, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat = &__pyx_type_9mujoco_py_4cymj_PyMjTimerStat;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat) < 0) __PYX_ERR(4, 2403, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat, __pyx_vtabptr_9mujoco_py_4cymj_PyMjTimerStat) < 0) __PYX_ERR(4, 2403, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat) < 0) __PYX_ERR(4, 2403, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjTimerStat, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat) < 0) __PYX_ERR(4, 2403, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjTimerStat) < 0) __PYX_ERR(4, 2403, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjSolverStat = &__pyx_vtable_9mujoco_py_4cymj_PyMjSolverStat;
  __pyx_vtable_9mujoco_py_4cymj_PyMjSolverStat._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjSolverStat *, mjSolverStat *))__pyx_f_9mujoco_py_4cymj_14PyMjSolverStat__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjSolverStat_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat)) __PYX_ERR(4, 2435, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjSolverStat_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat) < 0) __PYX_ERR(4, 2435, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat = &__pyx_type_9mujoco_py_4cymj_PyMjSolverStat;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat) < 0) __PYX_ERR(4, 2435, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat, __pyx_vtabptr_9mujoco_py_4cymj_PyMjSolverStat) < 0) __PYX_ERR(4, 2435, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat) < 0) __PYX_ERR(4, 2435, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjSolverStat, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat) < 0) __PYX_ERR(4, 2435, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjSolverStat) < 0) __PYX_ERR(4, 2435, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjData = &__pyx_vtable_9mujoco_py_4cymj_PyMjData;
  __pyx_vtable_9mujoco_py_4cymj_PyMjData._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjData *, mjData *, struct __pyx_obj_9mujoco_py_4cymj_PyMjModel *))__pyx_f_9mujoco_py_4cymj_8PyMjData__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjData = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjData_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjData)) __PYX_ERR(4, 2487, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjData_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjData) < 0) __PYX_ERR(4, 2487, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjData = &__pyx_type_9mujoco_py_4cymj_PyMjData;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjData) < 0) __PYX_ERR(4, 2487, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjData->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjData->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjData->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjData->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_vtabptr_9mujoco_py_4cymj_PyMjData) < 0) __PYX_ERR(4, 2487, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjData) < 0) __PYX_ERR(4, 2487, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjData, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjData) < 0) __PYX_ERR(4, 2487, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjData) < 0) __PYX_ERR(4, 2487, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjvPerturb = &__pyx_vtable_9mujoco_py_4cymj_PyMjvPerturb;
  __pyx_vtable_9mujoco_py_4cymj_PyMjvPerturb._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvPerturb *, mjvPerturb *))__pyx_f_9mujoco_py_4cymj_12PyMjvPerturb__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjvPerturb_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb)) __PYX_ERR(4, 3315, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjvPerturb_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb) < 0) __PYX_ERR(4, 3315, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb = &__pyx_type_9mujoco_py_4cymj_PyMjvPerturb;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb) < 0) __PYX_ERR(4, 3315, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb, __pyx_vtabptr_9mujoco_py_4cymj_PyMjvPerturb) < 0) __PYX_ERR(4, 3315, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb) < 0) __PYX_ERR(4, 3315, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjvPerturb, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb) < 0) __PYX_ERR(4, 3315, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvPerturb) < 0) __PYX_ERR(4, 3315, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjvCamera = &__pyx_vtable_9mujoco_py_4cymj_PyMjvCamera;
  __pyx_vtable_9mujoco_py_4cymj_PyMjvCamera._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvCamera *, mjvCamera *))__pyx_f_9mujoco_py_4cymj_11PyMjvCamera__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjvCamera = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjvCamera_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvCamera)) __PYX_ERR(4, 3371, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjvCamera_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjvCamera) < 0) __PYX_ERR(4, 3371, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjvCamera = &__pyx_type_9mujoco_py_4cymj_PyMjvCamera;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjvCamera) < 0) __PYX_ERR(4, 3371, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjvCamera->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvCamera->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjvCamera->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjvCamera->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjvCamera, __pyx_vtabptr_9mujoco_py_4cymj_PyMjvCamera) < 0) __PYX_ERR(4, 3371, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjvCamera) < 0) __PYX_ERR(4, 3371, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjvCamera, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvCamera) < 0) __PYX_ERR(4, 3371, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvCamera) < 0) __PYX_ERR(4, 3371, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjvGLCamera = &__pyx_vtable_9mujoco_py_4cymj_PyMjvGLCamera;
  __pyx_vtable_9mujoco_py_4cymj_PyMjvGLCamera._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGLCamera *, mjvGLCamera *))__pyx_f_9mujoco_py_4cymj_13PyMjvGLCamera__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjvGLCamera_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera)) __PYX_ERR(4, 3423, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjvGLCamera_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera) < 0) __PYX_ERR(4, 3423, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera = &__pyx_type_9mujoco_py_4cymj_PyMjvGLCamera;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera) < 0) __PYX_ERR(4, 3423, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera, __pyx_vtabptr_9mujoco_py_4cymj_PyMjvGLCamera) < 0) __PYX_ERR(4, 3423, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera) < 0) __PYX_ERR(4, 3423, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjvGLCamera, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera) < 0) __PYX_ERR(4, 3423, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvGLCamera) < 0) __PYX_ERR(4, 3423, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjvGeom = &__pyx_vtable_9mujoco_py_4cymj_PyMjvGeom;
  __pyx_vtable_9mujoco_py_4cymj_PyMjvGeom._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvGeom *, mjvGeom *))__pyx_f_9mujoco_py_4cymj_9PyMjvGeom__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjvGeom = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjvGeom_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvGeom)) __PYX_ERR(4, 3479, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjvGeom_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjvGeom) < 0) __PYX_ERR(4, 3479, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjvGeom = &__pyx_type_9mujoco_py_4cymj_PyMjvGeom;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjvGeom) < 0) __PYX_ERR(4, 3479, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjvGeom->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvGeom->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjvGeom->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjvGeom->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjvGeom, __pyx_vtabptr_9mujoco_py_4cymj_PyMjvGeom) < 0) __PYX_ERR(4, 3479, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjvGeom) < 0) __PYX_ERR(4, 3479, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjvGeom, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvGeom) < 0) __PYX_ERR(4, 3479, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvGeom) < 0) __PYX_ERR(4, 3479, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjvLight = &__pyx_vtable_9mujoco_py_4cymj_PyMjvLight;
  __pyx_vtable_9mujoco_py_4cymj_PyMjvLight._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvLight *, mjvLight *))__pyx_f_9mujoco_py_4cymj_10PyMjvLight__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjvLight = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjvLight_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvLight)) __PYX_ERR(4, 3591, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjvLight_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjvLight) < 0) __PYX_ERR(4, 3591, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjvLight = &__pyx_type_9mujoco_py_4cymj_PyMjvLight;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjvLight) < 0) __PYX_ERR(4, 3591, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjvLight->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvLight->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjvLight->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjvLight->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjvLight, __pyx_vtabptr_9mujoco_py_4cymj_PyMjvLight) < 0) __PYX_ERR(4, 3591, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjvLight) < 0) __PYX_ERR(4, 3591, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjvLight, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvLight) < 0) __PYX_ERR(4, 3591, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvLight) < 0) __PYX_ERR(4, 3591, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjvOption = &__pyx_vtable_9mujoco_py_4cymj_PyMjvOption;
  __pyx_vtable_9mujoco_py_4cymj_PyMjvOption._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvOption *, mjvOption *))__pyx_f_9mujoco_py_4cymj_11PyMjvOption__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjvOption = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjvOption_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvOption)) __PYX_ERR(4, 3659, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjvOption_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjvOption) < 0) __PYX_ERR(4, 3659, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjvOption = &__pyx_type_9mujoco_py_4cymj_PyMjvOption;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjvOption) < 0) __PYX_ERR(4, 3659, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjvOption->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvOption->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjvOption->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjvOption->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjvOption, __pyx_vtabptr_9mujoco_py_4cymj_PyMjvOption) < 0) __PYX_ERR(4, 3659, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjvOption) < 0) __PYX_ERR(4, 3659, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjvOption, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvOption) < 0) __PYX_ERR(4, 3659, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvOption) < 0) __PYX_ERR(4, 3659, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjvScene = &__pyx_vtable_9mujoco_py_4cymj_PyMjvScene;
  __pyx_vtable_9mujoco_py_4cymj_PyMjvScene._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvScene *, mjvScene *))__pyx_f_9mujoco_py_4cymj_10PyMjvScene__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjvScene = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjvScene_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvScene)) __PYX_ERR(4, 3715, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjvScene_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjvScene) < 0) __PYX_ERR(4, 3715, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjvScene = &__pyx_type_9mujoco_py_4cymj_PyMjvScene;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjvScene) < 0) __PYX_ERR(4, 3715, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjvScene->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvScene->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjvScene->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjvScene->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjvScene, __pyx_vtabptr_9mujoco_py_4cymj_PyMjvScene) < 0) __PYX_ERR(4, 3715, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjvScene) < 0) __PYX_ERR(4, 3715, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjvScene, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvScene) < 0) __PYX_ERR(4, 3715, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvScene) < 0) __PYX_ERR(4, 3715, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjvFigure = &__pyx_vtable_9mujoco_py_4cymj_PyMjvFigure;
  __pyx_vtable_9mujoco_py_4cymj_PyMjvFigure._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjvFigure *, mjvFigure *))__pyx_f_9mujoco_py_4cymj_11PyMjvFigure__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjvFigure = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjvFigure_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvFigure)) __PYX_ERR(4, 3795, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjvFigure_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjvFigure) < 0) __PYX_ERR(4, 3795, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjvFigure = &__pyx_type_9mujoco_py_4cymj_PyMjvFigure;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjvFigure) < 0) __PYX_ERR(4, 3795, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjvFigure->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjvFigure->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjvFigure->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjvFigure->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjvFigure, __pyx_vtabptr_9mujoco_py_4cymj_PyMjvFigure) < 0) __PYX_ERR(4, 3795, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjvFigure) < 0) __PYX_ERR(4, 3795, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjvFigure, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvFigure) < 0) __PYX_ERR(4, 3795, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjvFigure) < 0) __PYX_ERR(4, 3795, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjrRect = &__pyx_vtable_9mujoco_py_4cymj_PyMjrRect;
  __pyx_vtable_9mujoco_py_4cymj_PyMjrRect._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjrRect *, mjrRect *))__pyx_f_9mujoco_py_4cymj_9PyMjrRect__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjrRect = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjrRect_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjrRect)) __PYX_ERR(4, 3951, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjrRect_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjrRect) < 0) __PYX_ERR(4, 3951, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjrRect = &__pyx_type_9mujoco_py_4cymj_PyMjrRect;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjrRect) < 0) __PYX_ERR(4, 3951, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjrRect->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjrRect->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjrRect->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjrRect->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjrRect, __pyx_vtabptr_9mujoco_py_4cymj_PyMjrRect) < 0) __PYX_ERR(4, 3951, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjrRect) < 0) __PYX_ERR(4, 3951, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjrRect, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjrRect) < 0) __PYX_ERR(4, 3951, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjrRect) < 0) __PYX_ERR(4, 3951, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjrContext = &__pyx_vtable_9mujoco_py_4cymj_PyMjrContext;
  __pyx_vtable_9mujoco_py_4cymj_PyMjrContext._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjrContext *, mjrContext *))__pyx_f_9mujoco_py_4cymj_12PyMjrContext__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjrContext = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjrContext_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjrContext)) __PYX_ERR(4, 3996, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjrContext_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjrContext) < 0) __PYX_ERR(4, 3996, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjrContext = &__pyx_type_9mujoco_py_4cymj_PyMjrContext;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjrContext) < 0) __PYX_ERR(4, 3996, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjrContext->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjrContext->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjrContext->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjrContext->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjrContext, __pyx_vtabptr_9mujoco_py_4cymj_PyMjrContext) < 0) __PYX_ERR(4, 3996, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjrContext) < 0) __PYX_ERR(4, 3996, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjrContext, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjrContext) < 0) __PYX_ERR(4, 3996, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjrContext) < 0) __PYX_ERR(4, 3996, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiState = &__pyx_vtable_9mujoco_py_4cymj_PyMjuiState;
  __pyx_vtable_9mujoco_py_4cymj_PyMjuiState._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiState *, mjuiState *))__pyx_f_9mujoco_py_4cymj_11PyMjuiState__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiState = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjuiState_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjuiState)) __PYX_ERR(4, 4228, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjuiState_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjuiState) < 0) __PYX_ERR(4, 4228, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiState = &__pyx_type_9mujoco_py_4cymj_PyMjuiState;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjuiState) < 0) __PYX_ERR(4, 4228, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiState->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjuiState->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjuiState->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjuiState->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjuiState, __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiState) < 0) __PYX_ERR(4, 4228, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjuiState) < 0) __PYX_ERR(4, 4228, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjuiState, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjuiState) < 0) __PYX_ERR(4, 4228, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjuiState) < 0) __PYX_ERR(4, 4228, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiThemeSpacing = &__pyx_vtable_9mujoco_py_4cymj_PyMjuiThemeSpacing;
  __pyx_vtable_9mujoco_py_4cymj_PyMjuiThemeSpacing._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeSpacing *, mjuiThemeSpacing *))__pyx_f_9mujoco_py_4cymj_18PyMjuiThemeSpacing__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjuiThemeSpacing_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing)) __PYX_ERR(4, 4312, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjuiThemeSpacing_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing) < 0) __PYX_ERR(4, 4312, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing = &__pyx_type_9mujoco_py_4cymj_PyMjuiThemeSpacing;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing) < 0) __PYX_ERR(4, 4312, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing, __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiThemeSpacing) < 0) __PYX_ERR(4, 4312, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing) < 0) __PYX_ERR(4, 4312, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjuiThemeSpacing, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing) < 0) __PYX_ERR(4, 4312, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeSpacing) < 0) __PYX_ERR(4, 4312, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiThemeColor = &__pyx_vtable_9mujoco_py_4cymj_PyMjuiThemeColor;
  __pyx_vtable_9mujoco_py_4cymj_PyMjuiThemeColor._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiThemeColor *, mjuiThemeColor *))__pyx_f_9mujoco_py_4cymj_16PyMjuiThemeColor__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjuiThemeColor_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor)) __PYX_ERR(4, 4380, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjuiThemeColor_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor) < 0) __PYX_ERR(4, 4380, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor = &__pyx_type_9mujoco_py_4cymj_PyMjuiThemeColor;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor) < 0) __PYX_ERR(4, 4380, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor, __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiThemeColor) < 0) __PYX_ERR(4, 4380, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor) < 0) __PYX_ERR(4, 4380, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjuiThemeColor, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor) < 0) __PYX_ERR(4, 4380, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjuiThemeColor) < 0) __PYX_ERR(4, 4380, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiItem = &__pyx_vtable_9mujoco_py_4cymj_PyMjuiItem;
  __pyx_vtable_9mujoco_py_4cymj_PyMjuiItem._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiItem *, mjuiItem *))__pyx_f_9mujoco_py_4cymj_10PyMjuiItem__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiItem = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjuiItem_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjuiItem)) __PYX_ERR(4, 4488, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjuiItem_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjuiItem) < 0) __PYX_ERR(4, 4488, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiItem = &__pyx_type_9mujoco_py_4cymj_PyMjuiItem;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjuiItem) < 0) __PYX_ERR(4, 4488, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiItem->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjuiItem->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjuiItem->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjuiItem->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjuiItem, __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiItem) < 0) __PYX_ERR(4, 4488, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjuiItem) < 0) __PYX_ERR(4, 4488, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjuiItem, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjuiItem) < 0) __PYX_ERR(4, 4488, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjuiItem) < 0) __PYX_ERR(4, 4488, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiSection = &__pyx_vtable_9mujoco_py_4cymj_PyMjuiSection;
  __pyx_vtable_9mujoco_py_4cymj_PyMjuiSection._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiSection *, mjuiSection *))__pyx_f_9mujoco_py_4cymj_13PyMjuiSection__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiSection = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjuiSection_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjuiSection)) __PYX_ERR(4, 4536, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjuiSection_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjuiSection) < 0) __PYX_ERR(4, 4536, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiSection = &__pyx_type_9mujoco_py_4cymj_PyMjuiSection;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjuiSection) < 0) __PYX_ERR(4, 4536, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiSection->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjuiSection->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjuiSection->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjuiSection->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjuiSection, __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiSection) < 0) __PYX_ERR(4, 4536, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjuiSection) < 0) __PYX_ERR(4, 4536, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjuiSection, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjuiSection) < 0) __PYX_ERR(4, 4536, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjuiSection) < 0) __PYX_ERR(4, 4536, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjUI = &__pyx_vtable_9mujoco_py_4cymj_PyMjUI;
  __pyx_vtable_9mujoco_py_4cymj_PyMjUI._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjUI *, mjUI *))__pyx_f_9mujoco_py_4cymj_6PyMjUI__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjUI = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjUI_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjUI)) __PYX_ERR(4, 4592, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjUI_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjUI) < 0) __PYX_ERR(4, 4592, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjUI = &__pyx_type_9mujoco_py_4cymj_PyMjUI;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjUI) < 0) __PYX_ERR(4, 4592, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjUI->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjUI->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjUI->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjUI->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjUI, __pyx_vtabptr_9mujoco_py_4cymj_PyMjUI) < 0) __PYX_ERR(4, 4592, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjUI) < 0) __PYX_ERR(4, 4592, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjUI, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjUI) < 0) __PYX_ERR(4, 4592, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjUI) < 0) __PYX_ERR(4, 4592, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiDef = &__pyx_vtable_9mujoco_py_4cymj_PyMjuiDef;
  __pyx_vtable_9mujoco_py_4cymj_PyMjuiDef._set = (void (*)(struct __pyx_obj_9mujoco_py_4cymj_PyMjuiDef *, mjuiDef *))__pyx_f_9mujoco_py_4cymj_9PyMjuiDef__set;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiDef = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_PyMjuiDef_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_PyMjuiDef)) __PYX_ERR(4, 4692, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_PyMjuiDef_spec, __pyx_ptype_9mujoco_py_4cymj_PyMjuiDef) < 0) __PYX_ERR(4, 4692, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiDef = &__pyx_type_9mujoco_py_4cymj_PyMjuiDef;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_PyMjuiDef) < 0) __PYX_ERR(4, 4692, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_PyMjuiDef->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_PyMjuiDef->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_PyMjuiDef->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_PyMjuiDef->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_PyMjuiDef, __pyx_vtabptr_9mujoco_py_4cymj_PyMjuiDef) < 0) __PYX_ERR(4, 4692, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_PyMjuiDef) < 0) __PYX_ERR(4, 4692, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyMjuiDef, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjuiDef) < 0) __PYX_ERR(4, 4692, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_PyMjuiDef) < 0) __PYX_ERR(4, 4692, __pyx_L1_error)
  #endif
  __pyx_vtabptr_9mujoco_py_4cymj_MjSim = &__pyx_vtable_9mujoco_py_4cymj_MjSim;
  __pyx_vtable_9mujoco_py_4cymj_MjSim.substep_callback = (PyObject *(*)(struct __pyx_obj_9mujoco_py_4cymj_MjSim *, int __pyx_skip_dispatch))__pyx_f_9mujoco_py_4cymj_5MjSim_substep_callback;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_MjSim = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_MjSim_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_MjSim)) __PYX_ERR(5, 11, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_MjSim_spec, __pyx_ptype_9mujoco_py_4cymj_MjSim) < 0) __PYX_ERR(5, 11, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_MjSim = &__pyx_type_9mujoco_py_4cymj_MjSim;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_MjSim) < 0) __PYX_ERR(5, 11, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_MjSim->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_MjSim->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_MjSim->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_MjSim->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_vtabptr_9mujoco_py_4cymj_MjSim) < 0) __PYX_ERR(5, 11, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_9mujoco_py_4cymj_MjSim) < 0) __PYX_ERR(5, 11, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_MjSim, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_MjSim) < 0) __PYX_ERR(5, 11, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_MjSim) < 0) __PYX_ERR(5, 11, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj_MjRenderContext = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj_MjRenderContext_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj_MjRenderContext)) __PYX_ERR(1, 6, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj_MjRenderContext_spec, __pyx_ptype_9mujoco_py_4cymj_MjRenderContext) < 0) __PYX_ERR(1, 6, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj_MjRenderContext = &__pyx_type_9mujoco_py_4cymj_MjRenderContext;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj_MjRenderContext) < 0) __PYX_ERR(1, 6, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj_MjRenderContext->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj_MjRenderContext->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj_MjRenderContext->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj_MjRenderContext->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_MjRenderContext, (PyObject *) __pyx_ptype_9mujoco_py_4cymj_MjRenderContext) < 0) __PYX_ERR(1, 6, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_9mujoco_py_4cymj_MjRenderContext) < 0) __PYX_ERR(1, 6, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names)) __PYX_ERR(4, 1127, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names_spec, __pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names) < 0) __PYX_ERR(4, 1127, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names = &__pyx_type_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names) < 0) __PYX_ERR(4, 1127, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct___extract_mj_names->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr_spec, NULL); if (unlikely(!__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr)) __PYX_ERR(4, 1144, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr_spec, __pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr) < 0) __PYX_ERR(4, 1144, __pyx_L1_error)
  #else
  __pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr = &__pyx_type_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr) < 0) __PYX_ERR(4, 1144, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr->tp_dictoffset && __pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_9mujoco_py_4cymj___pyx_scope_struct_1_genexpr->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  __pyx_vtabptr_array = &__pyx_vtable_array;
  __pyx_vtable_array.get_memview = (PyObject *(*)(struct __pyx_array_obj *))__pyx_array_get_memview;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_array_type = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type___pyx_array_spec, NULL); if (unlikely(!__pyx_array_type)) __PYX_ERR(3, 114, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_array_type->tp_as_buffer = &__pyx_tp_as_buffer_array;
  if (!__pyx_array_type->tp_as_buffer->bf_releasebuffer && __pyx_array_type->tp_base->tp_as_buffer && __pyx_array_type->tp_base->tp_as_buffer->bf_releasebuffer) {
    __pyx_array_type->tp_as_buffer->bf_releasebuffer = __pyx_array_type->tp_base->tp_as_buffer->bf_releasebuffer;
  }
  #elif defined(Py_bf_getbuffer) && defined(Py_bf_releasebuffer)
  /* PY_VERSION_HEX >= 0x03090000 || Py_LIMITED_API >= 0x030B0000 */
  #elif defined(_MSC_VER)
  #pragma message ("The buffer protocol is not supported in the Limited C-API < 3.11.")
  #else
  #warning "The buffer protocol is not supported in the Limited C-API < 3.11."
  #endif
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_array_spec, __pyx_array_type) < 0) __PYX_ERR(3, 114, __pyx_L1_error)
  #else
  __pyx_array_type = &__pyx_type___pyx_array;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_array_type) < 0) __PYX_ERR(3, 114, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_array_type->tp_print = 0;
  #endif
  if (__Pyx_SetVtable(__pyx_array_type, __pyx_vtabptr_array) < 0) __PYX_ERR(3, 114, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_array_type) < 0) __PYX_ERR(3, 114, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_array_type) < 0) __PYX_ERR(3, 114, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_MemviewEnum_type = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type___pyx_MemviewEnum_spec, NULL); if (unlikely(!__pyx_MemviewEnum_type)) __PYX_ERR(3, 302, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_MemviewEnum_spec, __pyx_MemviewEnum_type) < 0) __PYX_ERR(3, 302, __pyx_L1_error)
  #else
  __pyx_MemviewEnum_type = &__pyx_type___pyx_MemviewEnum;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_MemviewEnum_type) < 0) __PYX_ERR(3, 302, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_MemviewEnum_type->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_MemviewEnum_type->tp_dictoffset && __pyx_MemviewEnum_type->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_MemviewEnum_type->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_MemviewEnum_type) < 0) __PYX_ERR(3, 302, __pyx_L1_error)
  #endif
  __pyx_vtabptr_memoryview = &__pyx_vtable_memoryview;
  __pyx_vtable_memoryview.get_item_pointer = (char *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_get_item_pointer;
  __pyx_vtable_memoryview.is_slice = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_is_slice;
  __pyx_vtable_memoryview.setitem_slice_assignment = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_slice_assignment;
  __pyx_vtable_memoryview.setitem_slice_assign_scalar = (PyObject *(*)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_setitem_slice_assign_scalar;
  __pyx_vtable_memoryview.setitem_indexed = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_indexed;
  __pyx_vtable_memoryview.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryview_convert_item_to_object;
  __pyx_vtable_memoryview.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryview_assign_item_from_object;
  __pyx_vtable_memoryview._get_base = (PyObject *(*)(struct __pyx_memoryview_obj *))__pyx_memoryview__get_base;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_memoryview_type = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type___pyx_memoryview_spec, NULL); if (unlikely(!__pyx_memoryview_type)) __PYX_ERR(3, 337, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_memoryview_type->tp_as_buffer = &__pyx_tp_as_buffer_memoryview;
  if (!__pyx_memoryview_type->tp_as_buffer->bf_releasebuffer && __pyx_memoryview_type->tp_base->tp_as_buffer && __pyx_memoryview_type->tp_base->tp_as_buffer->bf_releasebuffer) {
    __pyx_memoryview_type->tp_as_buffer->bf_releasebuffer = __pyx_memoryview_type->tp_base->tp_as_buffer->bf_releasebuffer;
  }
  #elif defined(Py_bf_getbuffer) && defined(Py_bf_releasebuffer)
  /* PY_VERSION_HEX >= 0x03090000 || Py_LIMITED_API >= 0x030B0000 */
  #elif defined(_MSC_VER)
  #pragma message ("The buffer protocol is not supported in the Limited C-API < 3.11.")
  #else
  #warning "The buffer protocol is not supported in the Limited C-API < 3.11."
  #endif
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_memoryview_spec, __pyx_memoryview_type) < 0) __PYX_ERR(3, 337, __pyx_L1_error)
  #else
  __pyx_memoryview_type = &__pyx_type___pyx_memoryview;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_memoryview_type) < 0) __PYX_ERR(3, 337, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_memoryview_type->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_memoryview_type->tp_dictoffset && __pyx_memoryview_type->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_memoryview_type->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_memoryview_type, __pyx_vtabptr_memoryview) < 0) __PYX_ERR(3, 337, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_memoryview_type) < 0) __PYX_ERR(3, 337, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_memoryview_type) < 0) __PYX_ERR(3, 337, __pyx_L1_error)
  #endif
  __pyx_vtabptr__memoryviewslice = &__pyx_vtable__memoryviewslice;
  __pyx_vtable__memoryviewslice.__pyx_base = *__pyx_vtabptr_memoryview;
  __pyx_vtable__memoryviewslice.__pyx_base.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryviewslice_convert_item_to_object;
  __pyx_vtable__memoryviewslice.__pyx_base.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryviewslice_assign_item_from_object;
  __pyx_vtable__memoryviewslice.__pyx_base._get_base = (PyObject *(*)(struct __pyx_memoryview_obj *))__pyx_memoryviewslice__get_base;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_memoryview_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_memoryviewslice_type = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type___pyx_memoryviewslice_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_memoryviewslice_type)) __PYX_ERR(3, 952, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_memoryviewslice_spec, __pyx_memoryviewslice_type) < 0) __PYX_ERR(3, 952, __pyx_L1_error)
  #else
  __pyx_memoryviewslice_type = &__pyx_type___pyx_memoryviewslice;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_memoryviewslice_type->tp_base = __pyx_memoryview_type;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_memoryviewslice_type) < 0) __PYX_ERR(3, 952, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_memoryviewslice_type->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_memoryviewslice_type->tp_dictoffset && __pyx_memoryviewslice_type->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_memoryviewslice_type->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_memoryviewslice_type, __pyx_vtabptr__memoryviewslice) < 0) __PYX_ERR(3, 952, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_memoryviewslice_type) < 0) __PYX_ERR(3, 952, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_memoryviewslice_type) < 0) __PYX_ERR(3, 952, __pyx_L1_error)
  #endif
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_import_code(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
  /*--- Type import code ---*/
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_0_8(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", 
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyTypeObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyTypeObject),
  #else
  sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyHeapTypeObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(10, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyArray_Descr),__Pyx_ImportType_CheckSize_Ignore_3_0_8); if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(8, 272, __pyx_L1_error)
  __pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyArrayIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_8); if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(8, 317, __pyx_L1_error)
  __pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyArrayMultiIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_8); if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(8, 321, __pyx_L1_error)
  __pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyArrayObject),__Pyx_ImportType_CheckSize_Ignore_3_0_8); if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(8, 360, __pyx_L1_error)
  __pyx_ptype_5numpy_generic = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_generic) __PYX_ERR(8, 865, __pyx_L1_error)
  __pyx_ptype_5numpy_number = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "number", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_number) __PYX_ERR(8, 867, __pyx_L1_error)
  __pyx_ptype_5numpy_integer = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_integer) __PYX_ERR(8, 869, __pyx_L1_error)
  __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(8, 871, __pyx_L1_error)
  __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(8, 873, __pyx_L1_error)
  __pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(8, 875, __pyx_L1_error)
  __pyx_ptype_5numpy_floating = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_floating) __PYX_ERR(8, 877, __pyx_L1_error)
  __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(8, 879, __pyx_L1_error)
  __pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(8, 881, __pyx_L1_error)
  __pyx_ptype_5numpy_character = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "character", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_character) __PYX_ERR(8, 883, __pyx_L1_error)
  __pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyUFuncObject),__Pyx_ImportType_CheckSize_Ignore_3_0_8); if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(8, 947, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_variable_import_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
  /*--- Variable import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_import_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
  /*--- Function import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}


#if PY_MAJOR_VERSION >= 3
#if CYTHON_PEP489_MULTI_PHASE_INIT
static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
static int __pyx_pymod_exec_cymj(PyObject* module); /*proto*/
static PyModuleDef_Slot __pyx_moduledef_slots[] = {
  {Py_mod_create, (void*)__pyx_pymod_create},
  {Py_mod_exec, (void*)__pyx_pymod_exec_cymj},
  {0, NULL}
};
#endif

#ifdef __cplusplus
namespace {
  struct PyModuleDef __pyx_moduledef =
  #else
  static struct PyModuleDef __pyx_moduledef =
  #endif
  {
      PyModuleDef_HEAD_INIT,
      "cymj",
      0, /* m_doc */
    #if CYTHON_PEP489_MULTI_PHASE_INIT
      0, /* m_size */
    #elif CYTHON_USE_MODULE_STATE
      sizeof(__pyx_mstate), /* m_size */
    #else
      -1, /* m_size */
    #endif
      __pyx_methods /* m_methods */,
    #if CYTHON_PEP489_MULTI_PHASE_INIT
      __pyx_moduledef_slots, /* m_slots */
    #else
      NULL, /* m_reload */
    #endif
    #if CYTHON_USE_MODULE_STATE
      __pyx_m_traverse, /* m_traverse */
      __pyx_m_clear, /* m_clear */
      NULL /* m_free */
    #else
      NULL, /* m_traverse */
      NULL, /* m_clear */
      NULL /* m_free */
    #endif
  };
  #ifdef __cplusplus
} /* anonymous namespace */
#endif
#endif

#ifndef CYTHON_NO_PYINIT_EXPORT
#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
#elif PY_MAJOR_VERSION < 3
#ifdef __cplusplus
#define __Pyx_PyMODINIT_FUNC extern "C" void
#else
#define __Pyx_PyMODINIT_FUNC void
#endif
#else
#ifdef __cplusplus
#define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
#else
#define __Pyx_PyMODINIT_FUNC PyObject *
#endif
#endif


#if PY_MAJOR_VERSION < 3
__Pyx_PyMODINIT_FUNC initcymj(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC initcymj(void)
#else
__Pyx_PyMODINIT_FUNC PyInit_cymj(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC PyInit_cymj(void)
#if CYTHON_PEP489_MULTI_PHASE_INIT
{
  return PyModuleDef_Init(&__pyx_moduledef);
}
static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
    #if PY_VERSION_HEX >= 0x030700A1
    static PY_INT64_T main_interpreter_id = -1;
    PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
    if (main_interpreter_id == -1) {
        main_interpreter_id = current_id;
        return (unlikely(current_id == -1)) ? -1 : 0;
    } else if (unlikely(main_interpreter_id != current_id))
    #else
    static PyInterpreterState *main_interpreter = NULL;
    PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
    if (!main_interpreter) {
        main_interpreter = current_interpreter;
    } else if (unlikely(main_interpreter != current_interpreter))
    #endif
    {
        PyErr_SetString(
            PyExc_ImportError,
            "Interpreter change detected - this module can only be loaded into one interpreter per process.");
        return -1;
    }
    return 0;
}
#if CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *module, const char* from_name, const char* to_name, int allow_none)
#else
static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none)
#endif
{
    PyObject *value = PyObject_GetAttrString(spec, from_name);
    int result = 0;
    if (likely(value)) {
        if (allow_none || value != Py_None) {
#if CYTHON_COMPILING_IN_LIMITED_API
            result = PyModule_AddObject(module, to_name, value);
#else
            result = PyDict_SetItemString(moddict, to_name, value);
#endif
        }
        Py_DECREF(value);
    } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Clear();
    } else {
        result = -1;
    }
    return result;
}
static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) {
    PyObject *module = NULL, *moddict, *modname;
    CYTHON_UNUSED_VAR(def);
    if (__Pyx_check_single_interpreter())
        return NULL;
    if (__pyx_m)
        return __Pyx_NewRef(__pyx_m);
    modname = PyObject_GetAttrString(spec, "name");
    if (unlikely(!modname)) goto bad;
    module = PyModule_NewObject(modname);
    Py_DECREF(modname);
    if (unlikely(!module)) goto bad;
#if CYTHON_COMPILING_IN_LIMITED_API
    moddict = module;
#else
    moddict = PyModule_GetDict(module);
    if (unlikely(!moddict)) goto bad;
#endif
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
    return module;
bad:
    Py_XDECREF(module);
    return NULL;
}


static CYTHON_SMALL_CODE int __pyx_pymod_exec_cymj(PyObject *__pyx_pyinit_module)
#endif
#endif
{
  int stringtab_initialized = 0;
  #if CYTHON_USE_MODULE_STATE
  int pystate_addmodule_run = 0;
  #endif
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  static PyThread_type_lock __pyx_t_8[8];
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  if (__pyx_m) {
    if (__pyx_m == __pyx_pyinit_module) return 0;
    PyErr_SetString(PyExc_RuntimeError, "Module 'cymj' has already been imported. Re-initialisation is not supported.");
    return -1;
  }
  #elif PY_MAJOR_VERSION >= 3
  if (__pyx_m) return __Pyx_NewRef(__pyx_m);
  #endif
  /*--- Module creation code ---*/
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  __pyx_m = __pyx_pyinit_module;
  Py_INCREF(__pyx_m);
  #else
  #if PY_MAJOR_VERSION < 3
  __pyx_m = Py_InitModule4("cymj", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
  if (unlikely(!__pyx_m)) __PYX_ERR(7, 1, __pyx_L1_error)
  #elif CYTHON_USE_MODULE_STATE
  __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 1, __pyx_L1_error)
  {
    int add_module_result = PyState_AddModule(__pyx_t_1, &__pyx_moduledef);
    __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "cymj" pseudovariable */
    if (unlikely((add_module_result < 0))) __PYX_ERR(7, 1, __pyx_L1_error)
    pystate_addmodule_run = 1;
  }
  #else
  __pyx_m = PyModule_Create(&__pyx_moduledef);
  if (unlikely(!__pyx_m)) __PYX_ERR(7, 1, __pyx_L1_error)
  #endif
  #endif
  CYTHON_UNUSED_VAR(__pyx_t_1);
  __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(7, 1, __pyx_L1_error)
  Py_INCREF(__pyx_d);
  __pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_cython_runtime = __Pyx_PyImport_AddModuleRef((const char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(7, 1, __pyx_L1_error)
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  #if CYTHON_REFNANNY
__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
if (!__Pyx_RefNanny) {
  PyErr_Clear();
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
  if (!__Pyx_RefNanny)
      Py_FatalError("failed to import 'refnanny' module");
}
#endif
  __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_cymj(void)", 0);
  if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  #ifdef __Pxy_PyFrame_Initialize_Offsets
  __Pxy_PyFrame_Initialize_Offsets();
  #endif
  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(7, 1, __pyx_L1_error)
  __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(7, 1, __pyx_L1_error)
  #ifdef __Pyx_CyFunction_USED
  if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_FusedFunction_USED
  if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Coroutine_USED
  if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Generator_USED
  if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_AsyncGen_USED
  if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_StopAsyncIteration_USED
  if (__pyx_StopAsyncIteration_init(__pyx_m) < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  #endif
  /*--- Library function declarations ---*/
  /*--- Threads initialization code ---*/
  #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
  PyEval_InitThreads();
  #endif
  /*--- Initialize various global constants etc. ---*/
  if (__Pyx_InitConstants() < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  stringtab_initialized = 1;
  if (__Pyx_InitGlobals() < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
  if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  #endif
  if (__pyx_module_is_main_mujoco_py__cymj) {
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  }
  #if PY_MAJOR_VERSION >= 3
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(7, 1, __pyx_L1_error)
    if (!PyDict_GetItemString(modules, "mujoco_py.cymj")) {
      if (unlikely((PyDict_SetItemString(modules, "mujoco_py.cymj", __pyx_m) < 0))) __PYX_ERR(7, 1, __pyx_L1_error)
    }
  }
  #endif
  /*--- Builtin init code ---*/
  if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  /*--- Constants init code ---*/
  if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  /*--- Global type/function init code ---*/
  (void)__Pyx_modinit_global_init_code();
  (void)__Pyx_modinit_variable_export_code();
  (void)__Pyx_modinit_function_export_code();
  if (unlikely((__Pyx_modinit_type_init_code() < 0))) __PYX_ERR(7, 1, __pyx_L1_error)
  if (unlikely((__Pyx_modinit_type_import_code() < 0))) __PYX_ERR(7, 1, __pyx_L1_error)
  (void)__Pyx_modinit_variable_import_code();
  (void)__Pyx_modinit_function_import_code();
  /*--- Execution code ---*/
  #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
  if (__Pyx_patch_abc() < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  #endif

  /* "View.MemoryView":99
 * 
 * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
 * try:             # <<<<<<<<<<<<<<
 *     if __import__("sys").version_info >= (3, 3):
 *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "View.MemoryView":100
 * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
 * try:
 *     if __import__("sys").version_info >= (3, 3):             # <<<<<<<<<<<<<<
 *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
 *     else:
 */
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin___import__, __pyx_tuple__59, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 100, __pyx_L2_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_version_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 100, __pyx_L2_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, __pyx_tuple__20, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 100, __pyx_L2_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(3, 100, __pyx_L2_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {

        /* "View.MemoryView":101
 * try:
 *     if __import__("sys").version_info >= (3, 3):
 *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence             # <<<<<<<<<<<<<<
 *     else:
 *         __pyx_collections_abc_Sequence = __import__("collections").Sequence
 */
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin___import__, __pyx_tuple__60, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 101, __pyx_L2_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_abc); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 101, __pyx_L2_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_Sequence); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 101, __pyx_L2_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XGOTREF(__pyx_collections_abc_Sequence);
        __Pyx_DECREF_SET(__pyx_collections_abc_Sequence, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_4);
        __pyx_t_4 = 0;

        /* "View.MemoryView":100
 * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
 * try:
 *     if __import__("sys").version_info >= (3, 3):             # <<<<<<<<<<<<<<
 *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
 *     else:
 */
        goto __pyx_L8;
      }

      /* "View.MemoryView":103
 *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
 *     else:
 *         __pyx_collections_abc_Sequence = __import__("collections").Sequence             # <<<<<<<<<<<<<<
 * except:
 * 
 */
      /*else*/ {
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin___import__, __pyx_tuple__61, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 103, __pyx_L2_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_Sequence); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 103, __pyx_L2_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XGOTREF(__pyx_collections_abc_Sequence);
        __Pyx_DECREF_SET(__pyx_collections_abc_Sequence, __pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_5);
        __pyx_t_5 = 0;
      }
      __pyx_L8:;

      /* "View.MemoryView":99
 * 
 * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
 * try:             # <<<<<<<<<<<<<<
 *     if __import__("sys").version_info >= (3, 3):
 *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L7_try_end;
    __pyx_L2_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "View.MemoryView":104
 *     else:
 *         __pyx_collections_abc_Sequence = __import__("collections").Sequence
 * except:             # <<<<<<<<<<<<<<
 * 
 *     __pyx_collections_abc_Sequence = None
 */
    /*except:*/ {
      __Pyx_AddTraceback("View.MemoryView", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_7) < 0) __PYX_ERR(3, 104, __pyx_L4_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_7);

      /* "View.MemoryView":106
 * except:
 * 
 *     __pyx_collections_abc_Sequence = None             # <<<<<<<<<<<<<<
 * 
 * 
 */
      __Pyx_INCREF(Py_None);
      __Pyx_XGOTREF(__pyx_collections_abc_Sequence);
      __Pyx_DECREF_SET(__pyx_collections_abc_Sequence, Py_None);
      __Pyx_GIVEREF(Py_None);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L3_exception_handled;
    }

    /* "View.MemoryView":99
 * 
 * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
 * try:             # <<<<<<<<<<<<<<
 *     if __import__("sys").version_info >= (3, 3):
 *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
 */
    __pyx_L4_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L3_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L7_try_end:;
  }

  /* "View.MemoryView":241
 * 
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         count = __pyx_collections_abc_Sequence.count
 *         index = __pyx_collections_abc_Sequence.index
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_1);
    /*try:*/ {

      /* "View.MemoryView":242
 * 
 *     try:
 *         count = __pyx_collections_abc_Sequence.count             # <<<<<<<<<<<<<<
 *         index = __pyx_collections_abc_Sequence.index
 *     except:
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_count); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 242, __pyx_L11_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_SetItemOnTypeDict(__pyx_array_type, __pyx_n_s_count, __pyx_t_7) < 0) __PYX_ERR(3, 242, __pyx_L11_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      PyType_Modified(__pyx_array_type);

      /* "View.MemoryView":243
 *     try:
 *         count = __pyx_collections_abc_Sequence.count
 *         index = __pyx_collections_abc_Sequence.index             # <<<<<<<<<<<<<<
 *     except:
 *         pass
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_index); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 243, __pyx_L11_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_SetItemOnTypeDict(__pyx_array_type, __pyx_n_s_index, __pyx_t_7) < 0) __PYX_ERR(3, 243, __pyx_L11_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      PyType_Modified(__pyx_array_type);

      /* "View.MemoryView":241
 * 
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         count = __pyx_collections_abc_Sequence.count
 *         index = __pyx_collections_abc_Sequence.index
 */
    }
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L16_try_end;
    __pyx_L11_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "View.MemoryView":244
 *         count = __pyx_collections_abc_Sequence.count
 *         index = __pyx_collections_abc_Sequence.index
 *     except:             # <<<<<<<<<<<<<<
 *         pass
 * 
 */
    /*except:*/ {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L12_exception_handled;
    }
    __pyx_L12_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_2, __pyx_t_1);
    __pyx_L16_try_end:;
  }

  /* "View.MemoryView":309
 *         return self.name
 * 
 * cdef generic = Enum("<strided and direct or indirect>")             # <<<<<<<<<<<<<<
 * cdef strided = Enum("<strided and direct>") # default
 * cdef indirect = Enum("<strided and indirect>")
 */
  __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__62, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_XGOTREF(generic);
  __Pyx_DECREF_SET(generic, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "View.MemoryView":310
 * 
 * cdef generic = Enum("<strided and direct or indirect>")
 * cdef strided = Enum("<strided and direct>") # default             # <<<<<<<<<<<<<<
 * cdef indirect = Enum("<strided and indirect>")
 * 
 */
  __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__63, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_XGOTREF(strided);
  __Pyx_DECREF_SET(strided, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "View.MemoryView":311
 * cdef generic = Enum("<strided and direct or indirect>")
 * cdef strided = Enum("<strided and direct>") # default
 * cdef indirect = Enum("<strided and indirect>")             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__64, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_XGOTREF(indirect);
  __Pyx_DECREF_SET(indirect, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "View.MemoryView":314
 * 
 * 
 * cdef contiguous = Enum("<contiguous and direct>")             # <<<<<<<<<<<<<<
 * cdef indirect_contiguous = Enum("<contiguous and indirect>")
 * 
 */
  __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__65, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_XGOTREF(contiguous);
  __Pyx_DECREF_SET(contiguous, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "View.MemoryView":315
 * 
 * cdef contiguous = Enum("<contiguous and direct>")
 * cdef indirect_contiguous = Enum("<contiguous and indirect>")             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__66, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_XGOTREF(indirect_contiguous);
  __Pyx_DECREF_SET(indirect_contiguous, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "View.MemoryView":323
 * 
 * 
 * cdef int __pyx_memoryview_thread_locks_used = 0             # <<<<<<<<<<<<<<
 * cdef PyThread_type_lock[8] __pyx_memoryview_thread_locks = [
 *     PyThread_allocate_lock(),
 */
  __pyx_memoryview_thread_locks_used = 0;

  /* "View.MemoryView":324
 * 
 * cdef int __pyx_memoryview_thread_locks_used = 0
 * cdef PyThread_type_lock[8] __pyx_memoryview_thread_locks = [             # <<<<<<<<<<<<<<
 *     PyThread_allocate_lock(),
 *     PyThread_allocate_lock(),
 */
  __pyx_t_8[0] = PyThread_allocate_lock();
  __pyx_t_8[1] = PyThread_allocate_lock();
  __pyx_t_8[2] = PyThread_allocate_lock();
  __pyx_t_8[3] = PyThread_allocate_lock();
  __pyx_t_8[4] = PyThread_allocate_lock();
  __pyx_t_8[5] = PyThread_allocate_lock();
  __pyx_t_8[6] = PyThread_allocate_lock();
  __pyx_t_8[7] = PyThread_allocate_lock();
  memcpy(&(__pyx_memoryview_thread_locks[0]), __pyx_t_8, sizeof(__pyx_memoryview_thread_locks[0]) * (8));

  /* "View.MemoryView":982
 * 
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         count = __pyx_collections_abc_Sequence.count
 *         index = __pyx_collections_abc_Sequence.index
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "View.MemoryView":983
 * 
 *     try:
 *         count = __pyx_collections_abc_Sequence.count             # <<<<<<<<<<<<<<
 *         index = __pyx_collections_abc_Sequence.index
 *     except:
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_count); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 983, __pyx_L17_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_SetItemOnTypeDict(__pyx_memoryviewslice_type, __pyx_n_s_count, __pyx_t_7) < 0) __PYX_ERR(3, 983, __pyx_L17_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      PyType_Modified(__pyx_memoryviewslice_type);

      /* "View.MemoryView":984
 *     try:
 *         count = __pyx_collections_abc_Sequence.count
 *         index = __pyx_collections_abc_Sequence.index             # <<<<<<<<<<<<<<
 *     except:
 *         pass
 */
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_index); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 984, __pyx_L17_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_SetItemOnTypeDict(__pyx_memoryviewslice_type, __pyx_n_s_index, __pyx_t_7) < 0) __PYX_ERR(3, 984, __pyx_L17_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      PyType_Modified(__pyx_memoryviewslice_type);

      /* "View.MemoryView":982
 * 
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         count = __pyx_collections_abc_Sequence.count
 *         index = __pyx_collections_abc_Sequence.index
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L22_try_end;
    __pyx_L17_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "View.MemoryView":985
 *         count = __pyx_collections_abc_Sequence.count
 *         index = __pyx_collections_abc_Sequence.index
 *     except:             # <<<<<<<<<<<<<<
 *         pass
 * 
 */
    /*except:*/ {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L18_exception_handled;
    }
    __pyx_L18_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L22_try_end:;
  }

  /* "View.MemoryView":988
 *         pass
 * 
 * try:             # <<<<<<<<<<<<<<
 *     if __pyx_collections_abc_Sequence:
 * 
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_1);
    /*try:*/ {

      /* "View.MemoryView":989
 * 
 * try:
 *     if __pyx_collections_abc_Sequence:             # <<<<<<<<<<<<<<
 * 
 * 
 */
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_collections_abc_Sequence); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(3, 989, __pyx_L23_error)
      if (__pyx_t_6) {

        /* "View.MemoryView":993
 * 
 * 
 *         __pyx_collections_abc_Sequence.register(_memoryviewslice)             # <<<<<<<<<<<<<<
 *         __pyx_collections_abc_Sequence.register(array)
 * except:
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_register); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 993, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_7, ((PyObject *)__pyx_memoryviewslice_type)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 993, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "View.MemoryView":994
 * 
 *         __pyx_collections_abc_Sequence.register(_memoryviewslice)
 *         __pyx_collections_abc_Sequence.register(array)             # <<<<<<<<<<<<<<
 * except:
 *     pass  # ignore failure, it's a minor issue
 */
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_register); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 994, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_array_type)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 994, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "View.MemoryView":989
 * 
 * try:
 *     if __pyx_collections_abc_Sequence:             # <<<<<<<<<<<<<<
 * 
 * 
 */
      }

      /* "View.MemoryView":988
 *         pass
 * 
 * try:             # <<<<<<<<<<<<<<
 *     if __pyx_collections_abc_Sequence:
 * 
 */
    }
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L28_try_end;
    __pyx_L23_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "View.MemoryView":995
 *         __pyx_collections_abc_Sequence.register(_memoryviewslice)
 *         __pyx_collections_abc_Sequence.register(array)
 * except:             # <<<<<<<<<<<<<<
 *     pass  # ignore failure, it's a minor issue
 * 
 */
    /*except:*/ {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L24_exception_handled;
    }
    __pyx_L24_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_2, __pyx_t_1);
    __pyx_L28_try_end:;
  }

  /* "(tree fragment)":1
 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum, NULL, __pyx_n_s_View_MemoryView); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Enum, __pyx_t_7) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/cymj.pyx":2
 * # cython: language_level=3
 * import copy             # <<<<<<<<<<<<<<
 * import logging
 * import os
 */
  __pyx_t_7 = __Pyx_ImportDottedModule(__pyx_n_s_copy, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_copy, __pyx_t_7) < 0) __PYX_ERR(7, 2, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/cymj.pyx":3
 * # cython: language_level=3
 * import copy
 * import logging             # <<<<<<<<<<<<<<
 * import os
 * import platform
 */
  __pyx_t_7 = __Pyx_ImportDottedModule(__pyx_n_s_logging, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_logging, __pyx_t_7) < 0) __PYX_ERR(7, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/cymj.pyx":4
 * import copy
 * import logging
 * import os             # <<<<<<<<<<<<<<
 * import platform
 * import tempfile
 */
  __pyx_t_7 = __Pyx_ImportDottedModule(__pyx_n_s_os, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_7) < 0) __PYX_ERR(7, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/cymj.pyx":5
 * import logging
 * import os
 * import platform             # <<<<<<<<<<<<<<
 * import tempfile
 * import sys
 */
  __pyx_t_7 = __Pyx_ImportDottedModule(__pyx_n_s_platform, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_platform, __pyx_t_7) < 0) __PYX_ERR(7, 5, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/cymj.pyx":6
 * import os
 * import platform
 * import tempfile             # <<<<<<<<<<<<<<
 * import sys
 * from collections import namedtuple
 */
  __pyx_t_7 = __Pyx_ImportDottedModule(__pyx_n_s_tempfile, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_tempfile, __pyx_t_7) < 0) __PYX_ERR(7, 6, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/cymj.pyx":7
 * import platform
 * import tempfile
 * import sys             # <<<<<<<<<<<<<<
 * from collections import namedtuple
 * from libc.stdlib cimport malloc, free
 */
  __pyx_t_7 = __Pyx_ImportDottedModule(__pyx_n_s_sys, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_7) < 0) __PYX_ERR(7, 7, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/cymj.pyx":8
 * import tempfile
 * import sys
 * from collections import namedtuple             # <<<<<<<<<<<<<<
 * from libc.stdlib cimport malloc, free
 * from libc.string cimport strncpy
 */
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_s_namedtuple);
  __Pyx_GIVEREF(__pyx_n_s_namedtuple);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_namedtuple)) __PYX_ERR(7, 8, __pyx_L1_error);
  __pyx_t_4 = __Pyx_Import(__pyx_n_s_collections, __pyx_t_7, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_namedtuple); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_namedtuple, __pyx_t_7) < 0) __PYX_ERR(7, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/cymj.pyx":11
 * from libc.stdlib cimport malloc, free
 * from libc.string cimport strncpy
 * from numbers import Number             # <<<<<<<<<<<<<<
 * from tempfile import TemporaryDirectory
 * 
 */
  __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_n_s_Number);
  __Pyx_GIVEREF(__pyx_n_s_Number);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 0, __pyx_n_s_Number)) __PYX_ERR(7, 11, __pyx_L1_error);
  __pyx_t_7 = __Pyx_Import(__pyx_n_s_numbers, __pyx_t_4, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_Number); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Number, __pyx_t_4) < 0) __PYX_ERR(7, 11, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/cymj.pyx":12
 * from libc.string cimport strncpy
 * from numbers import Number
 * from tempfile import TemporaryDirectory             # <<<<<<<<<<<<<<
 * 
 * import numpy as np
 */
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_s_TemporaryDirectory);
  __Pyx_GIVEREF(__pyx_n_s_TemporaryDirectory);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_TemporaryDirectory)) __PYX_ERR(7, 12, __pyx_L1_error);
  __pyx_t_4 = __Pyx_Import(__pyx_n_s_tempfile, __pyx_t_7, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_TemporaryDirectory); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TemporaryDirectory, __pyx_t_7) < 0) __PYX_ERR(7, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/cymj.pyx":14
 * from tempfile import TemporaryDirectory
 * 
 * import numpy as np             # <<<<<<<<<<<<<<
 * from cython cimport view
 * from cython.parallel import parallel, prange
 */
  __pyx_t_4 = __Pyx_ImportDottedModule(__pyx_n_s_numpy, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 14, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_4) < 0) __PYX_ERR(7, 14, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/cymj.pyx":17
 * from cython cimport view
 * from cython.parallel import parallel, prange
 * from mujoco_py.generated import const             # <<<<<<<<<<<<<<
 * 
 * include "generated/wrappers.pxi"
 */
  __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_n_s_const);
  __Pyx_GIVEREF(__pyx_n_s_const);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 0, __pyx_n_s_const)) __PYX_ERR(7, 17, __pyx_L1_error);
  __pyx_t_7 = __Pyx_Import(__pyx_n_s_mujoco_py_generated, __pyx_t_4, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_const); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_const, __pyx_t_4) < 0) __PYX_ERR(7, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/generated/wrappers.pxi":8
 * from cpython.mem cimport PyMem_Malloc, PyMem_Free
 * cimport numpy as np
 * import numpy as np             # <<<<<<<<<<<<<<
 * from tempfile import TemporaryDirectory
 * 
 */
  __pyx_t_7 = __Pyx_ImportDottedModule(__pyx_n_s_numpy, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_7) < 0) __PYX_ERR(4, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/generated/wrappers.pxi":9
 * cimport numpy as np
 * import numpy as np
 * from tempfile import TemporaryDirectory             # <<<<<<<<<<<<<<
 * 
 * cdef class PyMjLROpt(object):
 */
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_s_TemporaryDirectory);
  __Pyx_GIVEREF(__pyx_n_s_TemporaryDirectory);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_TemporaryDirectory)) __PYX_ERR(4, 9, __pyx_L1_error);
  __pyx_t_4 = __Pyx_Import(__pyx_n_s_tempfile, __pyx_t_7, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_TemporaryDirectory); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TemporaryDirectory, __pyx_t_7) < 0) __PYX_ERR(4, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjLROpt_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjLROpt___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjLROpt_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjLROpt___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_7PyMjVFS_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVFS___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__73)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_7PyMjVFS_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVFS___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10PyMjOption_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjOption___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__75)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10PyMjOption_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjOption___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10PyMjVisual_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVisual___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__77)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10PyMjVisual_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVisual___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_18PyMjVisual_global__3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVisual_global____reduce_cyth, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__79)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_18PyMjVisual_global__5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVisual_global____setstate_cy, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_18PyMjVisual_quality_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVisual_quality___reduce_cyth, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__81)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_18PyMjVisual_quality_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVisual_quality___setstate_cy, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_20PyMjVisual_headlight_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVisual_headlight___reduce_cy, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__83)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_20PyMjVisual_headlight_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVisual_headlight___setstate, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_14PyMjVisual_map_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVisual_map___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__85)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_14PyMjVisual_map_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVisual_map___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__86)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_16PyMjVisual_scale_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVisual_scale___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__87)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_16PyMjVisual_scale_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVisual_scale___setstate_cyth, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15PyMjVisual_rgba_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVisual_rgba___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__89)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15PyMjVisual_rgba_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjVisual_rgba___setstate_cytho, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__90)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_13PyMjStatistic_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjStatistic___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__91)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_13PyMjStatistic_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjStatistic___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":1014
 *     cdef readonly dict _body_name2id, _joint_name2id, _geom_name2id, _site_name2id, _light_name2id, _camera_name2id, _actuator_name2id, _sensor_name2id, _tendon_name2id, _mesh_name2id
 * 
 *     def body_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._body_id2name:
 *             raise ValueError("No body with id %d exists." % id)
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_1body_id2name, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_body_id2name, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__94)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_body_id2name, __pyx_t_4) < 0) __PYX_ERR(4, 1014, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1019
 *         return self._body_id2name[id]
 * 
 *     def body_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._body_name2id:
 *             raise ValueError("No \"body\" with name %s exists. Available \"body\" names = %s." % (name, self.body_names))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_3body_name2id, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_body_name2id, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__96)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_body_name2id, __pyx_t_4) < 0) __PYX_ERR(4, 1019, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1024
 *         return self._body_name2id[name]
 * 
 *     def joint_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._joint_id2name:
 *             raise ValueError("No joint with id %d exists." % id)
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_5joint_id2name, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_joint_id2name, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__97)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1024, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_joint_id2name, __pyx_t_4) < 0) __PYX_ERR(4, 1024, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1029
 *         return self._joint_id2name[id]
 * 
 *     def joint_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._joint_name2id:
 *             raise ValueError("No \"joint\" with name %s exists. Available \"joint\" names = %s." % (name, self.joint_names))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_7joint_name2id, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_joint_name2id, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__98)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_joint_name2id, __pyx_t_4) < 0) __PYX_ERR(4, 1029, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1034
 *         return self._joint_name2id[name]
 * 
 *     def geom_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._geom_id2name:
 *             raise ValueError("No geom with id %d exists." % id)
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_9geom_id2name, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_geom_id2name, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__99)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_geom_id2name, __pyx_t_4) < 0) __PYX_ERR(4, 1034, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1039
 *         return self._geom_id2name[id]
 * 
 *     def geom_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._geom_name2id:
 *             raise ValueError("No \"geom\" with name %s exists. Available \"geom\" names = %s." % (name, self.geom_names))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_11geom_name2id, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_geom_name2id, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__100)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1039, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_geom_name2id, __pyx_t_4) < 0) __PYX_ERR(4, 1039, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1044
 *         return self._geom_name2id[name]
 * 
 *     def site_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._site_id2name:
 *             raise ValueError("No site with id %d exists." % id)
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_13site_id2name, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_site_id2name, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__101)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1044, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_site_id2name, __pyx_t_4) < 0) __PYX_ERR(4, 1044, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1049
 *         return self._site_id2name[id]
 * 
 *     def site_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._site_name2id:
 *             raise ValueError("No \"site\" with name %s exists. Available \"site\" names = %s." % (name, self.site_names))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_15site_name2id, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_site_name2id, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__102)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_site_name2id, __pyx_t_4) < 0) __PYX_ERR(4, 1049, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1054
 *         return self._site_name2id[name]
 * 
 *     def light_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._light_id2name:
 *             raise ValueError("No light with id %d exists." % id)
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_17light_id2name, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_light_id2name, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__103)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_light_id2name, __pyx_t_4) < 0) __PYX_ERR(4, 1054, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1059
 *         return self._light_id2name[id]
 * 
 *     def light_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._light_name2id:
 *             raise ValueError("No \"light\" with name %s exists. Available \"light\" names = %s." % (name, self.light_names))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_19light_name2id, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_light_name2id, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__104)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_light_name2id, __pyx_t_4) < 0) __PYX_ERR(4, 1059, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1064
 *         return self._light_name2id[name]
 * 
 *     def camera_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._camera_id2name:
 *             raise ValueError("No camera with id %d exists." % id)
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_21camera_id2name, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_camera_id2name, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__105)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1064, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_camera_id2name, __pyx_t_4) < 0) __PYX_ERR(4, 1064, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1069
 *         return self._camera_id2name[id]
 * 
 *     def camera_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._camera_name2id:
 *             raise ValueError("No \"camera\" with name %s exists. Available \"camera\" names = %s." % (name, self.camera_names))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_23camera_name2id, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_camera_name2id, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__106)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1069, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_camera_name2id, __pyx_t_4) < 0) __PYX_ERR(4, 1069, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1074
 *         return self._camera_name2id[name]
 * 
 *     def actuator_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._actuator_id2name:
 *             raise ValueError("No actuator with id %d exists." % id)
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_25actuator_id2name, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_actuator_id2name, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__107)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_actuator_id2name, __pyx_t_4) < 0) __PYX_ERR(4, 1074, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1079
 *         return self._actuator_id2name[id]
 * 
 *     def actuator_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._actuator_name2id:
 *             raise ValueError("No \"actuator\" with name %s exists. Available \"actuator\" names = %s." % (name, self.actuator_names))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_27actuator_name2id, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_actuator_name2id, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__108)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_actuator_name2id, __pyx_t_4) < 0) __PYX_ERR(4, 1079, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1084
 *         return self._actuator_name2id[name]
 * 
 *     def sensor_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._sensor_id2name:
 *             raise ValueError("No sensor with id %d exists." % id)
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_29sensor_id2name, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_sensor_id2name, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__109)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1084, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_sensor_id2name, __pyx_t_4) < 0) __PYX_ERR(4, 1084, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1089
 *         return self._sensor_id2name[id]
 * 
 *     def sensor_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._sensor_name2id:
 *             raise ValueError("No \"sensor\" with name %s exists. Available \"sensor\" names = %s." % (name, self.sensor_names))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_31sensor_name2id, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_sensor_name2id, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1089, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_sensor_name2id, __pyx_t_4) < 0) __PYX_ERR(4, 1089, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1094
 *         return self._sensor_name2id[name]
 * 
 *     def tendon_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._tendon_id2name:
 *             raise ValueError("No tendon with id %d exists." % id)
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_33tendon_id2name, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_tendon_id2name, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__111)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1094, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_tendon_id2name, __pyx_t_4) < 0) __PYX_ERR(4, 1094, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1099
 *         return self._tendon_id2name[id]
 * 
 *     def tendon_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._tendon_name2id:
 *             raise ValueError("No \"tendon\" with name %s exists. Available \"tendon\" names = %s." % (name, self.tendon_names))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_35tendon_name2id, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_tendon_name2id, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_tendon_name2id, __pyx_t_4) < 0) __PYX_ERR(4, 1099, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1104
 *         return self._tendon_name2id[name]
 * 
 *     def mesh_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._mesh_id2name:
 *             raise ValueError("No mesh with id %d exists." % id)
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_37mesh_id2name, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_mesh_id2name, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__113)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_mesh_id2name, __pyx_t_4) < 0) __PYX_ERR(4, 1104, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1109
 *         return self._mesh_id2name[id]
 * 
 *     def mesh_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._mesh_name2id:
 *             raise ValueError("No \"mesh\" with name %s exists. Available \"mesh\" names = %s." % (name, self.mesh_names))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_39mesh_name2id, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_mesh_name2id, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_mesh_name2id, __pyx_t_4) < 0) __PYX_ERR(4, 1109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1117
 *     cdef public dict _userdata_name2id
 * 
 *     def userdata_id2name(self, id):             # <<<<<<<<<<<<<<
 *         if id not in self._userdata_id2name:
 *             raise ValueError("No userdata with id %d exists." % id)
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_41userdata_id2name, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_userdata_id2name, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__115)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_userdata_id2name, __pyx_t_4) < 0) __PYX_ERR(4, 1117, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1122
 *         return self._userdata_id2name[id]
 * 
 *     def userdata_name2id(self, name):             # <<<<<<<<<<<<<<
 *         if name not in self._userdata_name2id:
 *             raise ValueError("No \"userdata\" with name %s exists. Available \"userdata\" names = %s." % (name, self.userdata_names))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_43userdata_name2id, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_userdata_name2id, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_userdata_name2id, __pyx_t_4) < 0) __PYX_ERR(4, 1122, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1146
 *         return tuple(id2name[id] for id in sorted(name2id.values())), name2id, id2name
 * 
 *     def get_xml(self):             # <<<<<<<<<<<<<<
 *         cdef char errstr[300]
 *         cdef int ret
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_45get_xml, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_get_xml, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__118)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_get_xml, __pyx_t_4) < 0) __PYX_ERR(4, 1146, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1157
 *             return open(filename).read()
 * 
 *     def get_mjb(self):             # <<<<<<<<<<<<<<
 *         with TemporaryDirectory() as td:
 *             filename = os.path.join(td, 'model.mjb')
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_47get_mjb, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_get_mjb, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_get_mjb, __pyx_t_4) < 0) __PYX_ERR(4, 1157, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1164
 *             return open(filename, 'rb').read()
 * 
 *     def set_userdata_names(self, userdata_names):             # <<<<<<<<<<<<<<
 *         assert isinstance(userdata_names, (list, tuple)), 'bad userdata names'
 *         assert len(userdata_names) <= self.nuserdata, 'insufficient userdata'
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_49set_userdata_names, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_set_userdata_names, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_set_userdata_names, __pyx_t_4) < 0) __PYX_ERR(4, 1164, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1178
 *         mj_deleteModel(self.ptr)
 * 
 *     def get_joint_qpos_addr(self, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Returns the qpos address for given joint.
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_53get_joint_qpos_addr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_get_joint_qpos_addr, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_get_joint_qpos_addr, __pyx_t_4) < 0) __PYX_ERR(4, 1178, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "mujoco_py/generated/wrappers.pxi":1202
 *             return (joint_addr, joint_addr + ndim)
 * 
 *     def get_joint_qvel_addr(self, name):             # <<<<<<<<<<<<<<
 *         '''
 *         Returns the qvel address for given joint.
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_55get_joint_qvel_addr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel_get_joint_qvel_addr, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__125)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjModel, __pyx_n_s_get_joint_qvel_addr, __pyx_t_4) < 0) __PYX_ERR(4, 1202, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjModel);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_57__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjModel_59__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjModel___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__127)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11PyMjContact_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjContact___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11PyMjContact_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjContact___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__129)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15PyMjWarningStat_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjWarningStat___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15PyMjWarningStat_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjWarningStat___setstate_cytho, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__131)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_13PyMjTimerStat_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjTimerStat___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_13PyMjTimerStat_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjTimerStat___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__133)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_14PyMjSolverStat_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjSolverStat___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__134)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_14PyMjSolverStat_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjSolverStat___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__135)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":2611
 * 
 * 
 *     def get_body_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xpos[id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_3get_body_xpos, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_body_xpos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__137)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2611, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_body_xpos, __pyx_t_4) < 0) __PYX_ERR(4, 2611, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2615
 *         return self._xpos[id]
 * 
 *     def get_xpos(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xpos should be used instead of get_xpos")
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_5get_xpos, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_xpos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__138)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_xpos, __pyx_t_4) < 0) __PYX_ERR(4, 2615, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2618
 *         raise RuntimeError("get_body_xpos should be used instead of get_xpos")
 * 
 *     def get_body_xquat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xquat[id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_7get_body_xquat, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_body_xquat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__139)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_body_xquat, __pyx_t_4) < 0) __PYX_ERR(4, 2618, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2622
 *         return self._xquat[id]
 * 
 *     def get_xquat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xquat should be used instead of get_xquat")
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_9get_xquat, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_xquat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__140)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_xquat, __pyx_t_4) < 0) __PYX_ERR(4, 2622, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2625
 *         raise RuntimeError("get_body_xquat should be used instead of get_xquat")
 * 
 *     def get_body_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xmat[id].reshape((3, 3))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_11get_body_xmat, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_body_xmat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__141)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_body_xmat, __pyx_t_4) < 0) __PYX_ERR(4, 2625, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2629
 *         return self._xmat[id].reshape((3, 3))
 * 
 *     def get_xmat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xmat should be used instead of get_xmat")
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_13get_xmat, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_xmat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__142)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_xmat, __pyx_t_4) < 0) __PYX_ERR(4, 2629, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2632
 *         raise RuntimeError("get_body_xmat should be used instead of get_xmat")
 * 
 *     def get_body_xipos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._xipos[id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_15get_body_xipos, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_body_xipos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__143)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_body_xipos, __pyx_t_4) < 0) __PYX_ERR(4, 2632, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2636
 *         return self._xipos[id]
 * 
 *     def get_xipos(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_xipos should be used instead of get_xipos")
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_17get_xipos, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_xipos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__144)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_xipos, __pyx_t_4) < 0) __PYX_ERR(4, 2636, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2639
 *         raise RuntimeError("get_body_xipos should be used instead of get_xipos")
 * 
 *     def get_body_ximat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         return self._ximat[id].reshape((3, 3))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_19get_body_ximat, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_body_ximat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__145)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_body_ximat, __pyx_t_4) < 0) __PYX_ERR(4, 2639, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2643
 *         return self._ximat[id].reshape((3, 3))
 * 
 *     def get_ximat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_body_ximat should be used instead of get_ximat")
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_21get_ximat, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_ximat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__146)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2643, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_ximat, __pyx_t_4) < 0) __PYX_ERR(4, 2643, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2646
 *         raise RuntimeError("get_body_ximat should be used instead of get_ximat")
 * 
 *     def get_body_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         if jacp is None:
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_23get_body_jacp, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_body_jacp, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__148)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2646, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__149);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_body_jacp, __pyx_t_4) < 0) __PYX_ERR(4, 2646, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2654
 *         return jacp
 * 
 *     def get_body_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         if jacr is None:
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_25get_body_jacr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_body_jacr, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__151)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__149);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_body_jacr, __pyx_t_4) < 0) __PYX_ERR(4, 2654, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2662
 *         return jacr
 * 
 *     def get_body_xvelp(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         jacp = self.get_body_jacp(name).reshape((3, self._model.nv))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_27get_body_xvelp, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_body_xvelp, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__153)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_body_xvelp, __pyx_t_4) < 0) __PYX_ERR(4, 2662, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2668
 *         return xvelp
 * 
 *     def get_body_xvelr(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.body_name2id(name)
 *         jacr = self.get_body_jacr(name).reshape((3, self._model.nv))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_29get_body_xvelr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_body_xvelr, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__155)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2668, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_body_xvelr, __pyx_t_4) < 0) __PYX_ERR(4, 2668, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2674
 *         return xvelr
 * 
 *     def get_joint_xanchor(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.joint_name2id(name)
 *         return self._xanchor[id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_31get_joint_xanchor, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_joint_xanchor, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__156)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_joint_xanchor, __pyx_t_4) < 0) __PYX_ERR(4, 2674, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2678
 *         return self._xanchor[id]
 * 
 *     def get_xanchor(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_joint_xanchor should be used instead of get_xanchor")
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_33get_xanchor, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_xanchor, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__157)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2678, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_xanchor, __pyx_t_4) < 0) __PYX_ERR(4, 2678, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2681
 *         raise RuntimeError("get_joint_xanchor should be used instead of get_xanchor")
 * 
 *     def get_joint_xaxis(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.joint_name2id(name)
 *         return self._xaxis[id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_35get_joint_xaxis, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_joint_xaxis, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__158)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_joint_xaxis, __pyx_t_4) < 0) __PYX_ERR(4, 2681, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2685
 *         return self._xaxis[id]
 * 
 *     def get_xaxis(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_joint_xaxis should be used instead of get_xaxis")
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_37get_xaxis, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_xaxis, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__159)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2685, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_xaxis, __pyx_t_4) < 0) __PYX_ERR(4, 2685, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2688
 *         raise RuntimeError("get_joint_xaxis should be used instead of get_xaxis")
 * 
 *     def get_geom_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         return self._geom_xpos[id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_39get_geom_xpos, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_geom_xpos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__160)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_geom_xpos, __pyx_t_4) < 0) __PYX_ERR(4, 2688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2692
 *         return self._geom_xpos[id]
 * 
 *     def get_geom_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         return self._geom_xmat[id].reshape((3, 3))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_41get_geom_xmat, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_geom_xmat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__161)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2692, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_geom_xmat, __pyx_t_4) < 0) __PYX_ERR(4, 2692, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2696
 *         return self._geom_xmat[id].reshape((3, 3))
 * 
 *     def get_geom_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         if jacp is None:
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_43get_geom_jacp, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_geom_jacp, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__162)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__149);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_geom_jacp, __pyx_t_4) < 0) __PYX_ERR(4, 2696, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2704
 *         return jacp
 * 
 *     def get_geom_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         if jacr is None:
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_45get_geom_jacr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_geom_jacr, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__163)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__149);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_geom_jacr, __pyx_t_4) < 0) __PYX_ERR(4, 2704, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2712
 *         return jacr
 * 
 *     def get_geom_xvelp(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         jacp = self.get_geom_jacp(name).reshape((3, self._model.nv))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_47get_geom_xvelp, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_geom_xvelp, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__164)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_geom_xvelp, __pyx_t_4) < 0) __PYX_ERR(4, 2712, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2718
 *         return xvelp
 * 
 *     def get_geom_xvelr(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.geom_name2id(name)
 *         jacr = self.get_geom_jacr(name).reshape((3, self._model.nv))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_49get_geom_xvelr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_geom_xvelr, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__165)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2718, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_geom_xvelr, __pyx_t_4) < 0) __PYX_ERR(4, 2718, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2724
 *         return xvelr
 * 
 *     def get_site_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         return self._site_xpos[id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_51get_site_xpos, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_site_xpos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__166)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2724, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_site_xpos, __pyx_t_4) < 0) __PYX_ERR(4, 2724, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2728
 *         return self._site_xpos[id]
 * 
 *     def get_site_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         return self._site_xmat[id].reshape((3, 3))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_53get_site_xmat, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_site_xmat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__167)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_site_xmat, __pyx_t_4) < 0) __PYX_ERR(4, 2728, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2732
 *         return self._site_xmat[id].reshape((3, 3))
 * 
 *     def get_site_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         if jacp is None:
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_55get_site_jacp, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_site_jacp, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__168)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__149);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_site_jacp, __pyx_t_4) < 0) __PYX_ERR(4, 2732, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2740
 *         return jacp
 * 
 *     def get_site_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         if jacr is None:
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_57get_site_jacr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_site_jacr, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__169)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__149);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_site_jacr, __pyx_t_4) < 0) __PYX_ERR(4, 2740, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2748
 *         return jacr
 * 
 *     def get_site_xvelp(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         jacp = self.get_site_jacp(name).reshape((3, self._model.nv))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_59get_site_xvelp, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_site_xvelp, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__170)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2748, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_site_xvelp, __pyx_t_4) < 0) __PYX_ERR(4, 2748, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2754
 *         return xvelp
 * 
 *     def get_site_xvelr(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.site_name2id(name)
 *         jacr = self.get_site_jacr(name).reshape((3, self._model.nv))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_61get_site_xvelr, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_site_xvelr, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__171)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_site_xvelr, __pyx_t_4) < 0) __PYX_ERR(4, 2754, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2760
 *         return xvelr
 * 
 *     def get_camera_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.camera_name2id(name)
 *         return self._cam_xpos[id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_63get_camera_xpos, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_camera_xpos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__172)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_camera_xpos, __pyx_t_4) < 0) __PYX_ERR(4, 2760, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2764
 *         return self._cam_xpos[id]
 * 
 *     def get_cam_xpos(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_camera_xpos should be used instead of get_cam_xpos")
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_65get_cam_xpos, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_cam_xpos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__173)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_cam_xpos, __pyx_t_4) < 0) __PYX_ERR(4, 2764, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2767
 *         raise RuntimeError("get_camera_xpos should be used instead of get_cam_xpos")
 * 
 *     def get_camera_xmat(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.camera_name2id(name)
 *         return self._cam_xmat[id].reshape((3, 3))
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_67get_camera_xmat, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_camera_xmat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__174)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_camera_xmat, __pyx_t_4) < 0) __PYX_ERR(4, 2767, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2771
 *         return self._cam_xmat[id].reshape((3, 3))
 * 
 *     def get_cam_xmat(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_camera_xmat should be used instead of get_cam_xmat")
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_69get_cam_xmat, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_cam_xmat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__175)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_cam_xmat, __pyx_t_4) < 0) __PYX_ERR(4, 2771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2774
 *         raise RuntimeError("get_camera_xmat should be used instead of get_cam_xmat")
 * 
 *     def get_light_xpos(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.light_name2id(name)
 *         return self._light_xpos[id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_71get_light_xpos, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_light_xpos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__176)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_light_xpos, __pyx_t_4) < 0) __PYX_ERR(4, 2774, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2778
 *         return self._light_xpos[id]
 * 
 *     def get_light_xdir(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.light_name2id(name)
 *         return self._light_xdir[id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_73get_light_xdir, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_light_xdir, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__177)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_light_xdir, __pyx_t_4) < 0) __PYX_ERR(4, 2778, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2782
 *         return self._light_xdir[id]
 * 
 *     def get_sensor(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.sensor_name2id(name)
 *         return self._sensordata[id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_75get_sensor, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_sensor, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__178)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_sensor, __pyx_t_4) < 0) __PYX_ERR(4, 2782, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2786
 *         return self._sensordata[id]
 * 
 *     def get_sensordata(self, name):             # <<<<<<<<<<<<<<
 *         raise RuntimeError("get_sensor should be used instead of get_sensordata")
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_77get_sensordata, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_sensordata, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__179)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2786, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_sensordata, __pyx_t_4) < 0) __PYX_ERR(4, 2786, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2789
 *         raise RuntimeError("get_sensor should be used instead of get_sensordata")
 * 
 *     def get_userdata(self, name):             # <<<<<<<<<<<<<<
 *         id = self._model.userdata_name2id(name)
 *         return self._userdata[id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_79get_userdata, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_userdata, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__180)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_userdata, __pyx_t_4) < 0) __PYX_ERR(4, 2789, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2793
 *         return self._userdata[id]
 * 
 *     def get_mocap_pos(self, name):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_81get_mocap_pos, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_mocap_pos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__182)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_mocap_pos, __pyx_t_4) < 0) __PYX_ERR(4, 2793, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2798
 *         return self.mocap_pos[mocap_id]
 * 
 *     def set_mocap_pos(self, name, value):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_83set_mocap_pos, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_set_mocap_pos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__184)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_set_mocap_pos, __pyx_t_4) < 0) __PYX_ERR(4, 2798, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2803
 *         self.mocap_pos[mocap_id] = value
 * 
 *     def get_mocap_quat(self, name):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_85get_mocap_quat, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_mocap_quat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__185)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2803, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_mocap_quat, __pyx_t_4) < 0) __PYX_ERR(4, 2803, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2808
 *         return self.mocap_quat[mocap_id]
 * 
 *     def set_mocap_quat(self, name, value):             # <<<<<<<<<<<<<<
 *         body_id = self._model.body_name2id(name)
 *         mocap_id = self._model.body_mocapid[body_id]
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_87set_mocap_quat, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_set_mocap_quat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__186)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_set_mocap_quat, __pyx_t_4) < 0) __PYX_ERR(4, 2808, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2813
 *         self.mocap_quat[mocap_id] = value
 * 
 *     def get_joint_qpos(self, name):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qpos_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_89get_joint_qpos, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_joint_qpos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__188)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_joint_qpos, __pyx_t_4) < 0) __PYX_ERR(4, 2813, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2821
 *             return self.qpos[start_i:end_i]
 * 
 *     def set_joint_qpos(self, name, value):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qpos_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_91set_joint_qpos, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_set_joint_qpos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__190)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_set_joint_qpos, __pyx_t_4) < 0) __PYX_ERR(4, 2821, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2832
 *             self.qpos[start_i:end_i] = value
 * 
 *     def get_joint_qvel(self, name):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qvel_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_93get_joint_qvel, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_get_joint_qvel, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__191)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_get_joint_qvel, __pyx_t_4) < 0) __PYX_ERR(4, 2832, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "mujoco_py/generated/wrappers.pxi":2840
 *             return self.qvel[start_i:end_i]
 * 
 *     def set_joint_qvel(self, name, value):             # <<<<<<<<<<<<<<
 *         addr = self._model.get_joint_qvel_addr(name)
 *         if isinstance(addr, (int, np.int32, np.int64)):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_95set_joint_qvel, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData_set_joint_qvel, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__192)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_PyMjData, __pyx_n_s_set_joint_qvel, __pyx_t_4) < 0) __PYX_ERR(4, 2840, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_PyMjData);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_97__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__193)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.ptr cannot be converted to a Python object for pickling"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_8PyMjData_99__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjData___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__194)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_12PyMjvPerturb_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvPerturb___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__195)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_12PyMjvPerturb_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvPerturb___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__196)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11PyMjvCamera_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvCamera___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__197)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11PyMjvCamera_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvCamera___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__198)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_13PyMjvGLCamera_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvGLCamera___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__199)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_13PyMjvGLCamera_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvGLCamera___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__200)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjvGeom_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvGeom___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__201)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjvGeom_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvGeom___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__202)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10PyMjvLight_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvLight___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__203)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10PyMjvLight_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvLight___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__204)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11PyMjvOption_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvOption___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__205)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11PyMjvOption_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvOption___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__206)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10PyMjvScene_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvScene___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__207)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10PyMjvScene_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvScene___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__208)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11PyMjvFigure_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvFigure___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__209)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11PyMjvFigure_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjvFigure___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__210)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjrRect_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjrRect___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__211)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjrRect_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjrRect___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__212)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_12PyMjrContext_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjrContext___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__213)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_12PyMjrContext_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjrContext___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__214)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11PyMjuiState_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjuiState___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__215)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11PyMjuiState_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjuiState___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__216)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_18PyMjuiThemeSpacing_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjuiThemeSpacing___reduce_cyth, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__217)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_18PyMjuiThemeSpacing_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjuiThemeSpacing___setstate_cy, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__218)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_16PyMjuiThemeColor_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjuiThemeColor___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__219)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_16PyMjuiThemeColor_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjuiThemeColor___setstate_cyth, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__220)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10PyMjuiItem_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjuiItem___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__221)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10PyMjuiItem_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjuiItem___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__222)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_13PyMjuiSection_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjuiSection___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__223)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_13PyMjuiSection_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjuiSection___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__224)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_6PyMjUI_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjUI___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__225)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_6PyMjUI_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjUI___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__226)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjuiDef_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjuiDef___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__227)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_4) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9PyMjuiDef_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyMjuiDef___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__228)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_4) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4797
 *     return np.asarray(b)
 * 
 * def _mj_activate(str filename):             # <<<<<<<<<<<<<<
 *     return mj_activate(filename.encode())
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_1_mj_activate, 0, __pyx_n_s_mj_activate, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__230)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4797, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_activate, __pyx_t_4) < 0) __PYX_ERR(4, 4797, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4800
 *     return mj_activate(filename.encode())
 * 
 * def _mj_deactivate():             # <<<<<<<<<<<<<<
 *     mj_deactivate()
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_3_mj_deactivate, 0, __pyx_n_s_mj_deactivate, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__231)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_deactivate, __pyx_t_4) < 0) __PYX_ERR(4, 4800, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4803
 *     mj_deactivate()
 * 
 * def _mj_defaultVFS(PyMjVFS vfs):             # <<<<<<<<<<<<<<
 *     mj_defaultVFS(vfs.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5_mj_defaultVFS, 0, __pyx_n_s_mj_defaultVFS, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__233)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4803, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_defaultVFS, __pyx_t_4) < 0) __PYX_ERR(4, 4803, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4806
 *     mj_defaultVFS(vfs.ptr)
 * 
 * def _mj_addFileVFS(PyMjVFS vfs, str directory, str filename):             # <<<<<<<<<<<<<<
 *     return mj_addFileVFS(vfs.ptr, directory.encode(), filename.encode())
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_7_mj_addFileVFS, 0, __pyx_n_s_mj_addFileVFS, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__235)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_addFileVFS, __pyx_t_4) < 0) __PYX_ERR(4, 4806, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4809
 *     return mj_addFileVFS(vfs.ptr, directory.encode(), filename.encode())
 * 
 * def _mj_makeEmptyFileVFS(PyMjVFS vfs, str filename, int filesize):             # <<<<<<<<<<<<<<
 *     return mj_makeEmptyFileVFS(vfs.ptr, filename.encode(), filesize)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_9_mj_makeEmptyFileVFS, 0, __pyx_n_s_mj_makeEmptyFileVFS, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__237)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4809, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_makeEmptyFileVFS, __pyx_t_4) < 0) __PYX_ERR(4, 4809, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4812
 *     return mj_makeEmptyFileVFS(vfs.ptr, filename.encode(), filesize)
 * 
 * def _mj_findFileVFS(PyMjVFS vfs, str filename):             # <<<<<<<<<<<<<<
 *     return mj_findFileVFS(vfs.ptr, filename.encode())
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11_mj_findFileVFS, 0, __pyx_n_s_mj_findFileVFS, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__239)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_findFileVFS, __pyx_t_4) < 0) __PYX_ERR(4, 4812, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4815
 *     return mj_findFileVFS(vfs.ptr, filename.encode())
 * 
 * def _mj_deleteFileVFS(PyMjVFS vfs, str filename):             # <<<<<<<<<<<<<<
 *     return mj_deleteFileVFS(vfs.ptr, filename.encode())
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_13_mj_deleteFileVFS, 0, __pyx_n_s_mj_deleteFileVFS, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__240)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_deleteFileVFS, __pyx_t_4) < 0) __PYX_ERR(4, 4815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4818
 *     return mj_deleteFileVFS(vfs.ptr, filename.encode())
 * 
 * def _mj_deleteVFS(PyMjVFS vfs):             # <<<<<<<<<<<<<<
 *     mj_deleteVFS(vfs.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15_mj_deleteVFS, 0, __pyx_n_s_mj_deleteVFS, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__241)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_deleteVFS, __pyx_t_4) < 0) __PYX_ERR(4, 4818, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4821
 *     mj_deleteVFS(vfs.ptr)
 * 
 * def _mj_loadXML(str filename, PyMjVFS vfs, str error, int error_sz):             # <<<<<<<<<<<<<<
 *     return WrapMjModel(mj_loadXML(filename.encode(), vfs.ptr, error.encode(), error_sz))
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_17_mj_loadXML, 0, __pyx_n_s_mj_loadXML, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__243)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_loadXML, __pyx_t_4) < 0) __PYX_ERR(4, 4821, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4824
 *     return WrapMjModel(mj_loadXML(filename.encode(), vfs.ptr, error.encode(), error_sz))
 * 
 * def _mj_saveLastXML(str filename, PyMjModel m, str error, int error_sz):             # <<<<<<<<<<<<<<
 *     return mj_saveLastXML(filename.encode(), m.ptr, error.encode(), error_sz)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_19_mj_saveLastXML, 0, __pyx_n_s_mj_saveLastXML, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__245)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_saveLastXML, __pyx_t_4) < 0) __PYX_ERR(4, 4824, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4827
 *     return mj_saveLastXML(filename.encode(), m.ptr, error.encode(), error_sz)
 * 
 * def _mj_freeLastXML():             # <<<<<<<<<<<<<<
 *     mj_freeLastXML()
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_21_mj_freeLastXML, 0, __pyx_n_s_mj_freeLastXML, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__246)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4827, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_freeLastXML, __pyx_t_4) < 0) __PYX_ERR(4, 4827, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4830
 *     mj_freeLastXML()
 * 
 * def _mj_printSchema(str filename, str buffer, int buffer_sz, int flg_html, int flg_pad):             # <<<<<<<<<<<<<<
 *     return mj_printSchema(filename.encode(), buffer.encode(), buffer_sz, flg_html, flg_pad)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_23_mj_printSchema, 0, __pyx_n_s_mj_printSchema, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__248)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_printSchema, __pyx_t_4) < 0) __PYX_ERR(4, 4830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4833
 *     return mj_printSchema(filename.encode(), buffer.encode(), buffer_sz, flg_html, flg_pad)
 * 
 * def _mj_step(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_step(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_25_mj_step, 0, __pyx_n_s_mj_step, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__250)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_step, __pyx_t_4) < 0) __PYX_ERR(4, 4833, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4836
 *     mj_step(m.ptr, d.ptr)
 * 
 * def _mj_step1(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_step1(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_27_mj_step1, 0, __pyx_n_s_mj_step1, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__251)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_step1, __pyx_t_4) < 0) __PYX_ERR(4, 4836, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4839
 *     mj_step1(m.ptr, d.ptr)
 * 
 * def _mj_step2(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_step2(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_29_mj_step2, 0, __pyx_n_s_mj_step2, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__252)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_step2, __pyx_t_4) < 0) __PYX_ERR(4, 4839, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4842
 *     mj_step2(m.ptr, d.ptr)
 * 
 * def _mj_forward(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_forward(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_31_mj_forward, 0, __pyx_n_s_mj_forward, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__253)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_forward, __pyx_t_4) < 0) __PYX_ERR(4, 4842, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4845
 *     mj_forward(m.ptr, d.ptr)
 * 
 * def _mj_inverse(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_inverse(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_33_mj_inverse, 0, __pyx_n_s_mj_inverse, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__254)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_inverse, __pyx_t_4) < 0) __PYX_ERR(4, 4845, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4848
 *     mj_inverse(m.ptr, d.ptr)
 * 
 * def _mj_forwardSkip(PyMjModel m, PyMjData d, int skipstage, int skipsensor):             # <<<<<<<<<<<<<<
 *     mj_forwardSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_35_mj_forwardSkip, 0, __pyx_n_s_mj_forwardSkip, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__256)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4848, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_forwardSkip, __pyx_t_4) < 0) __PYX_ERR(4, 4848, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4851
 *     mj_forwardSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 * def _mj_inverseSkip(PyMjModel m, PyMjData d, int skipstage, int skipsensor):             # <<<<<<<<<<<<<<
 *     mj_inverseSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_37_mj_inverseSkip, 0, __pyx_n_s_mj_inverseSkip, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__257)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_inverseSkip, __pyx_t_4) < 0) __PYX_ERR(4, 4851, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4854
 *     mj_inverseSkip(m.ptr, d.ptr, skipstage, skipsensor)
 * 
 * def _mj_defaultLROpt(PyMjLROpt opt):             # <<<<<<<<<<<<<<
 *     mj_defaultLROpt(opt.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_39_mj_defaultLROpt, 0, __pyx_n_s_mj_defaultLROpt, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__259)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_defaultLROpt, __pyx_t_4) < 0) __PYX_ERR(4, 4854, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4857
 *     mj_defaultLROpt(opt.ptr)
 * 
 * def _mj_defaultSolRefImp(np.ndarray[np.float64_t, mode="c", ndim=1] solref, np.ndarray[np.float64_t, mode="c", ndim=1] solimp):             # <<<<<<<<<<<<<<
 *     mj_defaultSolRefImp(&solref[0], &solimp[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_41_mj_defaultSolRefImp, 0, __pyx_n_s_mj_defaultSolRefImp, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__261)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4857, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_defaultSolRefImp, __pyx_t_4) < 0) __PYX_ERR(4, 4857, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4860
 *     mj_defaultSolRefImp(&solref[0], &solimp[0])
 * 
 * def _mj_defaultOption(PyMjOption opt):             # <<<<<<<<<<<<<<
 *     mj_defaultOption(opt.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_43_mj_defaultOption, 0, __pyx_n_s_mj_defaultOption, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__262)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_defaultOption, __pyx_t_4) < 0) __PYX_ERR(4, 4860, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4863
 *     mj_defaultOption(opt.ptr)
 * 
 * def _mj_defaultVisual(PyMjVisual vis):             # <<<<<<<<<<<<<<
 *     mj_defaultVisual(vis.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_45_mj_defaultVisual, 0, __pyx_n_s_mj_defaultVisual, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__264)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_defaultVisual, __pyx_t_4) < 0) __PYX_ERR(4, 4863, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4866
 *     mj_defaultVisual(vis.ptr)
 * 
 * def _mj_copyModel(PyMjModel dest, PyMjModel src):             # <<<<<<<<<<<<<<
 *     return WrapMjModel(mj_copyModel(dest.ptr, src.ptr))
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_47_mj_copyModel, 0, __pyx_n_s_mj_copyModel, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__266)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_copyModel, __pyx_t_4) < 0) __PYX_ERR(4, 4866, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4869
 *     return WrapMjModel(mj_copyModel(dest.ptr, src.ptr))
 * 
 * def _mj_loadModel(str filename, PyMjVFS vfs):             # <<<<<<<<<<<<<<
 *     return WrapMjModel(mj_loadModel(filename.encode(), vfs.ptr))
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_49_mj_loadModel, 0, __pyx_n_s_mj_loadModel, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__268)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_loadModel, __pyx_t_4) < 0) __PYX_ERR(4, 4869, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4872
 *     return WrapMjModel(mj_loadModel(filename.encode(), vfs.ptr))
 * 
 * def _mj_deleteModel(PyMjModel m):             # <<<<<<<<<<<<<<
 *     mj_deleteModel(m.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_51_mj_deleteModel, 0, __pyx_n_s_mj_deleteModel, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__270)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_deleteModel, __pyx_t_4) < 0) __PYX_ERR(4, 4872, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4875
 *     mj_deleteModel(m.ptr)
 * 
 * def _mj_sizeModel(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_sizeModel(m.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_53_mj_sizeModel, 0, __pyx_n_s_mj_sizeModel, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__271)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_sizeModel, __pyx_t_4) < 0) __PYX_ERR(4, 4875, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4878
 *     return mj_sizeModel(m.ptr)
 * 
 * def _mj_resetData(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_resetData(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_55_mj_resetData, 0, __pyx_n_s_mj_resetData, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__272)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_resetData, __pyx_t_4) < 0) __PYX_ERR(4, 4878, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4881
 *     mj_resetData(m.ptr, d.ptr)
 * 
 * def _mj_resetDataKeyframe(PyMjModel m, PyMjData d, int key):             # <<<<<<<<<<<<<<
 *     mj_resetDataKeyframe(m.ptr, d.ptr, key)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_57_mj_resetDataKeyframe, 0, __pyx_n_s_mj_resetDataKeyframe, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__274)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_resetDataKeyframe, __pyx_t_4) < 0) __PYX_ERR(4, 4881, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4884
 *     mj_resetDataKeyframe(m.ptr, d.ptr, key)
 * 
 * def _mj_deleteData(PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_deleteData(d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_59_mj_deleteData, 0, __pyx_n_s_mj_deleteData, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__276)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4884, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_deleteData, __pyx_t_4) < 0) __PYX_ERR(4, 4884, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4887
 *     mj_deleteData(d.ptr)
 * 
 * def _mj_resetCallbacks():             # <<<<<<<<<<<<<<
 *     mj_resetCallbacks()
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_61_mj_resetCallbacks, 0, __pyx_n_s_mj_resetCallbacks, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__277)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_resetCallbacks, __pyx_t_4) < 0) __PYX_ERR(4, 4887, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4890
 *     mj_resetCallbacks()
 * 
 * def _mj_setConst(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_setConst(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_63_mj_setConst, 0, __pyx_n_s_mj_setConst, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__278)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_setConst, __pyx_t_4) < 0) __PYX_ERR(4, 4890, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4893
 *     mj_setConst(m.ptr, d.ptr)
 * 
 * def _mj_setLengthRange(PyMjModel m, PyMjData d, int index, PyMjLROpt opt, str error, int error_sz):             # <<<<<<<<<<<<<<
 *     return mj_setLengthRange(m.ptr, d.ptr, index, opt.ptr, error.encode(), error_sz)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_65_mj_setLengthRange, 0, __pyx_n_s_mj_setLengthRange, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__280)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_setLengthRange, __pyx_t_4) < 0) __PYX_ERR(4, 4893, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4896
 *     return mj_setLengthRange(m.ptr, d.ptr, index, opt.ptr, error.encode(), error_sz)
 * 
 * def _mj_printModel(PyMjModel m, str filename):             # <<<<<<<<<<<<<<
 *     mj_printModel(m.ptr, filename.encode())
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_67_mj_printModel, 0, __pyx_n_s_mj_printModel, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__282)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4896, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_printModel, __pyx_t_4) < 0) __PYX_ERR(4, 4896, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4899
 *     mj_printModel(m.ptr, filename.encode())
 * 
 * def _mj_printData(PyMjModel m, PyMjData d, str filename):             # <<<<<<<<<<<<<<
 *     mj_printData(m.ptr, d.ptr, filename.encode())
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_69_mj_printData, 0, __pyx_n_s_mj_printData, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__284)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4899, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_printData, __pyx_t_4) < 0) __PYX_ERR(4, 4899, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4902
 *     mj_printData(m.ptr, d.ptr, filename.encode())
 * 
 * def _mju_printMat(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_printMat(&mat[0], nr, nc)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_71_mju_printMat, 0, __pyx_n_s_mju_printMat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__286)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4902, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_printMat, __pyx_t_4) < 0) __PYX_ERR(4, 4902, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4905
 *     mju_printMat(&mat[0], nr, nc)
 * 
 * def _mju_printMatSparse(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, uintptr_t rownnz, uintptr_t rowadr, uintptr_t colind):             # <<<<<<<<<<<<<<
 *     mju_printMatSparse(&mat[0], nr, <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_73_mju_printMatSparse, 0, __pyx_n_s_mju_printMatSparse, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__288)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_printMatSparse, __pyx_t_4) < 0) __PYX_ERR(4, 4905, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4908
 *     mju_printMatSparse(&mat[0], nr, <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 * def _mj_fwdPosition(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdPosition(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_75_mj_fwdPosition, 0, __pyx_n_s_mj_fwdPosition, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__289)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_fwdPosition, __pyx_t_4) < 0) __PYX_ERR(4, 4908, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4911
 *     mj_fwdPosition(m.ptr, d.ptr)
 * 
 * def _mj_fwdVelocity(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdVelocity(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_77_mj_fwdVelocity, 0, __pyx_n_s_mj_fwdVelocity, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__290)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_fwdVelocity, __pyx_t_4) < 0) __PYX_ERR(4, 4911, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4914
 *     mj_fwdVelocity(m.ptr, d.ptr)
 * 
 * def _mj_fwdActuation(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdActuation(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_79_mj_fwdActuation, 0, __pyx_n_s_mj_fwdActuation, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__291)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_fwdActuation, __pyx_t_4) < 0) __PYX_ERR(4, 4914, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4917
 *     mj_fwdActuation(m.ptr, d.ptr)
 * 
 * def _mj_fwdAcceleration(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdAcceleration(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_81_mj_fwdAcceleration, 0, __pyx_n_s_mj_fwdAcceleration, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__292)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_fwdAcceleration, __pyx_t_4) < 0) __PYX_ERR(4, 4917, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4920
 *     mj_fwdAcceleration(m.ptr, d.ptr)
 * 
 * def _mj_fwdConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_fwdConstraint(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_83_mj_fwdConstraint, 0, __pyx_n_s_mj_fwdConstraint, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__293)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_fwdConstraint, __pyx_t_4) < 0) __PYX_ERR(4, 4920, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4923
 *     mj_fwdConstraint(m.ptr, d.ptr)
 * 
 * def _mj_Euler(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_Euler(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_85_mj_Euler, 0, __pyx_n_s_mj_Euler, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__294)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_Euler, __pyx_t_4) < 0) __PYX_ERR(4, 4923, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4926
 *     mj_Euler(m.ptr, d.ptr)
 * 
 * def _mj_RungeKutta(PyMjModel m, PyMjData d, int N):             # <<<<<<<<<<<<<<
 *     mj_RungeKutta(m.ptr, d.ptr, N)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_87_mj_RungeKutta, 0, __pyx_n_s_mj_RungeKutta, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__296)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_RungeKutta, __pyx_t_4) < 0) __PYX_ERR(4, 4926, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4929
 *     mj_RungeKutta(m.ptr, d.ptr, N)
 * 
 * def _mj_invPosition(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_invPosition(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_89_mj_invPosition, 0, __pyx_n_s_mj_invPosition, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__297)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_invPosition, __pyx_t_4) < 0) __PYX_ERR(4, 4929, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4932
 *     mj_invPosition(m.ptr, d.ptr)
 * 
 * def _mj_invVelocity(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_invVelocity(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_91_mj_invVelocity, 0, __pyx_n_s_mj_invVelocity, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__298)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_invVelocity, __pyx_t_4) < 0) __PYX_ERR(4, 4932, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4935
 *     mj_invVelocity(m.ptr, d.ptr)
 * 
 * def _mj_invConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_invConstraint(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_93_mj_invConstraint, 0, __pyx_n_s_mj_invConstraint, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__299)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4935, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_invConstraint, __pyx_t_4) < 0) __PYX_ERR(4, 4935, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4938
 *     mj_invConstraint(m.ptr, d.ptr)
 * 
 * def _mj_compareFwdInv(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_compareFwdInv(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_95_mj_compareFwdInv, 0, __pyx_n_s_mj_compareFwdInv, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__300)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_compareFwdInv, __pyx_t_4) < 0) __PYX_ERR(4, 4938, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4941
 *     mj_compareFwdInv(m.ptr, d.ptr)
 * 
 * def _mj_sensorPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_sensorPos(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_97_mj_sensorPos, 0, __pyx_n_s_mj_sensorPos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__301)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_sensorPos, __pyx_t_4) < 0) __PYX_ERR(4, 4941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4944
 *     mj_sensorPos(m.ptr, d.ptr)
 * 
 * def _mj_sensorVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_sensorVel(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_99_mj_sensorVel, 0, __pyx_n_s_mj_sensorVel, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__302)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_sensorVel, __pyx_t_4) < 0) __PYX_ERR(4, 4944, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4947
 *     mj_sensorVel(m.ptr, d.ptr)
 * 
 * def _mj_sensorAcc(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_sensorAcc(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_101_mj_sensorAcc, 0, __pyx_n_s_mj_sensorAcc, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__303)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_sensorAcc, __pyx_t_4) < 0) __PYX_ERR(4, 4947, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4950
 *     mj_sensorAcc(m.ptr, d.ptr)
 * 
 * def _mj_energyPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_energyPos(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_103_mj_energyPos, 0, __pyx_n_s_mj_energyPos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__304)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_energyPos, __pyx_t_4) < 0) __PYX_ERR(4, 4950, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4953
 *     mj_energyPos(m.ptr, d.ptr)
 * 
 * def _mj_energyVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_energyVel(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_105_mj_energyVel, 0, __pyx_n_s_mj_energyVel, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__305)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_energyVel, __pyx_t_4) < 0) __PYX_ERR(4, 4953, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4956
 *     mj_energyVel(m.ptr, d.ptr)
 * 
 * def _mj_checkPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_checkPos(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_107_mj_checkPos, 0, __pyx_n_s_mj_checkPos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__306)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_checkPos, __pyx_t_4) < 0) __PYX_ERR(4, 4956, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4959
 *     mj_checkPos(m.ptr, d.ptr)
 * 
 * def _mj_checkVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_checkVel(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_109_mj_checkVel, 0, __pyx_n_s_mj_checkVel, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__307)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_checkVel, __pyx_t_4) < 0) __PYX_ERR(4, 4959, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4962
 *     mj_checkVel(m.ptr, d.ptr)
 * 
 * def _mj_checkAcc(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_checkAcc(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_111_mj_checkAcc, 0, __pyx_n_s_mj_checkAcc, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__308)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_checkAcc, __pyx_t_4) < 0) __PYX_ERR(4, 4962, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4965
 *     mj_checkAcc(m.ptr, d.ptr)
 * 
 * def _mj_kinematics(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_kinematics(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_113_mj_kinematics, 0, __pyx_n_s_mj_kinematics, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__309)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4965, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_kinematics, __pyx_t_4) < 0) __PYX_ERR(4, 4965, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4968
 *     mj_kinematics(m.ptr, d.ptr)
 * 
 * def _mj_comPos(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_comPos(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_115_mj_comPos, 0, __pyx_n_s_mj_comPos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__310)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4968, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_comPos, __pyx_t_4) < 0) __PYX_ERR(4, 4968, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4971
 *     mj_comPos(m.ptr, d.ptr)
 * 
 * def _mj_camlight(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_camlight(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_117_mj_camlight, 0, __pyx_n_s_mj_camlight, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__311)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_camlight, __pyx_t_4) < 0) __PYX_ERR(4, 4971, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4974
 *     mj_camlight(m.ptr, d.ptr)
 * 
 * def _mj_tendon(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_tendon(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_119_mj_tendon, 0, __pyx_n_s_mj_tendon, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__312)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_tendon, __pyx_t_4) < 0) __PYX_ERR(4, 4974, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4977
 *     mj_tendon(m.ptr, d.ptr)
 * 
 * def _mj_transmission(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_transmission(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_121_mj_transmission, 0, __pyx_n_s_mj_transmission, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__313)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_transmission, __pyx_t_4) < 0) __PYX_ERR(4, 4977, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4980
 *     mj_transmission(m.ptr, d.ptr)
 * 
 * def _mj_crb(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_crb(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_123_mj_crb, 0, __pyx_n_s_mj_crb, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__314)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_crb, __pyx_t_4) < 0) __PYX_ERR(4, 4980, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4983
 *     mj_crb(m.ptr, d.ptr)
 * 
 * def _mj_factorM(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_factorM(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_125_mj_factorM, 0, __pyx_n_s_mj_factorM, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__315)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4983, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_factorM, __pyx_t_4) < 0) __PYX_ERR(4, 4983, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4986
 *     mj_factorM(m.ptr, d.ptr)
 * 
 * def _mj_solveM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] x, np.ndarray[np.float64_t, mode="c", ndim=1] y, int n):             # <<<<<<<<<<<<<<
 *     mj_solveM(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_127_mj_solveM, 0, __pyx_n_s_mj_solveM, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__317)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_solveM, __pyx_t_4) < 0) __PYX_ERR(4, 4986, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4989
 *     mj_solveM(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 * def _mj_solveM2(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] x, np.ndarray[np.float64_t, mode="c", ndim=1] y, int n):             # <<<<<<<<<<<<<<
 *     mj_solveM2(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_129_mj_solveM2, 0, __pyx_n_s_mj_solveM2, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__318)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4989, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_solveM2, __pyx_t_4) < 0) __PYX_ERR(4, 4989, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4992
 *     mj_solveM2(m.ptr, d.ptr, &x[0], &y[0], n)
 * 
 * def _mj_comVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_comVel(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_131_mj_comVel, 0, __pyx_n_s_mj_comVel, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__319)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_comVel, __pyx_t_4) < 0) __PYX_ERR(4, 4992, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4995
 *     mj_comVel(m.ptr, d.ptr)
 * 
 * def _mj_passive(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_passive(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_133_mj_passive, 0, __pyx_n_s_mj_passive, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__320)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4995, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_passive, __pyx_t_4) < 0) __PYX_ERR(4, 4995, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":4998
 *     mj_passive(m.ptr, d.ptr)
 * 
 * def _mj_subtreeVel(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_subtreeVel(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_135_mj_subtreeVel, 0, __pyx_n_s_mj_subtreeVel, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__321)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_subtreeVel, __pyx_t_4) < 0) __PYX_ERR(4, 4998, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5001
 *     mj_subtreeVel(m.ptr, d.ptr)
 * 
 * def _mj_rne(PyMjModel m, PyMjData d, int flg_acc, np.ndarray[np.float64_t, mode="c", ndim=1] result):             # <<<<<<<<<<<<<<
 *     mj_rne(m.ptr, d.ptr, flg_acc, &result[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_137_mj_rne, 0, __pyx_n_s_mj_rne, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__323)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5001, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_rne, __pyx_t_4) < 0) __PYX_ERR(4, 5001, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5004
 *     mj_rne(m.ptr, d.ptr, flg_acc, &result[0])
 * 
 * def _mj_rnePostConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_rnePostConstraint(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_139_mj_rnePostConstraint, 0, __pyx_n_s_mj_rnePostConstraint, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__324)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5004, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_rnePostConstraint, __pyx_t_4) < 0) __PYX_ERR(4, 5004, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5007
 *     mj_rnePostConstraint(m.ptr, d.ptr)
 * 
 * def _mj_collision(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_collision(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_141_mj_collision, 0, __pyx_n_s_mj_collision, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__325)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5007, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_collision, __pyx_t_4) < 0) __PYX_ERR(4, 5007, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5010
 *     mj_collision(m.ptr, d.ptr)
 * 
 * def _mj_makeConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_makeConstraint(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_143_mj_makeConstraint, 0, __pyx_n_s_mj_makeConstraint, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__326)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5010, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_makeConstraint, __pyx_t_4) < 0) __PYX_ERR(4, 5010, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5013
 *     mj_makeConstraint(m.ptr, d.ptr)
 * 
 * def _mj_projectConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_projectConstraint(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_145_mj_projectConstraint, 0, __pyx_n_s_mj_projectConstraint, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__327)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_projectConstraint, __pyx_t_4) < 0) __PYX_ERR(4, 5013, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5016
 *     mj_projectConstraint(m.ptr, d.ptr)
 * 
 * def _mj_referenceConstraint(PyMjModel m, PyMjData d):             # <<<<<<<<<<<<<<
 *     mj_referenceConstraint(m.ptr, d.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_147_mj_referenceConstraint, 0, __pyx_n_s_mj_referenceConstraint, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__328)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_referenceConstraint, __pyx_t_4) < 0) __PYX_ERR(4, 5016, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5019
 *     mj_referenceConstraint(m.ptr, d.ptr)
 * 
 * def _mj_constraintUpdate(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jar, np.ndarray[np.float64_t, mode="c", ndim=1] cost, int flg_coneHessian):             # <<<<<<<<<<<<<<
 *     mj_constraintUpdate(m.ptr, d.ptr, &jar[0], &cost[0], flg_coneHessian)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_149_mj_constraintUpdate, 0, __pyx_n_s_mj_constraintUpdate, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__330)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_constraintUpdate, __pyx_t_4) < 0) __PYX_ERR(4, 5019, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5022
 *     mj_constraintUpdate(m.ptr, d.ptr, &jar[0], &cost[0], flg_coneHessian)
 * 
 * def _mj_addContact(PyMjModel m, PyMjData d, PyMjContact con):             # <<<<<<<<<<<<<<
 *     return mj_addContact(m.ptr, d.ptr, con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_151_mj_addContact, 0, __pyx_n_s_mj_addContact, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__332)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5022, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_addContact, __pyx_t_4) < 0) __PYX_ERR(4, 5022, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5025
 *     return mj_addContact(m.ptr, d.ptr, con.ptr)
 * 
 * def _mj_isPyramidal(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_isPyramidal(m.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_153_mj_isPyramidal, 0, __pyx_n_s_mj_isPyramidal, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__333)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5025, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_isPyramidal, __pyx_t_4) < 0) __PYX_ERR(4, 5025, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5028
 *     return mj_isPyramidal(m.ptr)
 * 
 * def _mj_isSparse(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_isSparse(m.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_155_mj_isSparse, 0, __pyx_n_s_mj_isSparse, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__334)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_isSparse, __pyx_t_4) < 0) __PYX_ERR(4, 5028, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5031
 *     return mj_isSparse(m.ptr)
 * 
 * def _mj_isDual(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_isDual(m.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_157_mj_isDual, 0, __pyx_n_s_mj_isDual, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__335)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_isDual, __pyx_t_4) < 0) __PYX_ERR(4, 5031, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5034
 *     return mj_isDual(m.ptr)
 * 
 * def _mj_mulJacVec(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulJacVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_159_mj_mulJacVec, 0, __pyx_n_s_mj_mulJacVec, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__337)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_mulJacVec, __pyx_t_4) < 0) __PYX_ERR(4, 5034, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5037
 *     mj_mulJacVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_mulJacTVec(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulJacTVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_161_mj_mulJacTVec, 0, __pyx_n_s_mj_mulJacTVec, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__338)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5037, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_mulJacTVec, __pyx_t_4) < 0) __PYX_ERR(4, 5037, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5040
 *     mj_mulJacTVec(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_jac(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, np.ndarray[np.float64_t, mode="c", ndim=1] point, int body):             # <<<<<<<<<<<<<<
 *     mj_jac(m.ptr, d.ptr, &jacp[0], &jacr[0], &point[0], body)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_163_mj_jac, 0, __pyx_n_s_mj_jac, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__340)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_jac, __pyx_t_4) < 0) __PYX_ERR(4, 5040, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5043
 *     mj_jac(m.ptr, d.ptr, &jacp[0], &jacr[0], &point[0], body)
 * 
 * def _mj_jacBody(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int body):             # <<<<<<<<<<<<<<
 *     mj_jacBody(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_165_mj_jacBody, 0, __pyx_n_s_mj_jacBody, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__342)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_jacBody, __pyx_t_4) < 0) __PYX_ERR(4, 5043, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5046
 *     mj_jacBody(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 * def _mj_jacBodyCom(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int body):             # <<<<<<<<<<<<<<
 *     mj_jacBodyCom(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_167_mj_jacBodyCom, 0, __pyx_n_s_mj_jacBodyCom, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__343)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5046, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_jacBodyCom, __pyx_t_4) < 0) __PYX_ERR(4, 5046, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5049
 *     mj_jacBodyCom(m.ptr, d.ptr, &jacp[0], &jacr[0], body)
 * 
 * def _mj_jacGeom(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int geom):             # <<<<<<<<<<<<<<
 *     mj_jacGeom(m.ptr, d.ptr, &jacp[0], &jacr[0], geom)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_169_mj_jacGeom, 0, __pyx_n_s_mj_jacGeom, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__345)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_jacGeom, __pyx_t_4) < 0) __PYX_ERR(4, 5049, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5052
 *     mj_jacGeom(m.ptr, d.ptr, &jacp[0], &jacr[0], geom)
 * 
 * def _mj_jacSite(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int site):             # <<<<<<<<<<<<<<
 *     mj_jacSite(m.ptr, d.ptr, &jacp[0], &jacr[0], site)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_171_mj_jacSite, 0, __pyx_n_s_mj_jacSite, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__347)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_jacSite, __pyx_t_4) < 0) __PYX_ERR(4, 5052, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5055
 *     mj_jacSite(m.ptr, d.ptr, &jacp[0], &jacr[0], site)
 * 
 * def _mj_jacPointAxis(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacPoint, np.ndarray[np.float64_t, mode="c", ndim=1] jacAxis, np.ndarray[np.float64_t, mode="c", ndim=1] point, np.ndarray[np.float64_t, mode="c", ndim=1] axis, int body):             # <<<<<<<<<<<<<<
 *     mj_jacPointAxis(m.ptr, d.ptr, &jacPoint[0], &jacAxis[0], &point[0], &axis[0], body)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_173_mj_jacPointAxis, 0, __pyx_n_s_mj_jacPointAxis, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__349)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5055, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_jacPointAxis, __pyx_t_4) < 0) __PYX_ERR(4, 5055, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5058
 *     mj_jacPointAxis(m.ptr, d.ptr, &jacPoint[0], &jacAxis[0], &point[0], &axis[0], body)
 * 
 * def _mj_name2id(PyMjModel m, int type, str name):             # <<<<<<<<<<<<<<
 *     return mj_name2id(m.ptr, type, name.encode())
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_175_mj_name2id, 0, __pyx_n_s_mj_name2id, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__351)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5058, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_name2id, __pyx_t_4) < 0) __PYX_ERR(4, 5058, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5061
 *     return mj_name2id(m.ptr, type, name.encode())
 * 
 * def _mj_fullM(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] dst, np.ndarray[np.float64_t, mode="c", ndim=1] M):             # <<<<<<<<<<<<<<
 *     mj_fullM(m.ptr, &dst[0], &M[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_177_mj_fullM, 0, __pyx_n_s_mj_fullM, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__353)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_fullM, __pyx_t_4) < 0) __PYX_ERR(4, 5061, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5064
 *     mj_fullM(m.ptr, &dst[0], &M[0])
 * 
 * def _mj_mulM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulM(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_179_mj_mulM, 0, __pyx_n_s_mj_mulM, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__354)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5064, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_mulM, __pyx_t_4) < 0) __PYX_ERR(4, 5064, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5067
 *     mj_mulM(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_mulM2(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mj_mulM2(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_181_mj_mulM2, 0, __pyx_n_s_mj_mulM2, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__355)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5067, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_mulM2, __pyx_t_4) < 0) __PYX_ERR(4, 5067, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5070
 *     mj_mulM2(m.ptr, d.ptr, &res[0], &vec[0])
 * 
 * def _mj_addM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] dst, uintptr_t rownnz, uintptr_t rowadr, uintptr_t colind):             # <<<<<<<<<<<<<<
 *     mj_addM(m.ptr, d.ptr, &dst[0], <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_183_mj_addM, 0, __pyx_n_s_mj_addM, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__357)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5070, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_addM, __pyx_t_4) < 0) __PYX_ERR(4, 5070, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5073
 *     mj_addM(m.ptr, d.ptr, &dst[0], <int*>rownnz, <int*>rowadr, <int*>colind)
 * 
 * def _mj_applyFT(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] torque, np.ndarray[np.float64_t, mode="c", ndim=1] point, int body, np.ndarray[np.float64_t, mode="c", ndim=1] qfrc_target):             # <<<<<<<<<<<<<<
 *     mj_applyFT(m.ptr, d.ptr, &force[0], &torque[0], &point[0], body, &qfrc_target[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_185_mj_applyFT, 0, __pyx_n_s_mj_applyFT, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__359)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_applyFT, __pyx_t_4) < 0) __PYX_ERR(4, 5073, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5076
 *     mj_applyFT(m.ptr, d.ptr, &force[0], &torque[0], &point[0], body, &qfrc_target[0])
 * 
 * def _mj_objectVelocity(PyMjModel m, PyMjData d, int objtype, int objid, np.ndarray[np.float64_t, mode="c", ndim=1] res, int flg_local):             # <<<<<<<<<<<<<<
 *     mj_objectVelocity(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_187_mj_objectVelocity, 0, __pyx_n_s_mj_objectVelocity, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__361)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5076, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_objectVelocity, __pyx_t_4) < 0) __PYX_ERR(4, 5076, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5079
 *     mj_objectVelocity(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 * def _mj_objectAcceleration(PyMjModel m, PyMjData d, int objtype, int objid, np.ndarray[np.float64_t, mode="c", ndim=1] res, int flg_local):             # <<<<<<<<<<<<<<
 *     mj_objectAcceleration(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_189_mj_objectAcceleration, 0, __pyx_n_s_mj_objectAcceleration, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__362)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_objectAcceleration, __pyx_t_4) < 0) __PYX_ERR(4, 5079, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5082
 *     mj_objectAcceleration(m.ptr, d.ptr, objtype, objid, &res[0], flg_local)
 * 
 * def _mj_contactForce(PyMjModel m, PyMjData d, int id, np.ndarray[np.float64_t, mode="c", ndim=1] result):             # <<<<<<<<<<<<<<
 *     mj_contactForce(m.ptr, d.ptr, id, &result[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_191_mj_contactForce, 0, __pyx_n_s_mj_contactForce, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__364)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_contactForce, __pyx_t_4) < 0) __PYX_ERR(4, 5082, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5085
 *     mj_contactForce(m.ptr, d.ptr, id, &result[0])
 * 
 * def _mj_differentiatePos(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qvel, float dt, np.ndarray[np.float64_t, mode="c", ndim=1] qpos1, np.ndarray[np.float64_t, mode="c", ndim=1] qpos2):             # <<<<<<<<<<<<<<
 *     mj_differentiatePos(m.ptr, &qvel[0], dt, &qpos1[0], &qpos2[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_193_mj_differentiatePos, 0, __pyx_n_s_mj_differentiatePos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__366)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_differentiatePos, __pyx_t_4) < 0) __PYX_ERR(4, 5085, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5088
 *     mj_differentiatePos(m.ptr, &qvel[0], dt, &qpos1[0], &qpos2[0])
 * 
 * def _mj_integratePos(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qpos, np.ndarray[np.float64_t, mode="c", ndim=1] qvel, float dt):             # <<<<<<<<<<<<<<
 *     mj_integratePos(m.ptr, &qpos[0], &qvel[0], dt)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_195_mj_integratePos, 0, __pyx_n_s_mj_integratePos, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__368)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_integratePos, __pyx_t_4) < 0) __PYX_ERR(4, 5088, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5091
 *     mj_integratePos(m.ptr, &qpos[0], &qvel[0], dt)
 * 
 * def _mj_normalizeQuat(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qpos):             # <<<<<<<<<<<<<<
 *     mj_normalizeQuat(m.ptr, &qpos[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_197_mj_normalizeQuat, 0, __pyx_n_s_mj_normalizeQuat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__370)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5091, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_normalizeQuat, __pyx_t_4) < 0) __PYX_ERR(4, 5091, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5094
 *     mj_normalizeQuat(m.ptr, &qpos[0])
 * 
 * def _mj_local2Global(PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] xpos, np.ndarray[np.float64_t, mode="c", ndim=1] xmat, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat, int body, int sameframe):             # <<<<<<<<<<<<<<
 *     mj_local2Global(d.ptr, &xpos[0], &xmat[0], &pos[0], &quat[0], body, sameframe)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_199_mj_local2Global, 0, __pyx_n_s_mj_local2Global, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__372)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5094, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_local2Global, __pyx_t_4) < 0) __PYX_ERR(4, 5094, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5097
 *     mj_local2Global(d.ptr, &xpos[0], &xmat[0], &pos[0], &quat[0], body, sameframe)
 * 
 * def _mj_getTotalmass(PyMjModel m):             # <<<<<<<<<<<<<<
 *     return mj_getTotalmass(m.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_201_mj_getTotalmass, 0, __pyx_n_s_mj_getTotalmass, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__373)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_getTotalmass, __pyx_t_4) < 0) __PYX_ERR(4, 5097, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5100
 *     return mj_getTotalmass(m.ptr)
 * 
 * def _mj_setTotalmass(PyMjModel m, float newmass):             # <<<<<<<<<<<<<<
 *     mj_setTotalmass(m.ptr, newmass)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_203_mj_setTotalmass, 0, __pyx_n_s_mj_setTotalmass, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__375)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_setTotalmass, __pyx_t_4) < 0) __PYX_ERR(4, 5100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5103
 *     mj_setTotalmass(m.ptr, newmass)
 * 
 * def _mj_version():             # <<<<<<<<<<<<<<
 *     return mj_version()
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_205_mj_version, 0, __pyx_n_s_mj_version, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__376)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_version, __pyx_t_4) < 0) __PYX_ERR(4, 5103, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5106
 *     return mj_version()
 * 
 * def _mj_ray(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.uint8_t, mode="c", ndim=1] geomgroup, int flg_static, int bodyexclude, uintptr_t geomid):             # <<<<<<<<<<<<<<
 *     return mj_ray(m.ptr, d.ptr, &pnt[0], &vec[0], &geomgroup[0], flg_static, bodyexclude, <int*>geomid)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_207_mj_ray, 0, __pyx_n_s_mj_ray, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__378)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_ray, __pyx_t_4) < 0) __PYX_ERR(4, 5106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5109
 *     return mj_ray(m.ptr, d.ptr, &pnt[0], &vec[0], &geomgroup[0], flg_static, bodyexclude, <int*>geomid)
 * 
 * def _mj_rayHfield(PyMjModel m, PyMjData d, int geomid, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     return mj_rayHfield(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_209_mj_rayHfield, 0, __pyx_n_s_mj_rayHfield, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__380)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_rayHfield, __pyx_t_4) < 0) __PYX_ERR(4, 5109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5112
 *     return mj_rayHfield(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 * def _mj_rayMesh(PyMjModel m, PyMjData d, int geomid, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     return mj_rayMesh(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_211_mj_rayMesh, 0, __pyx_n_s_mj_rayMesh, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__381)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_rayMesh, __pyx_t_4) < 0) __PYX_ERR(4, 5112, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5115
 *     return mj_rayMesh(m.ptr, d.ptr, geomid, &pnt[0], &vec[0])
 * 
 * def _mju_rayGeom(np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] size, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int geomtype):             # <<<<<<<<<<<<<<
 *     return mju_rayGeom(&pos[0], &mat[0], &size[0], &pnt[0], &vec[0], geomtype)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_213_mju_rayGeom, 0, __pyx_n_s_mju_rayGeom, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__383)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_rayGeom, __pyx_t_4) < 0) __PYX_ERR(4, 5115, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5118
 *     return mju_rayGeom(&pos[0], &mat[0], &size[0], &pnt[0], &vec[0], geomtype)
 * 
 * def _mjv_defaultCamera(PyMjvCamera cam):             # <<<<<<<<<<<<<<
 *     mjv_defaultCamera(cam.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_215_mjv_defaultCamera, 0, __pyx_n_s_mjv_defaultCamera, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__385)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_defaultCamera, __pyx_t_4) < 0) __PYX_ERR(4, 5118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5121
 *     mjv_defaultCamera(cam.ptr)
 * 
 * def _mjv_defaultPerturb(PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_defaultPerturb(pert.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_217_mjv_defaultPerturb, 0, __pyx_n_s_mjv_defaultPerturb, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__387)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_defaultPerturb, __pyx_t_4) < 0) __PYX_ERR(4, 5121, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5124
 *     mjv_defaultPerturb(pert.ptr)
 * 
 * def _mjv_room2model(np.ndarray[np.float64_t, mode="c", ndim=1] modelpos, np.ndarray[np.float64_t, mode="c", ndim=1] modelquat, np.ndarray[np.float64_t, mode="c", ndim=1] roompos, np.ndarray[np.float64_t, mode="c", ndim=1] roomquat, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_room2model(&modelpos[0], &modelquat[0], &roompos[0], &roomquat[0], scn.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_219_mjv_room2model, 0, __pyx_n_s_mjv_room2model, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__389)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_room2model, __pyx_t_4) < 0) __PYX_ERR(4, 5124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5127
 *     mjv_room2model(&modelpos[0], &modelquat[0], &roompos[0], &roomquat[0], scn.ptr)
 * 
 * def _mjv_model2room(np.ndarray[np.float64_t, mode="c", ndim=1] roompos, np.ndarray[np.float64_t, mode="c", ndim=1] roomquat, np.ndarray[np.float64_t, mode="c", ndim=1] modelpos, np.ndarray[np.float64_t, mode="c", ndim=1] modelquat, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_model2room(&roompos[0], &roomquat[0], &modelpos[0], &modelquat[0], scn.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_221_mjv_model2room, 0, __pyx_n_s_mjv_model2room, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__391)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_model2room, __pyx_t_4) < 0) __PYX_ERR(4, 5127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5130
 *     mjv_model2room(&roompos[0], &roomquat[0], &modelpos[0], &modelquat[0], scn.ptr)
 * 
 * def _mjv_cameraInModel(np.ndarray[np.float64_t, mode="c", ndim=1] headpos, np.ndarray[np.float64_t, mode="c", ndim=1] forward, np.ndarray[np.float64_t, mode="c", ndim=1] up, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_cameraInModel(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_223_mjv_cameraInModel, 0, __pyx_n_s_mjv_cameraInModel, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__393)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_cameraInModel, __pyx_t_4) < 0) __PYX_ERR(4, 5130, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5133
 *     mjv_cameraInModel(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 * def _mjv_cameraInRoom(np.ndarray[np.float64_t, mode="c", ndim=1] headpos, np.ndarray[np.float64_t, mode="c", ndim=1] forward, np.ndarray[np.float64_t, mode="c", ndim=1] up, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_cameraInRoom(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_225_mjv_cameraInRoom, 0, __pyx_n_s_mjv_cameraInRoom, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__394)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_cameraInRoom, __pyx_t_4) < 0) __PYX_ERR(4, 5133, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5136
 *     mjv_cameraInRoom(&headpos[0], &forward[0], &up[0], scn.ptr)
 * 
 * def _mjv_frustumHeight(PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     return mjv_frustumHeight(scn.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_227_mjv_frustumHeight, 0, __pyx_n_s_mjv_frustumHeight, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__396)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_frustumHeight, __pyx_t_4) < 0) __PYX_ERR(4, 5136, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5139
 *     return mjv_frustumHeight(scn.ptr)
 * 
 * def _mjv_alignToCamera(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] forward):             # <<<<<<<<<<<<<<
 *     mjv_alignToCamera(&res[0], &vec[0], &forward[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_229_mjv_alignToCamera, 0, __pyx_n_s_mjv_alignToCamera, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__398)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_alignToCamera, __pyx_t_4) < 0) __PYX_ERR(4, 5139, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5142
 *     mjv_alignToCamera(&res[0], &vec[0], &forward[0])
 * 
 * def _mjv_moveCamera(PyMjModel m, int action, float reldx, float reldy, PyMjvScene scn, PyMjvCamera cam):             # <<<<<<<<<<<<<<
 *     mjv_moveCamera(m.ptr, action, reldx, reldy, scn.ptr, cam.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_231_mjv_moveCamera, 0, __pyx_n_s_mjv_moveCamera, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__400)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_moveCamera, __pyx_t_4) < 0) __PYX_ERR(4, 5142, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5145
 *     mjv_moveCamera(m.ptr, action, reldx, reldy, scn.ptr, cam.ptr)
 * 
 * def _mjv_movePerturb(PyMjModel m, PyMjData d, int action, float reldx, float reldy, PyMjvScene scn, PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_movePerturb(m.ptr, d.ptr, action, reldx, reldy, scn.ptr, pert.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_233_mjv_movePerturb, 0, __pyx_n_s_mjv_movePerturb, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__402)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_movePerturb, __pyx_t_4) < 0) __PYX_ERR(4, 5145, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5148
 *     mjv_movePerturb(m.ptr, d.ptr, action, reldx, reldy, scn.ptr, pert.ptr)
 * 
 * def _mjv_moveModel(PyMjModel m, int action, float reldx, float reldy, np.ndarray[np.float64_t, mode="c", ndim=1] roomup, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_moveModel(m.ptr, action, reldx, reldy, &roomup[0], scn.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_235_mjv_moveModel, 0, __pyx_n_s_mjv_moveModel, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__404)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_moveModel, __pyx_t_4) < 0) __PYX_ERR(4, 5148, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5151
 *     mjv_moveModel(m.ptr, action, reldx, reldy, &roomup[0], scn.ptr)
 * 
 * def _mjv_initPerturb(PyMjModel m, PyMjData d, PyMjvScene scn, PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_initPerturb(m.ptr, d.ptr, scn.ptr, pert.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_237_mjv_initPerturb, 0, __pyx_n_s_mjv_initPerturb, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__406)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_initPerturb, __pyx_t_4) < 0) __PYX_ERR(4, 5151, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5154
 *     mjv_initPerturb(m.ptr, d.ptr, scn.ptr, pert.ptr)
 * 
 * def _mjv_applyPerturbPose(PyMjModel m, PyMjData d, PyMjvPerturb pert, int flg_paused):             # <<<<<<<<<<<<<<
 *     mjv_applyPerturbPose(m.ptr, d.ptr, pert.ptr, flg_paused)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_239_mjv_applyPerturbPose, 0, __pyx_n_s_mjv_applyPerturbPose, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__408)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_applyPerturbPose, __pyx_t_4) < 0) __PYX_ERR(4, 5154, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5157
 *     mjv_applyPerturbPose(m.ptr, d.ptr, pert.ptr, flg_paused)
 * 
 * def _mjv_applyPerturbForce(PyMjModel m, PyMjData d, PyMjvPerturb pert):             # <<<<<<<<<<<<<<
 *     mjv_applyPerturbForce(m.ptr, d.ptr, pert.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_241_mjv_applyPerturbForce, 0, __pyx_n_s_mjv_applyPerturbForce, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__410)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_applyPerturbForce, __pyx_t_4) < 0) __PYX_ERR(4, 5157, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5160
 *     mjv_applyPerturbForce(m.ptr, d.ptr, pert.ptr)
 * 
 * def _mjv_select(PyMjModel m, PyMjData d, PyMjvOption vopt, float aspectratio, float relx, float rely, PyMjvScene scn, np.ndarray[np.float64_t, mode="c", ndim=1] selpnt, uintptr_t geomid, uintptr_t skinid):             # <<<<<<<<<<<<<<
 *     return mjv_select(m.ptr, d.ptr, vopt.ptr, aspectratio, relx, rely, scn.ptr, &selpnt[0], <int*>geomid, <int*>skinid)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_243_mjv_select, 0, __pyx_n_s_mjv_select, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__412)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_select, __pyx_t_4) < 0) __PYX_ERR(4, 5160, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5163
 *     return mjv_select(m.ptr, d.ptr, vopt.ptr, aspectratio, relx, rely, scn.ptr, &selpnt[0], <int*>geomid, <int*>skinid)
 * 
 * def _mjv_defaultOption(PyMjvOption opt):             # <<<<<<<<<<<<<<
 *     mjv_defaultOption(opt.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_245_mjv_defaultOption, 0, __pyx_n_s_mjv_defaultOption, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__413)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_defaultOption, __pyx_t_4) < 0) __PYX_ERR(4, 5163, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5166
 *     mjv_defaultOption(opt.ptr)
 * 
 * def _mjv_defaultFigure(PyMjvFigure fig):             # <<<<<<<<<<<<<<
 *     mjv_defaultFigure(fig.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_247_mjv_defaultFigure, 0, __pyx_n_s_mjv_defaultFigure, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__415)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_defaultFigure, __pyx_t_4) < 0) __PYX_ERR(4, 5166, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5169
 *     mjv_defaultFigure(fig.ptr)
 * 
 * def _mjv_makeConnector(PyMjvGeom geom, int type, float width, float a0, float a1, float a2, float b0, float b1, float b2):             # <<<<<<<<<<<<<<
 *     mjv_makeConnector(geom.ptr, type, width, a0, a1, a2, b0, b1, b2)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_249_mjv_makeConnector, 0, __pyx_n_s_mjv_makeConnector, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__417)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_makeConnector, __pyx_t_4) < 0) __PYX_ERR(4, 5169, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5172
 *     mjv_makeConnector(geom.ptr, type, width, a0, a1, a2, b0, b1, b2)
 * 
 * def _mjv_defaultScene(PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_defaultScene(scn.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_251_mjv_defaultScene, 0, __pyx_n_s_mjv_defaultScene, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__418)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_defaultScene, __pyx_t_4) < 0) __PYX_ERR(4, 5172, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5175
 *     mjv_defaultScene(scn.ptr)
 * 
 * def _mjv_makeScene(PyMjModel m, PyMjvScene scn, int maxgeom):             # <<<<<<<<<<<<<<
 *     mjv_makeScene(m.ptr, scn.ptr, maxgeom)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_253_mjv_makeScene, 0, __pyx_n_s_mjv_makeScene, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__420)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_makeScene, __pyx_t_4) < 0) __PYX_ERR(4, 5175, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5178
 *     mjv_makeScene(m.ptr, scn.ptr, maxgeom)
 * 
 * def _mjv_freeScene(PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_freeScene(scn.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_255_mjv_freeScene, 0, __pyx_n_s_mjv_freeScene, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__421)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_freeScene, __pyx_t_4) < 0) __PYX_ERR(4, 5178, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5181
 *     mjv_freeScene(scn.ptr)
 * 
 * def _mjv_updateScene(PyMjModel m, PyMjData d, PyMjvOption opt, PyMjvPerturb pert, PyMjvCamera cam, int catmask, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_updateScene(m.ptr, d.ptr, opt.ptr, pert.ptr, cam.ptr, catmask, scn.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_257_mjv_updateScene, 0, __pyx_n_s_mjv_updateScene, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__423)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_updateScene, __pyx_t_4) < 0) __PYX_ERR(4, 5181, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5184
 *     mjv_updateScene(m.ptr, d.ptr, opt.ptr, pert.ptr, cam.ptr, catmask, scn.ptr)
 * 
 * def _mjv_addGeoms(PyMjModel m, PyMjData d, PyMjvOption opt, PyMjvPerturb pert, int catmask, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_addGeoms(m.ptr, d.ptr, opt.ptr, pert.ptr, catmask, scn.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_259_mjv_addGeoms, 0, __pyx_n_s_mjv_addGeoms, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__425)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_addGeoms, __pyx_t_4) < 0) __PYX_ERR(4, 5184, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5187
 *     mjv_addGeoms(m.ptr, d.ptr, opt.ptr, pert.ptr, catmask, scn.ptr)
 * 
 * def _mjv_makeLights(PyMjModel m, PyMjData d, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_makeLights(m.ptr, d.ptr, scn.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_261_mjv_makeLights, 0, __pyx_n_s_mjv_makeLights, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__427)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_makeLights, __pyx_t_4) < 0) __PYX_ERR(4, 5187, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5190
 *     mjv_makeLights(m.ptr, d.ptr, scn.ptr)
 * 
 * def _mjv_updateCamera(PyMjModel m, PyMjData d, PyMjvCamera cam, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_updateCamera(m.ptr, d.ptr, cam.ptr, scn.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_263_mjv_updateCamera, 0, __pyx_n_s_mjv_updateCamera, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__429)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_updateCamera, __pyx_t_4) < 0) __PYX_ERR(4, 5190, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5193
 *     mjv_updateCamera(m.ptr, d.ptr, cam.ptr, scn.ptr)
 * 
 * def _mjv_updateSkin(PyMjModel m, PyMjData d, PyMjvScene scn):             # <<<<<<<<<<<<<<
 *     mjv_updateSkin(m.ptr, d.ptr, scn.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_265_mjv_updateSkin, 0, __pyx_n_s_mjv_updateSkin, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__430)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjv_updateSkin, __pyx_t_4) < 0) __PYX_ERR(4, 5193, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5196
 *     mjv_updateSkin(m.ptr, d.ptr, scn.ptr)
 * 
 * def _mjr_defaultContext(PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_defaultContext(con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_267_mjr_defaultContext, 0, __pyx_n_s_mjr_defaultContext, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__432)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5196, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_defaultContext, __pyx_t_4) < 0) __PYX_ERR(4, 5196, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5199
 *     mjr_defaultContext(con.ptr)
 * 
 * def _mjr_makeContext(PyMjModel m, PyMjrContext con, int fontscale):             # <<<<<<<<<<<<<<
 *     mjr_makeContext(m.ptr, con.ptr, fontscale)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_269_mjr_makeContext, 0, __pyx_n_s_mjr_makeContext, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__434)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_makeContext, __pyx_t_4) < 0) __PYX_ERR(4, 5199, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5202
 *     mjr_makeContext(m.ptr, con.ptr, fontscale)
 * 
 * def _mjr_changeFont(int fontscale, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_changeFont(fontscale, con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_271_mjr_changeFont, 0, __pyx_n_s_mjr_changeFont, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__436)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_changeFont, __pyx_t_4) < 0) __PYX_ERR(4, 5202, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5205
 *     mjr_changeFont(fontscale, con.ptr)
 * 
 * def _mjr_addAux(int index, int width, int height, int samples, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_addAux(index, width, height, samples, con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_273_mjr_addAux, 0, __pyx_n_s_mjr_addAux, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__438)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_addAux, __pyx_t_4) < 0) __PYX_ERR(4, 5205, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5208
 *     mjr_addAux(index, width, height, samples, con.ptr)
 * 
 * def _mjr_freeContext(PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_freeContext(con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_275_mjr_freeContext, 0, __pyx_n_s_mjr_freeContext, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__439)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_freeContext, __pyx_t_4) < 0) __PYX_ERR(4, 5208, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5211
 *     mjr_freeContext(con.ptr)
 * 
 * def _mjr_uploadTexture(PyMjModel m, PyMjrContext con, int texid):             # <<<<<<<<<<<<<<
 *     mjr_uploadTexture(m.ptr, con.ptr, texid)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_277_mjr_uploadTexture, 0, __pyx_n_s_mjr_uploadTexture, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__441)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_uploadTexture, __pyx_t_4) < 0) __PYX_ERR(4, 5211, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5214
 *     mjr_uploadTexture(m.ptr, con.ptr, texid)
 * 
 * def _mjr_uploadMesh(PyMjModel m, PyMjrContext con, int meshid):             # <<<<<<<<<<<<<<
 *     mjr_uploadMesh(m.ptr, con.ptr, meshid)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_279_mjr_uploadMesh, 0, __pyx_n_s_mjr_uploadMesh, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__443)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_uploadMesh, __pyx_t_4) < 0) __PYX_ERR(4, 5214, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5217
 *     mjr_uploadMesh(m.ptr, con.ptr, meshid)
 * 
 * def _mjr_uploadHField(PyMjModel m, PyMjrContext con, int hfieldid):             # <<<<<<<<<<<<<<
 *     mjr_uploadHField(m.ptr, con.ptr, hfieldid)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_281_mjr_uploadHField, 0, __pyx_n_s_mjr_uploadHField, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__445)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_uploadHField, __pyx_t_4) < 0) __PYX_ERR(4, 5217, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5220
 *     mjr_uploadHField(m.ptr, con.ptr, hfieldid)
 * 
 * def _mjr_restoreBuffer(PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_restoreBuffer(con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_283_mjr_restoreBuffer, 0, __pyx_n_s_mjr_restoreBuffer, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__446)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_restoreBuffer, __pyx_t_4) < 0) __PYX_ERR(4, 5220, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5223
 *     mjr_restoreBuffer(con.ptr)
 * 
 * def _mjr_setBuffer(int framebuffer, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_setBuffer(framebuffer, con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_285_mjr_setBuffer, 0, __pyx_n_s_mjr_setBuffer, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__448)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_setBuffer, __pyx_t_4) < 0) __PYX_ERR(4, 5223, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5226
 *     mjr_setBuffer(framebuffer, con.ptr)
 * 
 * def _mjr_blitBuffer(PyMjrRect src, PyMjrRect dst, int flg_color, int flg_depth, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_blitBuffer(src.ptr[0], dst.ptr[0], flg_color, flg_depth, con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_287_mjr_blitBuffer, 0, __pyx_n_s_mjr_blitBuffer, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__450)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_blitBuffer, __pyx_t_4) < 0) __PYX_ERR(4, 5226, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5229
 *     mjr_blitBuffer(src.ptr[0], dst.ptr[0], flg_color, flg_depth, con.ptr)
 * 
 * def _mjr_setAux(int index, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_setAux(index, con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_289_mjr_setAux, 0, __pyx_n_s_mjr_setAux, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__452)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_setAux, __pyx_t_4) < 0) __PYX_ERR(4, 5229, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5232
 *     mjr_setAux(index, con.ptr)
 * 
 * def _mjr_blitAux(int index, PyMjrRect src, int left, int bottom, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_blitAux(index, src.ptr[0], left, bottom, con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_291_mjr_blitAux, 0, __pyx_n_s_mjr_blitAux, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__454)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_blitAux, __pyx_t_4) < 0) __PYX_ERR(4, 5232, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5235
 *     mjr_blitAux(index, src.ptr[0], left, bottom, con.ptr)
 * 
 * def _mjr_overlay(int font, int gridpos, PyMjrRect viewport, str overlay, str overlay2, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_overlay(font, gridpos, viewport.ptr[0], overlay.encode(), overlay2.encode(), con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_293_mjr_overlay, 0, __pyx_n_s_mjr_overlay, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__456)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_overlay, __pyx_t_4) < 0) __PYX_ERR(4, 5235, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5238
 *     mjr_overlay(font, gridpos, viewport.ptr[0], overlay.encode(), overlay2.encode(), con.ptr)
 * 
 * def _mjr_figure(PyMjrRect viewport, PyMjvFigure fig, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_figure(viewport.ptr[0], fig.ptr, con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_295_mjr_figure, 0, __pyx_n_s_mjr_figure, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__458)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_figure, __pyx_t_4) < 0) __PYX_ERR(4, 5238, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5241
 *     mjr_figure(viewport.ptr[0], fig.ptr, con.ptr)
 * 
 * def _mjr_render(PyMjrRect viewport, PyMjvScene scn, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjr_render(viewport.ptr[0], scn.ptr, con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_297_mjr_render, 0, __pyx_n_s_mjr_render, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__460)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_render, __pyx_t_4) < 0) __PYX_ERR(4, 5241, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5244
 *     mjr_render(viewport.ptr[0], scn.ptr, con.ptr)
 * 
 * def _mjr_finish():             # <<<<<<<<<<<<<<
 *     mjr_finish()
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_299_mjr_finish, 0, __pyx_n_s_mjr_finish, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__461)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_finish, __pyx_t_4) < 0) __PYX_ERR(4, 5244, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5247
 *     mjr_finish()
 * 
 * def _mjr_getError():             # <<<<<<<<<<<<<<
 *     return mjr_getError()
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_301_mjr_getError, 0, __pyx_n_s_mjr_getError, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__462)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_getError, __pyx_t_4) < 0) __PYX_ERR(4, 5247, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5250
 *     return mjr_getError()
 * 
 * def _mjr_findRect(int x, int y, int nrect, PyMjrRect rect):             # <<<<<<<<<<<<<<
 *     return mjr_findRect(x, y, nrect, rect.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_303_mjr_findRect, 0, __pyx_n_s_mjr_findRect, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__464)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjr_findRect, __pyx_t_4) < 0) __PYX_ERR(4, 5250, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5253
 *     return mjr_findRect(x, y, nrect, rect.ptr)
 * 
 * def _mjui_add(PyMjUI ui, PyMjuiDef _def):             # <<<<<<<<<<<<<<
 *     mjui_add(ui.ptr, _def.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_305_mjui_add, 0, __pyx_n_s_mjui_add, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__466)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjui_add, __pyx_t_4) < 0) __PYX_ERR(4, 5253, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5256
 *     mjui_add(ui.ptr, _def.ptr)
 * 
 * def _mjui_addToSection(PyMjUI ui, int sect, PyMjuiDef _def):             # <<<<<<<<<<<<<<
 *     mjui_addToSection(ui.ptr, sect, _def.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_307_mjui_addToSection, 0, __pyx_n_s_mjui_addToSection, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__468)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjui_addToSection, __pyx_t_4) < 0) __PYX_ERR(4, 5256, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5259
 *     mjui_addToSection(ui.ptr, sect, _def.ptr)
 * 
 * def _mjui_resize(PyMjUI ui, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjui_resize(ui.ptr, con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_309_mjui_resize, 0, __pyx_n_s_mjui_resize, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__470)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjui_resize, __pyx_t_4) < 0) __PYX_ERR(4, 5259, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5262
 *     mjui_resize(ui.ptr, con.ptr)
 * 
 * def _mjui_update(int section, int item, PyMjUI ui, PyMjuiState state, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjui_update(section, item, ui.ptr, state.ptr, con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_311_mjui_update, 0, __pyx_n_s_mjui_update, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__472)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjui_update, __pyx_t_4) < 0) __PYX_ERR(4, 5262, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5265
 *     mjui_update(section, item, ui.ptr, state.ptr, con.ptr)
 * 
 * def _mjui_event(PyMjUI ui, PyMjuiState state, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     return WrapMjuiItem(mjui_event(ui.ptr, state.ptr, con.ptr))
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_313_mjui_event, 0, __pyx_n_s_mjui_event, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__474)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjui_event, __pyx_t_4) < 0) __PYX_ERR(4, 5265, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5268
 *     return WrapMjuiItem(mjui_event(ui.ptr, state.ptr, con.ptr))
 * 
 * def _mjui_render(PyMjUI ui, PyMjuiState state, PyMjrContext con):             # <<<<<<<<<<<<<<
 *     mjui_render(ui.ptr, state.ptr, con.ptr)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_315_mjui_render, 0, __pyx_n_s_mjui_render, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__475)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mjui_render, __pyx_t_4) < 0) __PYX_ERR(4, 5268, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5271
 *     mjui_render(ui.ptr, state.ptr, con.ptr)
 * 
 * def _mju_error(str msg):             # <<<<<<<<<<<<<<
 *     mju_error(msg.encode())
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_317_mju_error, 0, __pyx_n_s_mju_error, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__477)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_error, __pyx_t_4) < 0) __PYX_ERR(4, 5271, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5274
 *     mju_error(msg.encode())
 * 
 * def _mju_error_i(str msg, int i):             # <<<<<<<<<<<<<<
 *     mju_error_i(msg.encode(), i)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_319_mju_error_i, 0, __pyx_n_s_mju_error_i, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__479)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_error_i, __pyx_t_4) < 0) __PYX_ERR(4, 5274, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5277
 *     mju_error_i(msg.encode(), i)
 * 
 * def _mju_error_s(str msg, str text):             # <<<<<<<<<<<<<<
 *     mju_error_s(msg.encode(), text.encode())
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_321_mju_error_s, 0, __pyx_n_s_mju_error_s, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__481)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_error_s, __pyx_t_4) < 0) __PYX_ERR(4, 5277, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5280
 *     mju_error_s(msg.encode(), text.encode())
 * 
 * def _mju_warning(str msg):             # <<<<<<<<<<<<<<
 *     mju_warning(msg.encode())
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_323_mju_warning, 0, __pyx_n_s_mju_warning, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__482)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_warning, __pyx_t_4) < 0) __PYX_ERR(4, 5280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5283
 *     mju_warning(msg.encode())
 * 
 * def _mju_warning_i(str msg, int i):             # <<<<<<<<<<<<<<
 *     mju_warning_i(msg.encode(), i)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_325_mju_warning_i, 0, __pyx_n_s_mju_warning_i, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__483)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_warning_i, __pyx_t_4) < 0) __PYX_ERR(4, 5283, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5286
 *     mju_warning_i(msg.encode(), i)
 * 
 * def _mju_warning_s(str msg, str text):             # <<<<<<<<<<<<<<
 *     mju_warning_s(msg.encode(), text.encode())
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_327_mju_warning_s, 0, __pyx_n_s_mju_warning_s, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__484)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_warning_s, __pyx_t_4) < 0) __PYX_ERR(4, 5286, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5289
 *     mju_warning_s(msg.encode(), text.encode())
 * 
 * def _mju_clearHandlers():             # <<<<<<<<<<<<<<
 *     mju_clearHandlers()
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_329_mju_clearHandlers, 0, __pyx_n_s_mju_clearHandlers, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__485)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_clearHandlers, __pyx_t_4) < 0) __PYX_ERR(4, 5289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5292
 *     mju_clearHandlers()
 * 
 * def _mj_warning(PyMjData d, int warning, int info):             # <<<<<<<<<<<<<<
 *     mj_warning(d.ptr, warning, info)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_331_mj_warning, 0, __pyx_n_s_mj_warning, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__487)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mj_warning, __pyx_t_4) < 0) __PYX_ERR(4, 5292, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5295
 *     mj_warning(d.ptr, warning, info)
 * 
 * def _mju_writeLog(str type, str msg):             # <<<<<<<<<<<<<<
 *     mju_writeLog(type.encode(), msg.encode())
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_333_mju_writeLog, 0, __pyx_n_s_mju_writeLog, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__489)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_writeLog, __pyx_t_4) < 0) __PYX_ERR(4, 5295, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5298
 *     mju_writeLog(type.encode(), msg.encode())
 * 
 * def _mju_zero3(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     mju_zero3(&res[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_335_mju_zero3, 0, __pyx_n_s_mju_zero3, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__491)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_zero3, __pyx_t_4) < 0) __PYX_ERR(4, 5298, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5301
 *     mju_zero3(&res[0])
 * 
 * def _mju_copy3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data):             # <<<<<<<<<<<<<<
 *     mju_copy3(&res[0], &data[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_337_mju_copy3, 0, __pyx_n_s_mju_copy3, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__493)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_copy3, __pyx_t_4) < 0) __PYX_ERR(4, 5301, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5304
 *     mju_copy3(&res[0], &data[0])
 * 
 * def _mju_scl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl):             # <<<<<<<<<<<<<<
 *     mju_scl3(&res[0], &vec[0], scl)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_339_mju_scl3, 0, __pyx_n_s_mju_scl3, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__495)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_scl3, __pyx_t_4) < 0) __PYX_ERR(4, 5304, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5307
 *     mju_scl3(&res[0], &vec[0], scl)
 * 
 * def _mju_add3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):             # <<<<<<<<<<<<<<
 *     mju_add3(&res[0], &vec1[0], &vec2[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_341_mju_add3, 0, __pyx_n_s_mju_add3, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__497)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_add3, __pyx_t_4) < 0) __PYX_ERR(4, 5307, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5310
 *     mju_add3(&res[0], &vec1[0], &vec2[0])
 * 
 * def _mju_sub3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):             # <<<<<<<<<<<<<<
 *     mju_sub3(&res[0], &vec1[0], &vec2[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_343_mju_sub3, 0, __pyx_n_s_mju_sub3, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__498)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_sub3, __pyx_t_4) < 0) __PYX_ERR(4, 5310, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5313
 *     mju_sub3(&res[0], &vec1[0], &vec2[0])
 * 
 * def _mju_addTo3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_addTo3(&res[0], &vec[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_345_mju_addTo3, 0, __pyx_n_s_mju_addTo3, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__500)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_addTo3, __pyx_t_4) < 0) __PYX_ERR(4, 5313, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5316
 *     mju_addTo3(&res[0], &vec[0])
 * 
 * def _mju_subFrom3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_subFrom3(&res[0], &vec[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_347_mju_subFrom3, 0, __pyx_n_s_mju_subFrom3, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__501)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_subFrom3, __pyx_t_4) < 0) __PYX_ERR(4, 5316, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5319
 *     mju_subFrom3(&res[0], &vec[0])
 * 
 * def _mju_addToScl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl):             # <<<<<<<<<<<<<<
 *     mju_addToScl3(&res[0], &vec[0], scl)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_349_mju_addToScl3, 0, __pyx_n_s_mju_addToScl3, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__502)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_addToScl3, __pyx_t_4) < 0) __PYX_ERR(4, 5319, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5322
 *     mju_addToScl3(&res[0], &vec[0], scl)
 * 
 * def _mju_addScl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, float scl):             # <<<<<<<<<<<<<<
 *     mju_addScl3(&res[0], &vec1[0], &vec2[0], scl)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_351_mju_addScl3, 0, __pyx_n_s_mju_addScl3, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__504)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_addScl3, __pyx_t_4) < 0) __PYX_ERR(4, 5322, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5325
 *     mju_addScl3(&res[0], &vec1[0], &vec2[0], scl)
 * 
 * def _mju_normalize3(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     return mju_normalize3(&res[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_353_mju_normalize3, 0, __pyx_n_s_mju_normalize3, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__505)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_normalize3, __pyx_t_4) < 0) __PYX_ERR(4, 5325, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5328
 *     return mju_normalize3(&res[0])
 * 
 * def _mju_norm3(np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     return mju_norm3(&vec[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_355_mju_norm3, 0, __pyx_n_s_mju_norm3, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__507)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_norm3, __pyx_t_4) < 0) __PYX_ERR(4, 5328, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5331
 *     return mju_norm3(&vec[0])
 * 
 * def _mju_dot3(np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2):             # <<<<<<<<<<<<<<
 *     return mju_dot3(&vec1[0], &vec2[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_357_mju_dot3, 0, __pyx_n_s_mju_dot3, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__509)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_dot3, __pyx_t_4) < 0) __PYX_ERR(4, 5331, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5334
 *     return mju_dot3(&vec1[0], &vec2[0])
 * 
 * def _mju_dist3(np.ndarray[np.float64_t, mode="c", ndim=1] pos1, np.ndarray[np.float64_t, mode="c", ndim=1] pos2):             # <<<<<<<<<<<<<<
 *     return mju_dist3(&pos1[0], &pos2[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_359_mju_dist3, 0, __pyx_n_s_mju_dist3, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__511)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_dist3, __pyx_t_4) < 0) __PYX_ERR(4, 5334, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5337
 *     return mju_dist3(&pos1[0], &pos2[0])
 * 
 * def _mju_rotVecMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     mju_rotVecMat(&res[0], &vec[0], &mat[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_361_mju_rotVecMat, 0, __pyx_n_s_mju_rotVecMat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__513)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_rotVecMat, __pyx_t_4) < 0) __PYX_ERR(4, 5337, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5340
 *     mju_rotVecMat(&res[0], &vec[0], &mat[0])
 * 
 * def _mju_rotVecMatT(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     mju_rotVecMatT(&res[0], &vec[0], &mat[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_363_mju_rotVecMatT, 0, __pyx_n_s_mju_rotVecMatT, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__514)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_rotVecMatT, __pyx_t_4) < 0) __PYX_ERR(4, 5340, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5343
 *     mju_rotVecMatT(&res[0], &vec[0], &mat[0])
 * 
 * def _mju_cross(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] a, np.ndarray[np.float64_t, mode="c", ndim=1] b):             # <<<<<<<<<<<<<<
 *     mju_cross(&res[0], &a[0], &b[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_365_mju_cross, 0, __pyx_n_s_mju_cross, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__516)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_cross, __pyx_t_4) < 0) __PYX_ERR(4, 5343, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5346
 *     mju_cross(&res[0], &a[0], &b[0])
 * 
 * def _mju_zero4(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     mju_zero4(&res[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_367_mju_zero4, 0, __pyx_n_s_mju_zero4, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__517)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_zero4, __pyx_t_4) < 0) __PYX_ERR(4, 5346, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5349
 *     mju_zero4(&res[0])
 * 
 * def _mju_unit4(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     mju_unit4(&res[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_369_mju_unit4, 0, __pyx_n_s_mju_unit4, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__518)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_unit4, __pyx_t_4) < 0) __PYX_ERR(4, 5349, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5352
 *     mju_unit4(&res[0])
 * 
 * def _mju_copy4(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data):             # <<<<<<<<<<<<<<
 *     mju_copy4(&res[0], &data[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_371_mju_copy4, 0, __pyx_n_s_mju_copy4, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__519)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5352, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_copy4, __pyx_t_4) < 0) __PYX_ERR(4, 5352, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5355
 *     mju_copy4(&res[0], &data[0])
 * 
 * def _mju_normalize4(np.ndarray[np.float64_t, mode="c", ndim=1] res):             # <<<<<<<<<<<<<<
 *     return mju_normalize4(&res[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_373_mju_normalize4, 0, __pyx_n_s_mju_normalize4, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__520)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_normalize4, __pyx_t_4) < 0) __PYX_ERR(4, 5355, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5358
 *     return mju_normalize4(&res[0])
 * 
 * def _mju_zero(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):             # <<<<<<<<<<<<<<
 *     mju_zero(&res[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_375_mju_zero, 0, __pyx_n_s_mju_zero, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__522)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_zero, __pyx_t_4) < 0) __PYX_ERR(4, 5358, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5361
 *     mju_zero(&res[0], n)
 * 
 * def _mju_copy(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data, int n):             # <<<<<<<<<<<<<<
 *     mju_copy(&res[0], &data[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_377_mju_copy, 0, __pyx_n_s_mju_copy, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__524)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_copy, __pyx_t_4) < 0) __PYX_ERR(4, 5361, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5364
 *     mju_copy(&res[0], &data[0], n)
 * 
 * def _mju_sum(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     return mju_sum(&vec[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_379_mju_sum, 0, __pyx_n_s_mju_sum, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__526)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_sum, __pyx_t_4) < 0) __PYX_ERR(4, 5364, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5367
 *     return mju_sum(&vec[0], n)
 * 
 * def _mju_L1(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     return mju_L1(&vec[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_381_mju_L1, 0, __pyx_n_s_mju_L1, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__527)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_L1, __pyx_t_4) < 0) __PYX_ERR(4, 5367, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5370
 *     return mju_L1(&vec[0], n)
 * 
 * def _mju_scl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl, int n):             # <<<<<<<<<<<<<<
 *     mju_scl(&res[0], &vec[0], scl, n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_383_mju_scl, 0, __pyx_n_s_mju_scl, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__529)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_scl, __pyx_t_4) < 0) __PYX_ERR(4, 5370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5373
 *     mju_scl(&res[0], &vec[0], scl, n)
 * 
 * def _mju_add(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):             # <<<<<<<<<<<<<<
 *     mju_add(&res[0], &vec1[0], &vec2[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_385_mju_add, 0, __pyx_n_s_mju_add, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__531)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_add, __pyx_t_4) < 0) __PYX_ERR(4, 5373, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5376
 *     mju_add(&res[0], &vec1[0], &vec2[0], n)
 * 
 * def _mju_sub(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):             # <<<<<<<<<<<<<<
 *     mju_sub(&res[0], &vec1[0], &vec2[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_387_mju_sub, 0, __pyx_n_s_mju_sub, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__532)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_sub, __pyx_t_4) < 0) __PYX_ERR(4, 5376, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5379
 *     mju_sub(&res[0], &vec1[0], &vec2[0], n)
 * 
 * def _mju_addTo(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     mju_addTo(&res[0], &vec[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_389_mju_addTo, 0, __pyx_n_s_mju_addTo, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__534)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_addTo, __pyx_t_4) < 0) __PYX_ERR(4, 5379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5382
 *     mju_addTo(&res[0], &vec[0], n)
 * 
 * def _mju_subFrom(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     mju_subFrom(&res[0], &vec[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_391_mju_subFrom, 0, __pyx_n_s_mju_subFrom, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__535)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_subFrom, __pyx_t_4) < 0) __PYX_ERR(4, 5382, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5385
 *     mju_subFrom(&res[0], &vec[0], n)
 * 
 * def _mju_addToScl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl, int n):             # <<<<<<<<<<<<<<
 *     mju_addToScl(&res[0], &vec[0], scl, n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_393_mju_addToScl, 0, __pyx_n_s_mju_addToScl, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__536)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_addToScl, __pyx_t_4) < 0) __PYX_ERR(4, 5385, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5388
 *     mju_addToScl(&res[0], &vec[0], scl, n)
 * 
 * def _mju_addScl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, float scl, int n):             # <<<<<<<<<<<<<<
 *     mju_addScl(&res[0], &vec1[0], &vec2[0], scl, n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_395_mju_addScl, 0, __pyx_n_s_mju_addScl, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__538)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_addScl, __pyx_t_4) < 0) __PYX_ERR(4, 5388, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5391
 *     mju_addScl(&res[0], &vec1[0], &vec2[0], scl, n)
 * 
 * def _mju_normalize(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):             # <<<<<<<<<<<<<<
 *     return mju_normalize(&res[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_397_mju_normalize, 0, __pyx_n_s_mju_normalize, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__539)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_normalize, __pyx_t_4) < 0) __PYX_ERR(4, 5391, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5394
 *     return mju_normalize(&res[0], n)
 * 
 * def _mju_norm(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n):             # <<<<<<<<<<<<<<
 *     return mju_norm(&res[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_399_mju_norm, 0, __pyx_n_s_mju_norm, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__540)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_norm, __pyx_t_4) < 0) __PYX_ERR(4, 5394, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5397
 *     return mju_norm(&res[0], n)
 * 
 * def _mju_dot(np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n):             # <<<<<<<<<<<<<<
 *     return mju_dot(&vec1[0], &vec2[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_401_mju_dot, 0, __pyx_n_s_mju_dot, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__542)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_dot, __pyx_t_4) < 0) __PYX_ERR(4, 5397, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5400
 *     return mju_dot(&vec1[0], &vec2[0], n)
 * 
 * def _mju_mulMatVec(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_mulMatVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_403_mju_mulMatVec, 0, __pyx_n_s_mju_mulMatVec, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__544)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5400, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_mulMatVec, __pyx_t_4) < 0) __PYX_ERR(4, 5400, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5403
 *     mju_mulMatVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 * def _mju_mulMatTVec(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_mulMatTVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_405_mju_mulMatTVec, 0, __pyx_n_s_mju_mulMatTVec, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__545)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_mulMatTVec, __pyx_t_4) < 0) __PYX_ERR(4, 5403, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5406
 *     mju_mulMatTVec(&res[0], &mat[0], &vec[0], nr, nc)
 * 
 * def _mju_transpose(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_transpose(&res[0], &mat[0], nr, nc)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_407_mju_transpose, 0, __pyx_n_s_mju_transpose, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__547)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_transpose, __pyx_t_4) < 0) __PYX_ERR(4, 5406, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5409
 *     mju_transpose(&res[0], &mat[0], nr, nc)
 * 
 * def _mju_mulMatMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int c2):             # <<<<<<<<<<<<<<
 *     mju_mulMatMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_409_mju_mulMatMat, 0, __pyx_n_s_mju_mulMatMat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__549)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_mulMatMat, __pyx_t_4) < 0) __PYX_ERR(4, 5409, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5412
 *     mju_mulMatMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 * def _mju_mulMatMatT(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int r2):             # <<<<<<<<<<<<<<
 *     mju_mulMatMatT(&res[0], &mat1[0], &mat2[0], r1, c1, r2)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_411_mju_mulMatMatT, 0, __pyx_n_s_mju_mulMatMatT, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__551)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_mulMatMatT, __pyx_t_4) < 0) __PYX_ERR(4, 5412, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5415
 *     mju_mulMatMatT(&res[0], &mat1[0], &mat2[0], r1, c1, r2)
 * 
 * def _mju_mulMatTMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int c2):             # <<<<<<<<<<<<<<
 *     mju_mulMatTMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_413_mju_mulMatTMat, 0, __pyx_n_s_mju_mulMatTMat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__552)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_mulMatTMat, __pyx_t_4) < 0) __PYX_ERR(4, 5415, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5418
 *     mju_mulMatTMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2)
 * 
 * def _mju_sqrMatTD(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] diag, int nr, int nc):             # <<<<<<<<<<<<<<
 *     mju_sqrMatTD(&res[0], &mat[0], &diag[0], nr, nc)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_415_mju_sqrMatTD, 0, __pyx_n_s_mju_sqrMatTD, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__554)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_sqrMatTD, __pyx_t_4) < 0) __PYX_ERR(4, 5418, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5421
 *     mju_sqrMatTD(&res[0], &mat[0], &diag[0], nr, nc)
 * 
 * def _mju_transformSpatial(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int flg_force, np.ndarray[np.float64_t, mode="c", ndim=1] newpos, np.ndarray[np.float64_t, mode="c", ndim=1] oldpos, np.ndarray[np.float64_t, mode="c", ndim=1] rotnew2old):             # <<<<<<<<<<<<<<
 *     mju_transformSpatial(&res[0], &vec[0], flg_force, &newpos[0], &oldpos[0], &rotnew2old[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_417_mju_transformSpatial, 0, __pyx_n_s_mju_transformSpatial, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__556)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_transformSpatial, __pyx_t_4) < 0) __PYX_ERR(4, 5421, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5424
 *     mju_transformSpatial(&res[0], &vec[0], flg_force, &newpos[0], &oldpos[0], &rotnew2old[0])
 * 
 * def _mju_rotVecQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_rotVecQuat(&res[0], &vec[0], &quat[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_419_mju_rotVecQuat, 0, __pyx_n_s_mju_rotVecQuat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__558)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_rotVecQuat, __pyx_t_4) < 0) __PYX_ERR(4, 5424, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5427
 *     mju_rotVecQuat(&res[0], &vec[0], &quat[0])
 * 
 * def _mju_negQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_negQuat(&res[0], &quat[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_421_mju_negQuat, 0, __pyx_n_s_mju_negQuat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__560)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_negQuat, __pyx_t_4) < 0) __PYX_ERR(4, 5427, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5430
 *     mju_negQuat(&res[0], &quat[0])
 * 
 * def _mju_mulQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat1, np.ndarray[np.float64_t, mode="c", ndim=1] quat2):             # <<<<<<<<<<<<<<
 *     mju_mulQuat(&res[0], &quat1[0], &quat2[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_423_mju_mulQuat, 0, __pyx_n_s_mju_mulQuat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__562)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_mulQuat, __pyx_t_4) < 0) __PYX_ERR(4, 5430, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5433
 *     mju_mulQuat(&res[0], &quat1[0], &quat2[0])
 * 
 * def _mju_mulQuatAxis(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] axis):             # <<<<<<<<<<<<<<
 *     mju_mulQuatAxis(&res[0], &quat[0], &axis[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_425_mju_mulQuatAxis, 0, __pyx_n_s_mju_mulQuatAxis, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__564)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_mulQuatAxis, __pyx_t_4) < 0) __PYX_ERR(4, 5433, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5436
 *     mju_mulQuatAxis(&res[0], &quat[0], &axis[0])
 * 
 * def _mju_axisAngle2Quat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] axis, float angle):             # <<<<<<<<<<<<<<
 *     mju_axisAngle2Quat(&res[0], &axis[0], angle)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_427_mju_axisAngle2Quat, 0, __pyx_n_s_mju_axisAngle2Quat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__566)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_axisAngle2Quat, __pyx_t_4) < 0) __PYX_ERR(4, 5436, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5439
 *     mju_axisAngle2Quat(&res[0], &axis[0], angle)
 * 
 * def _mju_quat2Vel(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, float dt):             # <<<<<<<<<<<<<<
 *     mju_quat2Vel(&res[0], &quat[0], dt)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_429_mju_quat2Vel, 0, __pyx_n_s_mju_quat2Vel, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__568)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_quat2Vel, __pyx_t_4) < 0) __PYX_ERR(4, 5439, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5442
 *     mju_quat2Vel(&res[0], &quat[0], dt)
 * 
 * def _mju_subQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] qa, np.ndarray[np.float64_t, mode="c", ndim=1] qb):             # <<<<<<<<<<<<<<
 *     mju_subQuat(&res[0], &qa[0], &qb[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_431_mju_subQuat, 0, __pyx_n_s_mju_subQuat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__570)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_subQuat, __pyx_t_4) < 0) __PYX_ERR(4, 5442, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5445
 *     mju_subQuat(&res[0], &qa[0], &qb[0])
 * 
 * def _mju_quat2Mat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_quat2Mat(&res[0], &quat[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_433_mju_quat2Mat, 0, __pyx_n_s_mju_quat2Mat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__571)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5445, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_quat2Mat, __pyx_t_4) < 0) __PYX_ERR(4, 5445, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5448
 *     mju_quat2Mat(&res[0], &quat[0])
 * 
 * def _mju_mat2Quat(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     mju_mat2Quat(&quat[0], &mat[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_435_mju_mat2Quat, 0, __pyx_n_s_mju_mat2Quat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__573)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_mat2Quat, __pyx_t_4) < 0) __PYX_ERR(4, 5448, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5451
 *     mju_mat2Quat(&quat[0], &mat[0])
 * 
 * def _mju_derivQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vel):             # <<<<<<<<<<<<<<
 *     mju_derivQuat(&res[0], &quat[0], &vel[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_437_mju_derivQuat, 0, __pyx_n_s_mju_derivQuat, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__575)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_derivQuat, __pyx_t_4) < 0) __PYX_ERR(4, 5451, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5454
 *     mju_derivQuat(&res[0], &quat[0], &vel[0])
 * 
 * def _mju_quatIntegrate(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vel, float scale):             # <<<<<<<<<<<<<<
 *     mju_quatIntegrate(&quat[0], &vel[0], scale)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_439_mju_quatIntegrate, 0, __pyx_n_s_mju_quatIntegrate, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__577)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_quatIntegrate, __pyx_t_4) < 0) __PYX_ERR(4, 5454, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5457
 *     mju_quatIntegrate(&quat[0], &vel[0], scale)
 * 
 * def _mju_quatZ2Vec(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_quatZ2Vec(&quat[0], &vec[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_441_mju_quatZ2Vec, 0, __pyx_n_s_mju_quatZ2Vec, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__579)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_quatZ2Vec, __pyx_t_4) < 0) __PYX_ERR(4, 5457, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5460
 *     mju_quatZ2Vec(&quat[0], &vec[0])
 * 
 * def _mju_mulPose(np.ndarray[np.float64_t, mode="c", ndim=1] posres, np.ndarray[np.float64_t, mode="c", ndim=1] quatres, np.ndarray[np.float64_t, mode="c", ndim=1] pos1, np.ndarray[np.float64_t, mode="c", ndim=1] quat1, np.ndarray[np.float64_t, mode="c", ndim=1] pos2, np.ndarray[np.float64_t, mode="c", ndim=1] quat2):             # <<<<<<<<<<<<<<
 *     mju_mulPose(&posres[0], &quatres[0], &pos1[0], &quat1[0], &pos2[0], &quat2[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_443_mju_mulPose, 0, __pyx_n_s_mju_mulPose, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__581)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_mulPose, __pyx_t_4) < 0) __PYX_ERR(4, 5460, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5463
 *     mju_mulPose(&posres[0], &quatres[0], &pos1[0], &quat1[0], &pos2[0], &quat2[0])
 * 
 * def _mju_negPose(np.ndarray[np.float64_t, mode="c", ndim=1] posres, np.ndarray[np.float64_t, mode="c", ndim=1] quatres, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat):             # <<<<<<<<<<<<<<
 *     mju_negPose(&posres[0], &quatres[0], &pos[0], &quat[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_445_mju_negPose, 0, __pyx_n_s_mju_negPose, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__583)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_negPose, __pyx_t_4) < 0) __PYX_ERR(4, 5463, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5466
 *     mju_negPose(&posres[0], &quatres[0], &pos[0], &quat[0])
 * 
 * def _mju_trnVecPose(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vec):             # <<<<<<<<<<<<<<
 *     mju_trnVecPose(&res[0], &pos[0], &quat[0], &vec[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_447_mju_trnVecPose, 0, __pyx_n_s_mju_trnVecPose, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__585)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_trnVecPose, __pyx_t_4) < 0) __PYX_ERR(4, 5466, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5469
 *     mju_trnVecPose(&res[0], &pos[0], &quat[0], &vec[0])
 * 
 * def _mju_cholFactor(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int n, float mindiag):             # <<<<<<<<<<<<<<
 *     return mju_cholFactor(&mat[0], n, mindiag)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_449_mju_cholFactor, 0, __pyx_n_s_mju_cholFactor, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__587)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_cholFactor, __pyx_t_4) < 0) __PYX_ERR(4, 5469, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5472
 *     return mju_cholFactor(&mat[0], n, mindiag)
 * 
 * def _mju_cholSolve(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     mju_cholSolve(&res[0], &mat[0], &vec[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_451_mju_cholSolve, 0, __pyx_n_s_mju_cholSolve, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__589)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5472, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_cholSolve, __pyx_t_4) < 0) __PYX_ERR(4, 5472, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5475
 *     mju_cholSolve(&res[0], &mat[0], &vec[0], n)
 * 
 * def _mju_cholUpdate(np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] x, int n, int flg_plus):             # <<<<<<<<<<<<<<
 *     return mju_cholUpdate(&mat[0], &x[0], n, flg_plus)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_453_mju_cholUpdate, 0, __pyx_n_s_mju_cholUpdate, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__591)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_cholUpdate, __pyx_t_4) < 0) __PYX_ERR(4, 5475, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5478
 *     return mju_cholUpdate(&mat[0], &x[0], n, flg_plus)
 * 
 * def _mju_eig3(np.ndarray[np.float64_t, mode="c", ndim=1] eigval, np.ndarray[np.float64_t, mode="c", ndim=1] eigvec, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] mat):             # <<<<<<<<<<<<<<
 *     return mju_eig3(&eigval[0], &eigvec[0], &quat[0], &mat[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_455_mju_eig3, 0, __pyx_n_s_mju_eig3, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__593)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_eig3, __pyx_t_4) < 0) __PYX_ERR(4, 5478, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5481
 *     return mju_eig3(&eigval[0], &eigvec[0], &quat[0], &mat[0])
 * 
 * def _mju_muscleGain(float len, float vel, np.ndarray[np.float64_t, mode="c", ndim=1] lengthrange, float acc0, np.ndarray[np.float64_t, mode="c", ndim=1] prm):             # <<<<<<<<<<<<<<
 *     return mju_muscleGain(len, vel, &lengthrange[0], acc0, &prm[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_457_mju_muscleGain, 0, __pyx_n_s_mju_muscleGain, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__595)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_muscleGain, __pyx_t_4) < 0) __PYX_ERR(4, 5481, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5484
 *     return mju_muscleGain(len, vel, &lengthrange[0], acc0, &prm[0])
 * 
 * def _mju_muscleBias(float len, np.ndarray[np.float64_t, mode="c", ndim=1] lengthrange, float acc0, np.ndarray[np.float64_t, mode="c", ndim=1] prm):             # <<<<<<<<<<<<<<
 *     return mju_muscleBias(len, &lengthrange[0], acc0, &prm[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_459_mju_muscleBias, 0, __pyx_n_s_mju_muscleBias, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__597)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_muscleBias, __pyx_t_4) < 0) __PYX_ERR(4, 5484, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5487
 *     return mju_muscleBias(len, &lengthrange[0], acc0, &prm[0])
 * 
 * def _mju_muscleDynamics(float ctrl, float act, np.ndarray[np.float64_t, mode="c", ndim=1] prm):             # <<<<<<<<<<<<<<
 *     return mju_muscleDynamics(ctrl, act, &prm[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_461_mju_muscleDynamics, 0, __pyx_n_s_mju_muscleDynamics, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__599)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_muscleDynamics, __pyx_t_4) < 0) __PYX_ERR(4, 5487, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5490
 *     return mju_muscleDynamics(ctrl, act, &prm[0])
 * 
 * def _mju_encodePyramid(np.ndarray[np.float64_t, mode="c", ndim=1] pyramid, np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] mu, int dim):             # <<<<<<<<<<<<<<
 *     mju_encodePyramid(&pyramid[0], &force[0], &mu[0], dim)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_463_mju_encodePyramid, 0, __pyx_n_s_mju_encodePyramid, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__601)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_encodePyramid, __pyx_t_4) < 0) __PYX_ERR(4, 5490, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5493
 *     mju_encodePyramid(&pyramid[0], &force[0], &mu[0], dim)
 * 
 * def _mju_decodePyramid(np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] pyramid, np.ndarray[np.float64_t, mode="c", ndim=1] mu, int dim):             # <<<<<<<<<<<<<<
 *     mju_decodePyramid(&force[0], &pyramid[0], &mu[0], dim)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_465_mju_decodePyramid, 0, __pyx_n_s_mju_decodePyramid, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__603)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_decodePyramid, __pyx_t_4) < 0) __PYX_ERR(4, 5493, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5496
 *     mju_decodePyramid(&force[0], &pyramid[0], &mu[0], dim)
 * 
 * def _mju_springDamper(float pos0, float vel0, float Kp, float Kv, float dt):             # <<<<<<<<<<<<<<
 *     return mju_springDamper(pos0, vel0, Kp, Kv, dt)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_467_mju_springDamper, 0, __pyx_n_s_mju_springDamper, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__605)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5496, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_springDamper, __pyx_t_4) < 0) __PYX_ERR(4, 5496, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5499
 *     return mju_springDamper(pos0, vel0, Kp, Kv, dt)
 * 
 * def _mju_min(float a, float b):             # <<<<<<<<<<<<<<
 *     return mju_min(a, b)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_469_mju_min, 0, __pyx_n_s_mju_min, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__607)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_min, __pyx_t_4) < 0) __PYX_ERR(4, 5499, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5502
 *     return mju_min(a, b)
 * 
 * def _mju_max(float a, float b):             # <<<<<<<<<<<<<<
 *     return mju_max(a, b)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_471_mju_max, 0, __pyx_n_s_mju_max, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__608)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_max, __pyx_t_4) < 0) __PYX_ERR(4, 5502, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5505
 *     return mju_max(a, b)
 * 
 * def _mju_sign(float x):             # <<<<<<<<<<<<<<
 *     return mju_sign(x)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_473_mju_sign, 0, __pyx_n_s_mju_sign, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__610)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_sign, __pyx_t_4) < 0) __PYX_ERR(4, 5505, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5508
 *     return mju_sign(x)
 * 
 * def _mju_round(float x):             # <<<<<<<<<<<<<<
 *     return mju_round(x)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_475_mju_round, 0, __pyx_n_s_mju_round, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__611)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_round, __pyx_t_4) < 0) __PYX_ERR(4, 5508, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5511
 *     return mju_round(x)
 * 
 * def _mju_str2Type(str str):             # <<<<<<<<<<<<<<
 *     return mju_str2Type(str.encode())
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_477_mju_str2Type, 0, __pyx_n_s_mju_str2Type, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__613)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_str2Type, __pyx_t_4) < 0) __PYX_ERR(4, 5511, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5514
 *     return mju_str2Type(str.encode())
 * 
 * def _mju_isBad(float x):             # <<<<<<<<<<<<<<
 *     return mju_isBad(x)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_479_mju_isBad, 0, __pyx_n_s_mju_isBad, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__614)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_isBad, __pyx_t_4) < 0) __PYX_ERR(4, 5514, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5517
 *     return mju_isBad(x)
 * 
 * def _mju_isZero(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n):             # <<<<<<<<<<<<<<
 *     return mju_isZero(&vec[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_481_mju_isZero, 0, __pyx_n_s_mju_isZero, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__615)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_isZero, __pyx_t_4) < 0) __PYX_ERR(4, 5517, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5520
 *     return mju_isZero(&vec[0], n)
 * 
 * def _mju_standardNormal(np.ndarray[np.float64_t, mode="c", ndim=1] num2):             # <<<<<<<<<<<<<<
 *     return mju_standardNormal(&num2[0])
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_483_mju_standardNormal, 0, __pyx_n_s_mju_standardNormal, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__617)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_standardNormal, __pyx_t_4) < 0) __PYX_ERR(4, 5520, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5523
 *     return mju_standardNormal(&num2[0])
 * 
 * def _mju_insertionSort(np.ndarray[np.float64_t, mode="c", ndim=1] list, int n):             # <<<<<<<<<<<<<<
 *     mju_insertionSort(&list[0], n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_485_mju_insertionSort, 0, __pyx_n_s_mju_insertionSort, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__619)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_insertionSort, __pyx_t_4) < 0) __PYX_ERR(4, 5523, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5526
 *     mju_insertionSort(&list[0], n)
 * 
 * def _mju_insertionSortInt(uintptr_t list, int n):             # <<<<<<<<<<<<<<
 *     mju_insertionSortInt(<int*>list, n)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_487_mju_insertionSortInt, 0, __pyx_n_s_mju_insertionSortInt, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__620)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5526, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_insertionSortInt, __pyx_t_4) < 0) __PYX_ERR(4, 5526, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5529
 *     mju_insertionSortInt(<int*>list, n)
 * 
 * def _mju_Halton(int index, int base):             # <<<<<<<<<<<<<<
 *     return mju_Halton(index, base)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_489_mju_Halton, 0, __pyx_n_s_mju_Halton, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__622)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_Halton, __pyx_t_4) < 0) __PYX_ERR(4, 5529, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/generated/wrappers.pxi":5532
 *     return mju_Halton(index, base)
 * 
 * def _mju_sigmoid(float x):             # <<<<<<<<<<<<<<
 *     return mju_sigmoid(x)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_491_mju_sigmoid, 0, __pyx_n_s_mju_sigmoid, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__623)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5532, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mju_sigmoid, __pyx_t_4) < 0) __PYX_ERR(4, 5532, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/opengl_context.pyx":1
 * import os             # <<<<<<<<<<<<<<
 * import sys
 * from abc import ABCMeta, abstractmethod
 */
  __pyx_t_4 = __Pyx_ImportDottedModule(__pyx_n_s_os, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_4) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/opengl_context.pyx":2
 * import os
 * import sys             # <<<<<<<<<<<<<<
 * from abc import ABCMeta, abstractmethod
 * from mujoco_py.utils import discover_mujoco
 */
  __pyx_t_4 = __Pyx_ImportDottedModule(__pyx_n_s_sys, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_4) < 0) __PYX_ERR(0, 2, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/opengl_context.pyx":3
 * import os
 * import sys
 * from abc import ABCMeta, abstractmethod             # <<<<<<<<<<<<<<
 * from mujoco_py.utils import discover_mujoco
 * 
 */
  __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_n_s_ABCMeta);
  __Pyx_GIVEREF(__pyx_n_s_ABCMeta);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 0, __pyx_n_s_ABCMeta)) __PYX_ERR(0, 3, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_abstractmethod);
  __Pyx_GIVEREF(__pyx_n_s_abstractmethod);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 1, __pyx_n_s_abstractmethod)) __PYX_ERR(0, 3, __pyx_L1_error);
  __pyx_t_7 = __Pyx_Import(__pyx_n_s_abc, __pyx_t_4, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_ABCMeta); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ABCMeta, __pyx_t_4) < 0) __PYX_ERR(0, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_abstractmethod); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_abstractmethod, __pyx_t_4) < 0) __PYX_ERR(0, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/opengl_context.pyx":4
 * import sys
 * from abc import ABCMeta, abstractmethod
 * from mujoco_py.utils import discover_mujoco             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_s_discover_mujoco);
  __Pyx_GIVEREF(__pyx_n_s_discover_mujoco);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_discover_mujoco)) __PYX_ERR(0, 4, __pyx_L1_error);
  __pyx_t_4 = __Pyx_Import(__pyx_n_s_mujoco_py_utils, __pyx_t_7, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_discover_mujoco); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_discover_mujoco, __pyx_t_7) < 0) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/opengl_context.pyx":7
 * 
 * 
 * def _add_mujoco_bin_to_dyld_library_path():             # <<<<<<<<<<<<<<
 *     mujoco_path = discover_mujoco()
 *     bin_path = os.path.join(mujoco_path, "bin")
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_493_add_mujoco_bin_to_dyld_library_path, 0, __pyx_n_s_add_mujoco_bin_to_dyld_library, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__625)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_add_mujoco_bin_to_dyld_library, __pyx_t_4) < 0) __PYX_ERR(0, 7, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/opengl_context.pyx":15
 * 
 * 
 * try:             # <<<<<<<<<<<<<<
 *     _add_mujoco_bin_to_dyld_library_path()
 *     import glfw
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "mujoco_py/opengl_context.pyx":16
 * 
 * try:
 *     _add_mujoco_bin_to_dyld_library_path()             # <<<<<<<<<<<<<<
 *     import glfw
 * except ImportError:
 */
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_add_mujoco_bin_to_dyld_library); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 16, __pyx_L30_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 16, __pyx_L30_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "mujoco_py/opengl_context.pyx":17
 * try:
 *     _add_mujoco_bin_to_dyld_library_path()
 *     import glfw             # <<<<<<<<<<<<<<
 * except ImportError:
 *     pass
 */
      __pyx_t_7 = __Pyx_ImportDottedModule(__pyx_n_s_glfw, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 17, __pyx_L30_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_glfw, __pyx_t_7) < 0) __PYX_ERR(0, 17, __pyx_L30_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "mujoco_py/opengl_context.pyx":15
 * 
 * 
 * try:             # <<<<<<<<<<<<<<
 *     _add_mujoco_bin_to_dyld_library_path()
 *     import glfw
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L35_try_end;
    __pyx_L30_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "mujoco_py/opengl_context.pyx":18
 *     _add_mujoco_bin_to_dyld_library_path()
 *     import glfw
 * except ImportError:             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
    __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError);
    if (__pyx_t_9) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L31_exception_handled;
    }
    goto __pyx_L32_except_error;

    /* "mujoco_py/opengl_context.pyx":15
 * 
 * 
 * try:             # <<<<<<<<<<<<<<
 *     _add_mujoco_bin_to_dyld_library_path()
 *     import glfw
 */
    __pyx_L32_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L31_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L35_try_end:;
  }

  /* "mujoco_py/opengl_context.pyx":22
 * 
 * 
 * class OpenGLContext(metaclass=ABCMeta):             # <<<<<<<<<<<<<<
 * 
 *     @abstractmethod
 */
  __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ABCMeta); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_empty_tuple, __pyx_n_s_OpenGLContext, __pyx_n_s_OpenGLContext, __pyx_t_7, __pyx_n_s_mujoco_py_cymj, (PyObject *) NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "mujoco_py/opengl_context.pyx":24
 * class OpenGLContext(metaclass=ABCMeta):
 * 
 *     @abstractmethod             # <<<<<<<<<<<<<<
 *     def make_context_current(self):
 *         raise NotImplementedError()
 */
  __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_abstractmethod); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_13OpenGLContext_1make_context_current, 0, __pyx_n_s_OpenGLContext_make_context_curre, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__626)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = NULL;
  __pyx_t_9 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_11))) {
    __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_11);
    if (likely(__pyx_t_13)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
      __Pyx_INCREF(__pyx_t_13);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_11, function);
      __pyx_t_9 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_12};
    __pyx_t_10 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 24, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  }
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_n_s_make_context_current, __pyx_t_10) < 0) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

  /* "mujoco_py/opengl_context.pyx":28
 *         raise NotImplementedError()
 * 
 *     @abstractmethod             # <<<<<<<<<<<<<<
 *     def set_buffer_size(self, width, height):
 *         raise NotImplementedError()
 */
  __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_abstractmethod); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_13OpenGLContext_3set_buffer_size, 0, __pyx_n_s_OpenGLContext_set_buffer_size, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__628)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = NULL;
  __pyx_t_9 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_11))) {
    __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_11);
    if (likely(__pyx_t_13)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
      __Pyx_INCREF(__pyx_t_13);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_11, function);
      __pyx_t_9 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_12};
    __pyx_t_10 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  }
  if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_n_s_set_buffer_size, __pyx_t_10) < 0) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

  /* "mujoco_py/opengl_context.pyx":22
 * 
 * 
 * class OpenGLContext(metaclass=ABCMeta):             # <<<<<<<<<<<<<<
 * 
 *     @abstractmethod
 */
  __pyx_t_10 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_OpenGLContext, __pyx_empty_tuple, __pyx_t_5, __pyx_t_7, 1, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_OpenGLContext, __pyx_t_10) < 0) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/opengl_context.pyx":33
 * 
 * 
 * class GlfwError(RuntimeError):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
  __pyx_t_7 = __Pyx_PEP560_update_bases(__pyx_tuple__630); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_7, __pyx_n_s_GlfwError, __pyx_n_s_GlfwError, (PyObject *) NULL, __pyx_n_s_mujoco_py_cymj, (PyObject *) NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__pyx_t_7 != __pyx_tuple__630) {
    if (unlikely((PyDict_SetItemString(__pyx_t_5, "__orig_bases__", __pyx_tuple__630) < 0))) __PYX_ERR(0, 33, __pyx_L1_error)
  }
  __pyx_t_10 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_GlfwError, __pyx_t_7, __pyx_t_5, NULL, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_GlfwError, __pyx_t_10) < 0) __PYX_ERR(0, 33, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/opengl_context.pyx":37
 * 
 * 
 * class GlfwContext(OpenGLContext):             # <<<<<<<<<<<<<<
 * 
 *     _INIT_WIDTH = 1000
 */
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_OpenGLContext); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 37, __pyx_L1_error);
  __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = __Pyx_CalculateMetaclass(NULL, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_10 = __Pyx_Py3MetaclassPrepare(__pyx_t_5, __pyx_t_7, __pyx_n_s_GlfwContext, __pyx_n_s_GlfwContext, (PyObject *) NULL, __pyx_n_s_mujoco_py_cymj, (PyObject *) NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (__pyx_t_7 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_10, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(0, 37, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/opengl_context.pyx":39
 * class GlfwContext(OpenGLContext):
 * 
 *     _INIT_WIDTH = 1000             # <<<<<<<<<<<<<<
 *     _INIT_HEIGHT = 1000
 *     _GLFW_IS_INITIALIZED = False
 */
  if (__Pyx_SetNameInClass(__pyx_t_10, __pyx_n_s_INIT_WIDTH, __pyx_int_1000) < 0) __PYX_ERR(0, 39, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":40
 * 
 *     _INIT_WIDTH = 1000
 *     _INIT_HEIGHT = 1000             # <<<<<<<<<<<<<<
 *     _GLFW_IS_INITIALIZED = False
 * 
 */
  if (__Pyx_SetNameInClass(__pyx_t_10, __pyx_n_s_INIT_HEIGHT, __pyx_int_1000) < 0) __PYX_ERR(0, 40, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":41
 *     _INIT_WIDTH = 1000
 *     _INIT_HEIGHT = 1000
 *     _GLFW_IS_INITIALIZED = False             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, offscreen=False, quiet=False):
 */
  if (__Pyx_SetNameInClass(__pyx_t_10, __pyx_n_s_GLFW_IS_INITIALIZED, Py_False) < 0) __PYX_ERR(0, 41, __pyx_L1_error)

  /* "mujoco_py/opengl_context.pyx":43
 *     _GLFW_IS_INITIALIZED = False
 * 
 *     def __init__(self, offscreen=False, quiet=False):             # <<<<<<<<<<<<<<
 *         GlfwContext._init_glfw()
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11GlfwContext_1__init__, 0, __pyx_n_s_GlfwContext___init, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__632)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__633);
  if (__Pyx_SetNameInClass(__pyx_t_10, __pyx_n_s_init_2, __pyx_t_4) < 0) __PYX_ERR(0, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/opengl_context.pyx":51
 *         self._set_window_size(self._width, self._height)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _init_glfw():
 *         if GlfwContext._GLFW_IS_INITIALIZED:
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11GlfwContext_3_init_glfw, __Pyx_CYFUNCTION_STATICMETHOD, __pyx_n_s_GlfwContext__init_glfw, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__634)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_10, __pyx_n_s_init_glfw, __pyx_t_11) < 0) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/opengl_context.pyx":68
 *         GlfwContext._GLFW_IS_INITIALIZED = True
 * 
 *     def make_context_current(self):             # <<<<<<<<<<<<<<
 *         glfw.make_context_current(self.window)
 * 
 */
  __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11GlfwContext_5make_context_current, 0, __pyx_n_s_GlfwContext_make_context_current, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__635)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (__Pyx_SetNameInClass(__pyx_t_10, __pyx_n_s_make_context_current, __pyx_t_11) < 0) __PYX_ERR(0, 68, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/opengl_context.pyx":71
 *         glfw.make_context_current(self.window)
 * 
 *     def set_buffer_size(self, width, height):             # <<<<<<<<<<<<<<
 *         self._set_window_size(width, height)
 *         self._width = width
 */
  __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11GlfwContext_7set_buffer_size, 0, __pyx_n_s_GlfwContext_set_buffer_size, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__636)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (__Pyx_SetNameInClass(__pyx_t_10, __pyx_n_s_set_buffer_size, __pyx_t_11) < 0) __PYX_ERR(0, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/opengl_context.pyx":76
 *         self._height = height
 * 
 *     def _create_window(self, offscreen, quiet=False):             # <<<<<<<<<<<<<<
 *         if offscreen:
 *             if not quiet:
 */
  __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11GlfwContext_9_create_window, 0, __pyx_n_s_GlfwContext__create_window, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__639)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_tuple__640);
  if (__Pyx_SetNameInClass(__pyx_t_10, __pyx_n_s_create_window, __pyx_t_11) < 0) __PYX_ERR(0, 76, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/opengl_context.pyx":103
 *         return window
 * 
 *     def get_buffer_size(self):             # <<<<<<<<<<<<<<
 *         return glfw.get_framebuffer_size(self.window)
 * 
 */
  __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11GlfwContext_11get_buffer_size, 0, __pyx_n_s_GlfwContext_get_buffer_size, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__641)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (__Pyx_SetNameInClass(__pyx_t_10, __pyx_n_s_get_buffer_size, __pyx_t_11) < 0) __PYX_ERR(0, 103, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/opengl_context.pyx":106
 *         return glfw.get_framebuffer_size(self.window)
 * 
 *     def _set_window_size(self, target_width, target_height):             # <<<<<<<<<<<<<<
 *         self.make_context_current()
 *         if target_width != self._width or target_height != self._height:
 */
  __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11GlfwContext_13_set_window_size, 0, __pyx_n_s_GlfwContext__set_window_size, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__643)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (__Pyx_SetNameInClass(__pyx_t_10, __pyx_n_s_set_window_size, __pyx_t_11) < 0) __PYX_ERR(0, 106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/opengl_context.pyx":119
 *                 glfw.set_window_size(self.window, target_width // 2, target_height // 2)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _glfw_error_callback(error_code, description):
 *         print("GLFW error (code %d): %s", error_code, description)
 */
  __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_11GlfwContext_15_glfw_error_callback, __Pyx_CYFUNCTION_STATICMETHOD, __pyx_n_s_GlfwContext__glfw_error_callback, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__645)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_10, __pyx_n_s_glfw_error_callback, __pyx_t_4) < 0) __PYX_ERR(0, 119, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/opengl_context.pyx":37
 * 
 * 
 * class GlfwContext(OpenGLContext):             # <<<<<<<<<<<<<<
 * 
 *     _INIT_WIDTH = 1000
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_5, __pyx_n_s_GlfwContext, __pyx_t_7, __pyx_t_10, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_GlfwContext, __pyx_t_4) < 0) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/opengl_context.pyx":124
 * 
 * 
 * class OffscreenOpenGLContext():             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, device_id):
 */
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_OffscreenOpenGLContext, __pyx_n_s_OffscreenOpenGLContext, (PyObject *) NULL, __pyx_n_s_mujoco_py_cymj, (PyObject *) NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);

  /* "mujoco_py/opengl_context.pyx":126
 * class OffscreenOpenGLContext():
 * 
 *     def __init__(self, device_id):             # <<<<<<<<<<<<<<
 *         self.device_id = device_id
 *         res = initOpenGL(device_id)
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_22OffscreenOpenGLContext_1__init__, 0, __pyx_n_s_OffscreenOpenGLContext___init, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__647)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_init_2, __pyx_t_5) < 0) __PYX_ERR(0, 126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/opengl_context.pyx":132
 *             raise RuntimeError("Failed to initialize OpenGL")
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         # TODO: properly close OpenGL in our contexts
 *         closeOpenGL()
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_22OffscreenOpenGLContext_3close, 0, __pyx_n_s_OffscreenOpenGLContext_close, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_close, __pyx_t_5) < 0) __PYX_ERR(0, 132, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/opengl_context.pyx":136
 *         closeOpenGL()
 * 
 *     def make_context_current(self):             # <<<<<<<<<<<<<<
 *         makeOpenGLContextCurrent(self.device_id)
 * 
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_22OffscreenOpenGLContext_5make_context_current, 0, __pyx_n_s_OffscreenOpenGLContext_make_cont, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__649)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_make_context_current, __pyx_t_5) < 0) __PYX_ERR(0, 136, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/opengl_context.pyx":139
 *         makeOpenGLContextCurrent(self.device_id)
 * 
 *     def set_buffer_size(self, int width, int height):             # <<<<<<<<<<<<<<
 *         res = setOpenGLBufferSize(self.device_id, width, height)
 *         if res != 1:
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_22OffscreenOpenGLContext_7set_buffer_size, 0, __pyx_n_s_OffscreenOpenGLContext_set_buffe, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__651)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_set_buffer_size, __pyx_t_5) < 0) __PYX_ERR(0, 139, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/opengl_context.pyx":124
 * 
 * 
 * class OffscreenOpenGLContext():             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, device_id):
 */
  __pyx_t_5 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_OffscreenOpenGLContext, __pyx_empty_tuple, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_OffscreenOpenGLContext, __pyx_t_5) < 0) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/mjsim.pyx":1
 * from xml.dom import minidom             # <<<<<<<<<<<<<<
 * from mujoco_py.utils import remove_empty_lines
 * from mujoco_py.builder import build_callback_fn
 */
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_s_minidom);
  __Pyx_GIVEREF(__pyx_n_s_minidom);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_minidom)) __PYX_ERR(5, 1, __pyx_L1_error);
  __pyx_t_5 = __Pyx_Import(__pyx_n_s_xml_dom, __pyx_t_7, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_5, __pyx_n_s_minidom); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_minidom, __pyx_t_7) < 0) __PYX_ERR(5, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/mjsim.pyx":2
 * from xml.dom import minidom
 * from mujoco_py.utils import remove_empty_lines             # <<<<<<<<<<<<<<
 * from mujoco_py.builder import build_callback_fn
 * from threading import Lock
 */
  __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_n_s_remove_empty_lines);
  __Pyx_GIVEREF(__pyx_n_s_remove_empty_lines);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 0, __pyx_n_s_remove_empty_lines)) __PYX_ERR(5, 2, __pyx_L1_error);
  __pyx_t_7 = __Pyx_Import(__pyx_n_s_mujoco_py_utils, __pyx_t_5, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_remove_empty_lines); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_remove_empty_lines, __pyx_t_5) < 0) __PYX_ERR(5, 2, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/mjsim.pyx":3
 * from xml.dom import minidom
 * from mujoco_py.utils import remove_empty_lines
 * from mujoco_py.builder import build_callback_fn             # <<<<<<<<<<<<<<
 * from threading import Lock
 * 
 */
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_s_build_callback_fn);
  __Pyx_GIVEREF(__pyx_n_s_build_callback_fn);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_build_callback_fn)) __PYX_ERR(5, 3, __pyx_L1_error);
  __pyx_t_5 = __Pyx_Import(__pyx_n_s_mujoco_py_builder, __pyx_t_7, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_5, __pyx_n_s_build_callback_fn); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_build_callback_fn, __pyx_t_7) < 0) __PYX_ERR(5, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/mjsim.pyx":4
 * from mujoco_py.utils import remove_empty_lines
 * from mujoco_py.builder import build_callback_fn
 * from threading import Lock             # <<<<<<<<<<<<<<
 * 
 * _MjSim_render_lock = Lock()
 */
  __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_n_s_Lock);
  __Pyx_GIVEREF(__pyx_n_s_Lock);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 0, __pyx_n_s_Lock)) __PYX_ERR(5, 4, __pyx_L1_error);
  __pyx_t_7 = __Pyx_Import(__pyx_n_s_threading, __pyx_t_5, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_Lock); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Lock, __pyx_t_5) < 0) __PYX_ERR(5, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/mjsim.pyx":6
 * from threading import Lock
 * 
 * _MjSim_render_lock = Lock()             # <<<<<<<<<<<<<<
 * 
 * ctypedef void (*substep_udd_t)(const mjModel* m, mjData* d)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_Lock); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MjSim_render_lock, __pyx_t_5) < 0) __PYX_ERR(5, 6, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/mjsim.pyx":91
 *         self.set_substep_callback(substep_callback, userdata_names)
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """
 *         Resets the simulation data and clears buffers.
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_3reset, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_reset, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__652)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_reset, __pyx_t_5) < 0) __PYX_ERR(5, 91, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "mujoco_py/mjsim.pyx":101
 *         self.step_udd()
 * 
 *     def forward(self):             # <<<<<<<<<<<<<<
 *         """
 *         Computes the forward kinematics. Calls ``mj_forward`` internally.
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_5forward, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_forward, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__653)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_forward, __pyx_t_5) < 0) __PYX_ERR(5, 101, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "mujoco_py/mjsim.pyx":108
 *             mj_forward(self.model.ptr, self.data.ptr)
 * 
 *     def set_constants(self):             # <<<<<<<<<<<<<<
 *         """
 *         Set constant fields of mjModel, corresponding to qpos0 configuration.
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_7set_constants, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_set_constants, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__654)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_set_constants, __pyx_t_5) < 0) __PYX_ERR(5, 108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "mujoco_py/mjsim.pyx":115
 *             mj_setConst(self.model.ptr, self.data.ptr)
 * 
 *     def step(self, with_udd=True):             # <<<<<<<<<<<<<<
 *         """
 *         Advances the simulation by calling ``mj_step``.
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_9step, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_step, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__656)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_tuple__657);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_step, __pyx_t_5) < 0) __PYX_ERR(5, 115, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "mujoco_py/mjsim.pyx":131
 *                 mj_step(self.model.ptr, self.data.ptr)
 * 
 *     def render(self, width=None, height=None, *, camera_name=None, depth=False,             # <<<<<<<<<<<<<<
 *                mode='offscreen', device_id=-1, segmentation=False):
 *         """
 */
  __pyx_t_5 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_camera_name, Py_None) < 0) __PYX_ERR(5, 131, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_depth, Py_False) < 0) __PYX_ERR(5, 131, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_mode, __pyx_n_u_offscreen) < 0) __PYX_ERR(5, 131, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_device_id, __pyx_int_neg_1) < 0) __PYX_ERR(5, 131, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":132
 * 
 *     def render(self, width=None, height=None, *, camera_name=None, depth=False,
 *                mode='offscreen', device_id=-1, segmentation=False):             # <<<<<<<<<<<<<<
 *         """
 *         Renders view from a camera and returns image as an `numpy.ndarray`.
 */
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_segmentation, Py_False) < 0) __PYX_ERR(5, 131, __pyx_L1_error)

  /* "mujoco_py/mjsim.pyx":131
 *                 mj_step(self.model.ptr, self.data.ptr)
 * 
 *     def render(self, width=None, height=None, *, camera_name=None, depth=False,             # <<<<<<<<<<<<<<
 *                mode='offscreen', device_id=-1, segmentation=False):
 *         """
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_11render, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_render, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__659)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_tuple__660);
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_7, __pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_render, __pyx_t_7) < 0) __PYX_ERR(5, 131, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "mujoco_py/mjsim.pyx":179
 *             raise ValueError("Mode must be either 'window' or 'offscreen'.")
 * 
 *     def add_render_context(self, render_context):             # <<<<<<<<<<<<<<
 *         self.render_contexts.append(render_context)
 *         if render_context.offscreen and self._render_context_offscreen is None:
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_13add_render_context, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_add_render_context, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__662)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_add_render_context, __pyx_t_7) < 0) __PYX_ERR(5, 179, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "mujoco_py/mjsim.pyx":196
 *         self.step_udd()
 * 
 *     cpdef substep_callback(self):             # <<<<<<<<<<<<<<
 *         if self.substep_callback_ptr:
 *             (<mjfGeneric>self.substep_callback_ptr)(self.model.ptr, self.data.ptr)
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_15substep_callback, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_substep_callback, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__663)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 196, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_substep_callback, __pyx_t_7) < 0) __PYX_ERR(5, 196, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "mujoco_py/mjsim.pyx":200
 *             (<mjfGeneric>self.substep_callback_ptr)(self.model.ptr, self.data.ptr)
 * 
 *     def set_substep_callback(self, substep_callback, userdata_names=None):             # <<<<<<<<<<<<<<
 *         '''
 *         Set a substep callback function.
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_17set_substep_callback, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_set_substep_callback, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__665)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_tuple__149);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_set_substep_callback, __pyx_t_7) < 0) __PYX_ERR(5, 200, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "mujoco_py/mjsim.pyx":226
 *             raise TypeError('invalid: {}'.format(type(substep_callback)))
 * 
 *     def step_udd(self):             # <<<<<<<<<<<<<<
 *         if self._udd_callback is None:
 *             self.udd_state = {}
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_19step_udd, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_step_udd, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__667)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_step_udd, __pyx_t_7) < 0) __PYX_ERR(5, 226, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "mujoco_py/mjsim.pyx":247
 *                             "Numpy array values in udd_state must keep the same dimension across steps."
 * 
 *     def get_state(self):             # <<<<<<<<<<<<<<
 *         """ Returns a copy of the simulator state. """
 *         qpos = np.copy(self.data.qpos)
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_21get_state, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_get_state, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__669)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_get_state, __pyx_t_7) < 0) __PYX_ERR(5, 247, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "mujoco_py/mjsim.pyx":259
 *         return MjSimState(self.data.time, qpos, qvel, act, udd_state)
 * 
 *     def set_state(self, value):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the state from an MjSimState.
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_23set_state, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_set_state, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__671)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_set_state, __pyx_t_7) < 0) __PYX_ERR(5, 259, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "mujoco_py/mjsim.pyx":278
 *         self.udd_state = copy.deepcopy(value.udd_state)
 * 
 *     def set_state_from_flattened(self, value):             # <<<<<<<<<<<<<<
 *         """ This helper method sets the state from an array without requiring a defensive copy."""
 *         state = MjSimState.from_flattened(value, self)
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_25set_state_from_flattened, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_set_state_from_flattened, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__673)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_set_state_from_flattened, __pyx_t_7) < 0) __PYX_ERR(5, 278, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "mujoco_py/mjsim.pyx":289
 *         self.udd_state = state.udd_state
 * 
 *     def save(self, file, format='xml', keep_inertials=False):             # <<<<<<<<<<<<<<
 *         """
 *         Saves the simulator model and state to a file as either
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_27save, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_save, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__675)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_tuple__676);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_save, __pyx_t_7) < 0) __PYX_ERR(5, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "mujoco_py/mjsim.pyx":345
 *             raise ValueError("Unsupported format. Valid ones are 'xml' and 'mjb'")
 * 
 *     def ray(self, pnt, vec, include_static_geoms=True, exclude_body=-1, group_filter=None):             # <<<<<<<<<<<<<<
 *         """
 *         Cast a ray into the scene, and return the first valid geom it intersects.
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_29ray, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_ray, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__678)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_tuple__679);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_ray, __pyx_t_7) < 0) __PYX_ERR(5, 345, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "mujoco_py/mjsim.pyx":383
 *                 exclude_body)
 * 
 *     def ray_fast_group(self,             # <<<<<<<<<<<<<<
 *             np.ndarray[np.float64_t, mode="c", ndim=1] pnt,
 *             np.ndarray[np.float64_t, mode="c", ndim=1] vec,
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_31ray_fast_group, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_ray_fast_group, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__681)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_tuple__682);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_ray_fast_group, __pyx_t_7) < 0) __PYX_ERR(5, 383, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "mujoco_py/mjsim.pyx":412
 * 
 * 
 *     def ray_fast_nogroup(self,             # <<<<<<<<<<<<<<
 *             np.ndarray[np.float64_t, mode="c", ndim=1] pnt,
 *             np.ndarray[np.float64_t, mode="c", ndim=1] vec,
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_33ray_fast_nogroup, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim_ray_fast_nogroup, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__684)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_tuple__682);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjSim, __pyx_n_s_ray_fast_nogroup, __pyx_t_7) < 0) __PYX_ERR(5, 412, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjSim);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_35__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__685)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_7) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_5MjSim_37__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjSim___setstate_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__686)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_7) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/mjsimstate.pyx":2
 * 
 * class MjSimState(namedtuple('SimStateBase', 'time qpos qvel act udd_state')):             # <<<<<<<<<<<<<<
 *     """Represents a snapshot of the simulator's state.
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_namedtuple); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__687, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5)) __PYX_ERR(6, 2, __pyx_L1_error);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PEP560_update_bases(__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_10 = __Pyx_CalculateMetaclass(NULL, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_10, __pyx_t_5, __pyx_n_s_MjSimState, __pyx_n_s_MjSimState, (PyObject *) NULL, __pyx_n_s_mujoco_py_cymj, __pyx_kp_s_Represents_a_snapshot_of_the_sim); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_5 != __pyx_t_7) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_7) < 0))) __PYX_ERR(6, 2, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/mjsimstate.pyx":7
 *     This includes time, qpos, qvel, act, and udd_state.
 *     """
 *     __slots__ = ()             # <<<<<<<<<<<<<<
 * 
 *     # need to implement this because numpy doesn't support == on arrays
 */
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_slots, __pyx_empty_tuple) < 0) __PYX_ERR(6, 7, __pyx_L1_error)

  /* "mujoco_py/mjsimstate.pyx":10
 * 
 *     # need to implement this because numpy doesn't support == on arrays
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         if not isinstance(other, self.__class__):
 *             return NotImplemented
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10MjSimState_1__eq__, 0, __pyx_n_s_MjSimState___eq, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__689)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_eq, __pyx_t_7) < 0) __PYX_ERR(6, 10, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/mjsimstate.pyx":28
 *                 np.array_equal(self.act, other.act))
 * 
 *     def __ne__(self, other):             # <<<<<<<<<<<<<<
 *         return not self.__eq__(other)
 * 
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10MjSimState_3__ne__, 0, __pyx_n_s_MjSimState___ne, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__691)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_ne_2, __pyx_t_7) < 0) __PYX_ERR(6, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/mjsimstate.pyx":31
 *         return not self.__eq__(other)
 * 
 *     def flatten(self):             # <<<<<<<<<<<<<<
 *         """ Flattens a state into a numpy array of numbers."""
 *         if self.act is None:
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10MjSimState_5flatten, 0, __pyx_n_s_MjSimState_flatten, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__693)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_flatten, __pyx_t_7) < 0) __PYX_ERR(6, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/mjsimstate.pyx":41
 *         return np.concatenate(state_tuple)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _flatten_dict(d):
 *         a = []
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10MjSimState_7_flatten_dict, __Pyx_CYFUNCTION_STATICMETHOD, __pyx_n_s_MjSimState__flatten_dict, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__695)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_flatten_dict, __pyx_t_11) < 0) __PYX_ERR(6, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/mjsimstate.pyx":53
 *         return np.array(a)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def from_flattened(array, sim):
 *         idx_time = 0
 */
  __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10MjSimState_9from_flattened, __Pyx_CYFUNCTION_STATICMETHOD, __pyx_n_s_MjSimState_from_flattened, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__697)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_from_flattened, __pyx_t_7) < 0) __PYX_ERR(6, 53, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/mjsimstate.pyx":73
 *         return MjSimState(time, qpos, qvel, act, udd_state)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _unflatten_dict(a, schema_example):
 *         d = {}
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_10MjSimState_11_unflatten_dict, __Pyx_CYFUNCTION_STATICMETHOD, __pyx_n_s_MjSimState__unflatten_dict, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__699)); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_unflatten_dict, __pyx_t_11) < 0) __PYX_ERR(6, 73, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/mjsimstate.pyx":2
 * 
 * class MjSimState(namedtuple('SimStateBase', 'time qpos qvel act udd_state')):             # <<<<<<<<<<<<<<
 *     """Represents a snapshot of the simulator's state.
 * 
 */
  __pyx_t_11 = __Pyx_Py3ClassCreate(__pyx_t_10, __pyx_n_s_MjSimState, __pyx_t_5, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MjSimState, __pyx_t_11) < 0) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/mjrendercontext.pyx":1
 * from threading import Lock             # <<<<<<<<<<<<<<
 * from mujoco_py.generated import const
 * import numpy as np
 */
  __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_n_s_Lock);
  __Pyx_GIVEREF(__pyx_n_s_Lock);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 0, __pyx_n_s_Lock)) __PYX_ERR(1, 1, __pyx_L1_error);
  __pyx_t_10 = __Pyx_Import(__pyx_n_s_threading, __pyx_t_5, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_ImportFrom(__pyx_t_10, __pyx_n_s_Lock); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Lock, __pyx_t_5) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

  /* "mujoco_py/mjrendercontext.pyx":2
 * from threading import Lock
 * from mujoco_py.generated import const             # <<<<<<<<<<<<<<
 * import numpy as np
 * cimport numpy as np
 */
  __pyx_t_10 = PyList_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_INCREF(__pyx_n_s_const);
  __Pyx_GIVEREF(__pyx_n_s_const);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 0, __pyx_n_s_const)) __PYX_ERR(1, 2, __pyx_L1_error);
  __pyx_t_5 = __Pyx_Import(__pyx_n_s_mujoco_py_generated, __pyx_t_10, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_ImportFrom(__pyx_t_5, __pyx_n_s_const); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_const, __pyx_t_10) < 0) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/mjrendercontext.pyx":3
 * from threading import Lock
 * from mujoco_py.generated import const
 * import numpy as np             # <<<<<<<<<<<<<<
 * cimport numpy as np
 * 
 */
  __pyx_t_5 = __Pyx_ImportDottedModule(__pyx_n_s_numpy, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_5) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/mjrendercontext.pyx":74
 *         self._set_mujoco_buffers()
 * 
 *     def update_sim(self, MjSim new_sim):             # <<<<<<<<<<<<<<
 *         if new_sim == self.sim:
 *             return
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_5update_sim, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext_update_sim, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__701)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext, __pyx_n_s_update_sim, __pyx_t_5) < 0) __PYX_ERR(1, 74, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);

  /* "mujoco_py/mjrendercontext.pyx":84
 *         self.sim = new_sim
 * 
 *     def _set_mujoco_buffers(self):             # <<<<<<<<<<<<<<
 *         mjr_makeContext(self._model_ptr, &self._con, mjFONTSCALE_150)
 *         if self.offscreen:
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_7_set_mujoco_buffers, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext__set_mujoco_buff, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__702)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext, __pyx_n_s_set_mujoco_buffers, __pyx_t_5) < 0) __PYX_ERR(1, 84, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);

  /* "mujoco_py/mjrendercontext.pyx":96
 *         self.con = WrapMjrContext(&self._con)
 * 
 *     def _setup_opengl_context(self, offscreen, device_id, opengl_backend, quiet=False):             # <<<<<<<<<<<<<<
 *         if opengl_backend is None and (not offscreen or sys.platform == 'darwin'):
 *             # default to glfw for onscreen viewing or mac (both offscreen/onscreen)
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_9_setup_opengl_context, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext__setup_opengl_co, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__704)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_tuple__640);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext, __pyx_n_s_setup_opengl_context, __pyx_t_5) < 0) __PYX_ERR(1, 96, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);

  /* "mujoco_py/mjrendercontext.pyx":116
 *             self.opengl_context = OffscreenOpenGLContext(device_id)
 * 
 *     def _init_camera(self, sim):             # <<<<<<<<<<<<<<
 *         # Make the free camera look at the scene
 *         self.cam.type = const.CAMERA_FREE
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_11_init_camera, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext__init_camera, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__706)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext, __pyx_n_s_init_camera, __pyx_t_5) < 0) __PYX_ERR(1, 116, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);

  /* "mujoco_py/mjrendercontext.pyx":124
 *         self.cam.distance = sim.model.stat.extent
 * 
 *     def update_offscreen_size(self, width, height):             # <<<<<<<<<<<<<<
 *         if width != self._con.offWidth or height != self._con.offHeight:
 *             self._model_ptr.vis.global_.offwidth = width
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_13update_offscreen_size, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext_update_offscreen, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__707)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext, __pyx_n_s_update_offscreen_size, __pyx_t_5) < 0) __PYX_ERR(1, 124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);

  /* "mujoco_py/mjrendercontext.pyx":131
 *             self._set_mujoco_buffers()
 * 
 *     def render(self, width, height, camera_id=None, segmentation=False):             # <<<<<<<<<<<<<<
 *         cdef mjrRect rect
 *         rect.left = 0
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_15render, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext_render, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__709)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_tuple__710);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext, __pyx_n_s_render, __pyx_t_5) < 0) __PYX_ERR(1, 131, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);

  /* "mujoco_py/mjrendercontext.pyx":176
 *             self._scn.flags[const.RND_IDCOLOR] = 0
 * 
 *     def read_pixels(self, width, height, depth=True, segmentation=False):             # <<<<<<<<<<<<<<
 *         cdef mjrRect rect
 *         rect.left = 0
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_17read_pixels, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext_read_pixels, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__712)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_tuple__713);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext, __pyx_n_s_read_pixels, __pyx_t_5) < 0) __PYX_ERR(1, 176, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);

  /* "mujoco_py/mjrendercontext.pyx":212
 *             return ret_img
 * 
 *     def read_pixels_depth(self, np.ndarray[np.float32_t, mode="c", ndim=2] buffer):             # <<<<<<<<<<<<<<
 *             ''' Read depth pixels into a preallocated buffer '''
 *             cdef mjrRect rect
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_19read_pixels_depth, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext_read_pixels_dept, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__715)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext, __pyx_n_s_read_pixels_depth, __pyx_t_5) < 0) __PYX_ERR(1, 212, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);

  /* "mujoco_py/mjrendercontext.pyx":223
 *             mjr_readPixels(NULL, &buffer_view[0], rect, &self._con)
 * 
 *     def upload_texture(self, int tex_id):             # <<<<<<<<<<<<<<
 *         """ Uploads given texture to the GPU. """
 *         self.opengl_context.make_context_current()
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_21upload_texture, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext_upload_texture, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__717)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext, __pyx_n_s_upload_texture, __pyx_t_5) < 0) __PYX_ERR(1, 223, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);

  /* "mujoco_py/mjrendercontext.pyx":228
 *         mjr_uploadTexture(self._model_ptr, &self._con, tex_id)
 * 
 *     def draw_pixels(self, np.ndarray[np.uint8_t, ndim=3] image, int left, int bottom):             # <<<<<<<<<<<<<<
 *         """Draw an image into the OpenGL buffer."""
 *         cdef unsigned char[::view.contiguous] image_view = image.ravel()
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_23draw_pixels, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext_draw_pixels, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__719)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext, __pyx_n_s_draw_pixels, __pyx_t_5) < 0) __PYX_ERR(1, 228, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);

  /* "mujoco_py/mjrendercontext.pyx":238
 *         mjr_drawPixels(&image_view[0], NULL, viewport, &self._con)
 * 
 *     def move_camera(self, int action, double reldx, double reldy):             # <<<<<<<<<<<<<<
 *         """ Moves the camera based on mouse movements. Action is one of mjMOUSE_*. """
 *         mjv_moveCamera(self._model_ptr, action, reldx, reldy, &self._scn, &self._cam)
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_25move_camera, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext_move_camera, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__721)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext, __pyx_n_s_move_camera, __pyx_t_5) < 0) __PYX_ERR(1, 238, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);

  /* "mujoco_py/mjrendercontext.pyx":242
 *         mjv_moveCamera(self._model_ptr, action, reldx, reldy, &self._scn, &self._cam)
 * 
 *     def add_overlay(self, int gridpos, str text1, str text2):             # <<<<<<<<<<<<<<
 *         """ Overlays text on the scene. """
 *         if gridpos not in self._overlay:
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_27add_overlay, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext_add_overlay, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__723)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext, __pyx_n_s_add_overlay, __pyx_t_5) < 0) __PYX_ERR(1, 242, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);

  /* "mujoco_py/mjrendercontext.pyx":249
 *         self._overlay[gridpos][1] += text2 + "\n"
 * 
 *     def add_marker(self, **marker_params):             # <<<<<<<<<<<<<<
 *         self._markers.append(marker_params)
 * 
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_29add_marker, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext_add_marker, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__725)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext, __pyx_n_s_add_marker, __pyx_t_5) < 0) __PYX_ERR(1, 249, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);

  /* "mujoco_py/mjrendercontext.pyx":252
 *         self._markers.append(marker_params)
 * 
 *     def _add_marker_to_scene(self, marker_params):             # <<<<<<<<<<<<<<
 *         """ Adds marker to scene, and returns the corresponding object. """
 *         if self._scn.ngeom >= self._scn.maxgeom:
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_31_add_marker_to_scene, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext__add_marker_to_s, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__727)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext, __pyx_n_s_add_marker_to_scene, __pyx_t_5) < 0) __PYX_ERR(1, 252, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  PyType_Modified(__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_35__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext___reduce_cython, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__728)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_5) < 0) __PYX_ERR(3, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjRenderContext_37__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MjRenderContext___setstate_cytho, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__729)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_5) < 0) __PYX_ERR(3, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/mjrendercontext.pyx":303
 * 
 * 
 * class MjRenderContextOffscreen(MjRenderContext):             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, MjSim sim, int device_id):
 */
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);
  __Pyx_GIVEREF((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext))) __PYX_ERR(1, 303, __pyx_L1_error);
  __pyx_t_10 = __Pyx_PEP560_update_bases(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_11 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_10, __pyx_n_s_MjRenderContextOffscreen, __pyx_n_s_MjRenderContextOffscreen, (PyObject *) NULL, __pyx_n_s_mujoco_py_cymj, (PyObject *) NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (__pyx_t_10 != __pyx_t_5) {
    if (unlikely((PyDict_SetItemString(__pyx_t_11, "__orig_bases__", __pyx_t_5) < 0))) __PYX_ERR(1, 303, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "mujoco_py/mjrendercontext.pyx":305
 * class MjRenderContextOffscreen(MjRenderContext):
 * 
 *     def __cinit__(self, MjSim sim, int device_id):             # <<<<<<<<<<<<<<
 *         super().__init__(sim, offscreen=True, device_id=device_id)
 * 
 */
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_24MjRenderContextOffscreen_1__cinit__, 0, __pyx_n_s_MjRenderContextOffscreen___cinit, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__731)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_t_7);
  PyList_Append(__pyx_t_5, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_11, __pyx_n_s_cinit, __pyx_t_7) < 0) __PYX_ERR(1, 305, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "mujoco_py/mjrendercontext.pyx":303
 * 
 * 
 * class MjRenderContextOffscreen(MjRenderContext):             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, MjSim sim, int device_id):
 */
  __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_MjRenderContextOffscreen, __pyx_t_10, __pyx_t_11, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_CyFunction_InitClassCell(__pyx_t_5, __pyx_t_7) < 0) __PYX_ERR(1, 303, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MjRenderContextOffscreen, __pyx_t_7) < 0) __PYX_ERR(1, 303, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

  /* "mujoco_py/mjrendercontext.pyx":308
 *         super().__init__(sim, offscreen=True, device_id=device_id)
 * 
 * class MjRenderContextWindow(MjRenderContext):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, MjSim sim):
 */
  __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_INCREF((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);
  __Pyx_GIVEREF((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_ptype_9mujoco_py_4cymj_MjRenderContext))) __PYX_ERR(1, 308, __pyx_L1_error);
  __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_11 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_11, __pyx_t_4, __pyx_n_s_MjRenderContextWindow, __pyx_n_s_MjRenderContextWindow, (PyObject *) NULL, __pyx_n_s_mujoco_py_cymj, (PyObject *) NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_4 != __pyx_t_10) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_t_10) < 0))) __PYX_ERR(1, 308, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);

  /* "mujoco_py/mjrendercontext.pyx":310
 * class MjRenderContextWindow(MjRenderContext):
 * 
 *     def __init__(self, MjSim sim):             # <<<<<<<<<<<<<<
 *         super().__init__(sim, offscreen=False)
 *         self.render_swap_callback = None
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_21MjRenderContextWindow_1__init__, 0, __pyx_n_s_MjRenderContextWindow___init, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__733)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_t_5);
  PyList_Append(__pyx_t_10, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_init_2, __pyx_t_5) < 0) __PYX_ERR(1, 310, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "mujoco_py/mjrendercontext.pyx":317
 *             "Only GlfwContext supported for windowed rendering")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def window(self):
 *         return self.opengl_context.window
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_21MjRenderContextWindow_3window, 0, __pyx_n_s_MjRenderContextWindow_window, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__734)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_window, __pyx_t_12) < 0) __PYX_ERR(1, 317, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "mujoco_py/mjrendercontext.pyx":321
 *         return self.opengl_context.window
 * 
 *     def render(self):             # <<<<<<<<<<<<<<
 *         if self.window is None or glfw.window_should_close(self.window):
 *             return
 */
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_21MjRenderContextWindow_5render, 0, __pyx_n_s_MjRenderContextWindow_render, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__735)); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_INCREF(__pyx_t_12);
  PyList_Append(__pyx_t_10, __pyx_t_12);
  __Pyx_GIVEREF(__pyx_t_12);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_render, __pyx_t_12) < 0) __PYX_ERR(1, 321, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "mujoco_py/mjrendercontext.pyx":308
 *         super().__init__(sim, offscreen=True, device_id=device_id)
 * 
 * class MjRenderContextWindow(MjRenderContext):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, MjSim sim):
 */
  __pyx_t_12 = __Pyx_Py3ClassCreate(__pyx_t_11, __pyx_n_s_MjRenderContextWindow, __pyx_t_4, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (__Pyx_CyFunction_InitClassCell(__pyx_t_10, __pyx_t_12) < 0) __PYX_ERR(1, 308, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MjRenderContextWindow, __pyx_t_12) < 0) __PYX_ERR(1, 308, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":1
 * try:             # <<<<<<<<<<<<<<
 *     import pycuda.driver as drv
 * except ImportError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_1);
    /*try:*/ {

      /* "mujoco_py/mjbatchrenderer.pyx":2
 * try:
 *     import pycuda.driver as drv             # <<<<<<<<<<<<<<
 * except ImportError:
 *     drv = None
 */
      __pyx_t_4 = __Pyx_ImportDottedModule(__pyx_n_s_pycuda_driver, __pyx_tuple__736); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 2, __pyx_L36_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_drv, __pyx_t_4) < 0) __PYX_ERR(2, 2, __pyx_L36_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "mujoco_py/mjbatchrenderer.pyx":1
 * try:             # <<<<<<<<<<<<<<
 *     import pycuda.driver as drv
 * except ImportError:
 */
    }
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L41_try_end;
    __pyx_L36_error:;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "mujoco_py/mjbatchrenderer.pyx":3
 * try:
 *     import pycuda.driver as drv
 * except ImportError:             # <<<<<<<<<<<<<<
 *     drv = None
 * 
 */
    __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError);
    if (__pyx_t_9) {
      __Pyx_AddTraceback("mujoco_py.cymj", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_11, &__pyx_t_7) < 0) __PYX_ERR(2, 3, __pyx_L38_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_7);

      /* "mujoco_py/mjbatchrenderer.pyx":4
 *     import pycuda.driver as drv
 * except ImportError:
 *     drv = None             # <<<<<<<<<<<<<<
 * 
 * 
 */
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_drv, Py_None) < 0) __PYX_ERR(2, 4, __pyx_L38_except_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L37_exception_handled;
    }
    goto __pyx_L38_except_error;

    /* "mujoco_py/mjbatchrenderer.pyx":1
 * try:             # <<<<<<<<<<<<<<
 *     import pycuda.driver as drv
 * except ImportError:
 */
    __pyx_L38_except_error:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_2, __pyx_t_1);
    goto __pyx_L1_error;
    __pyx_L37_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_2, __pyx_t_1);
    __pyx_L41_try_end:;
  }

  /* "mujoco_py/mjbatchrenderer.pyx":7
 * 
 * 
 * class MjBatchRendererException(Exception):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]));
  __Pyx_GIVEREF((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]));
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])))) __PYX_ERR(2, 7, __pyx_L1_error);
  __pyx_t_11 = __Pyx_PEP560_update_bases(__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_11, __pyx_n_s_MjBatchRendererException, __pyx_n_s_MjBatchRendererException, (PyObject *) NULL, __pyx_n_s_mujoco_py_cymj, (PyObject *) NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (__pyx_t_11 != __pyx_t_7) {
    if (unlikely((PyDict_SetItemString(__pyx_t_12, "__orig_bases__", __pyx_t_7) < 0))) __PYX_ERR(2, 7, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_MjBatchRendererException, __pyx_t_11, __pyx_t_12, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MjBatchRendererException, __pyx_t_7) < 0) __PYX_ERR(2, 7, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":11
 * 
 * 
 * class MjBatchRendererNotSupported(MjBatchRendererException):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_MjBatchRendererException); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_11);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_11)) __PYX_ERR(2, 11, __pyx_L1_error);
  __pyx_t_11 = 0;
  __pyx_t_11 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = __Pyx_CalculateMetaclass(NULL, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_12, __pyx_t_11, __pyx_n_s_MjBatchRendererNotSupported, __pyx_n_s_MjBatchRendererNotSupported, (PyObject *) NULL, __pyx_n_s_mujoco_py_cymj, (PyObject *) NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_11 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(2, 11, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_12, __pyx_n_s_MjBatchRendererNotSupported, __pyx_t_11, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MjBatchRendererNotSupported, __pyx_t_4) < 0) __PYX_ERR(2, 11, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":15
 * 
 * 
 * class CudaNotEnabledError(MjBatchRendererException):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_MjBatchRendererException); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_GIVEREF(__pyx_t_11);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_11)) __PYX_ERR(2, 15, __pyx_L1_error);
  __pyx_t_11 = 0;
  __pyx_t_11 = __Pyx_PEP560_update_bases(__pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_11, __pyx_n_s_CudaNotEnabledError, __pyx_n_s_CudaNotEnabledError, (PyObject *) NULL, __pyx_n_s_mujoco_py_cymj, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_11 != __pyx_t_12) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_12) < 0))) __PYX_ERR(2, 15, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_CudaNotEnabledError, __pyx_t_11, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CudaNotEnabledError, __pyx_t_12) < 0) __PYX_ERR(2, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":19
 * 
 * 
 * class CudaBufferNotMappedError(MjBatchRendererException):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_MjBatchRendererException); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_11);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_11)) __PYX_ERR(2, 19, __pyx_L1_error);
  __pyx_t_11 = 0;
  __pyx_t_11 = __Pyx_PEP560_update_bases(__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_11, __pyx_n_s_CudaBufferNotMappedError, __pyx_n_s_CudaBufferNotMappedError, (PyObject *) NULL, __pyx_n_s_mujoco_py_cymj, (PyObject *) NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (__pyx_t_11 != __pyx_t_7) {
    if (unlikely((PyDict_SetItemString(__pyx_t_12, "__orig_bases__", __pyx_t_7) < 0))) __PYX_ERR(2, 19, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_CudaBufferNotMappedError, __pyx_t_11, __pyx_t_12, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CudaBufferNotMappedError, __pyx_t_7) < 0) __PYX_ERR(2, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":23
 * 
 * 
 * class CudaBufferMappedError(MjBatchRendererException):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_MjBatchRendererException); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_11);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_11)) __PYX_ERR(2, 23, __pyx_L1_error);
  __pyx_t_11 = 0;
  __pyx_t_11 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = __Pyx_CalculateMetaclass(NULL, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_12, __pyx_t_11, __pyx_n_s_CudaBufferMappedError, __pyx_n_s_CudaBufferMappedError, (PyObject *) NULL, __pyx_n_s_mujoco_py_cymj, (PyObject *) NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_11 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(2, 23, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_12, __pyx_n_s_CudaBufferMappedError, __pyx_t_11, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CudaBufferMappedError, __pyx_t_4) < 0) __PYX_ERR(2, 23, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":27
 * 
 * 
 * class MjBatchRenderer(object):             # <<<<<<<<<<<<<<
 *     """
 *     Utility class for rendering into OpenGL Pixel Buffer Objects (PBOs),
 */
  __pyx_t_11 = __Pyx_PEP560_update_bases(__pyx_tuple__738); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = __Pyx_CalculateMetaclass(NULL, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_12, __pyx_t_11, __pyx_n_s_MjBatchRenderer, __pyx_n_s_MjBatchRenderer, (PyObject *) NULL, __pyx_n_s_mujoco_py_cymj, __pyx_kp_s_Utility_class_for_rendering_int); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_11 != __pyx_tuple__738) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_tuple__738) < 0))) __PYX_ERR(2, 27, __pyx_L1_error)
  }

  /* "mujoco_py/mjbatchrenderer.pyx":44
 *     """
 * 
 *     def __init__(self, width, height, batch_size=1, device_id=0,             # <<<<<<<<<<<<<<
 *                  depth=False, use_cuda=False):
 *         """
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_1__init__, 0, __pyx_n_s_MjBatchRenderer___init, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__740)); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__741);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_init_2, __pyx_t_4) < 0) __PYX_ERR(2, 44, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":86
 *             self._init_cuda()
 * 
 *     def _init_cuda(self):             # <<<<<<<<<<<<<<
 *         if drv is None:
 *             raise ImportError("Failed to import pycuda.")
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_3_init_cuda, 0, __pyx_n_s_MjBatchRenderer__init_cuda, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__743)); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_init_cuda, __pyx_t_4) < 0) __PYX_ERR(2, 86, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":102
 *             self._cuda_depth_pbo = RegisteredBuffer(self.pbo_depth)
 * 
 *     def map(self):             # <<<<<<<<<<<<<<
 *         """ Map OpenGL buffer to CUDA for reading. """
 *         if not self._use_cuda:
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_5map, 0, __pyx_n_s_MjBatchRenderer_map, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__745)); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_map, __pyx_t_4) < 0) __PYX_ERR(2, 102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":139
 *         self._cuda_buffers_are_mapped = True
 * 
 *     def unmap(self):             # <<<<<<<<<<<<<<
 *         """ Unmap OpenGL buffer from CUDA so that it can be rendered into. """
 *         if not self._use_cuda:
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_7unmap, 0, __pyx_n_s_MjBatchRenderer_unmap, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__746)); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_unmap, __pyx_t_4) < 0) __PYX_ERR(2, 139, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":157
 *         self._cuda_buffers_are_mapped = False
 * 
 *     def prepare_render_context(self, sim):             # <<<<<<<<<<<<<<
 *         """
 *         Set up the rendering context for an MjSim. Also happens automatically
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_9prepare_render_context, 0, __pyx_n_s_MjBatchRenderer_prepare_render_c, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__748)); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_prepare_render_context, __pyx_t_4) < 0) __PYX_ERR(2, 157, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":170
 *         return MjRenderContext(sim, device_id=self._device_id)
 * 
 *     def render(self, sim, camera_id=None, batch_offset=None):             # <<<<<<<<<<<<<<
 *         """
 *         Render current scene from the MjSim into the buffer. By
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_11render, 0, __pyx_n_s_MjBatchRenderer_render, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__750)); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__660);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_render, __pyx_t_4) < 0) __PYX_ERR(2, 170, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":214
 *         self._current_batch_offset = (self._current_batch_offset + 1) % self._batch_size
 * 
 *     def read(self):             # <<<<<<<<<<<<<<
 *         """
 *         Transfer a copy of the buffer from the GPU to the CPU as a numpy array.
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_13read, 0, __pyx_n_s_MjBatchRenderer_read, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__751)); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_read, __pyx_t_4) < 0) __PYX_ERR(2, 214, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":227
 *             return self._read_nocuda()
 * 
 *     def _read_cuda(self):             # <<<<<<<<<<<<<<
 *         if not self._cuda_buffers_are_mapped:
 *             raise CudaBufferNotMappedError(
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_15_read_cuda, 0, __pyx_n_s_MjBatchRenderer__read_cuda, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__753)); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_read_cuda, __pyx_t_4) < 0) __PYX_ERR(2, 227, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":247
 *         return rgb_arr, depth_arr
 * 
 *     def _read_nocuda(self):             # <<<<<<<<<<<<<<
 *         rgb_arr = np.zeros(3 * self._width * self._height * self._batch_size, dtype=np.uint8)
 *         cdef unsigned char[::view.contiguous] rgb_view = rgb_arr
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_17_read_nocuda, 0, __pyx_n_s_MjBatchRenderer__read_nocuda, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__755)); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_read_nocuda, __pyx_t_4) < 0) __PYX_ERR(2, 247, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":266
 *         return rgb_arr, depth_arr
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def cuda_rgb_buffer_pointer(self):
 *         """ Pointer to CUDA buffer for RGB batch. """
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_19cuda_rgb_buffer_pointer, 0, __pyx_n_s_MjBatchRenderer_cuda_rgb_buffer, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__756)); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_cuda_rgb_buffer_pointer, __pyx_t_10) < 0) __PYX_ERR(2, 266, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":275
 *         return self._cuda_rgb_ptr
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def cuda_depth_buffer_pointer(self):
 *         """ Pointer to CUDA buffer for depth batch. """
 */
  __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_21cuda_depth_buffer_pointer, 0, __pyx_n_s_MjBatchRenderer_cuda_depth_buffe, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__757)); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_cuda_depth_buffer_pointer, __pyx_t_4) < 0) __PYX_ERR(2, 275, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":286
 *         return self._cuda_depth_ptr
 * 
 *     def __del__(self):             # <<<<<<<<<<<<<<
 *         if self._use_cuda:
 *             self._cuda_context.push()
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_15MjBatchRenderer_23__del__, 0, __pyx_n_s_MjBatchRenderer___del, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__758)); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_del, __pyx_t_4) < 0) __PYX_ERR(2, 286, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/mjbatchrenderer.pyx":27
 * 
 * 
 * class MjBatchRenderer(object):             # <<<<<<<<<<<<<<
 *     """
 *     Utility class for rendering into OpenGL Pixel Buffer Objects (PBOs),
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_12, __pyx_n_s_MjBatchRenderer, __pyx_t_11, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MjBatchRenderer, __pyx_t_4) < 0) __PYX_ERR(2, 27, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/mjpid.pyx":2
 * from libc.math cimport fabs, fmax, fmin
 * from mujoco_py.generated import const             # <<<<<<<<<<<<<<
 * 
 * cdef int CONTROLLER_TYPE_PI_CASCADE = 1,
 */
  __pyx_t_11 = PyList_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_INCREF(__pyx_n_s_const);
  __Pyx_GIVEREF(__pyx_n_s_const);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 0, __pyx_n_s_const)) __PYX_ERR(9, 2, __pyx_L1_error);
  __pyx_t_12 = __Pyx_Import(__pyx_n_s_mujoco_py_generated, __pyx_t_11, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = __Pyx_ImportFrom(__pyx_t_12, __pyx_n_s_const); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_const, __pyx_t_11) < 0) __PYX_ERR(9, 2, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "mujoco_py/mjpid.pyx":4
 * from mujoco_py.generated import const
 * 
 * cdef int CONTROLLER_TYPE_PI_CASCADE = 1,             # <<<<<<<<<<<<<<
 * 
 * cdef struct PIDErrors:
 */
  __pyx_v_9mujoco_py_4cymj_CONTROLLER_TYPE_PI_CASCADE = 1;

  /* "mujoco_py/mjpid.pyx":146
 *     NUM_USER_DATA_PER_ACT_CAS = 5,
 * 
 * cdef NUM_USER_DATA_PER_ACT = max(int(NUM_USER_DATA_PER_ACT_PID), int(NUM_USER_DATA_PER_ACT_CAS))             # <<<<<<<<<<<<<<
 * 
 * cdef mjtNum c_pi_cascade_bias(const mjModel*m, const mjData*d, int id):
 */
  __pyx_t_12 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE(__pyx_e_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT_CAS); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyInt_Type)), __pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID(__pyx_e_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT_PID); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_7 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyInt_Type)), __pyx_t_12); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_11, __pyx_t_7, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 146, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 146, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_6) {
    __Pyx_INCREF(__pyx_t_11);
    __pyx_t_12 = __pyx_t_11;
  } else {
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_12 = __pyx_t_7;
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = __pyx_t_12;
  __Pyx_INCREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_XGOTREF(__pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT);
  __Pyx_DECREF_SET(__pyx_v_9mujoco_py_4cymj_NUM_USER_DATA_PER_ACT, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_11);
  __pyx_t_11 = 0;

  /* "mujoco_py/mjpid.pyx":271
 *     return c_pid_bias(m, d, id)
 * 
 * def set_pid_control(m, d):             # <<<<<<<<<<<<<<
 *     global mjcb_act_gain
 *     global mjcb_act_bias
 */
  __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_495set_pid_control, 0, __pyx_n_s_set_pid_control, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__760)); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_set_pid_control, __pyx_t_11) < 0) __PYX_ERR(9, 271, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/cymj.pyx":63
 * #   with wrap_mujoco_warning():
 * #       mj_somefunc()
 * cdef object py_warning_exception = None             # <<<<<<<<<<<<<<
 * cdef object py_error_exception = None
 * 
 */
  __Pyx_INCREF(Py_None);
  __Pyx_XGOTREF(__pyx_v_9mujoco_py_4cymj_py_warning_exception);
  __Pyx_DECREF_SET(__pyx_v_9mujoco_py_4cymj_py_warning_exception, Py_None);
  __Pyx_GIVEREF(Py_None);

  /* "mujoco_py/cymj.pyx":64
 * #       mj_somefunc()
 * cdef object py_warning_exception = None
 * cdef object py_error_exception = None             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_INCREF(Py_None);
  __Pyx_XGOTREF(__pyx_v_9mujoco_py_4cymj_py_error_exception);
  __Pyx_DECREF_SET(__pyx_v_9mujoco_py_4cymj_py_error_exception, Py_None);
  __Pyx_GIVEREF(Py_None);

  /* "mujoco_py/cymj.pyx":83
 * 
 * 
 * def set_warning_callback(warn):             # <<<<<<<<<<<<<<
 *     '''
 *     Set a user-defined warning callback.  It should take in a string message
 */
  __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_497set_warning_callback, 0, __pyx_n_s_set_warning_callback, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__762)); if (unlikely(!__pyx_t_11)) __PYX_ERR(7, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_set_warning_callback, __pyx_t_11) < 0) __PYX_ERR(7, 83, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/cymj.pyx":95
 * 
 * 
 * def get_warning_callback():             # <<<<<<<<<<<<<<
 *     '''
 *     Returns the user-defined warning callback, for use in e.g. a context
 */
  __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_499get_warning_callback, 0, __pyx_n_s_get_warning_callback, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__763)); if (unlikely(!__pyx_t_11)) __PYX_ERR(7, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_warning_callback, __pyx_t_11) < 0) __PYX_ERR(7, 95, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/cymj.pyx":118
 * 
 * 
 * def set_error_callback(err_callback):             # <<<<<<<<<<<<<<
 *     '''
 *     Set a user-defined error callback.  It should take in a string message
 */
  __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_501set_error_callback, 0, __pyx_n_s_set_error_callback, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__765)); if (unlikely(!__pyx_t_11)) __PYX_ERR(7, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_set_error_callback, __pyx_t_11) < 0) __PYX_ERR(7, 118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/cymj.pyx":130
 * 
 * 
 * def get_error_callback():             # <<<<<<<<<<<<<<
 *     '''
 *     Returns the user-defined warning callback, for use in e.g. a context
 */
  __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_503get_error_callback, 0, __pyx_n_s_get_error_callback, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__766)); if (unlikely(!__pyx_t_11)) __PYX_ERR(7, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_error_callback, __pyx_t_11) < 0) __PYX_ERR(7, 130, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/cymj.pyx":139
 * 
 * 
 * class wrap_mujoco_warning(object):             # <<<<<<<<<<<<<<
 *     '''
 *     Class to wrap capturing exceptions raised during warning callbacks.
 */
  __pyx_t_11 = __Pyx_PEP560_update_bases(__pyx_tuple__768); if (unlikely(!__pyx_t_11)) __PYX_ERR(7, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = __Pyx_CalculateMetaclass(NULL, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(7, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_12, __pyx_t_11, __pyx_n_s_wrap_mujoco_warning, __pyx_n_s_wrap_mujoco_warning, (PyObject *) NULL, __pyx_n_s_mujoco_py_cymj, __pyx_kp_s_Class_to_wrap_capturing_excepti); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_11 != __pyx_tuple__768) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_tuple__768) < 0))) __PYX_ERR(7, 139, __pyx_L1_error)
  }

  /* "mujoco_py/cymj.pyx":146
 *             mj_somefunc()
 *     '''
 *     def __enter__(self):             # <<<<<<<<<<<<<<
 *         global py_warning_exception
 *         py_warning_exception = None
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_19wrap_mujoco_warning_1__enter__, 0, __pyx_n_s_wrap_mujoco_warning___enter, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__769)); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_enter, __pyx_t_4) < 0) __PYX_ERR(7, 146, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/cymj.pyx":151
 *         global py_error_exception
 *         py_error_exception = None
 *     def __exit__(self, type, value, traceback):             # <<<<<<<<<<<<<<
 *         global py_warning_exception
 *         global py_error_exception
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_19wrap_mujoco_warning_3__exit__, 0, __pyx_n_s_wrap_mujoco_warning___exit, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__771)); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_n_s_exit, __pyx_t_4) < 0) __PYX_ERR(7, 151, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "mujoco_py/cymj.pyx":139
 * 
 * 
 * class wrap_mujoco_warning(object):             # <<<<<<<<<<<<<<
 *     '''
 *     Class to wrap capturing exceptions raised during warning callbacks.
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_12, __pyx_n_s_wrap_mujoco_warning, __pyx_t_11, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_wrap_mujoco_warning, __pyx_t_4) < 0) __PYX_ERR(7, 139, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/cymj.pyx":162
 * 
 * 
 * def load_model_from_path(str path):             # <<<<<<<<<<<<<<
 *     """Loads model from path."""
 *     cdef char errstr[300]
 */
  __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_505load_model_from_path, 0, __pyx_n_s_load_model_from_path, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__773)); if (unlikely(!__pyx_t_11)) __PYX_ERR(7, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_load_model_from_path, __pyx_t_11) < 0) __PYX_ERR(7, 162, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/cymj.pyx":178
 *     return WrapMjModel(model)
 * 
 * def load_model_from_xml(str xml_str):             # <<<<<<<<<<<<<<
 *     """
 *     Loads and returns a PyMjModel model from a string containing XML markup.
 */
  __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_507load_model_from_xml, 0, __pyx_n_s_load_model_from_xml, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__775)); if (unlikely(!__pyx_t_11)) __PYX_ERR(7, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_load_model_from_xml, __pyx_t_11) < 0) __PYX_ERR(7, 178, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/cymj.pyx":195
 * 
 * 
 * def load_model_from_mjb(bytes mjb_bytes):             # <<<<<<<<<<<<<<
 *     """
 *     Loads and returns a PyMjModel model from bytes encoded MJB.
 */
  __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_9mujoco_py_4cymj_509load_model_from_mjb, 0, __pyx_n_s_load_model_from_mjb, NULL, __pyx_n_s_mujoco_py_cymj, __pyx_d, ((PyObject *)__pyx_codeobj__777)); if (unlikely(!__pyx_t_11)) __PYX_ERR(7, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_load_model_from_mjb, __pyx_t_11) < 0) __PYX_ERR(7, 195, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "mujoco_py/cymj.pyx":1
 * # cython: language_level=3             # <<<<<<<<<<<<<<
 * import copy
 * import logging
 */
  __pyx_t_11 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_11) < 0) __PYX_ERR(7, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /*--- Wrapped vars code ---*/

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  if (__pyx_m) {
    if (__pyx_d && stringtab_initialized) {
      __Pyx_AddTraceback("init mujoco_py.cymj", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    #if !CYTHON_USE_MODULE_STATE
    Py_CLEAR(__pyx_m);
    #else
    Py_DECREF(__pyx_m);
    if (pystate_addmodule_run) {
      PyObject *tp, *value, *tb;
      PyErr_Fetch(&tp, &value, &tb);
      PyState_RemoveModule(&__pyx_moduledef);
      PyErr_Restore(tp, value, tb);
    }
    #endif
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init mujoco_py.cymj");
  }
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  return (__pyx_m != NULL) ? 0 : -1;
  #elif PY_MAJOR_VERSION >= 3
  return __pyx_m;
  #else
  return;
  #endif
}
/* #### Code section: cleanup_globals ### */
/* #### Code section: cleanup_module ### */
/* #### Code section: main_method ### */
/* #### Code section: utility_code_pragmas ### */
#ifdef _MSC_VER
#pragma warning( push )
/* Warning 4127: conditional expression is constant
 * Cython uses constant conditional expressions to allow in inline functions to be optimized at
 * compile-time, so this warning is not useful
 */
#pragma warning( disable : 4127 )
#endif



/* #### Code section: utility_code_def ### */

/* --- Runtime support code --- */
/* Refnanny */
#if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
    PyObject *m = NULL, *p = NULL;
    void *r = NULL;
    m = PyImport_ImportModule(modname);
    if (!m) goto end;
    p = PyObject_GetAttrString(m, "RefNannyAPI");
    if (!p) goto end;
    r = PyLong_AsVoidPtr(p);
end:
    Py_XDECREF(p);
    Py_XDECREF(m);
    return (__Pyx_RefNannyAPIStruct *)r;
}
#endif

/* PyErrExceptionMatches */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
    int result;
    PyObject *exc_type;
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject *current_exception = tstate->current_exception;
    if (unlikely(!current_exception)) return 0;
    exc_type = (PyObject*) Py_TYPE(current_exception);
    if (exc_type == err) return 1;
#else
    exc_type = tstate->curexc_type;
    if (exc_type == err) return 1;
    if (unlikely(!exc_type)) return 0;
#endif
    #if CYTHON_AVOID_BORROWED_REFS
    Py_INCREF(exc_type);
    #endif
    if (unlikely(PyTuple_Check(err))) {
        result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
    } else {
        result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
    }
    #if CYTHON_AVOID_BORROWED_REFS
    Py_DECREF(exc_type);
    #endif
    return result;
}
#endif

/* PyErrFetchRestore */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject *tmp_value;
    assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));
    if (value) {
        #if CYTHON_COMPILING_IN_CPYTHON
        if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))
        #endif
            PyException_SetTraceback(value, tb);
    }
    tmp_value = tstate->current_exception;
    tstate->current_exception = value;
    Py_XDECREF(tmp_value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
#else
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    tmp_type = tstate->curexc_type;
    tmp_value = tstate->curexc_value;
    tmp_tb = tstate->curexc_traceback;
    tstate->curexc_type = type;
    tstate->curexc_value = value;
    tstate->curexc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#endif
}
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject* exc_value;
    exc_value = tstate->current_exception;
    tstate->current_exception = 0;
    *value = exc_value;
    *type = NULL;
    *tb = NULL;
    if (exc_value) {
        *type = (PyObject*) Py_TYPE(exc_value);
        Py_INCREF(*type);
        #if CYTHON_COMPILING_IN_CPYTHON
        *tb = ((PyBaseExceptionObject*) exc_value)->traceback;
        Py_XINCREF(*tb);
        #else
        *tb = PyException_GetTraceback(exc_value);
        #endif
    }
#else
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
#endif
}
#endif

/* PyObjectGetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro))
        return tp->tp_getattro(obj, attr_name);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_getattr))
        return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
#endif
    return PyObject_GetAttr(obj, attr_name);
}
#endif

/* PyObjectGetAttrStrNoError */
#if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        __Pyx_PyErr_Clear();
}
#endif
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
    PyObject *result;
#if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
    (void) PyObject_GetOptionalAttr(obj, attr_name, &result);
    return result;
#else
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
        return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
    }
#endif
    result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
    if (unlikely(!result)) {
        __Pyx_PyObject_GetAttrStr_ClearAttributeError();
    }
    return result;
#endif
}

/* GetBuiltinName */
static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
    PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_b, name);
    if (unlikely(!result) && !PyErr_Occurred()) {
        PyErr_Format(PyExc_NameError,
#if PY_MAJOR_VERSION >= 3
            "name '%U' is not defined", name);
#else
            "name '%.200s' is not defined", PyString_AS_STRING(name));
#endif
    }
    return result;
}

/* GetTopmostException */
#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
static _PyErr_StackItem *
__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
{
    _PyErr_StackItem *exc_info = tstate->exc_info;
    while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) &&
           exc_info->previous_item != NULL)
    {
        exc_info = exc_info->previous_item;
    }
    return exc_info;
}
#endif

/* SaveResetException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    PyObject *exc_value = exc_info->exc_value;
    if (exc_value == NULL || exc_value == Py_None) {
        *value = NULL;
        *type = NULL;
        *tb = NULL;
    } else {
        *value = exc_value;
        Py_INCREF(*value);
        *type = (PyObject*) Py_TYPE(exc_value);
        Py_INCREF(*type);
        *tb = PyException_GetTraceback(exc_value);
    }
  #elif CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    *type = exc_info->exc_type;
    *value = exc_info->exc_value;
    *tb = exc_info->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
  #else
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
  #endif
}
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = tstate->exc_info;
    PyObject *tmp_value = exc_info->exc_value;
    exc_info->exc_value = value;
    Py_XDECREF(tmp_value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
  #else
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = type;
    exc_info->exc_value = value;
    exc_info->exc_traceback = tb;
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = type;
    tstate->exc_value = value;
    tstate->exc_traceback = tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
  #endif
}
#endif

/* FastTypeChecks */
#if CYTHON_COMPILING_IN_CPYTHON
static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
    while (a) {
        a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*);
        if (a == b)
            return 1;
    }
    return b == &PyBaseObject_Type;
}
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (a == b) return 1;
    mro = a->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(a, b);
}
static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (cls == a || cls == b) return 1;
    mro = cls->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            PyObject *base = PyTuple_GET_ITEM(mro, i);
            if (base == (PyObject *)a || base == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b);
}
#if PY_MAJOR_VERSION == 2
static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
    PyObject *exception, *value, *tb;
    int res;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&exception, &value, &tb);
    res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
    if (unlikely(res == -1)) {
        PyErr_WriteUnraisable(err);
        res = 0;
    }
    if (!res) {
        res = PyObject_IsSubclass(err, exc_type2);
        if (unlikely(res == -1)) {
            PyErr_WriteUnraisable(err);
            res = 0;
        }
    }
    __Pyx_ErrRestore(exception, value, tb);
    return res;
}
#else
static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
    if (exc_type1) {
        return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2);
    } else {
        return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
    }
}
#endif
static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    assert(PyExceptionClass_Check(exc_type));
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        PyObject *t = PyTuple_GET_ITEM(tuple, i);
        #if PY_MAJOR_VERSION < 3
        if (likely(exc_type == t)) return 1;
        #endif
        if (likely(PyExceptionClass_Check(t))) {
            if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
        } else {
        }
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
    if (likely(err == exc_type)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        if (likely(PyExceptionClass_Check(exc_type))) {
            return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
        } else if (likely(PyTuple_Check(exc_type))) {
            return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
        } else {
        }
    }
    return PyErr_GivenExceptionMatches(err, exc_type);
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
    assert(PyExceptionClass_Check(exc_type1));
    assert(PyExceptionClass_Check(exc_type2));
    if (likely(err == exc_type1 || err == exc_type2)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
    }
    return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
}
#endif

/* TupleAndListFromArray */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
    PyObject *v;
    Py_ssize_t i;
    for (i = 0; i < length; i++) {
        v = dest[i] = src[i];
        Py_INCREF(v);
    }
}
static CYTHON_INLINE PyObject *
__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    if (n <= 0) {
        Py_INCREF(__pyx_empty_tuple);
        return __pyx_empty_tuple;
    }
    res = PyTuple_New(n);
    if (unlikely(res == NULL)) return NULL;
    __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n);
    return res;
}
static CYTHON_INLINE PyObject *
__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    if (n <= 0) {
        return PyList_New(0);
    }
    res = PyList_New(n);
    if (unlikely(res == NULL)) return NULL;
    __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n);
    return res;
}
#endif

/* BytesEquals */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    if (s1 == s2) {
        return (equals == Py_EQ);
    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
        const char *ps1, *ps2;
        Py_ssize_t length = PyBytes_GET_SIZE(s1);
        if (length != PyBytes_GET_SIZE(s2))
            return (equals == Py_NE);
        ps1 = PyBytes_AS_STRING(s1);
        ps2 = PyBytes_AS_STRING(s2);
        if (ps1[0] != ps2[0]) {
            return (equals == Py_NE);
        } else if (length == 1) {
            return (equals == Py_EQ);
        } else {
            int result;
#if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000)
            Py_hash_t hash1, hash2;
            hash1 = ((PyBytesObject*)s1)->ob_shash;
            hash2 = ((PyBytesObject*)s2)->ob_shash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                return (equals == Py_NE);
            }
#endif
            result = memcmp(ps1, ps2, (size_t)length);
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
        return (equals == Py_NE);
    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
        return (equals == Py_NE);
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
#endif
}

/* UnicodeEquals */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API
    return PyObject_RichCompareBool(s1, s2, equals);
#else
#if PY_MAJOR_VERSION < 3
    PyObject* owned_ref = NULL;
#endif
    int s1_is_unicode, s2_is_unicode;
    if (s1 == s2) {
        goto return_eq;
    }
    s1_is_unicode = PyUnicode_CheckExact(s1);
    s2_is_unicode = PyUnicode_CheckExact(s2);
#if PY_MAJOR_VERSION < 3
    if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
        owned_ref = PyUnicode_FromObject(s2);
        if (unlikely(!owned_ref))
            return -1;
        s2 = owned_ref;
        s2_is_unicode = 1;
    } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
        owned_ref = PyUnicode_FromObject(s1);
        if (unlikely(!owned_ref))
            return -1;
        s1 = owned_ref;
        s1_is_unicode = 1;
    } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
        return __Pyx_PyBytes_Equals(s1, s2, equals);
    }
#endif
    if (s1_is_unicode & s2_is_unicode) {
        Py_ssize_t length;
        int kind;
        void *data1, *data2;
        if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
            return -1;
        length = __Pyx_PyUnicode_GET_LENGTH(s1);
        if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
            goto return_ne;
        }
#if CYTHON_USE_UNICODE_INTERNALS
        {
            Py_hash_t hash1, hash2;
        #if CYTHON_PEP393_ENABLED
            hash1 = ((PyASCIIObject*)s1)->hash;
            hash2 = ((PyASCIIObject*)s2)->hash;
        #else
            hash1 = ((PyUnicodeObject*)s1)->hash;
            hash2 = ((PyUnicodeObject*)s2)->hash;
        #endif
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                goto return_ne;
            }
        }
#endif
        kind = __Pyx_PyUnicode_KIND(s1);
        if (kind != __Pyx_PyUnicode_KIND(s2)) {
            goto return_ne;
        }
        data1 = __Pyx_PyUnicode_DATA(s1);
        data2 = __Pyx_PyUnicode_DATA(s2);
        if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
            goto return_ne;
        } else if (length == 1) {
            goto return_eq;
        } else {
            int result = memcmp(data1, data2, (size_t)(length * kind));
            #if PY_MAJOR_VERSION < 3
            Py_XDECREF(owned_ref);
            #endif
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & s2_is_unicode) {
        goto return_ne;
    } else if ((s2 == Py_None) & s1_is_unicode) {
        goto return_ne;
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        #if PY_MAJOR_VERSION < 3
        Py_XDECREF(owned_ref);
        #endif
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
return_eq:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_EQ);
return_ne:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_NE);
#endif
}

/* fastcall */
#if CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s)
{
    Py_ssize_t i, n = PyTuple_GET_SIZE(kwnames);
    for (i = 0; i < n; i++)
    {
        if (s == PyTuple_GET_ITEM(kwnames, i)) return kwvalues[i];
    }
    for (i = 0; i < n; i++)
    {
        int eq = __Pyx_PyUnicode_Equals(s, PyTuple_GET_ITEM(kwnames, i), Py_EQ);
        if (unlikely(eq != 0)) {
            if (unlikely(eq < 0)) return NULL;
            return kwvalues[i];
        }
    }
    return NULL;
}
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) {
    Py_ssize_t i, nkwargs = PyTuple_GET_SIZE(kwnames);
    PyObject *dict;
    dict = PyDict_New();
    if (unlikely(!dict))
        return NULL;
    for (i=0; i<nkwargs; i++) {
        PyObject *key = PyTuple_GET_ITEM(kwnames, i);
        if (unlikely(PyDict_SetItem(dict, key, kwvalues[i]) < 0))
            goto bad;
    }
    return dict;
bad:
    Py_DECREF(dict);
    return NULL;
}
#endif
#endif

/* RaiseArgTupleInvalid */
static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *more_or_less;
    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    PyErr_Format(PyExc_TypeError,
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

/* RaiseDoubleKeywords */
static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        #if PY_MAJOR_VERSION >= 3
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
        #else
        "%s() got multiple values for keyword argument '%s'", func_name,
        PyString_AsString(kw_name));
        #endif
}

/* ParseKeywords */
static int __Pyx_ParseOptionalKeywords(
    PyObject *kwds,
    PyObject *const *kwvalues,
    PyObject **argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject *key = 0, *value = 0;
    Py_ssize_t pos = 0;
    PyObject*** name;
    PyObject*** first_kw_arg = argnames + num_pos_args;
    int kwds_is_tuple = CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds));
    while (1) {
        Py_XDECREF(key); key = NULL;
        Py_XDECREF(value); value = NULL;
        if (kwds_is_tuple) {
            Py_ssize_t size;
#if CYTHON_ASSUME_SAFE_MACROS
            size = PyTuple_GET_SIZE(kwds);
#else
            size = PyTuple_Size(kwds);
            if (size < 0) goto bad;
#endif
            if (pos >= size) break;
#if CYTHON_AVOID_BORROWED_REFS
            key = __Pyx_PySequence_ITEM(kwds, pos);
            if (!key) goto bad;
#elif CYTHON_ASSUME_SAFE_MACROS
            key = PyTuple_GET_ITEM(kwds, pos);
#else
            key = PyTuple_GetItem(kwds, pos);
            if (!key) goto bad;
#endif
            value = kwvalues[pos];
            pos++;
        }
        else
        {
            if (!PyDict_Next(kwds, &pos, &key, &value)) break;
#if CYTHON_AVOID_BORROWED_REFS
            Py_INCREF(key);
#endif
        }
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            values[name-argnames] = value;
#if CYTHON_AVOID_BORROWED_REFS
            Py_INCREF(value);
            Py_DECREF(key);
#endif
            key = NULL;
            value = NULL;
            continue;
        }
#if !CYTHON_AVOID_BORROWED_REFS
        Py_INCREF(key);
#endif
        Py_INCREF(value);
        name = first_kw_arg;
        #if PY_MAJOR_VERSION < 3
        if (likely(PyString_Check(key))) {
            while (*name) {
                if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
                        && _PyString_Eq(**name, key)) {
                    values[name-argnames] = value;
#if CYTHON_AVOID_BORROWED_REFS
                    value = NULL;
#endif
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    if ((**argname == key) || (
                            (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
                             && _PyString_Eq(**argname, key))) {
                        goto arg_passed_twice;
                    }
                    argname++;
                }
            }
        } else
        #endif
        if (likely(PyUnicode_Check(key))) {
            while (*name) {
                int cmp = (
                #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                    (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                #endif
                    PyUnicode_Compare(**name, key)
                );
                if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                if (cmp == 0) {
                    values[name-argnames] = value;
#if CYTHON_AVOID_BORROWED_REFS
                    value = NULL;
#endif
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    int cmp = (**argname == key) ? 0 :
                    #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                        (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                    #endif
                        PyUnicode_Compare(**argname, key);
                    if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                    if (cmp == 0) goto arg_passed_twice;
                    argname++;
                }
            }
        } else
            goto invalid_keyword_type;
        if (kwds2) {
            if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
        } else {
            goto invalid_keyword;
        }
    }
    Py_XDECREF(key);
    Py_XDECREF(value);
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    goto bad;
invalid_keyword:
    #if PY_MAJOR_VERSION < 3
    PyErr_Format(PyExc_TypeError,
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
    PyErr_Format(PyExc_TypeError,
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
bad:
    Py_XDECREF(key);
    Py_XDECREF(value);
    return -1;
}

/* ArgTypeTest */
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
{
    __Pyx_TypeName type_name;
    __Pyx_TypeName obj_type_name;
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    else if (exact) {
        #if PY_MAJOR_VERSION == 2
        if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
        #endif
    }
    else {
        if (likely(__Pyx_TypeCheck(obj, type))) return 1;
    }
    type_name = __Pyx_PyType_GetName(type);
    obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "Argument '%.200s' has incorrect type (expected " __Pyx_FMT_TYPENAME
        ", got " __Pyx_FMT_TYPENAME ")", name, type_name, obj_type_name);
    __Pyx_DECREF_TypeName(type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return 0;
}

/* RaiseException */
#if PY_MAJOR_VERSION < 3
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    __Pyx_PyThreadState_declare
    CYTHON_UNUSED_VAR(cause);
    Py_XINCREF(type);
    if (!value || value == Py_None)
        value = NULL;
    else
        Py_INCREF(value);
    if (!tb || tb == Py_None)
        tb = NULL;
    else {
        Py_INCREF(tb);
        if (!PyTraceBack_Check(tb)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: arg 3 must be a traceback or None");
            goto raise_error;
        }
    }
    if (PyType_Check(type)) {
#if CYTHON_COMPILING_IN_PYPY
        if (!value) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
#endif
        PyErr_NormalizeException(&type, &value, &tb);
    } else {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto raise_error;
        }
        value = type;
        type = (PyObject*) Py_TYPE(type);
        Py_INCREF(type);
        if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: exception class must be a subclass of BaseException");
            goto raise_error;
        }
    }
    __Pyx_PyThreadState_assign
    __Pyx_ErrRestore(type, value, tb);
    return;
raise_error:
    Py_XDECREF(value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
    return;
}
#else
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    PyObject* owned_instance = NULL;
    if (tb == Py_None) {
        tb = 0;
    } else if (tb && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto bad;
    }
    if (value == Py_None)
        value = 0;
    if (PyExceptionInstance_Check(type)) {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto bad;
        }
        value = type;
        type = (PyObject*) Py_TYPE(value);
    } else if (PyExceptionClass_Check(type)) {
        PyObject *instance_class = NULL;
        if (value && PyExceptionInstance_Check(value)) {
            instance_class = (PyObject*) Py_TYPE(value);
            if (instance_class != type) {
                int is_subclass = PyObject_IsSubclass(instance_class, type);
                if (!is_subclass) {
                    instance_class = NULL;
                } else if (unlikely(is_subclass == -1)) {
                    goto bad;
                } else {
                    type = instance_class;
                }
            }
        }
        if (!instance_class) {
            PyObject *args;
            if (!value)
                args = PyTuple_New(0);
            else if (PyTuple_Check(value)) {
                Py_INCREF(value);
                args = value;
            } else
                args = PyTuple_Pack(1, value);
            if (!args)
                goto bad;
            owned_instance = PyObject_Call(type, args, NULL);
            Py_DECREF(args);
            if (!owned_instance)
                goto bad;
            value = owned_instance;
            if (!PyExceptionInstance_Check(value)) {
                PyErr_Format(PyExc_TypeError,
                             "calling %R should have returned an instance of "
                             "BaseException, not %R",
                             type, Py_TYPE(value));
                goto bad;
            }
        }
    } else {
        PyErr_SetString(PyExc_TypeError,
            "raise: exception class must be a subclass of BaseException");
        goto bad;
    }
    if (cause) {
        PyObject *fixed_cause;
        if (cause == Py_None) {
            fixed_cause = NULL;
        } else if (PyExceptionClass_Check(cause)) {
            fixed_cause = PyObject_CallObject(cause, NULL);
            if (fixed_cause == NULL)
                goto bad;
        } else if (PyExceptionInstance_Check(cause)) {
            fixed_cause = cause;
            Py_INCREF(fixed_cause);
        } else {
            PyErr_SetString(PyExc_TypeError,
                            "exception causes must derive from "
                            "BaseException");
            goto bad;
        }
        PyException_SetCause(value, fixed_cause);
    }
    PyErr_SetObject(type, value);
    if (tb) {
      #if PY_VERSION_HEX >= 0x030C00A6
        PyException_SetTraceback(value, tb);
      #elif CYTHON_FAST_THREAD_STATE
        PyThreadState *tstate = __Pyx_PyThreadState_Current;
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
#else
        PyObject *tmp_type, *tmp_value, *tmp_tb;
        PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
        Py_INCREF(tb);
        PyErr_Restore(tmp_type, tmp_value, tb);
        Py_XDECREF(tmp_tb);
#endif
    }
bad:
    Py_XDECREF(owned_instance);
    return;
}
#endif

/* PyFunctionFastCall */
#if CYTHON_FAST_PYCALL && !CYTHON_VECTORCALL
static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
                                               PyObject *globals) {
    PyFrameObject *f;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject **fastlocals;
    Py_ssize_t i;
    PyObject *result;
    assert(globals != NULL);
    /* XXX Perhaps we should create a specialized
       PyFrame_New() that doesn't take locals, but does
       take builtins without sanity checking them.
       */
    assert(tstate != NULL);
    f = PyFrame_New(tstate, co, globals, NULL);
    if (f == NULL) {
        return NULL;
    }
    fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
    for (i = 0; i < na; i++) {
        Py_INCREF(*args);
        fastlocals[i] = *args++;
    }
    result = PyEval_EvalFrameEx(f,0);
    ++tstate->recursion_depth;
    Py_DECREF(f);
    --tstate->recursion_depth;
    return result;
}
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
    PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
    PyObject *globals = PyFunction_GET_GLOBALS(func);
    PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
    PyObject *closure;
#if PY_MAJOR_VERSION >= 3
    PyObject *kwdefs;
#endif
    PyObject *kwtuple, **k;
    PyObject **d;
    Py_ssize_t nd;
    Py_ssize_t nk;
    PyObject *result;
    assert(kwargs == NULL || PyDict_Check(kwargs));
    nk = kwargs ? PyDict_Size(kwargs) : 0;
    #if PY_MAJOR_VERSION < 3
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) {
        return NULL;
    }
    #else
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object"))) {
        return NULL;
    }
    #endif
    if (
#if PY_MAJOR_VERSION >= 3
            co->co_kwonlyargcount == 0 &&
#endif
            likely(kwargs == NULL || nk == 0) &&
            co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
        if (argdefs == NULL && co->co_argcount == nargs) {
            result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
            goto done;
        }
        else if (nargs == 0 && argdefs != NULL
                 && co->co_argcount == Py_SIZE(argdefs)) {
            /* function called with no arguments, but all parameters have
               a default value: use default values as arguments .*/
            args = &PyTuple_GET_ITEM(argdefs, 0);
            result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
            goto done;
        }
    }
    if (kwargs != NULL) {
        Py_ssize_t pos, i;
        kwtuple = PyTuple_New(2 * nk);
        if (kwtuple == NULL) {
            result = NULL;
            goto done;
        }
        k = &PyTuple_GET_ITEM(kwtuple, 0);
        pos = i = 0;
        while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
            Py_INCREF(k[i]);
            Py_INCREF(k[i+1]);
            i += 2;
        }
        nk = i / 2;
    }
    else {
        kwtuple = NULL;
        k = NULL;
    }
    closure = PyFunction_GET_CLOSURE(func);
#if PY_MAJOR_VERSION >= 3
    kwdefs = PyFunction_GET_KW_DEFAULTS(func);
#endif
    if (argdefs != NULL) {
        d = &PyTuple_GET_ITEM(argdefs, 0);
        nd = Py_SIZE(argdefs);
    }
    else {
        d = NULL;
        nd = 0;
    }
#if PY_MAJOR_VERSION >= 3
    result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, kwdefs, closure);
#else
    result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, closure);
#endif
    Py_XDECREF(kwtuple);
done:
    Py_LeaveRecursiveCall();
    return result;
}
#endif

/* PyObjectCall */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *result;
    ternaryfunc call = Py_TYPE(func)->tp_call;
    if (unlikely(!call))
        return PyObject_Call(func, arg, kw);
    #if PY_MAJOR_VERSION < 3
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    #else
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
        return NULL;
    #endif
    result = (*call)(func, arg, kw);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallMethO */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
    PyObject *self, *result;
    PyCFunction cfunc;
    cfunc = __Pyx_CyOrPyCFunction_GET_FUNCTION(func);
    self = __Pyx_CyOrPyCFunction_GET_SELF(func);
    #if PY_MAJOR_VERSION < 3
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    #else
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
        return NULL;
    #endif
    result = cfunc(self, arg);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectFastCall */
#if PY_VERSION_HEX < 0x03090000 || CYTHON_COMPILING_IN_LIMITED_API
static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs) {
    PyObject *argstuple;
    PyObject *result = 0;
    size_t i;
    argstuple = PyTuple_New((Py_ssize_t)nargs);
    if (unlikely(!argstuple)) return NULL;
    for (i = 0; i < nargs; i++) {
        Py_INCREF(args[i]);
        if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) < 0) goto bad;
    }
    result = __Pyx_PyObject_Call(func, argstuple, kwargs);
  bad:
    Py_DECREF(argstuple);
    return result;
}
#endif
static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t _nargs, PyObject *kwargs) {
    Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(_nargs);
#if CYTHON_COMPILING_IN_CPYTHON
    if (nargs == 0 && kwargs == NULL) {
        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_NOARGS))
            return __Pyx_PyObject_CallMethO(func, NULL);
    }
    else if (nargs == 1 && kwargs == NULL) {
        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_O))
            return __Pyx_PyObject_CallMethO(func, args[0]);
    }
#endif
    #if PY_VERSION_HEX < 0x030800B1
    #if CYTHON_FAST_PYCCALL
    if (PyCFunction_Check(func)) {
        if (kwargs) {
            return _PyCFunction_FastCallDict(func, args, nargs, kwargs);
        } else {
            return _PyCFunction_FastCallKeywords(func, args, nargs, NULL);
        }
    }
    #if PY_VERSION_HEX >= 0x030700A1
    if (!kwargs && __Pyx_IS_TYPE(func, &PyMethodDescr_Type)) {
        return _PyMethodDescr_FastCallKeywords(func, args, nargs, NULL);
    }
    #endif
    #endif
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs);
    }
    #endif
    #endif
    if (kwargs == NULL) {
        #if CYTHON_VECTORCALL
        #if PY_VERSION_HEX < 0x03090000
        vectorcallfunc f = _PyVectorcall_Function(func);
        #else
        vectorcallfunc f = PyVectorcall_Function(func);
        #endif
        if (f) {
            return f(func, args, (size_t)nargs, NULL);
        }
        #elif defined(__Pyx_CyFunction_USED) && CYTHON_BACKPORT_VECTORCALL
        if (__Pyx_CyFunction_CheckExact(func)) {
            __pyx_vectorcallfunc f = __Pyx_CyFunction_func_vectorcall(func);
            if (f) return f(func, args, (size_t)nargs, NULL);
        }
        #endif
    }
    if (nargs == 0) {
        return __Pyx_PyObject_Call(func, __pyx_empty_tuple, kwargs);
    }
    #if PY_VERSION_HEX >= 0x03090000 && !CYTHON_COMPILING_IN_LIMITED_API
    return PyObject_VectorcallDict(func, args, (size_t)nargs, kwargs);
    #else
    return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs);
    #endif
}

/* RaiseUnexpectedTypeError */
static int
__Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj)
{
    __Pyx_TypeName obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError, "Expected %s, got " __Pyx_FMT_TYPENAME,
                 expected, obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return 0;
}

/* CIntToDigits */
static const char DIGIT_PAIRS_10[2*10*10+1] = {
    "00010203040506070809"
    "10111213141516171819"
    "20212223242526272829"
    "30313233343536373839"
    "40414243444546474849"
    "50515253545556575859"
    "60616263646566676869"
    "70717273747576777879"
    "80818283848586878889"
    "90919293949596979899"
};
static const char DIGIT_PAIRS_8[2*8*8+1] = {
    "0001020304050607"
    "1011121314151617"
    "2021222324252627"
    "3031323334353637"
    "4041424344454647"
    "5051525354555657"
    "6061626364656667"
    "7071727374757677"
};
static const char DIGITS_HEX[2*16+1] = {
    "0123456789abcdef"
    "0123456789ABCDEF"
};

/* BuildPyUnicode */
static PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, char* chars, int clength,
                                                int prepend_sign, char padding_char) {
    PyObject *uval;
    Py_ssize_t uoffset = ulength - clength;
#if CYTHON_USE_UNICODE_INTERNALS
    Py_ssize_t i;
#if CYTHON_PEP393_ENABLED
    void *udata;
    uval = PyUnicode_New(ulength, 127);
    if (unlikely(!uval)) return NULL;
    udata = PyUnicode_DATA(uval);
#else
    Py_UNICODE *udata;
    uval = PyUnicode_FromUnicode(NULL, ulength);
    if (unlikely(!uval)) return NULL;
    udata = PyUnicode_AS_UNICODE(uval);
#endif
    if (uoffset > 0) {
        i = 0;
        if (prepend_sign) {
            __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, 0, '-');
            i++;
        }
        for (; i < uoffset; i++) {
            __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, i, padding_char);
        }
    }
    for (i=0; i < clength; i++) {
        __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, uoffset+i, chars[i]);
    }
#else
    {
        PyObject *sign = NULL, *padding = NULL;
        uval = NULL;
        if (uoffset > 0) {
            prepend_sign = !!prepend_sign;
            if (uoffset > prepend_sign) {
                padding = PyUnicode_FromOrdinal(padding_char);
                if (likely(padding) && uoffset > prepend_sign + 1) {
                    PyObject *tmp;
                    PyObject *repeat = PyInt_FromSsize_t(uoffset - prepend_sign);
                    if (unlikely(!repeat)) goto done_or_error;
                    tmp = PyNumber_Multiply(padding, repeat);
                    Py_DECREF(repeat);
                    Py_DECREF(padding);
                    padding = tmp;
                }
                if (unlikely(!padding)) goto done_or_error;
            }
            if (prepend_sign) {
                sign = PyUnicode_FromOrdinal('-');
                if (unlikely(!sign)) goto done_or_error;
            }
        }
        uval = PyUnicode_DecodeASCII(chars, clength, NULL);
        if (likely(uval) && padding) {
            PyObject *tmp = PyNumber_Add(padding, uval);
            Py_DECREF(uval);
            uval = tmp;
        }
        if (likely(uval) && sign) {
            PyObject *tmp = PyNumber_Add(sign, uval);
            Py_DECREF(uval);
            uval = tmp;
        }
done_or_error:
        Py_XDECREF(padding);
        Py_XDECREF(sign);
    }
#endif
    return uval;
}

/* CIntToPyUnicode */
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char, char format_char) {
    char digits[sizeof(int)*3+2];
    char *dpos, *end = digits + sizeof(int)*3+2;
    const char *hex_digits = DIGITS_HEX;
    Py_ssize_t length, ulength;
    int prepend_sign, last_one_off;
    int remaining;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (format_char == 'X') {
        hex_digits += 16;
        format_char = 'x';
    }
    remaining = value;
    last_one_off = 0;
    dpos = end;
    do {
        int digit_pos;
        switch (format_char) {
        case 'o':
            digit_pos = abs((int)(remaining % (8*8)));
            remaining = (int) (remaining / (8*8));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 8);
            break;
        case 'd':
            digit_pos = abs((int)(remaining % (10*10)));
            remaining = (int) (remaining / (10*10));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 10);
            break;
        case 'x':
            *(--dpos) = hex_digits[abs((int)(remaining % 16))];
            remaining = (int) (remaining / 16);
            break;
        default:
            assert(0);
            break;
        }
    } while (unlikely(remaining != 0));
    assert(!last_one_off || *dpos == '0');
    dpos += last_one_off;
    length = end - dpos;
    ulength = length;
    prepend_sign = 0;
    if (!is_unsigned && value <= neg_one) {
        if (padding_char == ' ' || width <= length + 1) {
            *(--dpos) = '-';
            ++length;
        } else {
            prepend_sign = 1;
        }
        ++ulength;
    }
    if (width > ulength) {
        ulength = width;
    }
    if (ulength == 1) {
        return PyUnicode_FromOrdinal(*dpos);
    }
    return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char);
}

/* CIntToPyUnicode */
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char) {
    char digits[sizeof(Py_ssize_t)*3+2];
    char *dpos, *end = digits + sizeof(Py_ssize_t)*3+2;
    const char *hex_digits = DIGITS_HEX;
    Py_ssize_t length, ulength;
    int prepend_sign, last_one_off;
    Py_ssize_t remaining;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const Py_ssize_t neg_one = (Py_ssize_t) -1, const_zero = (Py_ssize_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (format_char == 'X') {
        hex_digits += 16;
        format_char = 'x';
    }
    remaining = value;
    last_one_off = 0;
    dpos = end;
    do {
        int digit_pos;
        switch (format_char) {
        case 'o':
            digit_pos = abs((int)(remaining % (8*8)));
            remaining = (Py_ssize_t) (remaining / (8*8));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 8);
            break;
        case 'd':
            digit_pos = abs((int)(remaining % (10*10)));
            remaining = (Py_ssize_t) (remaining / (10*10));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 10);
            break;
        case 'x':
            *(--dpos) = hex_digits[abs((int)(remaining % 16))];
            remaining = (Py_ssize_t) (remaining / 16);
            break;
        default:
            assert(0);
            break;
        }
    } while (unlikely(remaining != 0));
    assert(!last_one_off || *dpos == '0');
    dpos += last_one_off;
    length = end - dpos;
    ulength = length;
    prepend_sign = 0;
    if (!is_unsigned && value <= neg_one) {
        if (padding_char == ' ' || width <= length + 1) {
            *(--dpos) = '-';
            ++length;
        } else {
            prepend_sign = 1;
        }
        ++ulength;
    }
    if (width > ulength) {
        ulength = width;
    }
    if (ulength == 1) {
        return PyUnicode_FromOrdinal(*dpos);
    }
    return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char);
}

/* JoinPyUnicode */
static PyObject* __Pyx_PyUnicode_Join(PyObject* value_tuple, Py_ssize_t value_count, Py_ssize_t result_ulength,
                                      Py_UCS4 max_char) {
#if CYTHON_USE_UNICODE_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    PyObject *result_uval;
    int result_ukind, kind_shift;
    Py_ssize_t i, char_pos;
    void *result_udata;
    CYTHON_MAYBE_UNUSED_VAR(max_char);
#if CYTHON_PEP393_ENABLED
    result_uval = PyUnicode_New(result_ulength, max_char);
    if (unlikely(!result_uval)) return NULL;
    result_ukind = (max_char <= 255) ? PyUnicode_1BYTE_KIND : (max_char <= 65535) ? PyUnicode_2BYTE_KIND : PyUnicode_4BYTE_KIND;
    kind_shift = (result_ukind == PyUnicode_4BYTE_KIND) ? 2 : result_ukind - 1;
    result_udata = PyUnicode_DATA(result_uval);
#else
    result_uval = PyUnicode_FromUnicode(NULL, result_ulength);
    if (unlikely(!result_uval)) return NULL;
    result_ukind = sizeof(Py_UNICODE);
    kind_shift = (result_ukind == 4) ? 2 : result_ukind - 1;
    result_udata = PyUnicode_AS_UNICODE(result_uval);
#endif
    assert(kind_shift == 2 || kind_shift == 1 || kind_shift == 0);
    char_pos = 0;
    for (i=0; i < value_count; i++) {
        int ukind;
        Py_ssize_t ulength;
        void *udata;
        PyObject *uval = PyTuple_GET_ITEM(value_tuple, i);
        if (unlikely(__Pyx_PyUnicode_READY(uval)))
            goto bad;
        ulength = __Pyx_PyUnicode_GET_LENGTH(uval);
        if (unlikely(!ulength))
            continue;
        if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - ulength < char_pos))
            goto overflow;
        ukind = __Pyx_PyUnicode_KIND(uval);
        udata = __Pyx_PyUnicode_DATA(uval);
        if (!CYTHON_PEP393_ENABLED || ukind == result_ukind) {
            memcpy((char *)result_udata + (char_pos << kind_shift), udata, (size_t) (ulength << kind_shift));
        } else {
            #if PY_VERSION_HEX >= 0x030d0000
            if (unlikely(PyUnicode_CopyCharacters(result_uval, char_pos, uval, 0, ulength) < 0)) goto bad;
            #elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030300F0 || defined(_PyUnicode_FastCopyCharacters)
            _PyUnicode_FastCopyCharacters(result_uval, char_pos, uval, 0, ulength);
            #else
            Py_ssize_t j;
            for (j=0; j < ulength; j++) {
                Py_UCS4 uchar = __Pyx_PyUnicode_READ(ukind, udata, j);
                __Pyx_PyUnicode_WRITE(result_ukind, result_udata, char_pos+j, uchar);
            }
            #endif
        }
        char_pos += ulength;
    }
    return result_uval;
overflow:
    PyErr_SetString(PyExc_OverflowError, "join() result is too long for a Python string");
bad:
    Py_DECREF(result_uval);
    return NULL;
#else
    CYTHON_UNUSED_VAR(max_char);
    CYTHON_UNUSED_VAR(result_ulength);
    CYTHON_UNUSED_VAR(value_count);
    return PyUnicode_Join(__pyx_empty_unicode, value_tuple);
#endif
}

/* GetAttr */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
#if CYTHON_USE_TYPE_SLOTS
#if PY_MAJOR_VERSION >= 3
    if (likely(PyUnicode_Check(n)))
#else
    if (likely(PyString_Check(n)))
#endif
        return __Pyx_PyObject_GetAttrStr(o, n);
#endif
    return PyObject_GetAttr(o, n);
}

/* GetItemInt */
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (unlikely(!j)) return NULL;
    r = PyObject_GetItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyList_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
        PyObject *r = PyList_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyTuple_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
        PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
                                                     CYTHON_NCP_UNUSED int wraparound,
                                                     CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
        if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
            PyObject *r = PyList_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    }
    else if (PyTuple_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
            PyObject *r = PyTuple_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    } else {
        PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
        PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
        if (mm && mm->mp_subscript) {
            PyObject *r, *key = PyInt_FromSsize_t(i);
            if (unlikely(!key)) return NULL;
            r = mm->mp_subscript(o, key);
            Py_DECREF(key);
            return r;
        }
        if (likely(sm && sm->sq_item)) {
            if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
                Py_ssize_t l = sm->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return NULL;
                    PyErr_Clear();
                }
            }
            return sm->sq_item(o, i);
        }
    }
#else
    if (is_list || !PyMapping_Check(o)) {
        return PySequence_GetItem(o, i);
    }
#endif
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
}

/* PyObjectCallOneArg */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *args[2] = {NULL, arg};
    return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* ObjectGetItem */
#if CYTHON_USE_TYPE_SLOTS
static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject *index) {
    PyObject *runerr = NULL;
    Py_ssize_t key_value;
    key_value = __Pyx_PyIndex_AsSsize_t(index);
    if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
        return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1);
    }
    if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
        __Pyx_TypeName index_type_name = __Pyx_PyType_GetName(Py_TYPE(index));
        PyErr_Clear();
        PyErr_Format(PyExc_IndexError,
            "cannot fit '" __Pyx_FMT_TYPENAME "' into an index-sized integer", index_type_name);
        __Pyx_DECREF_TypeName(index_type_name);
    }
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem_Slow(PyObject *obj, PyObject *key) {
    __Pyx_TypeName obj_type_name;
    if (likely(PyType_Check(obj))) {
        PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(obj, __pyx_n_s_class_getitem);
        if (!meth) {
            PyErr_Clear();
        } else {
            PyObject *result = __Pyx_PyObject_CallOneArg(meth, key);
            Py_DECREF(meth);
            return result;
        }
    }
    obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "'" __Pyx_FMT_TYPENAME "' object is not subscriptable", obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key) {
    PyTypeObject *tp = Py_TYPE(obj);
    PyMappingMethods *mm = tp->tp_as_mapping;
    PySequenceMethods *sm = tp->tp_as_sequence;
    if (likely(mm && mm->mp_subscript)) {
        return mm->mp_subscript(obj, key);
    }
    if (likely(sm && sm->sq_item)) {
        return __Pyx_PyObject_GetIndex(obj, key);
    }
    return __Pyx_PyObject_GetItem_Slow(obj, key);
}
#endif

/* KeywordStringCheck */
static int __Pyx_CheckKeywordStrings(
    PyObject *kw,
    const char* function_name,
    int kw_allowed)
{
    PyObject* key = 0;
    Py_ssize_t pos = 0;
#if CYTHON_COMPILING_IN_PYPY
    if (!kw_allowed && PyDict_Next(kw, &pos, &key, 0))
        goto invalid_keyword;
    return 1;
#else
    if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kw))) {
        Py_ssize_t kwsize;
#if CYTHON_ASSUME_SAFE_MACROS
        kwsize = PyTuple_GET_SIZE(kw);
#else
        kwsize = PyTuple_Size(kw);
        if (kwsize < 0) return 0;
#endif
        if (unlikely(kwsize == 0))
            return 1;
        if (!kw_allowed) {
#if CYTHON_ASSUME_SAFE_MACROS
            key = PyTuple_GET_ITEM(kw, 0);
#else
            key = PyTuple_GetItem(kw, pos);
            if (!key) return 0;
#endif
            goto invalid_keyword;
        }
#if PY_VERSION_HEX < 0x03090000
        for (pos = 0; pos < kwsize; pos++) {
#if CYTHON_ASSUME_SAFE_MACROS
            key = PyTuple_GET_ITEM(kw, pos);
#else
            key = PyTuple_GetItem(kw, pos);
            if (!key) return 0;
#endif
            if (unlikely(!PyUnicode_Check(key)))
                goto invalid_keyword_type;
        }
#endif
        return 1;
    }
    while (PyDict_Next(kw, &pos, &key, 0)) {
        #if PY_MAJOR_VERSION < 3
        if (unlikely(!PyString_Check(key)))
        #endif
            if (unlikely(!PyUnicode_Check(key)))
                goto invalid_keyword_type;
    }
    if (!kw_allowed && unlikely(key))
        goto invalid_keyword;
    return 1;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    return 0;
#endif
invalid_keyword:
    #if PY_MAJOR_VERSION < 3
    PyErr_Format(PyExc_TypeError,
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
    PyErr_Format(PyExc_TypeError,
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
    return 0;
}

/* DivInt[Py_ssize_t] */
static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t a, Py_ssize_t b) {
    Py_ssize_t q = a / b;
    Py_ssize_t r = a - q*b;
    q -= ((r != 0) & ((r ^ b) < 0));
    return q;
}

/* GetAttr3 */
#if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        return NULL;
    __Pyx_PyErr_Clear();
    Py_INCREF(d);
    return d;
}
#endif
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
    PyObject *r;
#if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
    int res = PyObject_GetOptionalAttr(o, n, &r);
    return (res != 0) ? r : __Pyx_NewRef(d);
#else
  #if CYTHON_USE_TYPE_SLOTS
    if (likely(PyString_Check(n))) {
        r = __Pyx_PyObject_GetAttrStrNoError(o, n);
        if (unlikely(!r) && likely(!PyErr_Occurred())) {
            r = __Pyx_NewRef(d);
        }
        return r;
    }
  #endif
    r = PyObject_GetAttr(o, n);
    return (likely(r)) ? r : __Pyx_GetAttr3Default(d);
#endif
}

/* PyDictVersioning */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
    PyObject **dictptr = NULL;
    Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
    if (offset) {
#if CYTHON_COMPILING_IN_CPYTHON
        dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
#else
        dictptr = _PyObject_GetDictPtr(obj);
#endif
    }
    return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
        return 0;
    return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
#endif

/* GetModuleGlobalName */
#if CYTHON_USE_DICT_VERSIONS
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
#else
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
#endif
{
    PyObject *result;
#if !CYTHON_AVOID_BORROWED_REFS
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && PY_VERSION_HEX < 0x030d0000
    result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    } else if (unlikely(PyErr_Occurred())) {
        return NULL;
    }
#elif CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(!__pyx_m)) {
        return NULL;
    }
    result = PyObject_GetAttr(__pyx_m, name);
    if (likely(result)) {
        return result;
    }
#else
    result = PyDict_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
#endif
#else
    result = PyObject_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
    PyErr_Clear();
#endif
    return __Pyx_GetBuiltinName(name);
}

/* RaiseTooManyValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
    PyErr_Format(PyExc_ValueError,
                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
}

/* RaiseNeedMoreValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
    PyErr_Format(PyExc_ValueError,
                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
                 index, (index == 1) ? "" : "s");
}

/* RaiseNoneIterError */
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
}

/* ExtTypeTest */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
    __Pyx_TypeName obj_type_name;
    __Pyx_TypeName type_name;
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (likely(__Pyx_TypeCheck(obj, type)))
        return 1;
    obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    type_name = __Pyx_PyType_GetName(type);
    PyErr_Format(PyExc_TypeError,
                 "Cannot convert " __Pyx_FMT_TYPENAME " to " __Pyx_FMT_TYPENAME,
                 obj_type_name, type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    __Pyx_DECREF_TypeName(type_name);
    return 0;
}

/* GetException */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
#endif
{
    PyObject *local_type = NULL, *local_value, *local_tb = NULL;
#if CYTHON_FAST_THREAD_STATE
    PyObject *tmp_type, *tmp_value, *tmp_tb;
  #if PY_VERSION_HEX >= 0x030C00A6
    local_value = tstate->current_exception;
    tstate->current_exception = 0;
    if (likely(local_value)) {
        local_type = (PyObject*) Py_TYPE(local_value);
        Py_INCREF(local_type);
        local_tb = PyException_GetTraceback(local_value);
    }
  #else
    local_type = tstate->curexc_type;
    local_value = tstate->curexc_value;
    local_tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
  #endif
#else
    PyErr_Fetch(&local_type, &local_value, &local_tb);
#endif
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
#if CYTHON_FAST_THREAD_STATE && PY_VERSION_HEX >= 0x030C00A6
    if (unlikely(tstate->current_exception))
#elif CYTHON_FAST_THREAD_STATE
    if (unlikely(tstate->curexc_type))
#else
    if (unlikely(PyErr_Occurred()))
#endif
        goto bad;
    #if PY_MAJOR_VERSION >= 3
    if (local_tb) {
        if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
            goto bad;
    }
    #endif
    Py_XINCREF(local_tb);
    Py_XINCREF(local_type);
    Py_XINCREF(local_value);
    *type = local_type;
    *value = local_value;
    *tb = local_tb;
#if CYTHON_FAST_THREAD_STATE
    #if CYTHON_USE_EXC_INFO_STACK
    {
        _PyErr_StackItem *exc_info = tstate->exc_info;
      #if PY_VERSION_HEX >= 0x030B00a4
        tmp_value = exc_info->exc_value;
        exc_info->exc_value = local_value;
        tmp_type = NULL;
        tmp_tb = NULL;
        Py_XDECREF(local_type);
        Py_XDECREF(local_tb);
      #else
        tmp_type = exc_info->exc_type;
        tmp_value = exc_info->exc_value;
        tmp_tb = exc_info->exc_traceback;
        exc_info->exc_type = local_type;
        exc_info->exc_value = local_value;
        exc_info->exc_traceback = local_tb;
      #endif
    }
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = local_type;
    tstate->exc_value = local_value;
    tstate->exc_traceback = local_tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#else
    PyErr_SetExcInfo(local_type, local_value, local_tb);
#endif
    return 0;
bad:
    *type = 0;
    *value = 0;
    *tb = 0;
    Py_XDECREF(local_type);
    Py_XDECREF(local_value);
    Py_XDECREF(local_tb);
    return -1;
}

/* SwapException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_value = exc_info->exc_value;
    exc_info->exc_value = *value;
    if (tmp_value == NULL || tmp_value == Py_None) {
        Py_XDECREF(tmp_value);
        tmp_value = NULL;
        tmp_type = NULL;
        tmp_tb = NULL;
    } else {
        tmp_type = (PyObject*) Py_TYPE(tmp_value);
        Py_INCREF(tmp_type);
        #if CYTHON_COMPILING_IN_CPYTHON
        tmp_tb = ((PyBaseExceptionObject*) tmp_value)->traceback;
        Py_XINCREF(tmp_tb);
        #else
        tmp_tb = PyException_GetTraceback(tmp_value);
        #endif
    }
  #elif CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = *type;
    exc_info->exc_value = *value;
    exc_info->exc_traceback = *tb;
  #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = *type;
    tstate->exc_value = *value;
    tstate->exc_traceback = *tb;
  #endif
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
    PyErr_SetExcInfo(*type, *value, *tb);
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#endif

/* Import */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
    PyObject *module = 0;
    PyObject *empty_dict = 0;
    PyObject *empty_list = 0;
    #if PY_MAJOR_VERSION < 3
    PyObject *py_import;
    py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
    if (unlikely(!py_import))
        goto bad;
    if (!from_list) {
        empty_list = PyList_New(0);
        if (unlikely(!empty_list))
            goto bad;
        from_list = empty_list;
    }
    #endif
    empty_dict = PyDict_New();
    if (unlikely(!empty_dict))
        goto bad;
    {
        #if PY_MAJOR_VERSION >= 3
        if (level == -1) {
            if (strchr(__Pyx_MODULE_NAME, '.') != NULL) {
                module = PyImport_ImportModuleLevelObject(
                    name, __pyx_d, empty_dict, from_list, 1);
                if (unlikely(!module)) {
                    if (unlikely(!PyErr_ExceptionMatches(PyExc_ImportError)))
                        goto bad;
                    PyErr_Clear();
                }
            }
            level = 0;
        }
        #endif
        if (!module) {
            #if PY_MAJOR_VERSION < 3
            PyObject *py_level = PyInt_FromLong(level);
            if (unlikely(!py_level))
                goto bad;
            module = PyObject_CallFunctionObjArgs(py_import,
                name, __pyx_d, empty_dict, from_list, py_level, (PyObject *)NULL);
            Py_DECREF(py_level);
            #else
            module = PyImport_ImportModuleLevelObject(
                name, __pyx_d, empty_dict, from_list, level);
            #endif
        }
    }
bad:
    Py_XDECREF(empty_dict);
    Py_XDECREF(empty_list);
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(py_import);
    #endif
    return module;
}

/* ImportDottedModule */
#if PY_MAJOR_VERSION >= 3
static PyObject *__Pyx__ImportDottedModule_Error(PyObject *name, PyObject *parts_tuple, Py_ssize_t count) {
    PyObject *partial_name = NULL, *slice = NULL, *sep = NULL;
    if (unlikely(PyErr_Occurred())) {
        PyErr_Clear();
    }
    if (likely(PyTuple_GET_SIZE(parts_tuple) == count)) {
        partial_name = name;
    } else {
        slice = PySequence_GetSlice(parts_tuple, 0, count);
        if (unlikely(!slice))
            goto bad;
        sep = PyUnicode_FromStringAndSize(".", 1);
        if (unlikely(!sep))
            goto bad;
        partial_name = PyUnicode_Join(sep, slice);
    }
    PyErr_Format(
#if PY_MAJOR_VERSION < 3
        PyExc_ImportError,
        "No module named '%s'", PyString_AS_STRING(partial_name));
#else
#if PY_VERSION_HEX >= 0x030600B1
        PyExc_ModuleNotFoundError,
#else
        PyExc_ImportError,
#endif
        "No module named '%U'", partial_name);
#endif
bad:
    Py_XDECREF(sep);
    Py_XDECREF(slice);
    Py_XDECREF(partial_name);
    return NULL;
}
#endif
#if PY_MAJOR_VERSION >= 3
static PyObject *__Pyx__ImportDottedModule_Lookup(PyObject *name) {
    PyObject *imported_module;
#if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM  < 0x07030400)
    PyObject *modules = PyImport_GetModuleDict();
    if (unlikely(!modules))
        return NULL;
    imported_module = __Pyx_PyDict_GetItemStr(modules, name);
    Py_XINCREF(imported_module);
#else
    imported_module = PyImport_GetModule(name);
#endif
    return imported_module;
}
#endif
#if PY_MAJOR_VERSION >= 3
static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple) {
    Py_ssize_t i, nparts;
    nparts = PyTuple_GET_SIZE(parts_tuple);
    for (i=1; i < nparts && module; i++) {
        PyObject *part, *submodule;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        part = PyTuple_GET_ITEM(parts_tuple, i);
#else
        part = PySequence_ITEM(parts_tuple, i);
#endif
        submodule = __Pyx_PyObject_GetAttrStrNoError(module, part);
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
        Py_DECREF(part);
#endif
        Py_DECREF(module);
        module = submodule;
    }
    if (unlikely(!module)) {
        return __Pyx__ImportDottedModule_Error(name, parts_tuple, i);
    }
    return module;
}
#endif
static PyObject *__Pyx__ImportDottedModule(PyObject *name, PyObject *parts_tuple) {
#if PY_MAJOR_VERSION < 3
    PyObject *module, *from_list, *star = __pyx_n_s__3;
    CYTHON_UNUSED_VAR(parts_tuple);
    from_list = PyList_New(1);
    if (unlikely(!from_list))
        return NULL;
    Py_INCREF(star);
    PyList_SET_ITEM(from_list, 0, star);
    module = __Pyx_Import(name, from_list, 0);
    Py_DECREF(from_list);
    return module;
#else
    PyObject *imported_module;
    PyObject *module = __Pyx_Import(name, NULL, 0);
    if (!parts_tuple || unlikely(!module))
        return module;
    imported_module = __Pyx__ImportDottedModule_Lookup(name);
    if (likely(imported_module)) {
        Py_DECREF(module);
        return imported_module;
    }
    PyErr_Clear();
    return __Pyx_ImportDottedModule_WalkParts(module, name, parts_tuple);
#endif
}
static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030400B1
    PyObject *module = __Pyx__ImportDottedModule_Lookup(name);
    if (likely(module)) {
        PyObject *spec = __Pyx_PyObject_GetAttrStrNoError(module, __pyx_n_s_spec);
        if (likely(spec)) {
            PyObject *unsafe = __Pyx_PyObject_GetAttrStrNoError(spec, __pyx_n_s_initializing);
            if (likely(!unsafe || !__Pyx_PyObject_IsTrue(unsafe))) {
                Py_DECREF(spec);
                spec = NULL;
            }
            Py_XDECREF(unsafe);
        }
        if (likely(!spec)) {
            PyErr_Clear();
            return module;
        }
        Py_DECREF(spec);
        Py_DECREF(module);
    } else if (PyErr_Occurred()) {
        PyErr_Clear();
    }
#endif
    return __Pyx__ImportDottedModule(name, parts_tuple);
}

/* PySequenceMultiply */
static PyObject* __Pyx_PySequence_Multiply_Generic(PyObject *seq, Py_ssize_t mul) {
    PyObject *result, *pymul = PyInt_FromSsize_t(mul);
    if (unlikely(!pymul))
        return NULL;
    result = PyNumber_Multiply(seq, pymul);
    Py_DECREF(pymul);
    return result;
}
static CYTHON_INLINE PyObject* __Pyx_PySequence_Multiply(PyObject *seq, Py_ssize_t mul) {
#if CYTHON_USE_TYPE_SLOTS
    PyTypeObject *type = Py_TYPE(seq);
    if (likely(type->tp_as_sequence && type->tp_as_sequence->sq_repeat)) {
        return type->tp_as_sequence->sq_repeat(seq, mul);
    } else
#endif
    {
        return __Pyx_PySequence_Multiply_Generic(seq, mul);
    }
}

/* SetItemInt */
static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) {
    int r;
    if (unlikely(!j)) return -1;
    r = PyObject_SetItem(o, j, v);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list,
                                               CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o));
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) {
            PyObject* old = PyList_GET_ITEM(o, n);
            Py_INCREF(v);
            PyList_SET_ITEM(o, n, v);
            Py_DECREF(old);
            return 1;
        }
    } else {
        PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
        PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
        if (mm && mm->mp_ass_subscript) {
            int r;
            PyObject *key = PyInt_FromSsize_t(i);
            if (unlikely(!key)) return -1;
            r = mm->mp_ass_subscript(o, key, v);
            Py_DECREF(key);
            return r;
        }
        if (likely(sm && sm->sq_ass_item)) {
            if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
                Py_ssize_t l = sm->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return -1;
                    PyErr_Clear();
                }
            }
            return sm->sq_ass_item(o, i, v);
        }
    }
#else
    if (is_list || !PyMapping_Check(o))
    {
        return PySequence_SetItem(o, i, v);
    }
#endif
    return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v);
}

/* RaiseUnboundLocalError */
static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) {
    PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
}

/* DivInt[long] */
static CYTHON_INLINE long __Pyx_div_long(long a, long b) {
    long q = a / b;
    long r = a - q*b;
    q -= ((r != 0) & ((r ^ b) < 0));
    return q;
}

/* ImportFrom */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
    PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
    if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
        const char* module_name_str = 0;
        PyObject* module_name = 0;
        PyObject* module_dot = 0;
        PyObject* full_name = 0;
        PyErr_Clear();
        module_name_str = PyModule_GetName(module);
        if (unlikely(!module_name_str)) { goto modbad; }
        module_name = PyUnicode_FromString(module_name_str);
        if (unlikely(!module_name)) { goto modbad; }
        module_dot = PyUnicode_Concat(module_name, __pyx_kp_u__2);
        if (unlikely(!module_dot)) { goto modbad; }
        full_name = PyUnicode_Concat(module_dot, name);
        if (unlikely(!full_name)) { goto modbad; }
        #if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM  < 0x07030400)
        {
            PyObject *modules = PyImport_GetModuleDict();
            if (unlikely(!modules))
                goto modbad;
            value = PyObject_GetItem(modules, full_name);
        }
        #else
        value = PyImport_GetModule(full_name);
        #endif
      modbad:
        Py_XDECREF(full_name);
        Py_XDECREF(module_dot);
        Py_XDECREF(module_name);
    }
    if (unlikely(!value)) {
        PyErr_Format(PyExc_ImportError,
        #if PY_MAJOR_VERSION < 3
            "cannot import name %.230s", PyString_AS_STRING(name));
        #else
            "cannot import name %S", name);
        #endif
    }
    return value;
}

/* HasAttr */
#if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
    PyObject *r;
    if (unlikely(!__Pyx_PyBaseString_Check(n))) {
        PyErr_SetString(PyExc_TypeError,
                        "hasattr(): attribute name must be string");
        return -1;
    }
    r = __Pyx_GetAttr(o, n);
    if (!r) {
        PyErr_Clear();
        return 0;
    } else {
        Py_DECREF(r);
        return 1;
    }
}
#endif

/* PyObjectCall2Args */
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
    PyObject *args[3] = {NULL, arg1, arg2};
    return __Pyx_PyObject_FastCall(function, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* PyObjectGetMethod */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
    PyObject *attr;
#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
    __Pyx_TypeName type_name;
    PyTypeObject *tp = Py_TYPE(obj);
    PyObject *descr;
    descrgetfunc f = NULL;
    PyObject **dictptr, *dict;
    int meth_found = 0;
    assert (*method == NULL);
    if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
        attr = __Pyx_PyObject_GetAttrStr(obj, name);
        goto try_unpack;
    }
    if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
        return 0;
    }
    descr = _PyType_Lookup(tp, name);
    if (likely(descr != NULL)) {
        Py_INCREF(descr);
#if defined(Py_TPFLAGS_METHOD_DESCRIPTOR) && Py_TPFLAGS_METHOD_DESCRIPTOR
        if (__Pyx_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
#elif PY_MAJOR_VERSION >= 3
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type)))
        #endif
#else
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr)))
        #endif
#endif
        {
            meth_found = 1;
        } else {
            f = Py_TYPE(descr)->tp_descr_get;
            if (f != NULL && PyDescr_IsData(descr)) {
                attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
                Py_DECREF(descr);
                goto try_unpack;
            }
        }
    }
    dictptr = _PyObject_GetDictPtr(obj);
    if (dictptr != NULL && (dict = *dictptr) != NULL) {
        Py_INCREF(dict);
        attr = __Pyx_PyDict_GetItemStr(dict, name);
        if (attr != NULL) {
            Py_INCREF(attr);
            Py_DECREF(dict);
            Py_XDECREF(descr);
            goto try_unpack;
        }
        Py_DECREF(dict);
    }
    if (meth_found) {
        *method = descr;
        return 1;
    }
    if (f != NULL) {
        attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
        Py_DECREF(descr);
        goto try_unpack;
    }
    if (likely(descr != NULL)) {
        *method = descr;
        return 0;
    }
    type_name = __Pyx_PyType_GetName(tp);
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'",
                 type_name, name);
#else
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'",
                 type_name, PyString_AS_STRING(name));
#endif
    __Pyx_DECREF_TypeName(type_name);
    return 0;
#else
    attr = __Pyx_PyObject_GetAttrStr(obj, name);
    goto try_unpack;
#endif
try_unpack:
#if CYTHON_UNPACK_METHODS
    if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
        PyObject *function = PyMethod_GET_FUNCTION(attr);
        Py_INCREF(function);
        Py_DECREF(attr);
        *method = function;
        return 1;
    }
#endif
    *method = attr;
    return 0;
}

/* PyObjectCallMethod1 */
#if !(CYTHON_VECTORCALL && __PYX_LIMITED_VERSION_HEX >= 0x030C00A2)
static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) {
    PyObject *result = __Pyx_PyObject_CallOneArg(method, arg);
    Py_DECREF(method);
    return result;
}
#endif
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {
#if CYTHON_VECTORCALL && __PYX_LIMITED_VERSION_HEX >= 0x030C00A2
    PyObject *args[2] = {obj, arg};
    (void) __Pyx_PyObject_GetMethod;
    (void) __Pyx_PyObject_CallOneArg;
    (void) __Pyx_PyObject_Call2Args;
    return PyObject_VectorcallMethod(method_name, args, 2 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
#else
    PyObject *method = NULL, *result;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_Call2Args(method, obj, arg);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) return NULL;
    return __Pyx__PyObject_CallMethod1(method, arg);
#endif
}

/* StringJoin */
static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values) {
    (void) __Pyx_PyObject_CallMethod1;
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION < 3
    return _PyString_Join(sep, values);
#elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    return _PyBytes_Join(sep, values);
#else
    return __Pyx_PyObject_CallMethod1(sep, __pyx_n_s_join, values);
#endif
}

/* CIntToPyUnicode */
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_size_t(size_t value, Py_ssize_t width, char padding_char, char format_char) {
    char digits[sizeof(size_t)*3+2];
    char *dpos, *end = digits + sizeof(size_t)*3+2;
    const char *hex_digits = DIGITS_HEX;
    Py_ssize_t length, ulength;
    int prepend_sign, last_one_off;
    size_t remaining;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const size_t neg_one = (size_t) -1, const_zero = (size_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (format_char == 'X') {
        hex_digits += 16;
        format_char = 'x';
    }
    remaining = value;
    last_one_off = 0;
    dpos = end;
    do {
        int digit_pos;
        switch (format_char) {
        case 'o':
            digit_pos = abs((int)(remaining % (8*8)));
            remaining = (size_t) (remaining / (8*8));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 8);
            break;
        case 'd':
            digit_pos = abs((int)(remaining % (10*10)));
            remaining = (size_t) (remaining / (10*10));
            dpos -= 2;
            memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2);
            last_one_off = (digit_pos < 10);
            break;
        case 'x':
            *(--dpos) = hex_digits[abs((int)(remaining % 16))];
            remaining = (size_t) (remaining / 16);
            break;
        default:
            assert(0);
            break;
        }
    } while (unlikely(remaining != 0));
    assert(!last_one_off || *dpos == '0');
    dpos += last_one_off;
    length = end - dpos;
    ulength = length;
    prepend_sign = 0;
    if (!is_unsigned && value <= neg_one) {
        if (padding_char == ' ' || width <= length + 1) {
            *(--dpos) = '-';
            ++length;
        } else {
            prepend_sign = 1;
        }
        ++ulength;
    }
    if (width > ulength) {
        ulength = width;
    }
    if (ulength == 1) {
        return PyUnicode_FromOrdinal(*dpos);
    }
    return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char);
}

/* PyObjectCallNoArg */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
    PyObject *arg[2] = {NULL, NULL};
    return __Pyx_PyObject_FastCall(func, arg + 1, 0 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* WriteUnraisableException */
static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback, int nogil) {
    PyObject *old_exc, *old_val, *old_tb;
    PyObject *ctx;
    __Pyx_PyThreadState_declare
#ifdef WITH_THREAD
    PyGILState_STATE state;
    if (nogil)
        state = PyGILState_Ensure();
    else state = (PyGILState_STATE)0;
#endif
    CYTHON_UNUSED_VAR(clineno);
    CYTHON_UNUSED_VAR(lineno);
    CYTHON_UNUSED_VAR(filename);
    CYTHON_MAYBE_UNUSED_VAR(nogil);
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
    if (full_traceback) {
        Py_XINCREF(old_exc);
        Py_XINCREF(old_val);
        Py_XINCREF(old_tb);
        __Pyx_ErrRestore(old_exc, old_val, old_tb);
        PyErr_PrintEx(1);
    }
    #if PY_MAJOR_VERSION < 3
    ctx = PyString_FromString(name);
    #else
    ctx = PyUnicode_FromString(name);
    #endif
    __Pyx_ErrRestore(old_exc, old_val, old_tb);
    if (!ctx) {
        PyErr_WriteUnraisable(Py_None);
    } else {
        PyErr_WriteUnraisable(ctx);
        Py_DECREF(ctx);
    }
#ifdef WITH_THREAD
    if (nogil)
        PyGILState_Release(state);
#endif
}

/* DictGetItem */
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
    PyObject *value;
    value = PyDict_GetItemWithError(d, key);
    if (unlikely(!value)) {
        if (!PyErr_Occurred()) {
            if (unlikely(PyTuple_Check(key))) {
                PyObject* args = PyTuple_Pack(1, key);
                if (likely(args)) {
                    PyErr_SetObject(PyExc_KeyError, args);
                    Py_DECREF(args);
                }
            } else {
                PyErr_SetObject(PyExc_KeyError, key);
            }
        }
        return NULL;
    }
    Py_INCREF(value);
    return value;
}
#endif

/* PyObjectFormatAndDecref */
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f) {
    if (unlikely(!s)) return NULL;
    if (likely(PyUnicode_CheckExact(s))) return s;
    #if PY_MAJOR_VERSION < 3
    if (likely(PyString_CheckExact(s))) {
        PyObject *result = PyUnicode_FromEncodedObject(s, NULL, "strict");
        Py_DECREF(s);
        return result;
    }
    #endif
    return __Pyx_PyObject_FormatAndDecref(s, f);
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f) {
    PyObject *result;
    if (unlikely(!s)) return NULL;
    result = PyObject_Format(s, f);
    Py_DECREF(s);
    return result;
}

/* RaiseClosureNameError */
static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname) {
    PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname);
}

/* pep479 */
static void __Pyx_Generator_Replace_StopIteration(int in_async_gen) {
    PyObject *exc, *val, *tb, *cur_exc;
    __Pyx_PyThreadState_declare
    #ifdef __Pyx_StopAsyncIteration_USED
    int is_async_stopiteration = 0;
    #endif
    CYTHON_MAYBE_UNUSED_VAR(in_async_gen);
    cur_exc = PyErr_Occurred();
    if (likely(!__Pyx_PyErr_GivenExceptionMatches(cur_exc, PyExc_StopIteration))) {
        #ifdef __Pyx_StopAsyncIteration_USED
        if (in_async_gen && unlikely(__Pyx_PyErr_GivenExceptionMatches(cur_exc, __Pyx_PyExc_StopAsyncIteration))) {
            is_async_stopiteration = 1;
        } else
        #endif
            return;
    }
    __Pyx_PyThreadState_assign
    __Pyx_GetException(&exc, &val, &tb);
    Py_XDECREF(exc);
    Py_XDECREF(val);
    Py_XDECREF(tb);
    PyErr_SetString(PyExc_RuntimeError,
        #ifdef __Pyx_StopAsyncIteration_USED
        is_async_stopiteration ? "async generator raised StopAsyncIteration" :
        in_async_gen ? "async generator raised StopIteration" :
        #endif
        "generator raised StopIteration");
}

/* decode_c_string */
static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
         const char* cstring, Py_ssize_t start, Py_ssize_t stop,
         const char* encoding, const char* errors,
         PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) {
    Py_ssize_t length;
    if (unlikely((start < 0) | (stop < 0))) {
        size_t slen = strlen(cstring);
        if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) {
            PyErr_SetString(PyExc_OverflowError,
                            "c-string too long to convert to Python");
            return NULL;
        }
        length = (Py_ssize_t) slen;
        if (start < 0) {
            start += length;
            if (start < 0)
                start = 0;
        }
        if (stop < 0)
            stop += length;
    }
    if (unlikely(stop <= start))
        return __Pyx_NewRef(__pyx_empty_unicode);
    length = stop - start;
    cstring += start;
    if (decode_func) {
        return decode_func(cstring, length, errors);
    } else {
        return PyUnicode_Decode(cstring, length, encoding, errors);
    }
}

/* UnpackUnboundCMethod */
static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *kwargs) {
    PyObject *result;
    PyObject *selfless_args = PyTuple_GetSlice(args, 1, PyTuple_Size(args));
    if (unlikely(!selfless_args)) return NULL;
    result = PyObject_Call(method, selfless_args, kwargs);
    Py_DECREF(selfless_args);
    return result;
}
static PyMethodDef __Pyx_UnboundCMethod_Def = {
     "CythonUnboundCMethod",
     __PYX_REINTERPRET_FUNCION(PyCFunction, __Pyx_SelflessCall),
     METH_VARARGS | METH_KEYWORDS,
     NULL
};
static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
    PyObject *method;
    method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
    if (unlikely(!method))
        return -1;
    target->method = method;
#if CYTHON_COMPILING_IN_CPYTHON
    #if PY_MAJOR_VERSION >= 3
    if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
    #else
    if (likely(!__Pyx_CyOrPyCFunction_Check(method)))
    #endif
    {
        PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
        target->func = descr->d_method->ml_meth;
        target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);
    } else
#endif
#if CYTHON_COMPILING_IN_PYPY
#else
    if (PyCFunction_Check(method))
#endif
    {
        PyObject *self;
        int self_found;
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
        self = PyObject_GetAttrString(method, "__self__");
        if (!self) {
            PyErr_Clear();
        }
#else
        self = PyCFunction_GET_SELF(method);
#endif
        self_found = (self && self != Py_None);
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
        Py_XDECREF(self);
#endif
        if (self_found) {
            PyObject *unbound_method = PyCFunction_New(&__Pyx_UnboundCMethod_Def, method);
            if (unlikely(!unbound_method)) return -1;
            Py_DECREF(method);
            target->method = unbound_method;
        }
    }
    return 0;
}

/* CallUnboundCMethod0 */
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
    PyObject *args, *result = NULL;
    if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_ASSUME_SAFE_MACROS
    args = PyTuple_New(1);
    if (unlikely(!args)) goto bad;
    Py_INCREF(self);
    PyTuple_SET_ITEM(args, 0, self);
#else
    args = PyTuple_Pack(1, self);
    if (unlikely(!args)) goto bad;
#endif
    result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
    Py_DECREF(args);
bad:
    return result;
}

/* py_dict_values */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
    if (PY_MAJOR_VERSION >= 3)
        return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_values, d);
    else
        return PyDict_Values(d);
}

/* PyObjectLookupSpecial */
#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error) {
    PyObject *res;
    PyTypeObject *tp = Py_TYPE(obj);
#if PY_MAJOR_VERSION < 3
    if (unlikely(PyInstance_Check(obj)))
        return with_error ? __Pyx_PyObject_GetAttrStr(obj, attr_name) : __Pyx_PyObject_GetAttrStrNoError(obj, attr_name);
#endif
    res = _PyType_Lookup(tp, attr_name);
    if (likely(res)) {
        descrgetfunc f = Py_TYPE(res)->tp_descr_get;
        if (!f) {
            Py_INCREF(res);
        } else {
            res = f(res, obj, (PyObject *)tp);
        }
    } else if (with_error) {
        PyErr_SetObject(PyExc_AttributeError, attr_name);
    }
    return res;
}
#endif

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long x;
        long a = PyInt_AS_LONG(op1);
        
            x = (long)((unsigned long)a + (unsigned long)b);
            if (likely((x^a) >= 0 || (x^b) >= 0))
                return PyInt_FromLong(x);
            return PyLong_Type.tp_as_number->nb_add(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        if (unlikely(__Pyx_PyLong_IsZero(op1))) {
            return __Pyx_NewRef(op2);
        }
        if (likely(__Pyx_PyLong_IsCompact(op1))) {
            a = __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_add(op1, op2);
            }
        }
                x = a + b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla + llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double a = __pyx_PyFloat_AsDouble(op1);
#else
        double a = PyFloat_AS_DOUBLE(op1);
#endif
            double result;
            
            PyFPE_START_PROTECT("add", return NULL)
            result = ((double)a) + (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
}
#endif

/* PyIntCompare */
static CYTHON_INLINE int __Pyx_PyInt_BoolEqObjC(PyObject *op1, PyObject *op2, long intval, long inplace) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_UNUSED_VAR(inplace);
    if (op1 == op2) {
        return 1;
    }
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long a = PyInt_AS_LONG(op1);
        return (a == b);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        int unequal;
        unsigned long uintval;
        Py_ssize_t size = __Pyx_PyLong_DigitCount(op1);
        const digit* digits = __Pyx_PyLong_Digits(op1);
        if (intval == 0) {
            return (__Pyx_PyLong_IsZero(op1) == 1);
        } else if (intval < 0) {
            if (__Pyx_PyLong_IsNonNeg(op1))
                return 0;
            intval = -intval;
        } else {
            if (__Pyx_PyLong_IsNeg(op1))
                return 0;
        }
        uintval = (unsigned long) intval;
#if PyLong_SHIFT * 4 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 4)) {
            unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 3 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 3)) {
            unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 2 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 2)) {
            unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 1 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 1)) {
            unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
            unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
        return (unequal == 0);
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double a = __pyx_PyFloat_AsDouble(op1);
#else
        double a = PyFloat_AS_DOUBLE(op1);
#endif
        return ((double)a == (double)b);
    }
    return __Pyx_PyObject_IsTrueAndDecref(
        PyObject_RichCompare(op1, op2, Py_EQ));
}

/* SliceObject */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj,
        Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
        int has_cstart, int has_cstop, int wraparound) {
    __Pyx_TypeName obj_type_name;
#if CYTHON_USE_TYPE_SLOTS
    PyMappingMethods* mp;
#if PY_MAJOR_VERSION < 3
    PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence;
    if (likely(ms && ms->sq_slice)) {
        if (!has_cstart) {
            if (_py_start && (*_py_start != Py_None)) {
                cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
                if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
            } else
                cstart = 0;
        }
        if (!has_cstop) {
            if (_py_stop && (*_py_stop != Py_None)) {
                cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
                if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
            } else
                cstop = PY_SSIZE_T_MAX;
        }
        if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) {
            Py_ssize_t l = ms->sq_length(obj);
            if (likely(l >= 0)) {
                if (cstop < 0) {
                    cstop += l;
                    if (cstop < 0) cstop = 0;
                }
                if (cstart < 0) {
                    cstart += l;
                    if (cstart < 0) cstart = 0;
                }
            } else {
                if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                    goto bad;
                PyErr_Clear();
            }
        }
        return ms->sq_slice(obj, cstart, cstop);
    }
#else
    CYTHON_UNUSED_VAR(wraparound);
#endif
    mp = Py_TYPE(obj)->tp_as_mapping;
    if (likely(mp && mp->mp_subscript))
#else
    CYTHON_UNUSED_VAR(wraparound);
#endif
    {
        PyObject* result;
        PyObject *py_slice, *py_start, *py_stop;
        if (_py_slice) {
            py_slice = *_py_slice;
        } else {
            PyObject* owned_start = NULL;
            PyObject* owned_stop = NULL;
            if (_py_start) {
                py_start = *_py_start;
            } else {
                if (has_cstart) {
                    owned_start = py_start = PyInt_FromSsize_t(cstart);
                    if (unlikely(!py_start)) goto bad;
                } else
                    py_start = Py_None;
            }
            if (_py_stop) {
                py_stop = *_py_stop;
            } else {
                if (has_cstop) {
                    owned_stop = py_stop = PyInt_FromSsize_t(cstop);
                    if (unlikely(!py_stop)) {
                        Py_XDECREF(owned_start);
                        goto bad;
                    }
                } else
                    py_stop = Py_None;
            }
            py_slice = PySlice_New(py_start, py_stop, Py_None);
            Py_XDECREF(owned_start);
            Py_XDECREF(owned_stop);
            if (unlikely(!py_slice)) goto bad;
        }
#if CYTHON_USE_TYPE_SLOTS
        result = mp->mp_subscript(obj, py_slice);
#else
        result = PyObject_GetItem(obj, py_slice);
#endif
        if (!_py_slice) {
            Py_DECREF(py_slice);
        }
        return result;
    }
    obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "'" __Pyx_FMT_TYPENAME "' object is unsliceable", obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
bad:
    return NULL;
}

/* IsLittleEndian */
static CYTHON_INLINE int __Pyx_Is_Little_Endian(void)
{
  union {
    uint32_t u32;
    uint8_t u8[4];
  } S;
  S.u32 = 0x01020304;
  return S.u8[0] == 4;
}

/* BufferFormatCheck */
static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
                              __Pyx_BufFmt_StackElem* stack,
                              __Pyx_TypeInfo* type) {
  stack[0].field = &ctx->root;
  stack[0].parent_offset = 0;
  ctx->root.type = type;
  ctx->root.name = "buffer dtype";
  ctx->root.offset = 0;
  ctx->head = stack;
  ctx->head->field = &ctx->root;
  ctx->fmt_offset = 0;
  ctx->head->parent_offset = 0;
  ctx->new_packmode = '@';
  ctx->enc_packmode = '@';
  ctx->new_count = 1;
  ctx->enc_count = 0;
  ctx->enc_type = 0;
  ctx->is_complex = 0;
  ctx->is_valid_array = 0;
  ctx->struct_alignment = 0;
  while (type->typegroup == 'S') {
    ++ctx->head;
    ctx->head->field = type->fields;
    ctx->head->parent_offset = 0;
    type = type->fields->type;
  }
}
static int __Pyx_BufFmt_ParseNumber(const char** ts) {
    int count;
    const char* t = *ts;
    if (*t < '0' || *t > '9') {
      return -1;
    } else {
        count = *t++ - '0';
        while (*t >= '0' && *t <= '9') {
            count *= 10;
            count += *t++ - '0';
        }
    }
    *ts = t;
    return count;
}
static int __Pyx_BufFmt_ExpectNumber(const char **ts) {
    int number = __Pyx_BufFmt_ParseNumber(ts);
    if (number == -1)
        PyErr_Format(PyExc_ValueError,\
                     "Does not understand character buffer dtype format string ('%c')", **ts);
    return number;
}
static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) {
  PyErr_Format(PyExc_ValueError,
               "Unexpected format string character: '%c'", ch);
}
static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) {
  switch (ch) {
    case '?': return "'bool'";
    case 'c': return "'char'";
    case 'b': return "'signed char'";
    case 'B': return "'unsigned char'";
    case 'h': return "'short'";
    case 'H': return "'unsigned short'";
    case 'i': return "'int'";
    case 'I': return "'unsigned int'";
    case 'l': return "'long'";
    case 'L': return "'unsigned long'";
    case 'q': return "'long long'";
    case 'Q': return "'unsigned long long'";
    case 'f': return (is_complex ? "'complex float'" : "'float'");
    case 'd': return (is_complex ? "'complex double'" : "'double'");
    case 'g': return (is_complex ? "'complex long double'" : "'long double'");
    case 'T': return "a struct";
    case 'O': return "Python object";
    case 'P': return "a pointer";
    case 's': case 'p': return "a string";
    case 0: return "end";
    default: return "unparsable format string";
  }
}
static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) {
  switch (ch) {
    case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
    case 'h': case 'H': return 2;
    case 'i': case 'I': case 'l': case 'L': return 4;
    case 'q': case 'Q': return 8;
    case 'f': return (is_complex ? 8 : 4);
    case 'd': return (is_complex ? 16 : 8);
    case 'g': {
      PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g')..");
      return 0;
    }
    case 'O': case 'P': return sizeof(void*);
    default:
      __Pyx_BufFmt_RaiseUnexpectedChar(ch);
      return 0;
    }
}
static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) {
  switch (ch) {
    case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
    case 'h': case 'H': return sizeof(short);
    case 'i': case 'I': return sizeof(int);
    case 'l': case 'L': return sizeof(long);
    #ifdef HAVE_LONG_LONG
    case 'q': case 'Q': return sizeof(PY_LONG_LONG);
    #endif
    case 'f': return sizeof(float) * (is_complex ? 2 : 1);
    case 'd': return sizeof(double) * (is_complex ? 2 : 1);
    case 'g': return sizeof(long double) * (is_complex ? 2 : 1);
    case 'O': case 'P': return sizeof(void*);
    default: {
      __Pyx_BufFmt_RaiseUnexpectedChar(ch);
      return 0;
    }
  }
}
typedef struct { char c; short x; } __Pyx_st_short;
typedef struct { char c; int x; } __Pyx_st_int;
typedef struct { char c; long x; } __Pyx_st_long;
typedef struct { char c; float x; } __Pyx_st_float;
typedef struct { char c; double x; } __Pyx_st_double;
typedef struct { char c; long double x; } __Pyx_st_longdouble;
typedef struct { char c; void *x; } __Pyx_st_void_p;
#ifdef HAVE_LONG_LONG
typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong;
#endif
static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, int is_complex) {
  CYTHON_UNUSED_VAR(is_complex);
  switch (ch) {
    case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
    case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short);
    case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int);
    case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long);
#ifdef HAVE_LONG_LONG
    case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG);
#endif
    case 'f': return sizeof(__Pyx_st_float) - sizeof(float);
    case 'd': return sizeof(__Pyx_st_double) - sizeof(double);
    case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double);
    case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*);
    default:
      __Pyx_BufFmt_RaiseUnexpectedChar(ch);
      return 0;
    }
}
/* These are for computing the padding at the end of the struct to align
   on the first member of the struct. This will probably the same as above,
   but we don't have any guarantees.
 */
typedef struct { short x; char c; } __Pyx_pad_short;
typedef struct { int x; char c; } __Pyx_pad_int;
typedef struct { long x; char c; } __Pyx_pad_long;
typedef struct { float x; char c; } __Pyx_pad_float;
typedef struct { double x; char c; } __Pyx_pad_double;
typedef struct { long double x; char c; } __Pyx_pad_longdouble;
typedef struct { void *x; char c; } __Pyx_pad_void_p;
#ifdef HAVE_LONG_LONG
typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong;
#endif
static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, int is_complex) {
  CYTHON_UNUSED_VAR(is_complex);
  switch (ch) {
    case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
    case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short);
    case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int);
    case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long);
#ifdef HAVE_LONG_LONG
    case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG);
#endif
    case 'f': return sizeof(__Pyx_pad_float) - sizeof(float);
    case 'd': return sizeof(__Pyx_pad_double) - sizeof(double);
    case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double);
    case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*);
    default:
      __Pyx_BufFmt_RaiseUnexpectedChar(ch);
      return 0;
    }
}
static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) {
  switch (ch) {
    case 'c':
        return 'H';
    case 'b': case 'h': case 'i':
    case 'l': case 'q': case 's': case 'p':
        return 'I';
    case '?': case 'B': case 'H': case 'I': case 'L': case 'Q':
        return 'U';
    case 'f': case 'd': case 'g':
        return (is_complex ? 'C' : 'R');
    case 'O':
        return 'O';
    case 'P':
        return 'P';
    default: {
      __Pyx_BufFmt_RaiseUnexpectedChar(ch);
      return 0;
    }
  }
}
static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) {
  if (ctx->head == NULL || ctx->head->field == &ctx->root) {
    const char* expected;
    const char* quote;
    if (ctx->head == NULL) {
      expected = "end";
      quote = "";
    } else {
      expected = ctx->head->field->type->name;
      quote = "'";
    }
    PyErr_Format(PyExc_ValueError,
                 "Buffer dtype mismatch, expected %s%s%s but got %s",
                 quote, expected, quote,
                 __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex));
  } else {
    __Pyx_StructField* field = ctx->head->field;
    __Pyx_StructField* parent = (ctx->head - 1)->field;
    PyErr_Format(PyExc_ValueError,
                 "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'",
                 field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex),
                 parent->type->name, field->name);
  }
}
static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) {
  char group;
  size_t size, offset, arraysize = 1;
  if (ctx->enc_type == 0) return 0;
  if (ctx->head->field->type->arraysize[0]) {
    int i, ndim = 0;
    if (ctx->enc_type == 's' || ctx->enc_type == 'p') {
        ctx->is_valid_array = ctx->head->field->type->ndim == 1;
        ndim = 1;
        if (ctx->enc_count != ctx->head->field->type->arraysize[0]) {
            PyErr_Format(PyExc_ValueError,
                         "Expected a dimension of size %zu, got %zu",
                         ctx->head->field->type->arraysize[0], ctx->enc_count);
            return -1;
        }
    }
    if (!ctx->is_valid_array) {
      PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d",
                   ctx->head->field->type->ndim, ndim);
      return -1;
    }
    for (i = 0; i < ctx->head->field->type->ndim; i++) {
      arraysize *= ctx->head->field->type->arraysize[i];
    }
    ctx->is_valid_array = 0;
    ctx->enc_count = 1;
  }
  group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex);
  do {
    __Pyx_StructField* field = ctx->head->field;
    __Pyx_TypeInfo* type = field->type;
    if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') {
      size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex);
    } else {
      size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex);
    }
    if (ctx->enc_packmode == '@') {
      size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex);
      size_t align_mod_offset;
      if (align_at == 0) return -1;
      align_mod_offset = ctx->fmt_offset % align_at;
      if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset;
      if (ctx->struct_alignment == 0)
          ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type,
                                                                 ctx->is_complex);
    }
    if (type->size != size || type->typegroup != group) {
      if (type->typegroup == 'C' && type->fields != NULL) {
        size_t parent_offset = ctx->head->parent_offset + field->offset;
        ++ctx->head;
        ctx->head->field = type->fields;
        ctx->head->parent_offset = parent_offset;
        continue;
      }
      if ((type->typegroup == 'H' || group == 'H') && type->size == size) {
      } else {
          __Pyx_BufFmt_RaiseExpected(ctx);
          return -1;
      }
    }
    offset = ctx->head->parent_offset + field->offset;
    if (ctx->fmt_offset != offset) {
      PyErr_Format(PyExc_ValueError,
                   "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected",
                   (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset);
      return -1;
    }
    ctx->fmt_offset += size;
    if (arraysize)
      ctx->fmt_offset += (arraysize - 1) * size;
    --ctx->enc_count;
    while (1) {
      if (field == &ctx->root) {
        ctx->head = NULL;
        if (ctx->enc_count != 0) {
          __Pyx_BufFmt_RaiseExpected(ctx);
          return -1;
        }
        break;
      }
      ctx->head->field = ++field;
      if (field->type == NULL) {
        --ctx->head;
        field = ctx->head->field;
        continue;
      } else if (field->type->typegroup == 'S') {
        size_t parent_offset = ctx->head->parent_offset + field->offset;
        if (field->type->fields->type == NULL) continue;
        field = field->type->fields;
        ++ctx->head;
        ctx->head->field = field;
        ctx->head->parent_offset = parent_offset;
        break;
      } else {
        break;
      }
    }
  } while (ctx->enc_count);
  ctx->enc_type = 0;
  ctx->is_complex = 0;
  return 0;
}
static int
__pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp)
{
    const char *ts = *tsp;
    int i = 0, number, ndim;
    ++ts;
    if (ctx->new_count != 1) {
        PyErr_SetString(PyExc_ValueError,
                        "Cannot handle repeated arrays in format string");
        return -1;
    }
    if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return -1;
    ndim = ctx->head->field->type->ndim;
    while (*ts && *ts != ')') {
        switch (*ts) {
            case ' ': case '\f': case '\r': case '\n': case '\t': case '\v':  continue;
            default:  break;
        }
        number = __Pyx_BufFmt_ExpectNumber(&ts);
        if (number == -1) return -1;
        if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i]) {
            PyErr_Format(PyExc_ValueError,
                        "Expected a dimension of size %zu, got %d",
                        ctx->head->field->type->arraysize[i], number);
            return -1;
        }
        if (*ts != ',' && *ts != ')') {
            PyErr_Format(PyExc_ValueError,
                                "Expected a comma in format string, got '%c'", *ts);
            return -1;
        }
        if (*ts == ',') ts++;
        i++;
    }
    if (i != ndim) {
        PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d",
                            ctx->head->field->type->ndim, i);
        return -1;
    }
    if (!*ts) {
        PyErr_SetString(PyExc_ValueError,
                        "Unexpected end of format string, expected ')'");
        return -1;
    }
    ctx->is_valid_array = 1;
    ctx->new_count = 1;
    *tsp = ++ts;
    return 0;
}
static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) {
  int got_Z = 0;
  while (1) {
    switch(*ts) {
      case 0:
        if (ctx->enc_type != 0 && ctx->head == NULL) {
          __Pyx_BufFmt_RaiseExpected(ctx);
          return NULL;
        }
        if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
        if (ctx->head != NULL) {
          __Pyx_BufFmt_RaiseExpected(ctx);
          return NULL;
        }
        return ts;
      case ' ':
      case '\r':
      case '\n':
        ++ts;
        break;
      case '<':
        if (!__Pyx_Is_Little_Endian()) {
          PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler");
          return NULL;
        }
        ctx->new_packmode = '=';
        ++ts;
        break;
      case '>':
      case '!':
        if (__Pyx_Is_Little_Endian()) {
          PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler");
          return NULL;
        }
        ctx->new_packmode = '=';
        ++ts;
        break;
      case '=':
      case '@':
      case '^':
        ctx->new_packmode = *ts++;
        break;
      case 'T':
        {
          const char* ts_after_sub;
          size_t i, struct_count = ctx->new_count;
          size_t struct_alignment = ctx->struct_alignment;
          ctx->new_count = 1;
          ++ts;
          if (*ts != '{') {
            PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'");
            return NULL;
          }
          if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
          ctx->enc_type = 0;
          ctx->enc_count = 0;
          ctx->struct_alignment = 0;
          ++ts;
          ts_after_sub = ts;
          for (i = 0; i != struct_count; ++i) {
            ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts);
            if (!ts_after_sub) return NULL;
          }
          ts = ts_after_sub;
          if (struct_alignment) ctx->struct_alignment = struct_alignment;
        }
        break;
      case '}':
        {
          size_t alignment = ctx->struct_alignment;
          ++ts;
          if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
          ctx->enc_type = 0;
          if (alignment && ctx->fmt_offset % alignment) {
            ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment);
          }
        }
        return ts;
      case 'x':
        if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
        ctx->fmt_offset += ctx->new_count;
        ctx->new_count = 1;
        ctx->enc_count = 0;
        ctx->enc_type = 0;
        ctx->enc_packmode = ctx->new_packmode;
        ++ts;
        break;
      case 'Z':
        got_Z = 1;
        ++ts;
        if (*ts != 'f' && *ts != 'd' && *ts != 'g') {
          __Pyx_BufFmt_RaiseUnexpectedChar('Z');
          return NULL;
        }
        CYTHON_FALLTHROUGH;
      case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I':
      case 'l': case 'L': case 'q': case 'Q':
      case 'f': case 'd': case 'g':
      case 'O': case 'p':
        if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) &&
            (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) {
          ctx->enc_count += ctx->new_count;
          ctx->new_count = 1;
          got_Z = 0;
          ++ts;
          break;
        }
        CYTHON_FALLTHROUGH;
      case 's':
        if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
        ctx->enc_count = ctx->new_count;
        ctx->enc_packmode = ctx->new_packmode;
        ctx->enc_type = *ts;
        ctx->is_complex = got_Z;
        ++ts;
        ctx->new_count = 1;
        got_Z = 0;
        break;
      case ':':
        ++ts;
        while(*ts != ':') ++ts;
        ++ts;
        break;
      case '(':
        if (__pyx_buffmt_parse_array(ctx, &ts) < 0) return NULL;
        break;
      default:
        {
          int number = __Pyx_BufFmt_ExpectNumber(&ts);
          if (number == -1) return NULL;
          ctx->new_count = (size_t)number;
        }
    }
  }
}

/* BufferGetAndValidate */
  static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) {
  if (unlikely(info->buf == NULL)) return;
  if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL;
  __Pyx_ReleaseBuffer(info);
}
static void __Pyx_ZeroBuffer(Py_buffer* buf) {
  buf->buf = NULL;
  buf->obj = NULL;
  buf->strides = __Pyx_zeros;
  buf->shape = __Pyx_zeros;
  buf->suboffsets = __Pyx_minusones;
}
static int __Pyx__GetBufferAndValidate(
        Py_buffer* buf, PyObject* obj,  __Pyx_TypeInfo* dtype, int flags,
        int nd, int cast, __Pyx_BufFmt_StackElem* stack)
{
  buf->buf = NULL;
  if (unlikely(__Pyx_GetBuffer(obj, buf, flags) == -1)) {
    __Pyx_ZeroBuffer(buf);
    return -1;
  }
  if (unlikely(buf->ndim != nd)) {
    PyErr_Format(PyExc_ValueError,
                 "Buffer has wrong number of dimensions (expected %d, got %d)",
                 nd, buf->ndim);
    goto fail;
  }
  if (!cast) {
    __Pyx_BufFmt_Context ctx;
    __Pyx_BufFmt_Init(&ctx, stack, dtype);
    if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail;
  }
  if (unlikely((size_t)buf->itemsize != dtype->size)) {
    PyErr_Format(PyExc_ValueError,
      "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)",
      buf->itemsize, (buf->itemsize > 1) ? "s" : "",
      dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : "");
    goto fail;
  }
  if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones;
  return 0;
fail:;
  __Pyx_SafeReleaseBuffer(buf);
  return -1;
}

/* PyIntBinop */
  #if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_MultiplyCObj(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op2))) {
        const long a = intval;
        long b = PyInt_AS_LONG(op2);
        
#ifdef HAVE_LONG_LONG
            if (sizeof(PY_LONG_LONG) > sizeof(long)) {
                PY_LONG_LONG result = (PY_LONG_LONG)a * (PY_LONG_LONG)b;
                return (result >= LONG_MIN && result <= LONG_MAX) ?
                    PyInt_FromLong((long)result) : PyLong_FromLongLong(result);
            }
#endif
#if CYTHON_USE_TYPE_SLOTS
            return PyInt_Type.tp_as_number->nb_multiply(op1, op2);
#else
            return PyNumber_Multiply(op1, op2);
#endif
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op2))) {
        const long a = intval;
        long b, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG lla = intval;
        PY_LONG_LONG llb, llx;
#endif
        if (unlikely(__Pyx_PyLong_IsZero(op2))) {
            return __Pyx_NewRef(op2);
        }
        if (likely(__Pyx_PyLong_IsCompact(op2))) {
            b = __Pyx_PyLong_CompactValue(op2);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op2);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op2);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) {
                        b = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) {
                        llb = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) {
                        b = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) {
                        llb = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) {
                        b = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) {
                        llb = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) {
                        b = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) {
                        llb = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) {
                        b = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) {
                        llb = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) {
                        b = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) {
                        llb = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_multiply(op1, op2);
            }
        }
                CYTHON_UNUSED_VAR(a);
                CYTHON_UNUSED_VAR(b);
                #ifdef HAVE_LONG_LONG
                llb = b;
                goto long_long;
                #else
                return PyLong_Type.tp_as_number->nb_multiply(op1, op2);
                #endif
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla * llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op2)) {
        const long a = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double b = __pyx_PyFloat_AsDouble(op2);
#else
        double b = PyFloat_AS_DOUBLE(op2);
#endif
            double result;
            
            PyFPE_START_PROTECT("multiply", return NULL)
            result = ((double)a) * (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceMultiply : PyNumber_Multiply)(op1, op2);
}
#endif

/* BufferFallbackError */
  static void __Pyx_RaiseBufferFallbackError(void) {
  PyErr_SetString(PyExc_ValueError,
     "Buffer acquisition failed on assignment; and then reacquiring the old buffer failed too!");
}

/* BufferIndexError */
  static void __Pyx_RaiseBufferIndexError(int axis) {
  PyErr_Format(PyExc_IndexError,
     "Out of bounds on buffer access (axis %d)", axis);
}

/* IterFinish */
  static CYTHON_INLINE int __Pyx_IterFinish(void) {
    PyObject* exc_type;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (unlikely(exc_type)) {
        if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))
            return -1;
        __Pyx_PyErr_Clear();
        return 0;
    }
    return 0;
}

/* UnpackItemEndCheck */
  static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
    if (unlikely(retval)) {
        Py_DECREF(retval);
        __Pyx_RaiseTooManyValuesError(expected);
        return -1;
    }
    return __Pyx_IterFinish();
}

/* SliceObject */
  static CYTHON_INLINE int __Pyx_PyObject_SetSlice(PyObject* obj, PyObject* value,
        Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
        int has_cstart, int has_cstop, int wraparound) {
    __Pyx_TypeName obj_type_name;
#if CYTHON_USE_TYPE_SLOTS
    PyMappingMethods* mp;
#if PY_MAJOR_VERSION < 3
    PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence;
    if (likely(ms && ms->sq_ass_slice)) {
        if (!has_cstart) {
            if (_py_start && (*_py_start != Py_None)) {
                cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
                if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
            } else
                cstart = 0;
        }
        if (!has_cstop) {
            if (_py_stop && (*_py_stop != Py_None)) {
                cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
                if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
            } else
                cstop = PY_SSIZE_T_MAX;
        }
        if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) {
            Py_ssize_t l = ms->sq_length(obj);
            if (likely(l >= 0)) {
                if (cstop < 0) {
                    cstop += l;
                    if (cstop < 0) cstop = 0;
                }
                if (cstart < 0) {
                    cstart += l;
                    if (cstart < 0) cstart = 0;
                }
            } else {
                if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                    goto bad;
                PyErr_Clear();
            }
        }
        return ms->sq_ass_slice(obj, cstart, cstop, value);
    }
#else
    CYTHON_UNUSED_VAR(wraparound);
#endif
    mp = Py_TYPE(obj)->tp_as_mapping;
    if (likely(mp && mp->mp_ass_subscript))
#else
    CYTHON_UNUSED_VAR(wraparound);
#endif
    {
        int result;
        PyObject *py_slice, *py_start, *py_stop;
        if (_py_slice) {
            py_slice = *_py_slice;
        } else {
            PyObject* owned_start = NULL;
            PyObject* owned_stop = NULL;
            if (_py_start) {
                py_start = *_py_start;
            } else {
                if (has_cstart) {
                    owned_start = py_start = PyInt_FromSsize_t(cstart);
                    if (unlikely(!py_start)) goto bad;
                } else
                    py_start = Py_None;
            }
            if (_py_stop) {
                py_stop = *_py_stop;
            } else {
                if (has_cstop) {
                    owned_stop = py_stop = PyInt_FromSsize_t(cstop);
                    if (unlikely(!py_stop)) {
                        Py_XDECREF(owned_start);
                        goto bad;
                    }
                } else
                    py_stop = Py_None;
            }
            py_slice = PySlice_New(py_start, py_stop, Py_None);
            Py_XDECREF(owned_start);
            Py_XDECREF(owned_stop);
            if (unlikely(!py_slice)) goto bad;
        }
#if CYTHON_USE_TYPE_SLOTS
        result = mp->mp_ass_subscript(obj, py_slice, value);
#else
        result = value ? PyObject_SetItem(obj, py_slice, value) : PyObject_DelItem(obj, py_slice);
#endif
        if (!_py_slice) {
            Py_DECREF(py_slice);
        }
        return result;
    }
    obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "'" __Pyx_FMT_TYPENAME "' object does not support slice %.10s",
        obj_type_name, value ? "assignment" : "deletion");
    __Pyx_DECREF_TypeName(obj_type_name);
bad:
    return -1;
}

/* PyIntBinop */
  #if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_MultiplyObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long a = PyInt_AS_LONG(op1);
        
#ifdef HAVE_LONG_LONG
            if (sizeof(PY_LONG_LONG) > sizeof(long)) {
                PY_LONG_LONG result = (PY_LONG_LONG)a * (PY_LONG_LONG)b;
                return (result >= LONG_MIN && result <= LONG_MAX) ?
                    PyInt_FromLong((long)result) : PyLong_FromLongLong(result);
            }
#endif
#if CYTHON_USE_TYPE_SLOTS
            return PyInt_Type.tp_as_number->nb_multiply(op1, op2);
#else
            return PyNumber_Multiply(op1, op2);
#endif
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        if (unlikely(__Pyx_PyLong_IsZero(op1))) {
            return __Pyx_NewRef(op1);
        }
        if (likely(__Pyx_PyLong_IsCompact(op1))) {
            a = __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_multiply(op1, op2);
            }
        }
                CYTHON_UNUSED_VAR(a);
                CYTHON_UNUSED_VAR(b);
                #ifdef HAVE_LONG_LONG
                lla = a;
                goto long_long;
                #else
                return PyLong_Type.tp_as_number->nb_multiply(op1, op2);
                #endif
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla * llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double a = __pyx_PyFloat_AsDouble(op1);
#else
        double a = PyFloat_AS_DOUBLE(op1);
#endif
            double result;
            
            PyFPE_START_PROTECT("multiply", return NULL)
            result = ((double)a) * (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceMultiply : PyNumber_Multiply)(op1, op2);
}
#endif

/* PyObjectSetAttrStr */
  #if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_setattro))
        return tp->tp_setattro(obj, attr_name, value);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_setattr))
        return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
#endif
    return PyObject_SetAttr(obj, attr_name, value);
}
#endif

/* Globals */
  static PyObject* __Pyx_Globals(void) {
    return __Pyx_NewRef(__pyx_d);
}

/* PyIntBinop */
  #if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_FloorDivideObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long x;
        long a = PyInt_AS_LONG(op1);
        
            if (unlikely(b == -1 && ((unsigned long)a) == 0-(unsigned long)a))
                return PyInt_Type.tp_as_number->nb_floor_divide(op1, op2);
            else {
                long q, r;
                q = a / b;
                r = a - q*b;
                q -= ((r != 0) & ((r ^ b) < 0));
                x = q;
            }
            return PyInt_FromLong(x);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        if (unlikely(__Pyx_PyLong_IsZero(op1))) {
            return __Pyx_NewRef(op1);
        }
        if (likely(__Pyx_PyLong_IsCompact(op1))) {
            a = __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_floor_divide(op1, op2);
            }
        }
                {
                    long q, r;
                    q = a / b;
                    r = a - q*b;
                    q -= ((r != 0) & ((r ^ b) < 0));
                    x = q;
                }
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                {
                    PY_LONG_LONG q, r;
                    q = lla / llb;
                    r = lla - q*llb;
                    q -= ((r != 0) & ((r ^ llb) < 0));
                    llx = q;
                }
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    return (inplace ? PyNumber_InPlaceFloorDivide : PyNumber_FloorDivide)(op1, op2);
}
#endif

/* py_dict_keys */
  static CYTHON_INLINE PyObject* __Pyx_PyDict_Keys(PyObject* d) {
    if (PY_MAJOR_VERSION >= 3)
        return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_keys, d);
    else
        return PyDict_Keys(d);
}

/* set_iter */
  static CYTHON_INLINE PyObject* __Pyx_set_iterator(PyObject* iterable, int is_set,
                                                  Py_ssize_t* p_orig_length, int* p_source_is_set) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    is_set = is_set || likely(PySet_CheckExact(iterable) || PyFrozenSet_CheckExact(iterable));
    *p_source_is_set = is_set;
    if (likely(is_set)) {
        *p_orig_length = PySet_Size(iterable);
        Py_INCREF(iterable);
        return iterable;
    }
#else
    CYTHON_UNUSED_VAR(is_set);
    *p_source_is_set = 0;
#endif
    *p_orig_length = 0;
    return PyObject_GetIter(iterable);
}
static CYTHON_INLINE int __Pyx_set_iter_next(
        PyObject* iter_obj, Py_ssize_t orig_length,
        Py_ssize_t* ppos, PyObject **value,
        int source_is_set) {
    if (!CYTHON_COMPILING_IN_CPYTHON || PY_VERSION_HEX >= 0x030d0000 || unlikely(!source_is_set)) {
        *value = PyIter_Next(iter_obj);
        if (unlikely(!*value)) {
            return __Pyx_IterFinish();
        }
        CYTHON_UNUSED_VAR(orig_length);
        CYTHON_UNUSED_VAR(ppos);
        return 1;
    }
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    if (unlikely(PySet_GET_SIZE(iter_obj) != orig_length)) {
        PyErr_SetString(
            PyExc_RuntimeError,
            "set changed size during iteration");
        return -1;
    }
    {
        Py_hash_t hash;
        int ret = _PySet_NextEntry(iter_obj, ppos, value, &hash);
        assert (ret != -1);
        if (likely(ret)) {
            Py_INCREF(*value);
            return 1;
        }
    }
#endif
    return 0;
}

/* PyIntCompare */
  static CYTHON_INLINE int __Pyx_PyInt_BoolNeObjC(PyObject *op1, PyObject *op2, long intval, long inplace) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_UNUSED_VAR(inplace);
    if (op1 == op2) {
        return 0;
    }
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long a = PyInt_AS_LONG(op1);
        return (a != b);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        int unequal;
        unsigned long uintval;
        Py_ssize_t size = __Pyx_PyLong_DigitCount(op1);
        const digit* digits = __Pyx_PyLong_Digits(op1);
        if (intval == 0) {
            return (__Pyx_PyLong_IsZero(op1) != 1);
        } else if (intval < 0) {
            if (__Pyx_PyLong_IsNonNeg(op1))
                return 1;
            intval = -intval;
        } else {
            if (__Pyx_PyLong_IsNeg(op1))
                return 1;
        }
        uintval = (unsigned long) intval;
#if PyLong_SHIFT * 4 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 4)) {
            unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 3 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 3)) {
            unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 2 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 2)) {
            unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 1 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 1)) {
            unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
            unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
        return (unequal != 0);
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double a = __pyx_PyFloat_AsDouble(op1);
#else
        double a = PyFloat_AS_DOUBLE(op1);
#endif
        return ((double)a != (double)b);
    }
    return __Pyx_PyObject_IsTrueAndDecref(
        PyObject_RichCompare(op1, op2, Py_NE));
}

/* FixUpExtensionType */
  #if CYTHON_USE_TYPE_SPECS
static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) {
#if PY_VERSION_HEX > 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    CYTHON_UNUSED_VAR(spec);
    CYTHON_UNUSED_VAR(type);
#else
    const PyType_Slot *slot = spec->slots;
    while (slot && slot->slot && slot->slot != Py_tp_members)
        slot++;
    if (slot && slot->slot == Py_tp_members) {
        int changed = 0;
#if !(PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON)
        const
#endif
            PyMemberDef *memb = (PyMemberDef*) slot->pfunc;
        while (memb && memb->name) {
            if (memb->name[0] == '_' && memb->name[1] == '_') {
#if PY_VERSION_HEX < 0x030900b1
                if (strcmp(memb->name, "__weaklistoffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_weaklistoffset = memb->offset;
                    changed = 1;
                }
                else if (strcmp(memb->name, "__dictoffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_dictoffset = memb->offset;
                    changed = 1;
                }
#if CYTHON_METH_FASTCALL
                else if (strcmp(memb->name, "__vectorcalloffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
#if PY_VERSION_HEX >= 0x030800b4
                    type->tp_vectorcall_offset = memb->offset;
#else
                    type->tp_print = (printfunc) memb->offset;
#endif
                    changed = 1;
                }
#endif
#else
                if ((0));
#endif
#if PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON
                else if (strcmp(memb->name, "__module__") == 0) {
                    PyObject *descr;
                    assert(memb->type == T_OBJECT);
                    assert(memb->flags == 0 || memb->flags == READONLY);
                    descr = PyDescr_NewMember(type, memb);
                    if (unlikely(!descr))
                        return -1;
                    if (unlikely(PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr) < 0)) {
                        Py_DECREF(descr);
                        return -1;
                    }
                    Py_DECREF(descr);
                    changed = 1;
                }
#endif
            }
            memb++;
        }
        if (changed)
            PyType_Modified(type);
    }
#endif
    return 0;
}
#endif

/* FetchSharedCythonModule */
  static PyObject *__Pyx_FetchSharedCythonABIModule(void) {
    return __Pyx_PyImport_AddModuleRef((char*) __PYX_ABI_MODULE_NAME);
}

/* FetchCommonType */
  static int __Pyx_VerifyCachedType(PyObject *cached_type,
                               const char *name,
                               Py_ssize_t basicsize,
                               Py_ssize_t expected_basicsize) {
    if (!PyType_Check(cached_type)) {
        PyErr_Format(PyExc_TypeError,
            "Shared Cython type %.200s is not a type object", name);
        return -1;
    }
    if (basicsize != expected_basicsize) {
        PyErr_Format(PyExc_TypeError,
            "Shared Cython type %.200s has the wrong size, try recompiling",
            name);
        return -1;
    }
    return 0;
}
#if !CYTHON_USE_TYPE_SPECS
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
    PyObject* abi_module;
    const char* object_name;
    PyTypeObject *cached_type = NULL;
    abi_module = __Pyx_FetchSharedCythonABIModule();
    if (!abi_module) return NULL;
    object_name = strrchr(type->tp_name, '.');
    object_name = object_name ? object_name+1 : type->tp_name;
    cached_type = (PyTypeObject*) PyObject_GetAttrString(abi_module, object_name);
    if (cached_type) {
        if (__Pyx_VerifyCachedType(
              (PyObject *)cached_type,
              object_name,
              cached_type->tp_basicsize,
              type->tp_basicsize) < 0) {
            goto bad;
        }
        goto done;
    }
    if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
    PyErr_Clear();
    if (PyType_Ready(type) < 0) goto bad;
    if (PyObject_SetAttrString(abi_module, object_name, (PyObject *)type) < 0)
        goto bad;
    Py_INCREF(type);
    cached_type = type;
done:
    Py_DECREF(abi_module);
    return cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}
#else
static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases) {
    PyObject *abi_module, *cached_type = NULL;
    const char* object_name = strrchr(spec->name, '.');
    object_name = object_name ? object_name+1 : spec->name;
    abi_module = __Pyx_FetchSharedCythonABIModule();
    if (!abi_module) return NULL;
    cached_type = PyObject_GetAttrString(abi_module, object_name);
    if (cached_type) {
        Py_ssize_t basicsize;
#if CYTHON_COMPILING_IN_LIMITED_API
        PyObject *py_basicsize;
        py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__");
        if (unlikely(!py_basicsize)) goto bad;
        basicsize = PyLong_AsSsize_t(py_basicsize);
        Py_DECREF(py_basicsize);
        py_basicsize = 0;
        if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
#else
        basicsize = likely(PyType_Check(cached_type)) ? ((PyTypeObject*) cached_type)->tp_basicsize : -1;
#endif
        if (__Pyx_VerifyCachedType(
              cached_type,
              object_name,
              basicsize,
              spec->basicsize) < 0) {
            goto bad;
        }
        goto done;
    }
    if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
    PyErr_Clear();
    CYTHON_UNUSED_VAR(module);
    cached_type = __Pyx_PyType_FromModuleAndSpec(abi_module, spec, bases);
    if (unlikely(!cached_type)) goto bad;
    if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad;
    if (PyObject_SetAttrString(abi_module, object_name, cached_type) < 0) goto bad;
done:
    Py_DECREF(abi_module);
    assert(cached_type == NULL || PyType_Check(cached_type));
    return (PyTypeObject *) cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}
#endif

/* PyVectorcallFastCallDict */
  #if CYTHON_METH_FASTCALL
static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
{
    PyObject *res = NULL;
    PyObject *kwnames;
    PyObject **newargs;
    PyObject **kwvalues;
    Py_ssize_t i, pos;
    size_t j;
    PyObject *key, *value;
    unsigned long keys_are_strings;
    Py_ssize_t nkw = PyDict_GET_SIZE(kw);
    newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0]));
    if (unlikely(newargs == NULL)) {
        PyErr_NoMemory();
        return NULL;
    }
    for (j = 0; j < nargs; j++) newargs[j] = args[j];
    kwnames = PyTuple_New(nkw);
    if (unlikely(kwnames == NULL)) {
        PyMem_Free(newargs);
        return NULL;
    }
    kwvalues = newargs + nargs;
    pos = i = 0;
    keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;
    while (PyDict_Next(kw, &pos, &key, &value)) {
        keys_are_strings &= Py_TYPE(key)->tp_flags;
        Py_INCREF(key);
        Py_INCREF(value);
        PyTuple_SET_ITEM(kwnames, i, key);
        kwvalues[i] = value;
        i++;
    }
    if (unlikely(!keys_are_strings)) {
        PyErr_SetString(PyExc_TypeError, "keywords must be strings");
        goto cleanup;
    }
    res = vc(func, newargs, nargs, kwnames);
cleanup:
    Py_DECREF(kwnames);
    for (i = 0; i < nkw; i++)
        Py_DECREF(kwvalues[i]);
    PyMem_Free(newargs);
    return res;
}
static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
{
    if (likely(kw == NULL) || PyDict_GET_SIZE(kw) == 0) {
        return vc(func, args, nargs, NULL);
    }
    return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw);
}
#endif

/* CythonFunctionShared */
  #if CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc) {
    if (__Pyx_CyFunction_Check(func)) {
        return PyCFunction_GetFunction(((__pyx_CyFunctionObject*)func)->func) == (PyCFunction) cfunc;
    } else if (PyCFunction_Check(func)) {
        return PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
    }
    return 0;
}
#else
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc) {
    return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
}
#endif
static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) {
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_Py_XDECREF_SET(
        __Pyx_CyFunction_GetClassObj(f),
            ((classobj) ? __Pyx_NewRef(classobj) : NULL));
#else
    __Pyx_Py_XDECREF_SET(
        ((PyCMethodObject *) (f))->mm_class,
        (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL));
#endif
}
static PyObject *
__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure)
{
    CYTHON_UNUSED_VAR(closure);
    if (unlikely(op->func_doc == NULL)) {
#if CYTHON_COMPILING_IN_LIMITED_API
        op->func_doc = PyObject_GetAttrString(op->func, "__doc__");
        if (unlikely(!op->func_doc)) return NULL;
#else
        if (((PyCFunctionObject*)op)->m_ml->ml_doc) {
#if PY_MAJOR_VERSION >= 3
            op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
#else
            op->func_doc = PyString_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
#endif
            if (unlikely(op->func_doc == NULL))
                return NULL;
        } else {
            Py_INCREF(Py_None);
            return Py_None;
        }
#endif
    }
    Py_INCREF(op->func_doc);
    return op->func_doc;
}
static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (value == NULL) {
        value = Py_None;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->func_doc, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(op->func_name == NULL)) {
#if CYTHON_COMPILING_IN_LIMITED_API
        op->func_name = PyObject_GetAttrString(op->func, "__name__");
#elif PY_MAJOR_VERSION >= 3
        op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);
#else
        op->func_name = PyString_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);
#endif
        if (unlikely(op->func_name == NULL))
            return NULL;
    }
    Py_INCREF(op->func_name);
    return op->func_name;
}
static int
__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->func_name, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(op->func_qualname);
    return op->func_qualname;
}
static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->func_qualname, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(op->func_dict == NULL)) {
        op->func_dict = PyDict_New();
        if (unlikely(op->func_dict == NULL))
            return NULL;
    }
    Py_INCREF(op->func_dict);
    return op->func_dict;
}
static int
__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL)) {
        PyErr_SetString(PyExc_TypeError,
               "function's dictionary may not be deleted");
        return -1;
    }
    if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
               "setting function's dictionary to a non-dict");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->func_dict, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(op->func_globals);
    return op->func_globals;
}
static PyObject *
__Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(op);
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(Py_None);
    return Py_None;
}
static PyObject *
__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context)
{
    PyObject* result = (op->func_code) ? op->func_code : Py_None;
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
    int result = 0;
    PyObject *res = op->defaults_getter((PyObject *) op);
    if (unlikely(!res))
        return -1;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
    Py_INCREF(op->defaults_tuple);
    op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
    Py_INCREF(op->defaults_kwdict);
    #else
    op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0);
    if (unlikely(!op->defaults_tuple)) result = -1;
    else {
        op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1);
        if (unlikely(!op->defaults_kwdict)) result = -1;
    }
    #endif
    Py_DECREF(res);
    return result;
}
static int
__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value) {
        value = Py_None;
    } else if (unlikely(value != Py_None && !PyTuple_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__defaults__ must be set to a tuple object");
        return -1;
    }
    PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not "
                 "currently affect the values used in function calls", 1);
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->defaults_tuple, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result = op->defaults_tuple;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
            result = op->defaults_tuple;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value) {
        value = Py_None;
    } else if (unlikely(value != Py_None && !PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__kwdefaults__ must be set to a dict object");
        return -1;
    }
    PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not "
                 "currently affect the values used in function calls", 1);
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result = op->defaults_kwdict;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
            result = op->defaults_kwdict;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value || value == Py_None) {
        value = NULL;
    } else if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__annotations__ must be set to a dict object");
        return -1;
    }
    Py_XINCREF(value);
    __Pyx_Py_XDECREF_SET(op->func_annotations, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result = op->func_annotations;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!result)) {
        result = PyDict_New();
        if (unlikely(!result)) return NULL;
        op->func_annotations = result;
    }
    Py_INCREF(result);
    return result;
}
static PyObject *
__Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) {
    int is_coroutine;
    CYTHON_UNUSED_VAR(context);
    if (op->func_is_coroutine) {
        return __Pyx_NewRef(op->func_is_coroutine);
    }
    is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE;
#if PY_VERSION_HEX >= 0x03050000
    if (is_coroutine) {
        PyObject *module, *fromlist, *marker = __pyx_n_s_is_coroutine;
        fromlist = PyList_New(1);
        if (unlikely(!fromlist)) return NULL;
        Py_INCREF(marker);
#if CYTHON_ASSUME_SAFE_MACROS
        PyList_SET_ITEM(fromlist, 0, marker);
#else
        if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {
            Py_DECREF(marker);
            Py_DECREF(fromlist);
            return NULL;
        }
#endif
        module = PyImport_ImportModuleLevelObject(__pyx_n_s_asyncio_coroutines, NULL, NULL, fromlist, 0);
        Py_DECREF(fromlist);
        if (unlikely(!module)) goto ignore;
        op->func_is_coroutine = __Pyx_PyObject_GetAttrStr(module, marker);
        Py_DECREF(module);
        if (likely(op->func_is_coroutine)) {
            return __Pyx_NewRef(op->func_is_coroutine);
        }
ignore:
        PyErr_Clear();
    }
#endif
    op->func_is_coroutine = __Pyx_PyBool_FromLong(is_coroutine);
    return __Pyx_NewRef(op->func_is_coroutine);
}
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *
__Pyx_CyFunction_get_module(__pyx_CyFunctionObject *op, void *context) {
    CYTHON_UNUSED_VAR(context);
    return PyObject_GetAttrString(op->func, "__module__");
}
static int
__Pyx_CyFunction_set_module(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    return PyObject_SetAttrString(op->func, "__module__", value);
}
#endif
static PyGetSetDef __pyx_CyFunction_getsets[] = {
    {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
    {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
    {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
    {(char *) "_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0},
#if CYTHON_COMPILING_IN_LIMITED_API
    {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0},
#endif
    {0, 0, 0, 0, 0}
};
static PyMemberDef __pyx_CyFunction_members[] = {
#if !CYTHON_COMPILING_IN_LIMITED_API
    {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0},
#endif
#if CYTHON_USE_TYPE_SPECS
    {(char *) "__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0},
#if CYTHON_METH_FASTCALL
#if CYTHON_BACKPORT_VECTORCALL
    {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0},
#else
#if !CYTHON_COMPILING_IN_LIMITED_API
    {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0},
#endif
#endif
#endif
#if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
    {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0},
#else
    {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0},
#endif
#endif
    {0, 0, 0,  0, 0}
};
static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args)
{
    CYTHON_UNUSED_VAR(args);
#if PY_MAJOR_VERSION >= 3
    Py_INCREF(m->func_qualname);
    return m->func_qualname;
#else
    return PyString_FromString(((PyCFunctionObject*)m)->m_ml->ml_name);
#endif
}
static PyMethodDef __pyx_CyFunction_methods[] = {
    {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
    {0, 0, 0, 0}
};
#if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
#else
#define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist)
#endif
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
                                       PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
#if !CYTHON_COMPILING_IN_LIMITED_API
    PyCFunctionObject *cf = (PyCFunctionObject*) op;
#endif
    if (unlikely(op == NULL))
        return NULL;
#if CYTHON_COMPILING_IN_LIMITED_API
    op->func = PyCFunction_NewEx(ml, (PyObject*)op, module);
    if (unlikely(!op->func)) return NULL;
#endif
    op->flags = flags;
    __Pyx_CyFunction_weakreflist(op) = NULL;
#if !CYTHON_COMPILING_IN_LIMITED_API
    cf->m_ml = ml;
    cf->m_self = (PyObject *) op;
#endif
    Py_XINCREF(closure);
    op->func_closure = closure;
#if !CYTHON_COMPILING_IN_LIMITED_API
    Py_XINCREF(module);
    cf->m_module = module;
#endif
    op->func_dict = NULL;
    op->func_name = NULL;
    Py_INCREF(qualname);
    op->func_qualname = qualname;
    op->func_doc = NULL;
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    op->func_classobj = NULL;
#else
    ((PyCMethodObject*)op)->mm_class = NULL;
#endif
    op->func_globals = globals;
    Py_INCREF(op->func_globals);
    Py_XINCREF(code);
    op->func_code = code;
    op->defaults_pyobjects = 0;
    op->defaults_size = 0;
    op->defaults = NULL;
    op->defaults_tuple = NULL;
    op->defaults_kwdict = NULL;
    op->defaults_getter = NULL;
    op->func_annotations = NULL;
    op->func_is_coroutine = NULL;
#if CYTHON_METH_FASTCALL
    switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) {
    case METH_NOARGS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS;
        break;
    case METH_O:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O;
        break;
    case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD;
        break;
    case METH_FASTCALL | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS;
        break;
    case METH_VARARGS | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = NULL;
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
        Py_DECREF(op);
        return NULL;
    }
#endif
    return (PyObject *) op;
}
static int
__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
{
    Py_CLEAR(m->func_closure);
#if CYTHON_COMPILING_IN_LIMITED_API
    Py_CLEAR(m->func);
#else
    Py_CLEAR(((PyCFunctionObject*)m)->m_module);
#endif
    Py_CLEAR(m->func_dict);
    Py_CLEAR(m->func_name);
    Py_CLEAR(m->func_qualname);
    Py_CLEAR(m->func_doc);
    Py_CLEAR(m->func_globals);
    Py_CLEAR(m->func_code);
#if !CYTHON_COMPILING_IN_LIMITED_API
#if PY_VERSION_HEX < 0x030900B1
    Py_CLEAR(__Pyx_CyFunction_GetClassObj(m));
#else
    {
        PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class;
        ((PyCMethodObject *) (m))->mm_class = NULL;
        Py_XDECREF(cls);
    }
#endif
#endif
    Py_CLEAR(m->defaults_tuple);
    Py_CLEAR(m->defaults_kwdict);
    Py_CLEAR(m->func_annotations);
    Py_CLEAR(m->func_is_coroutine);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_XDECREF(pydefaults[i]);
        PyObject_Free(m->defaults);
        m->defaults = NULL;
    }
    return 0;
}
static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    if (__Pyx_CyFunction_weakreflist(m) != NULL)
        PyObject_ClearWeakRefs((PyObject *) m);
    __Pyx_CyFunction_clear(m);
    __Pyx_PyHeapTypeObject_GC_Del(m);
}
static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    PyObject_GC_UnTrack(m);
    __Pyx__CyFunction_dealloc(m);
}
static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
{
    Py_VISIT(m->func_closure);
#if CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(m->func);
#else
    Py_VISIT(((PyCFunctionObject*)m)->m_module);
#endif
    Py_VISIT(m->func_dict);
    Py_VISIT(m->func_name);
    Py_VISIT(m->func_qualname);
    Py_VISIT(m->func_doc);
    Py_VISIT(m->func_globals);
    Py_VISIT(m->func_code);
#if !CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(__Pyx_CyFunction_GetClassObj(m));
#endif
    Py_VISIT(m->defaults_tuple);
    Py_VISIT(m->defaults_kwdict);
    Py_VISIT(m->func_is_coroutine);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_VISIT(pydefaults[i]);
    }
    return 0;
}
static PyObject*
__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
{
#if PY_MAJOR_VERSION >= 3
    return PyUnicode_FromFormat("<cyfunction %U at %p>",
                                op->func_qualname, (void *)op);
#else
    return PyString_FromFormat("<cyfunction %s at %p>",
                               PyString_AsString(op->func_qualname), (void *)op);
#endif
}
static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *f = ((__pyx_CyFunctionObject*)func)->func;
    PyObject *py_name = NULL;
    PyCFunction meth;
    int flags;
    meth = PyCFunction_GetFunction(f);
    if (unlikely(!meth)) return NULL;
    flags = PyCFunction_GetFlags(f);
    if (unlikely(flags < 0)) return NULL;
#else
    PyCFunctionObject* f = (PyCFunctionObject*)func;
    PyCFunction meth = f->m_ml->ml_meth;
    int flags = f->m_ml->ml_flags;
#endif
    Py_ssize_t size;
    switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
    case METH_VARARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0))
            return (*meth)(self, arg);
        break;
    case METH_VARARGS | METH_KEYWORDS:
        return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw);
    case METH_NOARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
#if CYTHON_ASSUME_SAFE_MACROS
            size = PyTuple_GET_SIZE(arg);
#else
            size = PyTuple_Size(arg);
            if (unlikely(size < 0)) return NULL;
#endif
            if (likely(size == 0))
                return (*meth)(self, NULL);
#if CYTHON_COMPILING_IN_LIMITED_API
            py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
            if (!py_name) return NULL;
            PyErr_Format(PyExc_TypeError,
                "%.200S() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
                py_name, size);
            Py_DECREF(py_name);
#else
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
#endif
            return NULL;
        }
        break;
    case METH_O:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
#if CYTHON_ASSUME_SAFE_MACROS
            size = PyTuple_GET_SIZE(arg);
#else
            size = PyTuple_Size(arg);
            if (unlikely(size < 0)) return NULL;
#endif
            if (likely(size == 1)) {
                PyObject *result, *arg0;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                arg0 = PyTuple_GET_ITEM(arg, 0);
                #else
                arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
                #endif
                result = (*meth)(self, arg0);
                #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
                Py_DECREF(arg0);
                #endif
                return result;
            }
#if CYTHON_COMPILING_IN_LIMITED_API
            py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
            if (!py_name) return NULL;
            PyErr_Format(PyExc_TypeError,
                "%.200S() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
                py_name, size);
            Py_DECREF(py_name);
#else
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
#endif
            return NULL;
        }
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
        return NULL;
    }
#if CYTHON_COMPILING_IN_LIMITED_API
    py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
    if (!py_name) return NULL;
    PyErr_Format(PyExc_TypeError, "%.200S() takes no keyword arguments",
                 py_name);
    Py_DECREF(py_name);
#else
    PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
                 f->m_ml->ml_name);
#endif
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *self, *result;
#if CYTHON_COMPILING_IN_LIMITED_API
    self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)func)->func);
    if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
    self = ((PyCFunctionObject*)func)->m_self;
#endif
    result = __Pyx_CyFunction_CallMethod(func, self, arg, kw);
    return result;
}
static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
    PyObject *result;
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
#if CYTHON_METH_FASTCALL
     __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc);
    if (vc) {
#if CYTHON_ASSUME_SAFE_MACROS
        return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw);
#else
        (void) &__Pyx_PyVectorcall_FastCallDict;
        return PyVectorcall_Call(func, args, kw);
#endif
    }
#endif
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        Py_ssize_t argc;
        PyObject *new_args;
        PyObject *self;
#if CYTHON_ASSUME_SAFE_MACROS
        argc = PyTuple_GET_SIZE(args);
#else
        argc = PyTuple_Size(args);
        if (unlikely(!argc) < 0) return NULL;
#endif
        new_args = PyTuple_GetSlice(args, 1, argc);
        if (unlikely(!new_args))
            return NULL;
        self = PyTuple_GetItem(args, 0);
        if (unlikely(!self)) {
            Py_DECREF(new_args);
#if PY_MAJOR_VERSION > 2
            PyErr_Format(PyExc_TypeError,
                         "unbound method %.200S() needs an argument",
                         cyfunc->func_qualname);
#else
            PyErr_SetString(PyExc_TypeError,
                            "unbound method needs an argument");
#endif
            return NULL;
        }
        result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
        Py_DECREF(new_args);
    } else {
        result = __Pyx_CyFunction_Call(func, args, kw);
    }
    return result;
}
#if CYTHON_METH_FASTCALL
static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames)
{
    int ret = 0;
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        if (unlikely(nargs < 1)) {
            PyErr_Format(PyExc_TypeError, "%.200s() needs an argument",
                         ((PyCFunctionObject*)cyfunc)->m_ml->ml_name);
            return -1;
        }
        ret = 1;
    }
    if (unlikely(kwnames) && unlikely(PyTuple_GET_SIZE(kwnames))) {
        PyErr_Format(PyExc_TypeError,
                     "%.200s() takes no keyword arguments", ((PyCFunctionObject*)cyfunc)->m_ml->ml_name);
        return -1;
    }
    return ret;
}
static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
        self = ((PyCFunctionObject*)cyfunc)->m_self;
        break;
    default:
        return NULL;
    }
    if (unlikely(nargs != 0)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
            def->ml_name, nargs);
        return NULL;
    }
    return def->ml_meth(self, NULL);
}
static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
        self = ((PyCFunctionObject*)cyfunc)->m_self;
        break;
    default:
        return NULL;
    }
    if (unlikely(nargs != 1)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
            def->ml_name, nargs);
        return NULL;
    }
    return def->ml_meth(self, args[0]);
}
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
        self = ((PyCFunctionObject*)cyfunc)->m_self;
        break;
    default:
        return NULL;
    }
    return ((_PyCFunctionFastWithKeywords)(void(*)(void))def->ml_meth)(self, args, nargs, kwnames);
}
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
    PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc);
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
        self = ((PyCFunctionObject*)cyfunc)->m_self;
        break;
    default:
        return NULL;
    }
    return ((__Pyx_PyCMethod)(void(*)(void))def->ml_meth)(self, cls, args, (size_t)nargs, kwnames);
}
#endif
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_CyFunctionType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc},
    {Py_tp_repr, (void *)__Pyx_CyFunction_repr},
    {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod},
    {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse},
    {Py_tp_clear, (void *)__Pyx_CyFunction_clear},
    {Py_tp_methods, (void *)__pyx_CyFunction_methods},
    {Py_tp_members, (void *)__pyx_CyFunction_members},
    {Py_tp_getset, (void *)__pyx_CyFunction_getsets},
    {Py_tp_descr_get, (void *)__Pyx_PyMethod_New},
    {0, 0},
};
static PyType_Spec __pyx_CyFunctionType_spec = {
    __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
    Py_TPFLAGS_METHOD_DESCRIPTOR |
#endif
#if (defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL)
    _Py_TPFLAGS_HAVE_VECTORCALL |
#endif
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
    __pyx_CyFunctionType_slots
};
#else
static PyTypeObject __pyx_CyFunctionType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
    (destructor) __Pyx_CyFunction_dealloc,
#if !CYTHON_METH_FASTCALL
    0,
#elif CYTHON_BACKPORT_VECTORCALL
    (printfunc)offsetof(__pyx_CyFunctionObject, func_vectorcall),
#else
    offsetof(PyCFunctionObject, vectorcall),
#endif
    0,
    0,
#if PY_MAJOR_VERSION < 3
    0,
#else
    0,
#endif
    (reprfunc) __Pyx_CyFunction_repr,
    0,
    0,
    0,
    0,
    __Pyx_CyFunction_CallAsMethod,
    0,
    0,
    0,
    0,
#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
    Py_TPFLAGS_METHOD_DESCRIPTOR |
#endif
#if defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL
    _Py_TPFLAGS_HAVE_VECTORCALL |
#endif
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
    0,
    (traverseproc) __Pyx_CyFunction_traverse,
    (inquiry) __Pyx_CyFunction_clear,
    0,
#if PY_VERSION_HEX < 0x030500A0
    offsetof(__pyx_CyFunctionObject, func_weakreflist),
#else
    offsetof(PyCFunctionObject, m_weakreflist),
#endif
    0,
    0,
    __pyx_CyFunction_methods,
    __pyx_CyFunction_members,
    __pyx_CyFunction_getsets,
    0,
    0,
    __Pyx_PyMethod_New,
    0,
    offsetof(__pyx_CyFunctionObject, func_dict),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
    0,
#endif
#if __PYX_NEED_TP_PRINT_SLOT
    0,
#endif
#if PY_VERSION_HEX >= 0x030C0000
    0,
#endif
#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
    0,
#endif
};
#endif
static int __pyx_CyFunction_init(PyObject *module) {
#if CYTHON_USE_TYPE_SPECS
    __pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CyFunctionType_spec, NULL);
#else
    CYTHON_UNUSED_VAR(module);
    __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
#endif
    if (unlikely(__pyx_CyFunctionType == NULL)) {
        return -1;
    }
    return 0;
}
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults = PyObject_Malloc(size);
    if (unlikely(!m->defaults))
        return PyErr_NoMemory();
    memset(m->defaults, 0, size);
    m->defaults_pyobjects = pyobjects;
    m->defaults_size = size;
    return m->defaults;
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_tuple = tuple;
    Py_INCREF(tuple);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_kwdict = dict;
    Py_INCREF(dict);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->func_annotations = dict;
    Py_INCREF(dict);
}

/* CythonFunction */
  static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
                                      PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    PyObject *op = __Pyx_CyFunction_Init(
        PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType),
        ml, flags, qualname, closure, module, globals, code
    );
    if (likely(op)) {
        PyObject_GC_Track(op);
    }
    return op;
}

/* PyObjectCallMethod0 */
  static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
    PyObject *method = NULL, *result = NULL;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_CallOneArg(method, obj);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) goto bad;
    result = __Pyx_PyObject_CallNoArg(method);
    Py_DECREF(method);
bad:
    return result;
}

/* UnpackTupleError */
  static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) {
    if (t == Py_None) {
      __Pyx_RaiseNoneNotIterableError();
    } else if (PyTuple_GET_SIZE(t) < index) {
      __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t));
    } else {
      __Pyx_RaiseTooManyValuesError(index);
    }
}

/* UnpackTuple2 */
  static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
        PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) {
    PyObject *value1 = NULL, *value2 = NULL;
#if CYTHON_COMPILING_IN_PYPY
    value1 = PySequence_ITEM(tuple, 0);  if (unlikely(!value1)) goto bad;
    value2 = PySequence_ITEM(tuple, 1);  if (unlikely(!value2)) goto bad;
#else
    value1 = PyTuple_GET_ITEM(tuple, 0);  Py_INCREF(value1);
    value2 = PyTuple_GET_ITEM(tuple, 1);  Py_INCREF(value2);
#endif
    if (decref_tuple) {
        Py_DECREF(tuple);
    }
    *pvalue1 = value1;
    *pvalue2 = value2;
    return 0;
#if CYTHON_COMPILING_IN_PYPY
bad:
    Py_XDECREF(value1);
    Py_XDECREF(value2);
    if (decref_tuple) { Py_XDECREF(tuple); }
    return -1;
#endif
}
static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2,
                                       int has_known_size, int decref_tuple) {
    Py_ssize_t index;
    PyObject *value1 = NULL, *value2 = NULL, *iter = NULL;
    iternextfunc iternext;
    iter = PyObject_GetIter(tuple);
    if (unlikely(!iter)) goto bad;
    if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; }
    iternext = __Pyx_PyObject_GetIterNextFunc(iter);
    value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; }
    value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; }
    if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad;
    Py_DECREF(iter);
    *pvalue1 = value1;
    *pvalue2 = value2;
    return 0;
unpacking_failed:
    if (!has_known_size && __Pyx_IterFinish() == 0)
        __Pyx_RaiseNeedMoreValuesError(index);
bad:
    Py_XDECREF(iter);
    Py_XDECREF(value1);
    Py_XDECREF(value2);
    if (decref_tuple) { Py_XDECREF(tuple); }
    return -1;
}

/* dict_iter */
  #if CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
#include <string.h>
#endif
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_source_is_dict) {
    is_dict = is_dict || likely(PyDict_CheckExact(iterable));
    *p_source_is_dict = is_dict;
    if (is_dict) {
#if !CYTHON_COMPILING_IN_PYPY
        *p_orig_length = PyDict_Size(iterable);
        Py_INCREF(iterable);
        return iterable;
#elif PY_MAJOR_VERSION >= 3
        static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL;
        PyObject **pp = NULL;
        if (method_name) {
            const char *name = PyUnicode_AsUTF8(method_name);
            if (strcmp(name, "iteritems") == 0) pp = &py_items;
            else if (strcmp(name, "iterkeys") == 0) pp = &py_keys;
            else if (strcmp(name, "itervalues") == 0) pp = &py_values;
            if (pp) {
                if (!*pp) {
                    *pp = PyUnicode_FromString(name + 4);
                    if (!*pp)
                        return NULL;
                }
                method_name = *pp;
            }
        }
#endif
    }
    *p_orig_length = 0;
    if (method_name) {
        PyObject* iter;
        iterable = __Pyx_PyObject_CallMethod0(iterable, method_name);
        if (!iterable)
            return NULL;
#if !CYTHON_COMPILING_IN_PYPY
        if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable))
            return iterable;
#endif
        iter = PyObject_GetIter(iterable);
        Py_DECREF(iterable);
        return iter;
    }
    return PyObject_GetIter(iterable);
}
static CYTHON_INLINE int __Pyx_dict_iter_next(
        PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos,
        PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) {
    PyObject* next_item;
#if !CYTHON_COMPILING_IN_PYPY
    if (source_is_dict) {
        PyObject *key, *value;
        if (unlikely(orig_length != PyDict_Size(iter_obj))) {
            PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration");
            return -1;
        }
        if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) {
            return 0;
        }
        if (pitem) {
            PyObject* tuple = PyTuple_New(2);
            if (unlikely(!tuple)) {
                return -1;
            }
            Py_INCREF(key);
            Py_INCREF(value);
            PyTuple_SET_ITEM(tuple, 0, key);
            PyTuple_SET_ITEM(tuple, 1, value);
            *pitem = tuple;
        } else {
            if (pkey) {
                Py_INCREF(key);
                *pkey = key;
            }
            if (pvalue) {
                Py_INCREF(value);
                *pvalue = value;
            }
        }
        return 1;
    } else if (PyTuple_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0;
        *ppos = pos + 1;
        next_item = PyTuple_GET_ITEM(iter_obj, pos);
        Py_INCREF(next_item);
    } else if (PyList_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0;
        *ppos = pos + 1;
        next_item = PyList_GET_ITEM(iter_obj, pos);
        Py_INCREF(next_item);
    } else
#endif
    {
        next_item = PyIter_Next(iter_obj);
        if (unlikely(!next_item)) {
            return __Pyx_IterFinish();
        }
    }
    if (pitem) {
        *pitem = next_item;
    } else if (pkey && pvalue) {
        if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1))
            return -1;
    } else if (pkey) {
        *pkey = next_item;
    } else {
        *pvalue = next_item;
    }
    return 1;
}

/* pop */
  static CYTHON_INLINE PyObject* __Pyx__PyObject_Pop(PyObject* L) {
    if (__Pyx_IS_TYPE(L, &PySet_Type)) {
        return PySet_Pop(L);
    }
    return __Pyx_PyObject_CallMethod0(L, __pyx_n_s_pop);
}
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE PyObject* __Pyx_PyList_Pop(PyObject* L) {
    if (likely(PyList_GET_SIZE(L) > (((PyListObject*)L)->allocated >> 1))) {
        __Pyx_SET_SIZE(L, Py_SIZE(L) - 1);
        return PyList_GET_ITEM(L, PyList_GET_SIZE(L));
    }
    return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyList_Type_pop, L);
}
#endif

/* PyIntBinop */
  #if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_SubtractCObj(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op2))) {
        const long a = intval;
        long x;
        long b = PyInt_AS_LONG(op2);
        
            x = (long)((unsigned long)a - (unsigned long)b);
            if (likely((x^a) >= 0 || (x^~b) >= 0))
                return PyInt_FromLong(x);
            return PyLong_Type.tp_as_number->nb_subtract(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op2))) {
        const long a = intval;
        long b, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG lla = intval;
        PY_LONG_LONG llb, llx;
#endif
        if (unlikely(__Pyx_PyLong_IsZero(op2))) {
            return __Pyx_NewRef(op1);
        }
        if (likely(__Pyx_PyLong_IsCompact(op2))) {
            b = __Pyx_PyLong_CompactValue(op2);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op2);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op2);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        b = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        llb = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        b = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        llb = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        b = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        llb = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        b = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        llb = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        b = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        llb = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        b = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        llb = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_subtract(op1, op2);
            }
        }
                x = a - b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla - llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op2)) {
        const long a = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double b = __pyx_PyFloat_AsDouble(op2);
#else
        double b = PyFloat_AS_DOUBLE(op2);
#endif
            double result;
            
            PyFPE_START_PROTECT("subtract", return NULL)
            result = ((double)a) - (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceSubtract : PyNumber_Subtract)(op1, op2);
}
#endif

/* PyIntFromDouble */
  #if PY_MAJOR_VERSION < 3
static CYTHON_INLINE PyObject* __Pyx_PyInt_FromDouble(double value) {
    if (value >= (double)LONG_MIN && value <= (double)LONG_MAX) {
        return PyInt_FromLong((long)value);
    }
    return PyLong_FromDouble(value);
}
#endif

/* unicode_tailmatch */
  static int __Pyx_PyUnicode_TailmatchTuple(PyObject* s, PyObject* substrings,
                                          Py_ssize_t start, Py_ssize_t end, int direction) {
    Py_ssize_t i, count = PyTuple_GET_SIZE(substrings);
    for (i = 0; i < count; i++) {
        Py_ssize_t result;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        result = PyUnicode_Tailmatch(s, PyTuple_GET_ITEM(substrings, i),
                                     start, end, direction);
#else
        PyObject* sub = PySequence_ITEM(substrings, i);
        if (unlikely(!sub)) return -1;
        result = PyUnicode_Tailmatch(s, sub, start, end, direction);
        Py_DECREF(sub);
#endif
        if (result) {
            return (int) result;
        }
    }
    return 0;
}
static int __Pyx_PyUnicode_Tailmatch(PyObject* s, PyObject* substr,
                                     Py_ssize_t start, Py_ssize_t end, int direction) {
    if (unlikely(PyTuple_Check(substr))) {
        return __Pyx_PyUnicode_TailmatchTuple(s, substr, start, end, direction);
    }
    return (int) PyUnicode_Tailmatch(s, substr, start, end, direction);
}

/* PyUnicode_Unicode */
  static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Unicode(PyObject *obj) {
    if (unlikely(obj == Py_None))
        obj = __pyx_kp_u_None;
    return __Pyx_NewRef(obj);
}

/* PyObject_GenericGetAttrNoDict */
  #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) {
    __Pyx_TypeName type_name = __Pyx_PyType_GetName(tp);
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'",
                 type_name, attr_name);
#else
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'",
                 type_name, PyString_AS_STRING(attr_name));
#endif
    __Pyx_DECREF_TypeName(type_name);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) {
    PyObject *descr;
    PyTypeObject *tp = Py_TYPE(obj);
    if (unlikely(!PyString_Check(attr_name))) {
        return PyObject_GenericGetAttr(obj, attr_name);
    }
    assert(!tp->tp_dictoffset);
    descr = _PyType_Lookup(tp, attr_name);
    if (unlikely(!descr)) {
        return __Pyx_RaiseGenericGetAttributeError(tp, attr_name);
    }
    Py_INCREF(descr);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS)))
    #endif
    {
        descrgetfunc f = Py_TYPE(descr)->tp_descr_get;
        if (unlikely(f)) {
            PyObject *res = f(descr, obj, (PyObject *)tp);
            Py_DECREF(descr);
            return res;
        }
    }
    return descr;
}
#endif

/* PyObject_GenericGetAttr */
  #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) {
    if (unlikely(Py_TYPE(obj)->tp_dictoffset)) {
        return PyObject_GenericGetAttr(obj, attr_name);
    }
    return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name);
}
#endif

/* ValidateBasesTuple */
  #if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases) {
    Py_ssize_t i, n;
#if CYTHON_ASSUME_SAFE_MACROS
    n = PyTuple_GET_SIZE(bases);
#else
    n = PyTuple_Size(bases);
    if (n < 0) return -1;
#endif
    for (i = 1; i < n; i++)
    {
#if CYTHON_AVOID_BORROWED_REFS
        PyObject *b0 = PySequence_GetItem(bases, i);
        if (!b0) return -1;
#elif CYTHON_ASSUME_SAFE_MACROS
        PyObject *b0 = PyTuple_GET_ITEM(bases, i);
#else
        PyObject *b0 = PyTuple_GetItem(bases, i);
        if (!b0) return -1;
#endif
        PyTypeObject *b;
#if PY_MAJOR_VERSION < 3
        if (PyClass_Check(b0))
        {
            PyErr_Format(PyExc_TypeError, "base class '%.200s' is an old-style class",
                         PyString_AS_STRING(((PyClassObject*)b0)->cl_name));
#if CYTHON_AVOID_BORROWED_REFS
            Py_DECREF(b0);
#endif
            return -1;
        }
#endif
        b = (PyTypeObject*) b0;
        if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE))
        {
            __Pyx_TypeName b_name = __Pyx_PyType_GetName(b);
            PyErr_Format(PyExc_TypeError,
                "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b_name);
            __Pyx_DECREF_TypeName(b_name);
#if CYTHON_AVOID_BORROWED_REFS
            Py_DECREF(b0);
#endif
            return -1;
        }
        if (dictoffset == 0)
        {
            Py_ssize_t b_dictoffset = 0;
#if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
            b_dictoffset = b->tp_dictoffset;
#else
            PyObject *py_b_dictoffset = PyObject_GetAttrString((PyObject*)b, "__dictoffset__");
            if (!py_b_dictoffset) goto dictoffset_return;
            b_dictoffset = PyLong_AsSsize_t(py_b_dictoffset);
            Py_DECREF(py_b_dictoffset);
            if (b_dictoffset == -1 && PyErr_Occurred()) goto dictoffset_return;
#endif
            if (b_dictoffset) {
                {
                    __Pyx_TypeName b_name = __Pyx_PyType_GetName(b);
                    PyErr_Format(PyExc_TypeError,
                        "extension type '%.200s' has no __dict__ slot, "
                        "but base type '" __Pyx_FMT_TYPENAME "' has: "
                        "either add 'cdef dict __dict__' to the extension type "
                        "or add '__slots__ = [...]' to the base type",
                        type_name, b_name);
                    __Pyx_DECREF_TypeName(b_name);
                }
#if !(CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY)
              dictoffset_return:
#endif
#if CYTHON_AVOID_BORROWED_REFS
                Py_DECREF(b0);
#endif
                return -1;
            }
        }
#if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(b0);
#endif
    }
    return 0;
}
#endif

/* PyType_Ready */
  static int __Pyx_PyType_Ready(PyTypeObject *t) {
#if CYTHON_USE_TYPE_SPECS || !(CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API) || defined(PYSTON_MAJOR_VERSION)
    (void)__Pyx_PyObject_CallMethod0;
#if CYTHON_USE_TYPE_SPECS
    (void)__Pyx_validate_bases_tuple;
#endif
    return PyType_Ready(t);
#else
    int r;
    PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
    if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset, bases) == -1))
        return -1;
#if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION)
    {
        int gc_was_enabled;
    #if PY_VERSION_HEX >= 0x030A00b1
        gc_was_enabled = PyGC_Disable();
        (void)__Pyx_PyObject_CallMethod0;
    #else
        PyObject *ret, *py_status;
        PyObject *gc = NULL;
        #if PY_VERSION_HEX >= 0x030700a1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400)
        gc = PyImport_GetModule(__pyx_kp_u_gc);
        #endif
        if (unlikely(!gc)) gc = PyImport_Import(__pyx_kp_u_gc);
        if (unlikely(!gc)) return -1;
        py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_isenabled);
        if (unlikely(!py_status)) {
            Py_DECREF(gc);
            return -1;
        }
        gc_was_enabled = __Pyx_PyObject_IsTrue(py_status);
        Py_DECREF(py_status);
        if (gc_was_enabled > 0) {
            ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_disable);
            if (unlikely(!ret)) {
                Py_DECREF(gc);
                return -1;
            }
            Py_DECREF(ret);
        } else if (unlikely(gc_was_enabled == -1)) {
            Py_DECREF(gc);
            return -1;
        }
    #endif
        t->tp_flags |= Py_TPFLAGS_HEAPTYPE;
#if PY_VERSION_HEX >= 0x030A0000
        t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE;
#endif
#else
        (void)__Pyx_PyObject_CallMethod0;
#endif
    r = PyType_Ready(t);
#if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION)
        t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE;
    #if PY_VERSION_HEX >= 0x030A00b1
        if (gc_was_enabled)
            PyGC_Enable();
    #else
        if (gc_was_enabled) {
            PyObject *tp, *v, *tb;
            PyErr_Fetch(&tp, &v, &tb);
            ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_enable);
            if (likely(ret || r == -1)) {
                Py_XDECREF(ret);
                PyErr_Restore(tp, v, tb);
            } else {
                Py_XDECREF(tp);
                Py_XDECREF(v);
                Py_XDECREF(tb);
                r = -1;
            }
        }
        Py_DECREF(gc);
    #endif
    }
#endif
    return r;
#endif
}

/* SetVTable */
  static int __Pyx_SetVtable(PyTypeObject *type, void *vtable) {
    PyObject *ob = PyCapsule_New(vtable, 0, 0);
    if (unlikely(!ob))
        goto bad;
#if CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(PyObject_SetAttr((PyObject *) type, __pyx_n_s_pyx_vtable, ob) < 0))
#else
    if (unlikely(PyDict_SetItem(type->tp_dict, __pyx_n_s_pyx_vtable, ob) < 0))
#endif
        goto bad;
    Py_DECREF(ob);
    return 0;
bad:
    Py_XDECREF(ob);
    return -1;
}

/* GetVTable */
  static void* __Pyx_GetVtable(PyTypeObject *type) {
    void* ptr;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *ob = PyObject_GetAttr((PyObject *)type, __pyx_n_s_pyx_vtable);
#else
    PyObject *ob = PyObject_GetItem(type->tp_dict, __pyx_n_s_pyx_vtable);
#endif
    if (!ob)
        goto bad;
    ptr = PyCapsule_GetPointer(ob, 0);
    if (!ptr && !PyErr_Occurred())
        PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type");
    Py_DECREF(ob);
    return ptr;
bad:
    Py_XDECREF(ob);
    return NULL;
}

/* MergeVTables */
  #if !CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_MergeVtables(PyTypeObject *type) {
    int i;
    void** base_vtables;
    __Pyx_TypeName tp_base_name;
    __Pyx_TypeName base_name;
    void* unknown = (void*)-1;
    PyObject* bases = type->tp_bases;
    int base_depth = 0;
    {
        PyTypeObject* base = type->tp_base;
        while (base) {
            base_depth += 1;
            base = base->tp_base;
        }
    }
    base_vtables = (void**) malloc(sizeof(void*) * (size_t)(base_depth + 1));
    base_vtables[0] = unknown;
    for (i = 1; i < PyTuple_GET_SIZE(bases); i++) {
        void* base_vtable = __Pyx_GetVtable(((PyTypeObject*)PyTuple_GET_ITEM(bases, i)));
        if (base_vtable != NULL) {
            int j;
            PyTypeObject* base = type->tp_base;
            for (j = 0; j < base_depth; j++) {
                if (base_vtables[j] == unknown) {
                    base_vtables[j] = __Pyx_GetVtable(base);
                    base_vtables[j + 1] = unknown;
                }
                if (base_vtables[j] == base_vtable) {
                    break;
                } else if (base_vtables[j] == NULL) {
                    goto bad;
                }
                base = base->tp_base;
            }
        }
    }
    PyErr_Clear();
    free(base_vtables);
    return 0;
bad:
    tp_base_name = __Pyx_PyType_GetName(type->tp_base);
    base_name = __Pyx_PyType_GetName((PyTypeObject*)PyTuple_GET_ITEM(bases, i));
    PyErr_Format(PyExc_TypeError,
        "multiple bases have vtable conflict: '" __Pyx_FMT_TYPENAME "' and '" __Pyx_FMT_TYPENAME "'", tp_base_name, base_name);
    __Pyx_DECREF_TypeName(tp_base_name);
    __Pyx_DECREF_TypeName(base_name);
    free(base_vtables);
    return -1;
}
#endif

/* SetupReduce */
  #if !CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
  int ret;
  PyObject *name_attr;
  name_attr = __Pyx_PyObject_GetAttrStrNoError(meth, __pyx_n_s_name_2);
  if (likely(name_attr)) {
      ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
  } else {
      ret = -1;
  }
  if (unlikely(ret < 0)) {
      PyErr_Clear();
      ret = 0;
  }
  Py_XDECREF(name_attr);
  return ret;
}
static int __Pyx_setup_reduce(PyObject* type_obj) {
    int ret = 0;
    PyObject *object_reduce = NULL;
    PyObject *object_getstate = NULL;
    PyObject *object_reduce_ex = NULL;
    PyObject *reduce = NULL;
    PyObject *reduce_ex = NULL;
    PyObject *reduce_cython = NULL;
    PyObject *setstate = NULL;
    PyObject *setstate_cython = NULL;
    PyObject *getstate = NULL;
#if CYTHON_USE_PYTYPE_LOOKUP
    getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate);
#else
    getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_getstate);
    if (!getstate && PyErr_Occurred()) {
        goto __PYX_BAD;
    }
#endif
    if (getstate) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_getstate);
#else
        object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_n_s_getstate);
        if (!object_getstate && PyErr_Occurred()) {
            goto __PYX_BAD;
        }
#endif
        if (object_getstate != getstate) {
            goto __PYX_GOOD;
        }
    }
#if CYTHON_USE_PYTYPE_LOOKUP
    object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#else
    object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#endif
    reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
    if (reduce_ex == object_reduce_ex) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
#else
        object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
#endif
        reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
        if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
            reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython);
            if (likely(reduce_cython)) {
                ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
            } else if (reduce == object_reduce || PyErr_Occurred()) {
                goto __PYX_BAD;
            }
            setstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate);
            if (!setstate) PyErr_Clear();
            if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) {
                setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython);
                if (likely(setstate_cython)) {
                    ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                    ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                } else if (!setstate || PyErr_Occurred()) {
                    goto __PYX_BAD;
                }
            }
            PyType_Modified((PyTypeObject*)type_obj);
        }
    }
    goto __PYX_GOOD;
__PYX_BAD:
    if (!PyErr_Occurred()) {
        __Pyx_TypeName type_obj_name =
            __Pyx_PyType_GetName((PyTypeObject*)type_obj);
        PyErr_Format(PyExc_RuntimeError,
            "Unable to initialize pickling for " __Pyx_FMT_TYPENAME, type_obj_name);
        __Pyx_DECREF_TypeName(type_obj_name);
    }
    ret = -1;
__PYX_GOOD:
#if !CYTHON_USE_PYTYPE_LOOKUP
    Py_XDECREF(object_reduce);
    Py_XDECREF(object_reduce_ex);
    Py_XDECREF(object_getstate);
    Py_XDECREF(getstate);
#endif
    Py_XDECREF(reduce);
    Py_XDECREF(reduce_ex);
    Py_XDECREF(reduce_cython);
    Py_XDECREF(setstate);
    Py_XDECREF(setstate_cython);
    return ret;
}
#endif

/* TypeImport */
  #ifndef __PYX_HAVE_RT_ImportType_3_0_8
#define __PYX_HAVE_RT_ImportType_3_0_8
static PyTypeObject *__Pyx_ImportType_3_0_8(PyObject *module, const char *module_name, const char *class_name,
    size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_8 check_size)
{
    PyObject *result = 0;
    char warning[200];
    Py_ssize_t basicsize;
    Py_ssize_t itemsize;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_basicsize;
    PyObject *py_itemsize;
#endif
    result = PyObject_GetAttrString(module, class_name);
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s.%.200s is not a type object",
            module_name, class_name);
        goto bad;
    }
#if !CYTHON_COMPILING_IN_LIMITED_API
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
    itemsize = ((PyTypeObject *)result)->tp_itemsize;
#else
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
    if (!py_basicsize)
        goto bad;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = 0;
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
    py_itemsize = PyObject_GetAttrString(result, "__itemsize__");
    if (!py_itemsize)
        goto bad;
    itemsize = PyLong_AsSsize_t(py_itemsize);
    Py_DECREF(py_itemsize);
    py_itemsize = 0;
    if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
#endif
    if (itemsize) {
        if (size % alignment) {
            alignment = size % alignment;
        }
        if (itemsize < (Py_ssize_t)alignment)
            itemsize = (Py_ssize_t)alignment;
    }
    if ((size_t)(basicsize + itemsize) < size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize+itemsize);
        goto bad;
    }
    if (check_size == __Pyx_ImportType_CheckSize_Error_3_0_8 &&
            ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd-%zd from PyObject",
            module_name, class_name, size, basicsize, basicsize+itemsize);
        goto bad;
    }
    else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_0_8 && (size_t)basicsize > size) {
        PyOS_snprintf(warning, sizeof(warning),
            "%s.%s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(result);
    return NULL;
}
#endif

/* CalculateMetaclass */
  static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
    Py_ssize_t i, nbases;
#if CYTHON_ASSUME_SAFE_MACROS
    nbases = PyTuple_GET_SIZE(bases);
#else
    nbases = PyTuple_Size(bases);
    if (nbases < 0) return NULL;
#endif
    for (i=0; i < nbases; i++) {
        PyTypeObject *tmptype;
#if CYTHON_ASSUME_SAFE_MACROS
        PyObject *tmp = PyTuple_GET_ITEM(bases, i);
#else
        PyObject *tmp = PyTuple_GetItem(bases, i);
        if (!tmp) return NULL;
#endif
        tmptype = Py_TYPE(tmp);
#if PY_MAJOR_VERSION < 3
        if (tmptype == &PyClass_Type)
            continue;
#endif
        if (!metaclass) {
            metaclass = tmptype;
            continue;
        }
        if (PyType_IsSubtype(metaclass, tmptype))
            continue;
        if (PyType_IsSubtype(tmptype, metaclass)) {
            metaclass = tmptype;
            continue;
        }
        PyErr_SetString(PyExc_TypeError,
                        "metaclass conflict: "
                        "the metaclass of a derived class "
                        "must be a (non-strict) subclass "
                        "of the metaclasses of all its bases");
        return NULL;
    }
    if (!metaclass) {
#if PY_MAJOR_VERSION < 3
        metaclass = &PyClass_Type;
#else
        metaclass = &PyType_Type;
#endif
    }
    Py_INCREF((PyObject*) metaclass);
    return (PyObject*) metaclass;
}

/* Py3ClassCreate */
  static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
                                           PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
    PyObject *ns;
    if (metaclass) {
        PyObject *prep = __Pyx_PyObject_GetAttrStrNoError(metaclass, __pyx_n_s_prepare);
        if (prep) {
            PyObject *pargs[3] = {NULL, name, bases};
            ns = __Pyx_PyObject_FastCallDict(prep, pargs+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw);
            Py_DECREF(prep);
        } else {
            if (unlikely(PyErr_Occurred()))
                return NULL;
            ns = PyDict_New();
        }
    } else {
        ns = PyDict_New();
    }
    if (unlikely(!ns))
        return NULL;
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module, modname) < 0)) goto bad;
#if PY_VERSION_HEX >= 0x03030000
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad;
#else
    CYTHON_MAYBE_UNUSED_VAR(qualname);
#endif
    if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad;
    return ns;
bad:
    Py_DECREF(ns);
    return NULL;
}
#if PY_VERSION_HEX < 0x030600A4 && CYTHON_PEP487_INIT_SUBCLASS
static int __Pyx_SetNamesPEP487(PyObject *type_obj) {
    PyTypeObject *type = (PyTypeObject*) type_obj;
    PyObject *names_to_set, *key, *value, *set_name, *tmp;
    Py_ssize_t i = 0;
#if CYTHON_USE_TYPE_SLOTS
    names_to_set = PyDict_Copy(type->tp_dict);
#else
    {
        PyObject *d = PyObject_GetAttr(type_obj, __pyx_n_s_dict);
        names_to_set = NULL;
        if (likely(d)) {
            PyObject *names_to_set = PyDict_New();
            int ret = likely(names_to_set) ? PyDict_Update(names_to_set, d) : -1;
            Py_DECREF(d);
            if (unlikely(ret < 0))
                Py_CLEAR(names_to_set);
        }
    }
#endif
    if (unlikely(names_to_set == NULL))
        goto bad;
    while (PyDict_Next(names_to_set, &i, &key, &value)) {
        set_name = __Pyx_PyObject_LookupSpecialNoError(value, __pyx_n_s_set_name);
        if (unlikely(set_name != NULL)) {
            tmp = __Pyx_PyObject_Call2Args(set_name, type_obj, key);
            Py_DECREF(set_name);
            if (unlikely(tmp == NULL)) {
                __Pyx_TypeName value_type_name =
                    __Pyx_PyType_GetName(Py_TYPE(value));
                __Pyx_TypeName type_name = __Pyx_PyType_GetName(type);
                PyErr_Format(PyExc_RuntimeError,
#if PY_MAJOR_VERSION >= 3
                    "Error calling __set_name__ on '" __Pyx_FMT_TYPENAME "' instance %R " "in '" __Pyx_FMT_TYPENAME "'",
                    value_type_name, key, type_name);
#else
                    "Error calling __set_name__ on '" __Pyx_FMT_TYPENAME "' instance %.100s in '" __Pyx_FMT_TYPENAME "'",
                    value_type_name,
                    PyString_Check(key) ? PyString_AS_STRING(key) : "?",
                    type_name);
#endif
                goto bad;
            } else {
                Py_DECREF(tmp);
            }
        }
        else if (unlikely(PyErr_Occurred())) {
            goto bad;
        }
    }
    Py_DECREF(names_to_set);
    return 0;
bad:
    Py_XDECREF(names_to_set);
    return -1;
}
static PyObject *__Pyx_InitSubclassPEP487(PyObject *type_obj, PyObject *mkw) {
#if CYTHON_USE_TYPE_SLOTS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    PyTypeObject *type = (PyTypeObject*) type_obj;
    PyObject *mro = type->tp_mro;
    Py_ssize_t i, nbases;
    if (unlikely(!mro)) goto done;
    (void) &__Pyx_GetBuiltinName;
    Py_INCREF(mro);
    nbases = PyTuple_GET_SIZE(mro);
    assert(PyTuple_GET_ITEM(mro, 0) == type_obj);
    for (i = 1; i < nbases-1; i++) {
        PyObject *base, *dict, *meth;
        base = PyTuple_GET_ITEM(mro, i);
        dict = ((PyTypeObject *)base)->tp_dict;
        meth = __Pyx_PyDict_GetItemStrWithError(dict, __pyx_n_s_init_subclass);
        if (unlikely(meth)) {
            descrgetfunc f = Py_TYPE(meth)->tp_descr_get;
            PyObject *res;
            Py_INCREF(meth);
            if (likely(f)) {
                res = f(meth, NULL, type_obj);
                Py_DECREF(meth);
                if (unlikely(!res)) goto bad;
                meth = res;
            }
            res = __Pyx_PyObject_FastCallDict(meth, NULL, 0, mkw);
            Py_DECREF(meth);
            if (unlikely(!res)) goto bad;
            Py_DECREF(res);
            goto done;
        } else if (unlikely(PyErr_Occurred())) {
            goto bad;
        }
    }
done:
    Py_XDECREF(mro);
    return type_obj;
bad:
    Py_XDECREF(mro);
    Py_DECREF(type_obj);
    return NULL;
#else
    PyObject *super_type, *super, *func, *res;
#if CYTHON_COMPILING_IN_PYPY && !defined(PySuper_Type)
    super_type = __Pyx_GetBuiltinName(__pyx_n_s_super);
#else
    super_type = (PyObject*) &PySuper_Type;
    (void) &__Pyx_GetBuiltinName;
#endif
    super = likely(super_type) ? __Pyx_PyObject_Call2Args(super_type, type_obj, type_obj) : NULL;
#if CYTHON_COMPILING_IN_PYPY && !defined(PySuper_Type)
    Py_XDECREF(super_type);
#endif
    if (unlikely(!super)) {
        Py_CLEAR(type_obj);
        goto done;
    }
    func = __Pyx_PyObject_GetAttrStrNoError(super, __pyx_n_s_init_subclass);
    Py_DECREF(super);
    if (likely(!func)) {
        if (unlikely(PyErr_Occurred()))
            Py_CLEAR(type_obj);
        goto done;
    }
    res = __Pyx_PyObject_FastCallDict(func, NULL, 0, mkw);
    Py_DECREF(func);
    if (unlikely(!res))
        Py_CLEAR(type_obj);
    Py_XDECREF(res);
done:
    return type_obj;
#endif
}
#endif
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
                                      PyObject *dict, PyObject *mkw,
                                      int calculate_metaclass, int allow_py2_metaclass) {
    PyObject *result;
    PyObject *owned_metaclass = NULL;
    PyObject *margs[4] = {NULL, name, bases, dict};
    if (allow_py2_metaclass) {
        owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass);
        if (owned_metaclass) {
            metaclass = owned_metaclass;
        } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {
            PyErr_Clear();
        } else {
            return NULL;
        }
    }
    if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {
        metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
        Py_XDECREF(owned_metaclass);
        if (unlikely(!metaclass))
            return NULL;
        owned_metaclass = metaclass;
    }
    result = __Pyx_PyObject_FastCallDict(metaclass, margs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET,
#if PY_VERSION_HEX < 0x030600A4
        (metaclass == (PyObject*)&PyType_Type) ? NULL : mkw
#else
        mkw
#endif
    );
    Py_XDECREF(owned_metaclass);
#if PY_VERSION_HEX < 0x030600A4 && CYTHON_PEP487_INIT_SUBCLASS
    if (likely(result) && likely(PyType_Check(result))) {
        if (unlikely(__Pyx_SetNamesPEP487(result) < 0)) {
            Py_CLEAR(result);
        } else {
            result = __Pyx_InitSubclassPEP487(result, mkw);
        }
    }
#else
    (void) &__Pyx_GetBuiltinName;
#endif
    return result;
}

/* Py3UpdateBases */
  static PyObject*
__Pyx_PEP560_update_bases(PyObject *bases)
{
    Py_ssize_t i, j, size_bases;
    PyObject *base, *meth, *new_base, *result, *new_bases = NULL;
    size_bases = PyTuple_GET_SIZE(bases);
    for (i = 0; i < size_bases; i++) {
        base  = PyTuple_GET_ITEM(bases, i);
        if (PyType_Check(base)) {
            if (new_bases) {
                if (PyList_Append(new_bases, base) < 0) {
                    goto error;
                }
            }
            continue;
        }
        meth = __Pyx_PyObject_GetAttrStrNoError(base, __pyx_n_s_mro_entries);
        if (!meth && PyErr_Occurred()) {
            goto error;
        }
        if (!meth) {
            if (new_bases) {
                if (PyList_Append(new_bases, base) < 0) {
                    goto error;
                }
            }
            continue;
        }
        new_base = __Pyx_PyObject_CallOneArg(meth, bases);
        Py_DECREF(meth);
        if (!new_base) {
            goto error;
        }
        if (!PyTuple_Check(new_base)) {
            PyErr_SetString(PyExc_TypeError,
                            "__mro_entries__ must return a tuple");
            Py_DECREF(new_base);
            goto error;
        }
        if (!new_bases) {
            if (!(new_bases = PyList_New(i))) {
                goto error;
            }
            for (j = 0; j < i; j++) {
                base = PyTuple_GET_ITEM(bases, j);
                PyList_SET_ITEM(new_bases, j, base);
                Py_INCREF(base);
            }
        }
        j = PyList_GET_SIZE(new_bases);
        if (PyList_SetSlice(new_bases, j, j, new_base) < 0) {
            goto error;
        }
        Py_DECREF(new_base);
    }
    if (!new_bases) {
        Py_INCREF(bases);
        return bases;
    }
    result = PyList_AsTuple(new_bases);
    Py_DECREF(new_bases);
    return result;
error:
    Py_XDECREF(new_bases);
    return NULL;
}

/* CyFunctionClassCell */
  static int __Pyx_CyFunction_InitClassCell(PyObject *cyfunctions, PyObject *classobj) {
    Py_ssize_t i, count = PyList_GET_SIZE(cyfunctions);
    for (i = 0; i < count; i++) {
        __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *)
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            PyList_GET_ITEM(cyfunctions, i);
#else
            PySequence_ITEM(cyfunctions, i);
        if (unlikely(!m))
            return -1;
#endif
        __Pyx_CyFunction_SetClassObj(m, classobj);
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
        Py_DECREF((PyObject*)m);
#endif
    }
    return 0;
}

/* CLineInTraceback */
  #ifndef CYTHON_CLINE_IN_TRACEBACK
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) {
    PyObject *use_cline;
    PyObject *ptype, *pvalue, *ptraceback;
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject **cython_runtime_dict;
#endif
    CYTHON_MAYBE_UNUSED_VAR(tstate);
    if (unlikely(!__pyx_cython_runtime)) {
        return c_line;
    }
    __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
#if CYTHON_COMPILING_IN_CPYTHON
    cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
    if (likely(cython_runtime_dict)) {
        __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            use_cline, *cython_runtime_dict,
            __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
    } else
#endif
    {
      PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStrNoError(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
      if (use_cline_obj) {
        use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
        Py_DECREF(use_cline_obj);
      } else {
        PyErr_Clear();
        use_cline = NULL;
      }
    }
    if (!use_cline) {
        c_line = 0;
        (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
    }
    else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
        c_line = 0;
    }
    __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
    return c_line;
}
#endif

/* CodeObjectCache */
  #if !CYTHON_COMPILING_IN_LIMITED_API
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
    int start = 0, mid = 0, end = count - 1;
    if (end >= 0 && code_line > entries[end].code_line) {
        return count;
    }
    while (start < end) {
        mid = start + (end - start) / 2;
        if (code_line < entries[mid].code_line) {
            end = mid;
        } else if (code_line > entries[mid].code_line) {
             start = mid + 1;
        } else {
            return mid;
        }
    }
    if (code_line <= entries[mid].code_line) {
        return mid;
    } else {
        return mid + 1;
    }
}
static PyCodeObject *__pyx_find_code_object(int code_line) {
    PyCodeObject* code_object;
    int pos;
    if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
        return NULL;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
        return NULL;
    }
    code_object = __pyx_code_cache.entries[pos].code_object;
    Py_INCREF(code_object);
    return code_object;
}
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
    int pos, i;
    __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
    if (unlikely(!code_line)) {
        return;
    }
    if (unlikely(!entries)) {
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
        if (likely(entries)) {
            __pyx_code_cache.entries = entries;
            __pyx_code_cache.max_count = 64;
            __pyx_code_cache.count = 1;
            entries[0].code_line = code_line;
            entries[0].code_object = code_object;
            Py_INCREF(code_object);
        }
        return;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
        PyCodeObject* tmp = entries[pos].code_object;
        entries[pos].code_object = code_object;
        Py_DECREF(tmp);
        return;
    }
    if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
        int new_max = __pyx_code_cache.max_count + 64;
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
            __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
        if (unlikely(!entries)) {
            return;
        }
        __pyx_code_cache.entries = entries;
        __pyx_code_cache.max_count = new_max;
    }
    for (i=__pyx_code_cache.count; i>pos; i--) {
        entries[i] = entries[i-1];
    }
    entries[pos].code_line = code_line;
    entries[pos].code_object = code_object;
    __pyx_code_cache.count++;
    Py_INCREF(code_object);
}
#endif

/* AddTraceback */
  #include "compile.h"
#include "frameobject.h"
#include "traceback.h"
#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API
  #ifndef Py_BUILD_CORE
    #define Py_BUILD_CORE 1
  #endif
  #include "internal/pycore_frame.h"
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict,
                                                       PyObject *firstlineno, PyObject *name) {
    PyObject *replace = NULL;
    if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL;
    if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL;
    replace = PyObject_GetAttrString(code, "replace");
    if (likely(replace)) {
        PyObject *result;
        result = PyObject_Call(replace, __pyx_empty_tuple, scratch_dict);
        Py_DECREF(replace);
        return result;
    }
    PyErr_Clear();
    #if __PYX_LIMITED_VERSION_HEX < 0x030780000
    {
        PyObject *compiled = NULL, *result = NULL;
        if (unlikely(PyDict_SetItemString(scratch_dict, "code", code))) return NULL;
        if (unlikely(PyDict_SetItemString(scratch_dict, "type", (PyObject*)(&PyType_Type)))) return NULL;
        compiled = Py_CompileString(
            "out = type(code)(\n"
            "  code.co_argcount, code.co_kwonlyargcount, code.co_nlocals, code.co_stacksize,\n"
            "  code.co_flags, code.co_code, code.co_consts, code.co_names,\n"
            "  code.co_varnames, code.co_filename, co_name, co_firstlineno,\n"
            "  code.co_lnotab)\n", "<dummy>", Py_file_input);
        if (!compiled) return NULL;
        result = PyEval_EvalCode(compiled, scratch_dict, scratch_dict);
        Py_DECREF(compiled);
        if (!result) PyErr_Print();
        Py_DECREF(result);
        result = PyDict_GetItemString(scratch_dict, "out");
        if (result) Py_INCREF(result);
        return result;
    }
    #else
    return NULL;
    #endif
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL;
    PyObject *replace = NULL, *getframe = NULL, *frame = NULL;
    PyObject *exc_type, *exc_value, *exc_traceback;
    int success = 0;
    if (c_line) {
        (void) __pyx_cfilenm;
        (void) __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line);
    }
    PyErr_Fetch(&exc_type, &exc_value, &exc_traceback);
    code_object = Py_CompileString("_getframe()", filename, Py_eval_input);
    if (unlikely(!code_object)) goto bad;
    py_py_line = PyLong_FromLong(py_line);
    if (unlikely(!py_py_line)) goto bad;
    py_funcname = PyUnicode_FromString(funcname);
    if (unlikely(!py_funcname)) goto bad;
    dict = PyDict_New();
    if (unlikely(!dict)) goto bad;
    {
        PyObject *old_code_object = code_object;
        code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname);
        Py_DECREF(old_code_object);
    }
    if (unlikely(!code_object)) goto bad;
    getframe = PySys_GetObject("_getframe");
    if (unlikely(!getframe)) goto bad;
    if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad;
    frame = PyEval_EvalCode(code_object, dict, dict);
    if (unlikely(!frame) || frame == Py_None) goto bad;
    success = 1;
  bad:
    PyErr_Restore(exc_type, exc_value, exc_traceback);
    Py_XDECREF(code_object);
    Py_XDECREF(py_py_line);
    Py_XDECREF(py_funcname);
    Py_XDECREF(dict);
    Py_XDECREF(replace);
    if (success) {
        PyTraceBack_Here(
            (struct _frame*)frame);
    }
    Py_XDECREF(frame);
}
#else
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
            const char *funcname, int c_line,
            int py_line, const char *filename) {
    PyCodeObject *py_code = NULL;
    PyObject *py_funcname = NULL;
    #if PY_MAJOR_VERSION < 3
    PyObject *py_srcfile = NULL;
    py_srcfile = PyString_FromString(filename);
    if (!py_srcfile) goto bad;
    #endif
    if (c_line) {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        if (!py_funcname) goto bad;
        #else
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        if (!py_funcname) goto bad;
        funcname = PyUnicode_AsUTF8(py_funcname);
        if (!funcname) goto bad;
        #endif
    }
    else {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromString(funcname);
        if (!py_funcname) goto bad;
        #endif
    }
    #if PY_MAJOR_VERSION < 3
    py_code = __Pyx_PyCode_New(
        0,
        0,
        0,
        0,
        0,
        0,
        __pyx_empty_bytes, /*PyObject *code,*/
        __pyx_empty_tuple, /*PyObject *consts,*/
        __pyx_empty_tuple, /*PyObject *names,*/
        __pyx_empty_tuple, /*PyObject *varnames,*/
        __pyx_empty_tuple, /*PyObject *freevars,*/
        __pyx_empty_tuple, /*PyObject *cellvars,*/
        py_srcfile,   /*PyObject *filename,*/
        py_funcname,  /*PyObject *name,*/
        py_line,
        __pyx_empty_bytes  /*PyObject *lnotab*/
    );
    Py_DECREF(py_srcfile);
    #else
    py_code = PyCode_NewEmpty(filename, funcname, py_line);
    #endif
    Py_XDECREF(py_funcname);
    return py_code;
bad:
    Py_XDECREF(py_funcname);
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(py_srcfile);
    #endif
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject *ptype, *pvalue, *ptraceback;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(tstate, c_line);
    }
    py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!py_code) {
        __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) {
            /* If the code object creation fails, then we should clear the
               fetched exception references and propagate the new exception */
            Py_XDECREF(ptype);
            Py_XDECREF(pvalue);
            Py_XDECREF(ptraceback);
            goto bad;
        }
        __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
        __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        tstate,            /*PyThreadState *tstate,*/
        py_code,           /*PyCodeObject *code,*/
        __pyx_d,    /*PyObject *globals,*/
        0                  /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}
#endif

#if PY_MAJOR_VERSION < 3
static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) {
    __Pyx_TypeName obj_type_name;
    if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags);
        if (__Pyx_TypeCheck(obj, __pyx_array_type)) return __pyx_array_getbuffer(obj, view, flags);
        if (__Pyx_TypeCheck(obj, __pyx_memoryview_type)) return __pyx_memoryview_getbuffer(obj, view, flags);
    obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
                 "'" __Pyx_FMT_TYPENAME "' does not have the buffer interface",
                 obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return -1;
}
static void __Pyx_ReleaseBuffer(Py_buffer *view) {
    PyObject *obj = view->obj;
    if (!obj) return;
    if (PyObject_CheckBuffer(obj)) {
        PyBuffer_Release(view);
        return;
    }
    if ((0)) {}
    view->obj = NULL;
    Py_DECREF(obj);
}
#endif


  /* MemviewSliceIsContig */
  static int
__pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim)
{
    int i, index, step, start;
    Py_ssize_t itemsize = mvs.memview->view.itemsize;
    if (order == 'F') {
        step = 1;
        start = 0;
    } else {
        step = -1;
        start = ndim - 1;
    }
    for (i = 0; i < ndim; i++) {
        index = start + step * i;
        if (mvs.suboffsets[index] >= 0 || mvs.strides[index] != itemsize)
            return 0;
        itemsize *= mvs.shape[index];
    }
    return 1;
}

/* OverlappingSlices */
  static void
__pyx_get_array_memory_extents(__Pyx_memviewslice *slice,
                               void **out_start, void **out_end,
                               int ndim, size_t itemsize)
{
    char *start, *end;
    int i;
    start = end = slice->data;
    for (i = 0; i < ndim; i++) {
        Py_ssize_t stride = slice->strides[i];
        Py_ssize_t extent = slice->shape[i];
        if (extent == 0) {
            *out_start = *out_end = start;
            return;
        } else {
            if (stride > 0)
                end += stride * (extent - 1);
            else
                start += stride * (extent - 1);
        }
    }
    *out_start = start;
    *out_end = end + itemsize;
}
static int
__pyx_slices_overlap(__Pyx_memviewslice *slice1,
                     __Pyx_memviewslice *slice2,
                     int ndim, size_t itemsize)
{
    void *start1, *end1, *start2, *end2;
    __pyx_get_array_memory_extents(slice1, &start1, &end1, ndim, itemsize);
    __pyx_get_array_memory_extents(slice2, &start2, &end2, ndim, itemsize);
    return (start1 < end2) && (start2 < end1);
}

/* CIntFromPyVerify */
  #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
    {\
        func_type value = func_value;\
        if (sizeof(target_type) < sizeof(func_type)) {\
            if (unlikely(value != (func_type) (target_type) value)) {\
                func_type zero = 0;\
                if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
                    return (target_type) -1;\
                if (is_unsigned && unlikely(value < zero))\
                    goto raise_neg_overflow;\
                else\
                    goto raise_overflow;\
            }\
        }\
        return (target_type) value;\
    }

/* TypeInfoCompare */
  static int
__pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b)
{
    int i;
    if (!a || !b)
        return 0;
    if (a == b)
        return 1;
    if (a->size != b->size || a->typegroup != b->typegroup ||
            a->is_unsigned != b->is_unsigned || a->ndim != b->ndim) {
        if (a->typegroup == 'H' || b->typegroup == 'H') {
            return a->size == b->size;
        } else {
            return 0;
        }
    }
    if (a->ndim) {
        for (i = 0; i < a->ndim; i++)
            if (a->arraysize[i] != b->arraysize[i])
                return 0;
    }
    if (a->typegroup == 'S') {
        if (a->flags != b->flags)
            return 0;
        if (a->fields || b->fields) {
            if (!(a->fields && b->fields))
                return 0;
            for (i = 0; a->fields[i].type && b->fields[i].type; i++) {
                __Pyx_StructField *field_a = a->fields + i;
                __Pyx_StructField *field_b = b->fields + i;
                if (field_a->offset != field_b->offset ||
                    !__pyx_typeinfo_cmp(field_a->type, field_b->type))
                    return 0;
            }
            return !a->fields[i].type && !b->fields[i].type;
        }
    }
    return 1;
}

/* MemviewSliceValidateAndInit */
  static int
__pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec)
{
    if (buf->shape[dim] <= 1)
        return 1;
    if (buf->strides) {
        if (spec & __Pyx_MEMVIEW_CONTIG) {
            if (spec & (__Pyx_MEMVIEW_PTR|__Pyx_MEMVIEW_FULL)) {
                if (unlikely(buf->strides[dim] != sizeof(void *))) {
                    PyErr_Format(PyExc_ValueError,
                                 "Buffer is not indirectly contiguous "
                                 "in dimension %d.", dim);
                    goto fail;
                }
            } else if (unlikely(buf->strides[dim] != buf->itemsize)) {
                PyErr_SetString(PyExc_ValueError,
                                "Buffer and memoryview are not contiguous "
                                "in the same dimension.");
                goto fail;
            }
        }
        if (spec & __Pyx_MEMVIEW_FOLLOW) {
            Py_ssize_t stride = buf->strides[dim];
            if (stride < 0)
                stride = -stride;
            if (unlikely(stride < buf->itemsize)) {
                PyErr_SetString(PyExc_ValueError,
                                "Buffer and memoryview are not contiguous "
                                "in the same dimension.");
                goto fail;
            }
        }
    } else {
        if (unlikely(spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1)) {
            PyErr_Format(PyExc_ValueError,
                         "C-contiguous buffer is not contiguous in "
                         "dimension %d", dim);
            goto fail;
        } else if (unlikely(spec & (__Pyx_MEMVIEW_PTR))) {
            PyErr_Format(PyExc_ValueError,
                         "C-contiguous buffer is not indirect in "
                         "dimension %d", dim);
            goto fail;
        } else if (unlikely(buf->suboffsets)) {
            PyErr_SetString(PyExc_ValueError,
                            "Buffer exposes suboffsets but no strides");
            goto fail;
        }
    }
    return 1;
fail:
    return 0;
}
static int
__pyx_check_suboffsets(Py_buffer *buf, int dim, int ndim, int spec)
{
    CYTHON_UNUSED_VAR(ndim);
    if (spec & __Pyx_MEMVIEW_DIRECT) {
        if (unlikely(buf->suboffsets && buf->suboffsets[dim] >= 0)) {
            PyErr_Format(PyExc_ValueError,
                         "Buffer not compatible with direct access "
                         "in dimension %d.", dim);
            goto fail;
        }
    }
    if (spec & __Pyx_MEMVIEW_PTR) {
        if (unlikely(!buf->suboffsets || (buf->suboffsets[dim] < 0))) {
            PyErr_Format(PyExc_ValueError,
                         "Buffer is not indirectly accessible "
                         "in dimension %d.", dim);
            goto fail;
        }
    }
    return 1;
fail:
    return 0;
}
static int
__pyx_verify_contig(Py_buffer *buf, int ndim, int c_or_f_flag)
{
    int i;
    if (c_or_f_flag & __Pyx_IS_F_CONTIG) {
        Py_ssize_t stride = 1;
        for (i = 0; i < ndim; i++) {
            if (unlikely(stride * buf->itemsize != buf->strides[i]  &&  buf->shape[i] > 1)) {
                PyErr_SetString(PyExc_ValueError,
                    "Buffer not fortran contiguous.");
                goto fail;
            }
            stride = stride * buf->shape[i];
        }
    } else if (c_or_f_flag & __Pyx_IS_C_CONTIG) {
        Py_ssize_t stride = 1;
        for (i = ndim - 1; i >- 1; i--) {
            if (unlikely(stride * buf->itemsize != buf->strides[i]  &&  buf->shape[i] > 1)) {
                PyErr_SetString(PyExc_ValueError,
                    "Buffer not C contiguous.");
                goto fail;
            }
            stride = stride * buf->shape[i];
        }
    }
    return 1;
fail:
    return 0;
}
static int __Pyx_ValidateAndInit_memviewslice(
                int *axes_specs,
                int c_or_f_flag,
                int buf_flags,
                int ndim,
                __Pyx_TypeInfo *dtype,
                __Pyx_BufFmt_StackElem stack[],
                __Pyx_memviewslice *memviewslice,
                PyObject *original_obj)
{
    struct __pyx_memoryview_obj *memview, *new_memview;
    __Pyx_RefNannyDeclarations
    Py_buffer *buf;
    int i, spec = 0, retval = -1;
    __Pyx_BufFmt_Context ctx;
    int from_memoryview = __pyx_memoryview_check(original_obj);
    __Pyx_RefNannySetupContext("ValidateAndInit_memviewslice", 0);
    if (from_memoryview && __pyx_typeinfo_cmp(dtype, ((struct __pyx_memoryview_obj *)
                                                            original_obj)->typeinfo)) {
        memview = (struct __pyx_memoryview_obj *) original_obj;
        new_memview = NULL;
    } else {
        memview = (struct __pyx_memoryview_obj *) __pyx_memoryview_new(
                                            original_obj, buf_flags, 0, dtype);
        new_memview = memview;
        if (unlikely(!memview))
            goto fail;
    }
    buf = &memview->view;
    if (unlikely(buf->ndim != ndim)) {
        PyErr_Format(PyExc_ValueError,
                "Buffer has wrong number of dimensions (expected %d, got %d)",
                ndim, buf->ndim);
        goto fail;
    }
    if (new_memview) {
        __Pyx_BufFmt_Init(&ctx, stack, dtype);
        if (unlikely(!__Pyx_BufFmt_CheckString(&ctx, buf->format))) goto fail;
    }
    if (unlikely((unsigned) buf->itemsize != dtype->size)) {
        PyErr_Format(PyExc_ValueError,
                     "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "u byte%s) "
                     "does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "u byte%s)",
                     buf->itemsize,
                     (buf->itemsize > 1) ? "s" : "",
                     dtype->name,
                     dtype->size,
                     (dtype->size > 1) ? "s" : "");
        goto fail;
    }
    if (buf->len > 0) {
        for (i = 0; i < ndim; i++) {
            spec = axes_specs[i];
            if (unlikely(!__pyx_check_strides(buf, i, ndim, spec)))
                goto fail;
            if (unlikely(!__pyx_check_suboffsets(buf, i, ndim, spec)))
                goto fail;
        }
        if (unlikely(buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag)))
            goto fail;
    }
    if (unlikely(__Pyx_init_memviewslice(memview, ndim, memviewslice,
                                         new_memview != NULL) == -1)) {
        goto fail;
    }
    retval = 0;
    goto no_fail;
fail:
    Py_XDECREF(new_memview);
    retval = -1;
no_fail:
    __Pyx_RefNannyFinishContext();
    return retval;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_double(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
                                                 PyBUF_RECORDS_RO | writable_flag, 1,
                                                 &__Pyx_TypeInfo_double, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_char(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
                                                 PyBUF_RECORDS_RO | writable_flag, 1,
                                                 &__Pyx_TypeInfo_char, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* MemviewDtypeToObject */
  static CYTHON_INLINE PyObject *__pyx_memview_get_char(const char *itemp) {
    return (PyObject *) __Pyx_PyInt_From_char(*(char *) itemp);
}
static CYTHON_INLINE int __pyx_memview_set_char(const char *itemp, PyObject *obj) {
    char value = __Pyx_PyInt_As_char(obj);
    if (unlikely((value == (char)-1) && PyErr_Occurred()))
        return 0;
    *(char *) itemp = value;
    return 1;
}

/* MemviewDtypeToObject */
  static CYTHON_INLINE PyObject *__pyx_memview_get_double(const char *itemp) {
    return (PyObject *) PyFloat_FromDouble(*(double *) itemp);
}
static CYTHON_INLINE int __pyx_memview_set_double(const char *itemp, PyObject *obj) {
    double value = __pyx_PyFloat_AsDouble(obj);
    if (unlikely((value == (double)-1) && PyErr_Occurred()))
        return 0;
    *(double *) itemp = value;
    return 1;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_float(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
                                                 PyBUF_RECORDS_RO | writable_flag, 1,
                                                 &__Pyx_TypeInfo_float, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* MemviewDtypeToObject */
  static CYTHON_INLINE PyObject *__pyx_memview_get_float(const char *itemp) {
    return (PyObject *) PyFloat_FromDouble(*(float *) itemp);
}
static CYTHON_INLINE int __pyx_memview_set_float(const char *itemp, PyObject *obj) {
    float value = __pyx_PyFloat_AsFloat(obj);
    if (unlikely((value == (float)-1) && PyErr_Occurred()))
        return 0;
    *(float *) itemp = value;
    return 1;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_int(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
                                                 PyBUF_RECORDS_RO | writable_flag, 1,
                                                 &__Pyx_TypeInfo_int, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* MemviewDtypeToObject */
  static CYTHON_INLINE PyObject *__pyx_memview_get_int(const char *itemp) {
    return (PyObject *) __Pyx_PyInt_From_int(*(int *) itemp);
}
static CYTHON_INLINE int __pyx_memview_set_int(const char *itemp, PyObject *obj) {
    int value = __Pyx_PyInt_As_int(obj);
    if (unlikely((value == (int)-1) && PyErr_Occurred()))
        return 0;
    *(int *) itemp = value;
    return 1;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_nn_mjtByte(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
                                                 PyBUF_RECORDS_RO | writable_flag, 1,
                                                 &__Pyx_TypeInfo_nn_mjtByte, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* MemviewDtypeToObject */
  static CYTHON_INLINE PyObject *__pyx_memview_get_nn_mjtByte(const char *itemp) {
    return (PyObject *) __Pyx_PyInt_From_mjtByte(*(mjtByte *) itemp);
}
static CYTHON_INLINE int __pyx_memview_set_nn_mjtByte(const char *itemp, PyObject *obj) {
    mjtByte value = __Pyx_PyInt_As_mjtByte(obj);
    if (unlikely((value == ((mjtByte)-1)) && PyErr_Occurred()))
        return 0;
    *(mjtByte *) itemp = value;
    return 1;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_nn_mjtNum(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
                                                 PyBUF_RECORDS_RO | writable_flag, 1,
                                                 &__Pyx_TypeInfo_nn_mjtNum, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* MemviewDtypeToObject */
  static CYTHON_INLINE PyObject *__pyx_memview_get_nn_mjtNum(const char *itemp) {
    return (PyObject *) PyFloat_FromDouble(*(mjtNum *) itemp);
}
static CYTHON_INLINE int __pyx_memview_set_nn_mjtNum(const char *itemp, PyObject *obj) {
    mjtNum value = __pyx_PyFloat_AsDouble(obj);
    if (unlikely((value == ((mjtNum)-1)) && PyErr_Occurred()))
        return 0;
    *(mjtNum *) itemp = value;
    return 1;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_unsigned_int(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
                                                 PyBUF_RECORDS_RO | writable_flag, 1,
                                                 &__Pyx_TypeInfo_unsigned_int, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* MemviewDtypeToObject */
  static CYTHON_INLINE PyObject *__pyx_memview_get_unsigned_int(const char *itemp) {
    return (PyObject *) __Pyx_PyInt_From_unsigned_int(*(unsigned int *) itemp);
}
static CYTHON_INLINE int __pyx_memview_set_unsigned_int(const char *itemp, PyObject *obj) {
    unsigned int value = __Pyx_PyInt_As_unsigned_int(obj);
    if (unlikely((value == (unsigned int)-1) && PyErr_Occurred()))
        return 0;
    *(unsigned int *) itemp = value;
    return 1;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_char(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
                                                 PyBUF_RECORDS_RO | writable_flag, 2,
                                                 &__Pyx_TypeInfo_char, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_double(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
                                                 PyBUF_RECORDS_RO | writable_flag, 2,
                                                 &__Pyx_TypeInfo_double, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_float(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
                                                 PyBUF_RECORDS_RO | writable_flag, 2,
                                                 &__Pyx_TypeInfo_float, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_int(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
                                                 PyBUF_RECORDS_RO | writable_flag, 2,
                                                 &__Pyx_TypeInfo_int, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_mjtByte(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
                                                 PyBUF_RECORDS_RO | writable_flag, 2,
                                                 &__Pyx_TypeInfo_nn_mjtByte, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_mjtNum(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
                                                 PyBUF_RECORDS_RO | writable_flag, 2,
                                                 &__Pyx_TypeInfo_nn_mjtNum, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn_mjtNum(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
                                                 (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1,
                                                 &__Pyx_TypeInfo_nn_mjtNum, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn_mjtByte(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
                                                 (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1,
                                                 &__Pyx_TypeInfo_nn_mjtByte, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_unsigned_char(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
                                                 (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1,
                                                 &__Pyx_TypeInfo_unsigned_char, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_float(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
                                                 (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1,
                                                 &__Pyx_TypeInfo_float, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* ObjectToMemviewSlice */
  static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_unsigned_short(PyObject *obj, int writable_flag) {
    __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
    __Pyx_BufFmt_StackElem stack[1];
    int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
    int retcode;
    if (obj == Py_None) {
        result.memview = (struct __pyx_memoryview_obj *) Py_None;
        return result;
    }
    retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
                                                 (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1,
                                                 &__Pyx_TypeInfo_unsigned_short, stack,
                                                 &result, obj);
    if (unlikely(retcode == -1))
        goto __pyx_fail;
    return result;
__pyx_fail:
    result.memview = NULL;
    result.data = NULL;
    return result;
}

/* Declarations */
  #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
  #ifdef __cplusplus
    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
      return ::std::complex< float >(x, y);
    }
  #else
    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
      return x + y*(__pyx_t_float_complex)_Complex_I;
    }
  #endif
#else
    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
      __pyx_t_float_complex z;
      z.real = x;
      z.imag = y;
      return z;
    }
#endif

/* Arithmetic */
  #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
#else
    static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
       return (a.real == b.real) && (a.imag == b.imag);
    }
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        __pyx_t_float_complex z;
        z.real = a.real + b.real;
        z.imag = a.imag + b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        __pyx_t_float_complex z;
        z.real = a.real - b.real;
        z.imag = a.imag - b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        __pyx_t_float_complex z;
        z.real = a.real * b.real - a.imag * b.imag;
        z.imag = a.real * b.imag + a.imag * b.real;
        return z;
    }
    #if 1
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        if (b.imag == 0) {
            return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else if (fabsf(b.real) >= fabsf(b.imag)) {
            if (b.real == 0 && b.imag == 0) {
                return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag);
            } else {
                float r = b.imag / b.real;
                float s = (float)(1.0) / (b.real + b.imag * r);
                return __pyx_t_float_complex_from_parts(
                    (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
            }
        } else {
            float r = b.real / b.imag;
            float s = (float)(1.0) / (b.imag + b.real * r);
            return __pyx_t_float_complex_from_parts(
                (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
        }
    }
    #else
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        if (b.imag == 0) {
            return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else {
            float denom = b.real * b.real + b.imag * b.imag;
            return __pyx_t_float_complex_from_parts(
                (a.real * b.real + a.imag * b.imag) / denom,
                (a.imag * b.real - a.real * b.imag) / denom);
        }
    }
    #endif
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) {
        __pyx_t_float_complex z;
        z.real = -a.real;
        z.imag = -a.imag;
        return z;
    }
    static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) {
       return (a.real == 0) && (a.imag == 0);
    }
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) {
        __pyx_t_float_complex z;
        z.real =  a.real;
        z.imag = -a.imag;
        return z;
    }
    #if 1
        static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) {
          #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
            return sqrtf(z.real*z.real + z.imag*z.imag);
          #else
            return hypotf(z.real, z.imag);
          #endif
        }
        static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
            __pyx_t_float_complex z;
            float r, lnr, theta, z_r, z_theta;
            if (b.imag == 0 && b.real == (int)b.real) {
                if (b.real < 0) {
                    float denom = a.real * a.real + a.imag * a.imag;
                    a.real = a.real / denom;
                    a.imag = -a.imag / denom;
                    b.real = -b.real;
                }
                switch ((int)b.real) {
                    case 0:
                        z.real = 1;
                        z.imag = 0;
                        return z;
                    case 1:
                        return a;
                    case 2:
                        return __Pyx_c_prod_float(a, a);
                    case 3:
                        z = __Pyx_c_prod_float(a, a);
                        return __Pyx_c_prod_float(z, a);
                    case 4:
                        z = __Pyx_c_prod_float(a, a);
                        return __Pyx_c_prod_float(z, z);
                }
            }
            if (a.imag == 0) {
                if (a.real == 0) {
                    return a;
                } else if ((b.imag == 0) && (a.real >= 0)) {
                    z.real = powf(a.real, b.real);
                    z.imag = 0;
                    return z;
                } else if (a.real > 0) {
                    r = a.real;
                    theta = 0;
                } else {
                    r = -a.real;
                    theta = atan2f(0.0, -1.0);
                }
            } else {
                r = __Pyx_c_abs_float(a);
                theta = atan2f(a.imag, a.real);
            }
            lnr = logf(r);
            z_r = expf(lnr * b.real - theta * b.imag);
            z_theta = theta * b.real + lnr * b.imag;
            z.real = z_r * cosf(z_theta);
            z.imag = z_r * sinf(z_theta);
            return z;
        }
    #endif
#endif

/* Declarations */
  #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
  #ifdef __cplusplus
    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
      return ::std::complex< double >(x, y);
    }
  #else
    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
      return x + y*(__pyx_t_double_complex)_Complex_I;
    }
  #endif
#else
    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
      __pyx_t_double_complex z;
      z.real = x;
      z.imag = y;
      return z;
    }
#endif

/* Arithmetic */
  #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
#else
    static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
       return (a.real == b.real) && (a.imag == b.imag);
    }
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        __pyx_t_double_complex z;
        z.real = a.real + b.real;
        z.imag = a.imag + b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        __pyx_t_double_complex z;
        z.real = a.real - b.real;
        z.imag = a.imag - b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        __pyx_t_double_complex z;
        z.real = a.real * b.real - a.imag * b.imag;
        z.imag = a.real * b.imag + a.imag * b.real;
        return z;
    }
    #if 1
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        if (b.imag == 0) {
            return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else if (fabs(b.real) >= fabs(b.imag)) {
            if (b.real == 0 && b.imag == 0) {
                return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
            } else {
                double r = b.imag / b.real;
                double s = (double)(1.0) / (b.real + b.imag * r);
                return __pyx_t_double_complex_from_parts(
                    (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
            }
        } else {
            double r = b.real / b.imag;
            double s = (double)(1.0) / (b.imag + b.real * r);
            return __pyx_t_double_complex_from_parts(
                (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
        }
    }
    #else
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        if (b.imag == 0) {
            return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else {
            double denom = b.real * b.real + b.imag * b.imag;
            return __pyx_t_double_complex_from_parts(
                (a.real * b.real + a.imag * b.imag) / denom,
                (a.imag * b.real - a.real * b.imag) / denom);
        }
    }
    #endif
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) {
        __pyx_t_double_complex z;
        z.real = -a.real;
        z.imag = -a.imag;
        return z;
    }
    static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) {
       return (a.real == 0) && (a.imag == 0);
    }
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) {
        __pyx_t_double_complex z;
        z.real =  a.real;
        z.imag = -a.imag;
        return z;
    }
    #if 1
        static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) {
          #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
            return sqrt(z.real*z.real + z.imag*z.imag);
          #else
            return hypot(z.real, z.imag);
          #endif
        }
        static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
            __pyx_t_double_complex z;
            double r, lnr, theta, z_r, z_theta;
            if (b.imag == 0 && b.real == (int)b.real) {
                if (b.real < 0) {
                    double denom = a.real * a.real + a.imag * a.imag;
                    a.real = a.real / denom;
                    a.imag = -a.imag / denom;
                    b.real = -b.real;
                }
                switch ((int)b.real) {
                    case 0:
                        z.real = 1;
                        z.imag = 0;
                        return z;
                    case 1:
                        return a;
                    case 2:
                        return __Pyx_c_prod_double(a, a);
                    case 3:
                        z = __Pyx_c_prod_double(a, a);
                        return __Pyx_c_prod_double(z, a);
                    case 4:
                        z = __Pyx_c_prod_double(a, a);
                        return __Pyx_c_prod_double(z, z);
                }
            }
            if (a.imag == 0) {
                if (a.real == 0) {
                    return a;
                } else if ((b.imag == 0) && (a.real >= 0)) {
                    z.real = pow(a.real, b.real);
                    z.imag = 0;
                    return z;
                } else if (a.real > 0) {
                    r = a.real;
                    theta = 0;
                } else {
                    r = -a.real;
                    theta = atan2(0.0, -1.0);
                }
            } else {
                r = __Pyx_c_abs_double(a);
                theta = atan2(a.imag, a.real);
            }
            lnr = log(r);
            z_r = exp(lnr * b.real - theta * b.imag);
            z_theta = theta * b.real + lnr * b.imag;
            z.real = z_r * cos(z_theta);
            z.imag = z_r * sin(z_theta);
            return z;
        }
    #endif
#endif

/* Declarations */
  #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
  #ifdef __cplusplus
    static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
      return ::std::complex< long double >(x, y);
    }
  #else
    static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
      return x + y*(__pyx_t_long_double_complex)_Complex_I;
    }
  #endif
#else
    static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
      __pyx_t_long_double_complex z;
      z.real = x;
      z.imag = y;
      return z;
    }
#endif

/* Arithmetic */
  #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
#else
    static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
       return (a.real == b.real) && (a.imag == b.imag);
    }
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
        __pyx_t_long_double_complex z;
        z.real = a.real + b.real;
        z.imag = a.imag + b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
        __pyx_t_long_double_complex z;
        z.real = a.real - b.real;
        z.imag = a.imag - b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
        __pyx_t_long_double_complex z;
        z.real = a.real * b.real - a.imag * b.imag;
        z.imag = a.real * b.imag + a.imag * b.real;
        return z;
    }
    #if 1
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
        if (b.imag == 0) {
            return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else if (fabsl(b.real) >= fabsl(b.imag)) {
            if (b.real == 0 && b.imag == 0) {
                return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
            } else {
                long double r = b.imag / b.real;
                long double s = (long double)(1.0) / (b.real + b.imag * r);
                return __pyx_t_long_double_complex_from_parts(
                    (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
            }
        } else {
            long double r = b.real / b.imag;
            long double s = (long double)(1.0) / (b.imag + b.real * r);
            return __pyx_t_long_double_complex_from_parts(
                (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
        }
    }
    #else
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
        if (b.imag == 0) {
            return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else {
            long double denom = b.real * b.real + b.imag * b.imag;
            return __pyx_t_long_double_complex_from_parts(
                (a.real * b.real + a.imag * b.imag) / denom,
                (a.imag * b.real - a.real * b.imag) / denom);
        }
    }
    #endif
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex a) {
        __pyx_t_long_double_complex z;
        z.real = -a.real;
        z.imag = -a.imag;
        return z;
    }
    static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex a) {
       return (a.real == 0) && (a.imag == 0);
    }
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex a) {
        __pyx_t_long_double_complex z;
        z.real =  a.real;
        z.imag = -a.imag;
        return z;
    }
    #if 1
        static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex z) {
          #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
            return sqrtl(z.real*z.real + z.imag*z.imag);
          #else
            return hypotl(z.real, z.imag);
          #endif
        }
        static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
            __pyx_t_long_double_complex z;
            long double r, lnr, theta, z_r, z_theta;
            if (b.imag == 0 && b.real == (int)b.real) {
                if (b.real < 0) {
                    long double denom = a.real * a.real + a.imag * a.imag;
                    a.real = a.real / denom;
                    a.imag = -a.imag / denom;
                    b.real = -b.real;
                }
                switch ((int)b.real) {
                    case 0:
                        z.real = 1;
                        z.imag = 0;
                        return z;
                    case 1:
                        return a;
                    case 2:
                        return __Pyx_c_prod_long__double(a, a);
                    case 3:
                        z = __Pyx_c_prod_long__double(a, a);
                        return __Pyx_c_prod_long__double(z, a);
                    case 4:
                        z = __Pyx_c_prod_long__double(a, a);
                        return __Pyx_c_prod_long__double(z, z);
                }
            }
            if (a.imag == 0) {
                if (a.real == 0) {
                    return a;
                } else if ((b.imag == 0) && (a.real >= 0)) {
                    z.real = powl(a.real, b.real);
                    z.imag = 0;
                    return z;
                } else if (a.real > 0) {
                    r = a.real;
                    theta = 0;
                } else {
                    r = -a.real;
                    theta = atan2l(0.0, -1.0);
                }
            } else {
                r = __Pyx_c_abs_long__double(a);
                theta = atan2l(a.imag, a.real);
            }
            lnr = logl(r);
            z_r = expl(lnr * b.real - theta * b.imag);
            z_theta = theta * b.real + lnr * b.imag;
            z.real = z_r * cosl(z_theta);
            z.imag = z_r * sinl(z_theta);
            return z;
        }
    #endif
#endif

/* MemviewSliceCopyTemplate */
  static __Pyx_memviewslice
__pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs,
                                 const char *mode, int ndim,
                                 size_t sizeof_dtype, int contig_flag,
                                 int dtype_is_object)
{
    __Pyx_RefNannyDeclarations
    int i;
    __Pyx_memviewslice new_mvs = { 0, 0, { 0 }, { 0 }, { 0 } };
    struct __pyx_memoryview_obj *from_memview = from_mvs->memview;
    Py_buffer *buf = &from_memview->view;
    PyObject *shape_tuple = NULL;
    PyObject *temp_int = NULL;
    struct __pyx_array_obj *array_obj = NULL;
    struct __pyx_memoryview_obj *memview_obj = NULL;
    __Pyx_RefNannySetupContext("__pyx_memoryview_copy_new_contig", 0);
    for (i = 0; i < ndim; i++) {
        if (unlikely(from_mvs->suboffsets[i] >= 0)) {
            PyErr_Format(PyExc_ValueError, "Cannot copy memoryview slice with "
                                           "indirect dimensions (axis %d)", i);
            goto fail;
        }
    }
    shape_tuple = PyTuple_New(ndim);
    if (unlikely(!shape_tuple)) {
        goto fail;
    }
    __Pyx_GOTREF(shape_tuple);
    for(i = 0; i < ndim; i++) {
        temp_int = PyInt_FromSsize_t(from_mvs->shape[i]);
        if(unlikely(!temp_int)) {
            goto fail;
        } else {
            PyTuple_SET_ITEM(shape_tuple, i, temp_int);
            temp_int = NULL;
        }
    }
    array_obj = __pyx_array_new(shape_tuple, sizeof_dtype, buf->format, (char *) mode, NULL);
    if (unlikely(!array_obj)) {
        goto fail;
    }
    __Pyx_GOTREF(array_obj);
    memview_obj = (struct __pyx_memoryview_obj *) __pyx_memoryview_new(
                                    (PyObject *) array_obj, contig_flag,
                                    dtype_is_object,
                                    from_mvs->memview->typeinfo);
    if (unlikely(!memview_obj))
        goto fail;
    if (unlikely(__Pyx_init_memviewslice(memview_obj, ndim, &new_mvs, 1) < 0))
        goto fail;
    if (unlikely(__pyx_memoryview_copy_contents(*from_mvs, new_mvs, ndim, ndim,
                                                dtype_is_object) < 0))
        goto fail;
    goto no_fail;
fail:
    __Pyx_XDECREF(new_mvs.memview);
    new_mvs.memview = NULL;
    new_mvs.data = NULL;
no_fail:
    __Pyx_XDECREF(shape_tuple);
    __Pyx_XDECREF(temp_int);
    __Pyx_XDECREF(array_obj);
    __Pyx_RefNannyFinishContext();
    return new_mvs;
}

/* MemviewSliceInit */
  static int
__Pyx_init_memviewslice(struct __pyx_memoryview_obj *memview,
                        int ndim,
                        __Pyx_memviewslice *memviewslice,
                        int memview_is_new_reference)
{
    __Pyx_RefNannyDeclarations
    int i, retval=-1;
    Py_buffer *buf = &memview->view;
    __Pyx_RefNannySetupContext("init_memviewslice", 0);
    if (unlikely(memviewslice->memview || memviewslice->data)) {
        PyErr_SetString(PyExc_ValueError,
            "memviewslice is already initialized!");
        goto fail;
    }
    if (buf->strides) {
        for (i = 0; i < ndim; i++) {
            memviewslice->strides[i] = buf->strides[i];
        }
    } else {
        Py_ssize_t stride = buf->itemsize;
        for (i = ndim - 1; i >= 0; i--) {
            memviewslice->strides[i] = stride;
            stride *= buf->shape[i];
        }
    }
    for (i = 0; i < ndim; i++) {
        memviewslice->shape[i]   = buf->shape[i];
        if (buf->suboffsets) {
            memviewslice->suboffsets[i] = buf->suboffsets[i];
        } else {
            memviewslice->suboffsets[i] = -1;
        }
    }
    memviewslice->memview = memview;
    memviewslice->data = (char *)buf->buf;
    if (__pyx_add_acquisition_count(memview) == 0 && !memview_is_new_reference) {
        Py_INCREF(memview);
    }
    retval = 0;
    goto no_fail;
fail:
    memviewslice->memview = 0;
    memviewslice->data = 0;
    retval = -1;
no_fail:
    __Pyx_RefNannyFinishContext();
    return retval;
}
#ifndef Py_NO_RETURN
#define Py_NO_RETURN
#endif
static void __pyx_fatalerror(const char *fmt, ...) Py_NO_RETURN {
    va_list vargs;
    char msg[200];
#if PY_VERSION_HEX >= 0x030A0000 || defined(HAVE_STDARG_PROTOTYPES)
    va_start(vargs, fmt);
#else
    va_start(vargs);
#endif
    vsnprintf(msg, 200, fmt, vargs);
    va_end(vargs);
    Py_FatalError(msg);
}
static CYTHON_INLINE int
__pyx_add_acquisition_count_locked(__pyx_atomic_int_type *acquisition_count,
                                   PyThread_type_lock lock)
{
    int result;
    PyThread_acquire_lock(lock, 1);
    result = (*acquisition_count)++;
    PyThread_release_lock(lock);
    return result;
}
static CYTHON_INLINE int
__pyx_sub_acquisition_count_locked(__pyx_atomic_int_type *acquisition_count,
                                   PyThread_type_lock lock)
{
    int result;
    PyThread_acquire_lock(lock, 1);
    result = (*acquisition_count)--;
    PyThread_release_lock(lock);
    return result;
}
static CYTHON_INLINE void
__Pyx_INC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno)
{
    __pyx_nonatomic_int_type old_acquisition_count;
    struct __pyx_memoryview_obj *memview = memslice->memview;
    if (unlikely(!memview || (PyObject *) memview == Py_None)) {
        return;
    }
    old_acquisition_count = __pyx_add_acquisition_count(memview);
    if (unlikely(old_acquisition_count <= 0)) {
        if (likely(old_acquisition_count == 0)) {
            if (have_gil) {
                Py_INCREF((PyObject *) memview);
            } else {
                PyGILState_STATE _gilstate = PyGILState_Ensure();
                Py_INCREF((PyObject *) memview);
                PyGILState_Release(_gilstate);
            }
        } else {
            __pyx_fatalerror("Acquisition count is %d (line %d)",
                             old_acquisition_count+1, lineno);
        }
    }
}
static CYTHON_INLINE void __Pyx_XCLEAR_MEMVIEW(__Pyx_memviewslice *memslice,
                                             int have_gil, int lineno) {
    __pyx_nonatomic_int_type old_acquisition_count;
    struct __pyx_memoryview_obj *memview = memslice->memview;
    if (unlikely(!memview || (PyObject *) memview == Py_None)) {
        memslice->memview = NULL;
        return;
    }
    old_acquisition_count = __pyx_sub_acquisition_count(memview);
    memslice->data = NULL;
    if (likely(old_acquisition_count > 1)) {
        memslice->memview = NULL;
    } else if (likely(old_acquisition_count == 1)) {
        if (have_gil) {
            Py_CLEAR(memslice->memview);
        } else {
            PyGILState_STATE _gilstate = PyGILState_Ensure();
            Py_CLEAR(memslice->memview);
            PyGILState_Release(_gilstate);
        }
    } else {
        __pyx_fatalerror("Acquisition count is %d (line %d)",
                         old_acquisition_count-1, lineno);
    }
}

/* CIntFromPy */
  static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(int) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            if (unlikely(__Pyx_PyLong_IsNeg(x))) {
                goto raise_neg_overflow;
            } else if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_DigitCount(x)) {
                    case 2:
                        if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
                                return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
                                return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
                                return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                            }
                        }
                        break;
                }
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (int) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if ((sizeof(int) <= sizeof(unsigned long))) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_SignedDigitCount(x)) {
                    case -2:
                        if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                                return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                            }
                        }
                        break;
                    case 2:
                        if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                                return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                            }
                        }
                        break;
                    case -3:
                        if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                                return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                                return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                            }
                        }
                        break;
                    case -4:
                        if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
                                return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
                                return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                            }
                        }
                        break;
                }
            }
#endif
            if ((sizeof(int) <= sizeof(long))) {
                __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
            int val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
#if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
#endif
            if (likely(v)) {
                int ret = -1;
#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                ret = _PyLong_AsByteArray((PyLongObject *)v,
                                           bytes, sizeof(val),
                                           is_little, !is_unsigned);
#else
                PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
                int bits, remaining_bits, is_negative = 0;
                long idigit;
                int chunk_size = (sizeof(long) < 8) ? 30 : 62;
                if (unlikely(!PyLong_CheckExact(v))) {
                    PyObject *tmp = v;
                    v = PyNumber_Long(v);
                    assert(PyLong_CheckExact(v));
                    Py_DECREF(tmp);
                    if (unlikely(!v)) return (int) -1;
                }
#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                if (Py_SIZE(x) == 0)
                    return (int) 0;
                is_negative = Py_SIZE(x) < 0;
#else
                {
                    int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                    if (unlikely(result < 0))
                        return (int) -1;
                    is_negative = result == 1;
                }
#endif
                if (is_unsigned && unlikely(is_negative)) {
                    goto raise_neg_overflow;
                } else if (is_negative) {
                    stepval = PyNumber_Invert(v);
                    if (unlikely(!stepval))
                        return (int) -1;
                } else {
                    stepval = __Pyx_NewRef(v);
                }
                val = (int) 0;
                mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
                shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
                for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {
                    PyObject *tmp, *digit;
                    digit = PyNumber_And(stepval, mask);
                    if (unlikely(!digit)) goto done;
                    idigit = PyLong_AsLong(digit);
                    Py_DECREF(digit);
                    if (unlikely(idigit < 0)) goto done;
                    tmp = PyNumber_Rshift(stepval, shift);
                    if (unlikely(!tmp)) goto done;
                    Py_DECREF(stepval); stepval = tmp;
                    val |= ((int) idigit) << bits;
                    #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                    if (Py_SIZE(stepval) == 0)
                        goto unpacking_done;
                    #endif
                }
                idigit = PyLong_AsLong(stepval);
                if (unlikely(idigit < 0)) goto done;
                remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);
                if (unlikely(idigit >= (1L << remaining_bits)))
                    goto raise_overflow;
                val |= ((int) idigit) << bits;
            #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
            unpacking_done:
            #endif
                if (!is_unsigned) {
                    if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))
                        goto raise_overflow;
                    if (is_negative)
                        val = ~val;
                }
                ret = 0;
            done:
                Py_XDECREF(shift);
                Py_XDECREF(mask);
                Py_XDECREF(stepval);
#endif
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
            return (int) -1;
        }
    } else {
        int val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (int) -1;
        val = __Pyx_PyInt_As_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int");
    return (int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int");
    return (int) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE mjtByte __Pyx_PyInt_As_mjtByte(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const mjtByte neg_one = (mjtByte) -1, const_zero = (mjtByte) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(mjtByte) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(mjtByte, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (mjtByte) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            if (unlikely(__Pyx_PyLong_IsNeg(x))) {
                goto raise_neg_overflow;
            } else if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(mjtByte, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_DigitCount(x)) {
                    case 2:
                        if ((8 * sizeof(mjtByte) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(mjtByte, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(mjtByte) >= 2 * PyLong_SHIFT)) {
                                return (mjtByte) (((((mjtByte)digits[1]) << PyLong_SHIFT) | (mjtByte)digits[0]));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(mjtByte) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(mjtByte, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(mjtByte) >= 3 * PyLong_SHIFT)) {
                                return (mjtByte) (((((((mjtByte)digits[2]) << PyLong_SHIFT) | (mjtByte)digits[1]) << PyLong_SHIFT) | (mjtByte)digits[0]));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(mjtByte) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(mjtByte, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(mjtByte) >= 4 * PyLong_SHIFT)) {
                                return (mjtByte) (((((((((mjtByte)digits[3]) << PyLong_SHIFT) | (mjtByte)digits[2]) << PyLong_SHIFT) | (mjtByte)digits[1]) << PyLong_SHIFT) | (mjtByte)digits[0]));
                            }
                        }
                        break;
                }
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (mjtByte) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if ((sizeof(mjtByte) <= sizeof(unsigned long))) {
                __PYX_VERIFY_RETURN_INT_EXC(mjtByte, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(mjtByte) <= sizeof(unsigned PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(mjtByte, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(mjtByte, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_SignedDigitCount(x)) {
                    case -2:
                        if ((8 * sizeof(mjtByte) - 1 > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(mjtByte, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(mjtByte) - 1 > 2 * PyLong_SHIFT)) {
                                return (mjtByte) (((mjtByte)-1)*(((((mjtByte)digits[1]) << PyLong_SHIFT) | (mjtByte)digits[0])));
                            }
                        }
                        break;
                    case 2:
                        if ((8 * sizeof(mjtByte) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(mjtByte, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(mjtByte) - 1 > 2 * PyLong_SHIFT)) {
                                return (mjtByte) ((((((mjtByte)digits[1]) << PyLong_SHIFT) | (mjtByte)digits[0])));
                            }
                        }
                        break;
                    case -3:
                        if ((8 * sizeof(mjtByte) - 1 > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(mjtByte, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(mjtByte) - 1 > 3 * PyLong_SHIFT)) {
                                return (mjtByte) (((mjtByte)-1)*(((((((mjtByte)digits[2]) << PyLong_SHIFT) | (mjtByte)digits[1]) << PyLong_SHIFT) | (mjtByte)digits[0])));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(mjtByte) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(mjtByte, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(mjtByte) - 1 > 3 * PyLong_SHIFT)) {
                                return (mjtByte) ((((((((mjtByte)digits[2]) << PyLong_SHIFT) | (mjtByte)digits[1]) << PyLong_SHIFT) | (mjtByte)digits[0])));
                            }
                        }
                        break;
                    case -4:
                        if ((8 * sizeof(mjtByte) - 1 > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(mjtByte, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(mjtByte) - 1 > 4 * PyLong_SHIFT)) {
                                return (mjtByte) (((mjtByte)-1)*(((((((((mjtByte)digits[3]) << PyLong_SHIFT) | (mjtByte)digits[2]) << PyLong_SHIFT) | (mjtByte)digits[1]) << PyLong_SHIFT) | (mjtByte)digits[0])));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(mjtByte) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(mjtByte, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(mjtByte) - 1 > 4 * PyLong_SHIFT)) {
                                return (mjtByte) ((((((((((mjtByte)digits[3]) << PyLong_SHIFT) | (mjtByte)digits[2]) << PyLong_SHIFT) | (mjtByte)digits[1]) << PyLong_SHIFT) | (mjtByte)digits[0])));
                            }
                        }
                        break;
                }
            }
#endif
            if ((sizeof(mjtByte) <= sizeof(long))) {
                __PYX_VERIFY_RETURN_INT_EXC(mjtByte, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(mjtByte) <= sizeof(PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(mjtByte, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
            mjtByte val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
#if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
#endif
            if (likely(v)) {
                int ret = -1;
#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                ret = _PyLong_AsByteArray((PyLongObject *)v,
                                           bytes, sizeof(val),
                                           is_little, !is_unsigned);
#else
                PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
                int bits, remaining_bits, is_negative = 0;
                long idigit;
                int chunk_size = (sizeof(long) < 8) ? 30 : 62;
                if (unlikely(!PyLong_CheckExact(v))) {
                    PyObject *tmp = v;
                    v = PyNumber_Long(v);
                    assert(PyLong_CheckExact(v));
                    Py_DECREF(tmp);
                    if (unlikely(!v)) return (mjtByte) -1;
                }
#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                if (Py_SIZE(x) == 0)
                    return (mjtByte) 0;
                is_negative = Py_SIZE(x) < 0;
#else
                {
                    int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                    if (unlikely(result < 0))
                        return (mjtByte) -1;
                    is_negative = result == 1;
                }
#endif
                if (is_unsigned && unlikely(is_negative)) {
                    goto raise_neg_overflow;
                } else if (is_negative) {
                    stepval = PyNumber_Invert(v);
                    if (unlikely(!stepval))
                        return (mjtByte) -1;
                } else {
                    stepval = __Pyx_NewRef(v);
                }
                val = (mjtByte) 0;
                mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
                shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
                for (bits = 0; bits < (int) sizeof(mjtByte) * 8 - chunk_size; bits += chunk_size) {
                    PyObject *tmp, *digit;
                    digit = PyNumber_And(stepval, mask);
                    if (unlikely(!digit)) goto done;
                    idigit = PyLong_AsLong(digit);
                    Py_DECREF(digit);
                    if (unlikely(idigit < 0)) goto done;
                    tmp = PyNumber_Rshift(stepval, shift);
                    if (unlikely(!tmp)) goto done;
                    Py_DECREF(stepval); stepval = tmp;
                    val |= ((mjtByte) idigit) << bits;
                    #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                    if (Py_SIZE(stepval) == 0)
                        goto unpacking_done;
                    #endif
                }
                idigit = PyLong_AsLong(stepval);
                if (unlikely(idigit < 0)) goto done;
                remaining_bits = ((int) sizeof(mjtByte) * 8) - bits - (is_unsigned ? 0 : 1);
                if (unlikely(idigit >= (1L << remaining_bits)))
                    goto raise_overflow;
                val |= ((mjtByte) idigit) << bits;
            #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
            unpacking_done:
            #endif
                if (!is_unsigned) {
                    if (unlikely(val & (((mjtByte) 1) << (sizeof(mjtByte) * 8 - 1))))
                        goto raise_overflow;
                    if (is_negative)
                        val = ~val;
                }
                ret = 0;
            done:
                Py_XDECREF(shift);
                Py_XDECREF(mask);
                Py_XDECREF(stepval);
#endif
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
            return (mjtByte) -1;
        }
    } else {
        mjtByte val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (mjtByte) -1;
        val = __Pyx_PyInt_As_mjtByte(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to mjtByte");
    return (mjtByte) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to mjtByte");
    return (mjtByte) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(unsigned int) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(unsigned int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (unsigned int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            if (unlikely(__Pyx_PyLong_IsNeg(x))) {
                goto raise_neg_overflow;
            } else if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_DigitCount(x)) {
                    case 2:
                        if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT)) {
                                return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT)) {
                                return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT)) {
                                return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                            }
                        }
                        break;
                }
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (unsigned int) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if ((sizeof(unsigned int) <= sizeof(unsigned long))) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_SignedDigitCount(x)) {
                    case -2:
                        if ((8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) {
                                return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                            }
                        }
                        break;
                    case 2:
                        if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) {
                                return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                            }
                        }
                        break;
                    case -3:
                        if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) {
                                return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) {
                                return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                            }
                        }
                        break;
                    case -4:
                        if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) {
                                return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) {
                                return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                            }
                        }
                        break;
                }
            }
#endif
            if ((sizeof(unsigned int) <= sizeof(long))) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(unsigned int) <= sizeof(PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
            unsigned int val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
#if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
#endif
            if (likely(v)) {
                int ret = -1;
#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                ret = _PyLong_AsByteArray((PyLongObject *)v,
                                           bytes, sizeof(val),
                                           is_little, !is_unsigned);
#else
                PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
                int bits, remaining_bits, is_negative = 0;
                long idigit;
                int chunk_size = (sizeof(long) < 8) ? 30 : 62;
                if (unlikely(!PyLong_CheckExact(v))) {
                    PyObject *tmp = v;
                    v = PyNumber_Long(v);
                    assert(PyLong_CheckExact(v));
                    Py_DECREF(tmp);
                    if (unlikely(!v)) return (unsigned int) -1;
                }
#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                if (Py_SIZE(x) == 0)
                    return (unsigned int) 0;
                is_negative = Py_SIZE(x) < 0;
#else
                {
                    int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                    if (unlikely(result < 0))
                        return (unsigned int) -1;
                    is_negative = result == 1;
                }
#endif
                if (is_unsigned && unlikely(is_negative)) {
                    goto raise_neg_overflow;
                } else if (is_negative) {
                    stepval = PyNumber_Invert(v);
                    if (unlikely(!stepval))
                        return (unsigned int) -1;
                } else {
                    stepval = __Pyx_NewRef(v);
                }
                val = (unsigned int) 0;
                mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
                shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
                for (bits = 0; bits < (int) sizeof(unsigned int) * 8 - chunk_size; bits += chunk_size) {
                    PyObject *tmp, *digit;
                    digit = PyNumber_And(stepval, mask);
                    if (unlikely(!digit)) goto done;
                    idigit = PyLong_AsLong(digit);
                    Py_DECREF(digit);
                    if (unlikely(idigit < 0)) goto done;
                    tmp = PyNumber_Rshift(stepval, shift);
                    if (unlikely(!tmp)) goto done;
                    Py_DECREF(stepval); stepval = tmp;
                    val |= ((unsigned int) idigit) << bits;
                    #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                    if (Py_SIZE(stepval) == 0)
                        goto unpacking_done;
                    #endif
                }
                idigit = PyLong_AsLong(stepval);
                if (unlikely(idigit < 0)) goto done;
                remaining_bits = ((int) sizeof(unsigned int) * 8) - bits - (is_unsigned ? 0 : 1);
                if (unlikely(idigit >= (1L << remaining_bits)))
                    goto raise_overflow;
                val |= ((unsigned int) idigit) << bits;
            #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
            unpacking_done:
            #endif
                if (!is_unsigned) {
                    if (unlikely(val & (((unsigned int) 1) << (sizeof(unsigned int) * 8 - 1))))
                        goto raise_overflow;
                    if (is_negative)
                        val = ~val;
                }
                ret = 0;
            done:
                Py_XDECREF(shift);
                Py_XDECREF(mask);
                Py_XDECREF(stepval);
#endif
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
            return (unsigned int) -1;
        }
    } else {
        unsigned int val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (unsigned int) -1;
        val = __Pyx_PyInt_As_unsigned_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to unsigned int");
    return (unsigned int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to unsigned int");
    return (unsigned int) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const size_t neg_one = (size_t) -1, const_zero = (size_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(size_t) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (size_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            if (unlikely(__Pyx_PyLong_IsNeg(x))) {
                goto raise_neg_overflow;
            } else if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_DigitCount(x)) {
                    case 2:
                        if ((8 * sizeof(size_t) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(size_t) >= 2 * PyLong_SHIFT)) {
                                return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(size_t) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(size_t) >= 3 * PyLong_SHIFT)) {
                                return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(size_t) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(size_t) >= 4 * PyLong_SHIFT)) {
                                return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                            }
                        }
                        break;
                }
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (size_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if ((sizeof(size_t) <= sizeof(unsigned long))) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_SignedDigitCount(x)) {
                    case -2:
                        if ((8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) {
                                return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                            }
                        }
                        break;
                    case 2:
                        if ((8 * sizeof(size_t) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) {
                                return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                            }
                        }
                        break;
                    case -3:
                        if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) {
                                return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(size_t) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) {
                                return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                            }
                        }
                        break;
                    case -4:
                        if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT)) {
                                return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(size_t) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT)) {
                                return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                            }
                        }
                        break;
                }
            }
#endif
            if ((sizeof(size_t) <= sizeof(long))) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(size_t) <= sizeof(PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
            size_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
#if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
#endif
            if (likely(v)) {
                int ret = -1;
#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                ret = _PyLong_AsByteArray((PyLongObject *)v,
                                           bytes, sizeof(val),
                                           is_little, !is_unsigned);
#else
                PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
                int bits, remaining_bits, is_negative = 0;
                long idigit;
                int chunk_size = (sizeof(long) < 8) ? 30 : 62;
                if (unlikely(!PyLong_CheckExact(v))) {
                    PyObject *tmp = v;
                    v = PyNumber_Long(v);
                    assert(PyLong_CheckExact(v));
                    Py_DECREF(tmp);
                    if (unlikely(!v)) return (size_t) -1;
                }
#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                if (Py_SIZE(x) == 0)
                    return (size_t) 0;
                is_negative = Py_SIZE(x) < 0;
#else
                {
                    int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                    if (unlikely(result < 0))
                        return (size_t) -1;
                    is_negative = result == 1;
                }
#endif
                if (is_unsigned && unlikely(is_negative)) {
                    goto raise_neg_overflow;
                } else if (is_negative) {
                    stepval = PyNumber_Invert(v);
                    if (unlikely(!stepval))
                        return (size_t) -1;
                } else {
                    stepval = __Pyx_NewRef(v);
                }
                val = (size_t) 0;
                mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
                shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
                for (bits = 0; bits < (int) sizeof(size_t) * 8 - chunk_size; bits += chunk_size) {
                    PyObject *tmp, *digit;
                    digit = PyNumber_And(stepval, mask);
                    if (unlikely(!digit)) goto done;
                    idigit = PyLong_AsLong(digit);
                    Py_DECREF(digit);
                    if (unlikely(idigit < 0)) goto done;
                    tmp = PyNumber_Rshift(stepval, shift);
                    if (unlikely(!tmp)) goto done;
                    Py_DECREF(stepval); stepval = tmp;
                    val |= ((size_t) idigit) << bits;
                    #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                    if (Py_SIZE(stepval) == 0)
                        goto unpacking_done;
                    #endif
                }
                idigit = PyLong_AsLong(stepval);
                if (unlikely(idigit < 0)) goto done;
                remaining_bits = ((int) sizeof(size_t) * 8) - bits - (is_unsigned ? 0 : 1);
                if (unlikely(idigit >= (1L << remaining_bits)))
                    goto raise_overflow;
                val |= ((size_t) idigit) << bits;
            #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
            unpacking_done:
            #endif
                if (!is_unsigned) {
                    if (unlikely(val & (((size_t) 1) << (sizeof(size_t) * 8 - 1))))
                        goto raise_overflow;
                    if (is_negative)
                        val = ~val;
                }
                ret = 0;
            done:
                Py_XDECREF(shift);
                Py_XDECREF(mask);
                Py_XDECREF(stepval);
#endif
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
            return (size_t) -1;
        }
    } else {
        size_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (size_t) -1;
        val = __Pyx_PyInt_As_size_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to size_t");
    return (size_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to size_t");
    return (size_t) -1;
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE neg_one = (enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE) -1, const_zero = (enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE),
                                     little, !is_unsigned);
#else
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_CASCADE));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID neg_one = (enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID) -1, const_zero = (enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID),
                                     little, !is_unsigned);
#else
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_CONTROLLER_DATA_PID));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
#else
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_mjtJoint(mjtJoint value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const mjtJoint neg_one = (mjtJoint) -1, const_zero = (mjtJoint) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(mjtJoint) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(mjtJoint) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(mjtJoint) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(mjtJoint) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(mjtJoint) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        return _PyLong_FromByteArray(bytes, sizeof(mjtJoint),
                                     little, !is_unsigned);
#else
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(mjtJoint));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From___pyx_anon_enum(int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
#else
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
  static CYTHON_INLINE int __Pyx_PyInt_As___pyx_anon_enum(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(int) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            if (unlikely(__Pyx_PyLong_IsNeg(x))) {
                goto raise_neg_overflow;
            } else if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_DigitCount(x)) {
                    case 2:
                        if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
                                return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
                                return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
                                return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                            }
                        }
                        break;
                }
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (int) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if ((sizeof(int) <= sizeof(unsigned long))) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_SignedDigitCount(x)) {
                    case -2:
                        if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                                return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                            }
                        }
                        break;
                    case 2:
                        if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                                return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                            }
                        }
                        break;
                    case -3:
                        if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                                return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                                return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                            }
                        }
                        break;
                    case -4:
                        if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
                                return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
                                return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                            }
                        }
                        break;
                }
            }
#endif
            if ((sizeof(int) <= sizeof(long))) {
                __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() not available, cannot convert large enums");
        return (int) -1;
    } else {
        int val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (int) -1;
        val = __Pyx_PyInt_As___pyx_anon_enum(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int");
    return (int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int");
    return (int) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(long) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (long) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            if (unlikely(__Pyx_PyLong_IsNeg(x))) {
                goto raise_neg_overflow;
            } else if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_DigitCount(x)) {
                    case 2:
                        if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) {
                                return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) {
                                return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) {
                                return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                            }
                        }
                        break;
                }
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (long) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if ((sizeof(long) <= sizeof(unsigned long))) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_SignedDigitCount(x)) {
                    case -2:
                        if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                                return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                            }
                        }
                        break;
                    case 2:
                        if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                                return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                            }
                        }
                        break;
                    case -3:
                        if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                                return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                                return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                            }
                        }
                        break;
                    case -4:
                        if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
                                return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
                                return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                            }
                        }
                        break;
                }
            }
#endif
            if ((sizeof(long) <= sizeof(long))) {
                __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
            long val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
#if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
#endif
            if (likely(v)) {
                int ret = -1;
#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                ret = _PyLong_AsByteArray((PyLongObject *)v,
                                           bytes, sizeof(val),
                                           is_little, !is_unsigned);
#else
                PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
                int bits, remaining_bits, is_negative = 0;
                long idigit;
                int chunk_size = (sizeof(long) < 8) ? 30 : 62;
                if (unlikely(!PyLong_CheckExact(v))) {
                    PyObject *tmp = v;
                    v = PyNumber_Long(v);
                    assert(PyLong_CheckExact(v));
                    Py_DECREF(tmp);
                    if (unlikely(!v)) return (long) -1;
                }
#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                if (Py_SIZE(x) == 0)
                    return (long) 0;
                is_negative = Py_SIZE(x) < 0;
#else
                {
                    int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                    if (unlikely(result < 0))
                        return (long) -1;
                    is_negative = result == 1;
                }
#endif
                if (is_unsigned && unlikely(is_negative)) {
                    goto raise_neg_overflow;
                } else if (is_negative) {
                    stepval = PyNumber_Invert(v);
                    if (unlikely(!stepval))
                        return (long) -1;
                } else {
                    stepval = __Pyx_NewRef(v);
                }
                val = (long) 0;
                mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
                shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
                for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) {
                    PyObject *tmp, *digit;
                    digit = PyNumber_And(stepval, mask);
                    if (unlikely(!digit)) goto done;
                    idigit = PyLong_AsLong(digit);
                    Py_DECREF(digit);
                    if (unlikely(idigit < 0)) goto done;
                    tmp = PyNumber_Rshift(stepval, shift);
                    if (unlikely(!tmp)) goto done;
                    Py_DECREF(stepval); stepval = tmp;
                    val |= ((long) idigit) << bits;
                    #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                    if (Py_SIZE(stepval) == 0)
                        goto unpacking_done;
                    #endif
                }
                idigit = PyLong_AsLong(stepval);
                if (unlikely(idigit < 0)) goto done;
                remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1);
                if (unlikely(idigit >= (1L << remaining_bits)))
                    goto raise_overflow;
                val |= ((long) idigit) << bits;
            #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
            unpacking_done:
            #endif
                if (!is_unsigned) {
                    if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1))))
                        goto raise_overflow;
                    if (is_negative)
                        val = ~val;
                }
                ret = 0;
            done:
                Py_XDECREF(shift);
                Py_XDECREF(mask);
                Py_XDECREF(stepval);
#endif
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
            return (long) -1;
        }
    } else {
        long val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (long) -1;
        val = __Pyx_PyInt_As_long(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to long");
    return (long) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to long");
    return (long) -1;
}

/* TypeInfoToFormat */
  static struct __pyx_typeinfo_string __Pyx_TypeInfoToFormat(__Pyx_TypeInfo *type) {
    struct __pyx_typeinfo_string result = { {0} };
    char *buf = (char *) result.string;
    size_t size = type->size;
    switch (type->typegroup) {
        case 'H':
            *buf = 'c';
            break;
        case 'I':
        case 'U':
            if (size == 1)
                *buf = (type->is_unsigned) ? 'B' : 'b';
            else if (size == 2)
                *buf = (type->is_unsigned) ? 'H' : 'h';
            else if (size == 4)
                *buf = (type->is_unsigned) ? 'I' : 'i';
            else if (size == 8)
                *buf = (type->is_unsigned) ? 'Q' : 'q';
            break;
        case 'P':
            *buf = 'P';
            break;
        case 'C':
         {
            __Pyx_TypeInfo complex_type = *type;
            complex_type.typegroup = 'R';
            complex_type.size /= 2;
            *buf++ = 'Z';
            *buf = __Pyx_TypeInfoToFormat(&complex_type).string[0];
            break;
         }
        case 'R':
            if (size == 4)
                *buf = 'f';
            else if (size == 8)
                *buf = 'd';
            else
                *buf = 'g';
            break;
    }
    return result;
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_mjtByte(mjtByte value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const mjtByte neg_one = (mjtByte) -1, const_zero = (mjtByte) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(mjtByte) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(mjtByte) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(mjtByte) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(mjtByte) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(mjtByte) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        return _PyLong_FromByteArray(bytes, sizeof(mjtByte),
                                     little, !is_unsigned);
#else
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(mjtByte));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(unsigned int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(unsigned int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(unsigned int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        return _PyLong_FromByteArray(bytes, sizeof(unsigned int),
                                     little, !is_unsigned);
#else
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(unsigned int));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_char(char value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const char neg_one = (char) -1, const_zero = (char) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(char) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(char) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(char) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        return _PyLong_FromByteArray(bytes, sizeof(char),
                                     little, !is_unsigned);
#else
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(char));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
  static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const char neg_one = (char) -1, const_zero = (char) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(char) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(char, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (char) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            if (unlikely(__Pyx_PyLong_IsNeg(x))) {
                goto raise_neg_overflow;
            } else if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(char, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_DigitCount(x)) {
                    case 2:
                        if ((8 * sizeof(char) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(char) >= 2 * PyLong_SHIFT)) {
                                return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(char) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(char) >= 3 * PyLong_SHIFT)) {
                                return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(char) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(char) >= 4 * PyLong_SHIFT)) {
                                return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
                            }
                        }
                        break;
                }
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (char) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if ((sizeof(char) <= sizeof(unsigned long))) {
                __PYX_VERIFY_RETURN_INT_EXC(char, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(char) <= sizeof(unsigned PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(char, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_SignedDigitCount(x)) {
                    case -2:
                        if ((8 * sizeof(char) - 1 > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(char) - 1 > 2 * PyLong_SHIFT)) {
                                return (char) (((char)-1)*(((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
                            }
                        }
                        break;
                    case 2:
                        if ((8 * sizeof(char) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(char) - 1 > 2 * PyLong_SHIFT)) {
                                return (char) ((((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
                            }
                        }
                        break;
                    case -3:
                        if ((8 * sizeof(char) - 1 > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(char) - 1 > 3 * PyLong_SHIFT)) {
                                return (char) (((char)-1)*(((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(char) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(char) - 1 > 3 * PyLong_SHIFT)) {
                                return (char) ((((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
                            }
                        }
                        break;
                    case -4:
                        if ((8 * sizeof(char) - 1 > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(char) - 1 > 4 * PyLong_SHIFT)) {
                                return (char) (((char)-1)*(((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(char) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(char) - 1 > 4 * PyLong_SHIFT)) {
                                return (char) ((((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
                            }
                        }
                        break;
                }
            }
#endif
            if ((sizeof(char) <= sizeof(long))) {
                __PYX_VERIFY_RETURN_INT_EXC(char, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(char) <= sizeof(PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(char, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
            char val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
#if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
#endif
            if (likely(v)) {
                int ret = -1;
#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                ret = _PyLong_AsByteArray((PyLongObject *)v,
                                           bytes, sizeof(val),
                                           is_little, !is_unsigned);
#else
                PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
                int bits, remaining_bits, is_negative = 0;
                long idigit;
                int chunk_size = (sizeof(long) < 8) ? 30 : 62;
                if (unlikely(!PyLong_CheckExact(v))) {
                    PyObject *tmp = v;
                    v = PyNumber_Long(v);
                    assert(PyLong_CheckExact(v));
                    Py_DECREF(tmp);
                    if (unlikely(!v)) return (char) -1;
                }
#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                if (Py_SIZE(x) == 0)
                    return (char) 0;
                is_negative = Py_SIZE(x) < 0;
#else
                {
                    int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                    if (unlikely(result < 0))
                        return (char) -1;
                    is_negative = result == 1;
                }
#endif
                if (is_unsigned && unlikely(is_negative)) {
                    goto raise_neg_overflow;
                } else if (is_negative) {
                    stepval = PyNumber_Invert(v);
                    if (unlikely(!stepval))
                        return (char) -1;
                } else {
                    stepval = __Pyx_NewRef(v);
                }
                val = (char) 0;
                mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
                shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
                for (bits = 0; bits < (int) sizeof(char) * 8 - chunk_size; bits += chunk_size) {
                    PyObject *tmp, *digit;
                    digit = PyNumber_And(stepval, mask);
                    if (unlikely(!digit)) goto done;
                    idigit = PyLong_AsLong(digit);
                    Py_DECREF(digit);
                    if (unlikely(idigit < 0)) goto done;
                    tmp = PyNumber_Rshift(stepval, shift);
                    if (unlikely(!tmp)) goto done;
                    Py_DECREF(stepval); stepval = tmp;
                    val |= ((char) idigit) << bits;
                    #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                    if (Py_SIZE(stepval) == 0)
                        goto unpacking_done;
                    #endif
                }
                idigit = PyLong_AsLong(stepval);
                if (unlikely(idigit < 0)) goto done;
                remaining_bits = ((int) sizeof(char) * 8) - bits - (is_unsigned ? 0 : 1);
                if (unlikely(idigit >= (1L << remaining_bits)))
                    goto raise_overflow;
                val |= ((char) idigit) << bits;
            #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
            unpacking_done:
            #endif
                if (!is_unsigned) {
                    if (unlikely(val & (((char) 1) << (sizeof(char) * 8 - 1))))
                        goto raise_overflow;
                    if (is_negative)
                        val = ~val;
                }
                ret = 0;
            done:
                Py_XDECREF(shift);
                Py_XDECREF(mask);
                Py_XDECREF(stepval);
#endif
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
            return (char) -1;
        }
    } else {
        char val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (char) -1;
        val = __Pyx_PyInt_As_char(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to char");
    return (char) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to char");
    return (char) -1;
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(long) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
#else
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA neg_one = (enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA) -1, const_zero = (enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA),
                                     little, !is_unsigned);
#else
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum __pyx_t_9mujoco_py_4cymj_USER_DEFINED_ACTUATOR_DATA));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* FormatTypeName */
  #if CYTHON_COMPILING_IN_LIMITED_API
static __Pyx_TypeName
__Pyx_PyType_GetName(PyTypeObject* tp)
{
    PyObject *name = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
                                               __pyx_n_s_name_2);
    if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) {
        PyErr_Clear();
        Py_XDECREF(name);
        name = __Pyx_NewRef(__pyx_n_s__778);
    }
    return name;
}
#endif

/* CoroutineBase */
  #include <frameobject.h>
#if PY_VERSION_HEX >= 0x030b00a6
  #ifndef Py_BUILD_CORE
    #define Py_BUILD_CORE 1
  #endif
  #include "internal/pycore_frame.h"
#endif
#define __Pyx_Coroutine_Undelegate(gen) Py_CLEAR((gen)->yieldfrom)
static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *__pyx_tstate, PyObject **pvalue) {
    PyObject *et, *ev, *tb;
    PyObject *value = NULL;
    CYTHON_UNUSED_VAR(__pyx_tstate);
    __Pyx_ErrFetch(&et, &ev, &tb);
    if (!et) {
        Py_XDECREF(tb);
        Py_XDECREF(ev);
        Py_INCREF(Py_None);
        *pvalue = Py_None;
        return 0;
    }
    if (likely(et == PyExc_StopIteration)) {
        if (!ev) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
#if PY_VERSION_HEX >= 0x030300A0
        else if (likely(__Pyx_IS_TYPE(ev, (PyTypeObject*)PyExc_StopIteration))) {
            value = ((PyStopIterationObject *)ev)->value;
            Py_INCREF(value);
            Py_DECREF(ev);
        }
#endif
        else if (unlikely(PyTuple_Check(ev))) {
            if (PyTuple_GET_SIZE(ev) >= 1) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                value = PyTuple_GET_ITEM(ev, 0);
                Py_INCREF(value);
#else
                value = PySequence_ITEM(ev, 0);
#endif
            } else {
                Py_INCREF(Py_None);
                value = Py_None;
            }
            Py_DECREF(ev);
        }
        else if (!__Pyx_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) {
            value = ev;
        }
        if (likely(value)) {
            Py_XDECREF(tb);
            Py_DECREF(et);
            *pvalue = value;
            return 0;
        }
    } else if (!__Pyx_PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    PyErr_NormalizeException(&et, &ev, &tb);
    if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    Py_XDECREF(tb);
    Py_DECREF(et);
#if PY_VERSION_HEX >= 0x030300A0
    value = ((PyStopIterationObject *)ev)->value;
    Py_INCREF(value);
    Py_DECREF(ev);
#else
    {
        PyObject* args = __Pyx_PyObject_GetAttrStr(ev, __pyx_n_s_args);
        Py_DECREF(ev);
        if (likely(args)) {
            value = PySequence_GetItem(args, 0);
            Py_DECREF(args);
        }
        if (unlikely(!value)) {
            __Pyx_ErrRestore(NULL, NULL, NULL);
            Py_INCREF(Py_None);
            value = Py_None;
        }
    }
#endif
    *pvalue = value;
    return 0;
}
static CYTHON_INLINE
void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *exc_state) {
#if PY_VERSION_HEX >= 0x030B00a4
    Py_CLEAR(exc_state->exc_value);
#else
    PyObject *t, *v, *tb;
    t = exc_state->exc_type;
    v = exc_state->exc_value;
    tb = exc_state->exc_traceback;
    exc_state->exc_type = NULL;
    exc_state->exc_value = NULL;
    exc_state->exc_traceback = NULL;
    Py_XDECREF(t);
    Py_XDECREF(v);
    Py_XDECREF(tb);
#endif
}
#define __Pyx_Coroutine_AlreadyRunningError(gen)  (__Pyx__Coroutine_AlreadyRunningError(gen), (PyObject*)NULL)
static void __Pyx__Coroutine_AlreadyRunningError(__pyx_CoroutineObject *gen) {
    const char *msg;
    CYTHON_MAYBE_UNUSED_VAR(gen);
    if ((0)) {
    #ifdef __Pyx_Coroutine_USED
    } else if (__Pyx_Coroutine_Check((PyObject*)gen)) {
        msg = "coroutine already executing";
    #endif
    #ifdef __Pyx_AsyncGen_USED
    } else if (__Pyx_AsyncGen_CheckExact((PyObject*)gen)) {
        msg = "async generator already executing";
    #endif
    } else {
        msg = "generator already executing";
    }
    PyErr_SetString(PyExc_ValueError, msg);
}
#define __Pyx_Coroutine_NotStartedError(gen)  (__Pyx__Coroutine_NotStartedError(gen), (PyObject*)NULL)
static void __Pyx__Coroutine_NotStartedError(PyObject *gen) {
    const char *msg;
    CYTHON_MAYBE_UNUSED_VAR(gen);
    if ((0)) {
    #ifdef __Pyx_Coroutine_USED
    } else if (__Pyx_Coroutine_Check(gen)) {
        msg = "can't send non-None value to a just-started coroutine";
    #endif
    #ifdef __Pyx_AsyncGen_USED
    } else if (__Pyx_AsyncGen_CheckExact(gen)) {
        msg = "can't send non-None value to a just-started async generator";
    #endif
    } else {
        msg = "can't send non-None value to a just-started generator";
    }
    PyErr_SetString(PyExc_TypeError, msg);
}
#define __Pyx_Coroutine_AlreadyTerminatedError(gen, value, closing)  (__Pyx__Coroutine_AlreadyTerminatedError(gen, value, closing), (PyObject*)NULL)
static void __Pyx__Coroutine_AlreadyTerminatedError(PyObject *gen, PyObject *value, int closing) {
    CYTHON_MAYBE_UNUSED_VAR(gen);
    CYTHON_MAYBE_UNUSED_VAR(closing);
    #ifdef __Pyx_Coroutine_USED
    if (!closing && __Pyx_Coroutine_Check(gen)) {
        PyErr_SetString(PyExc_RuntimeError, "cannot reuse already awaited coroutine");
    } else
    #endif
    if (value) {
        #ifdef __Pyx_AsyncGen_USED
        if (__Pyx_AsyncGen_CheckExact(gen))
            PyErr_SetNone(__Pyx_PyExc_StopAsyncIteration);
        else
        #endif
        PyErr_SetNone(PyExc_StopIteration);
    }
}
static
PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, int closing) {
    __Pyx_PyThreadState_declare
    PyThreadState *tstate;
    __Pyx_ExcInfoStruct *exc_state;
    PyObject *retval;
    assert(!self->is_running);
    if (unlikely(self->resume_label == 0)) {
        if (unlikely(value && value != Py_None)) {
            return __Pyx_Coroutine_NotStartedError((PyObject*)self);
        }
    }
    if (unlikely(self->resume_label == -1)) {
        return __Pyx_Coroutine_AlreadyTerminatedError((PyObject*)self, value, closing);
    }
#if CYTHON_FAST_THREAD_STATE
    __Pyx_PyThreadState_assign
    tstate = __pyx_tstate;
#else
    tstate = __Pyx_PyThreadState_Current;
#endif
    exc_state = &self->gi_exc_state;
    if (exc_state->exc_value) {
        #if CYTHON_COMPILING_IN_PYPY
        #else
        PyObject *exc_tb;
        #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_CPYTHON
        exc_tb = PyException_GetTraceback(exc_state->exc_value);
        #elif PY_VERSION_HEX >= 0x030B00a4
        exc_tb = ((PyBaseExceptionObject*) exc_state->exc_value)->traceback;
        #else
        exc_tb = exc_state->exc_traceback;
        #endif
        if (exc_tb) {
            PyTracebackObject *tb = (PyTracebackObject *) exc_tb;
            PyFrameObject *f = tb->tb_frame;
            assert(f->f_back == NULL);
            #if PY_VERSION_HEX >= 0x030B00A1
            f->f_back = PyThreadState_GetFrame(tstate);
            #else
            Py_XINCREF(tstate->frame);
            f->f_back = tstate->frame;
            #endif
            #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_CPYTHON
            Py_DECREF(exc_tb);
            #endif
        }
        #endif
    }
#if CYTHON_USE_EXC_INFO_STACK
    exc_state->previous_item = tstate->exc_info;
    tstate->exc_info = exc_state;
#else
    if (exc_state->exc_type) {
        __Pyx_ExceptionSwap(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    } else {
        __Pyx_Coroutine_ExceptionClear(exc_state);
        __Pyx_ExceptionSave(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    }
#endif
    self->is_running = 1;
    retval = self->body(self, tstate, value);
    self->is_running = 0;
#if CYTHON_USE_EXC_INFO_STACK
    exc_state = &self->gi_exc_state;
    tstate->exc_info = exc_state->previous_item;
    exc_state->previous_item = NULL;
    __Pyx_Coroutine_ResetFrameBackpointer(exc_state);
#endif
    return retval;
}
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state) {
#if CYTHON_COMPILING_IN_PYPY
    CYTHON_UNUSED_VAR(exc_state);
#else
    PyObject *exc_tb;
    #if PY_VERSION_HEX >= 0x030B00a4
    if (!exc_state->exc_value) return;
    exc_tb = PyException_GetTraceback(exc_state->exc_value);
    #else
    exc_tb = exc_state->exc_traceback;
    #endif
    if (likely(exc_tb)) {
        PyTracebackObject *tb = (PyTracebackObject *) exc_tb;
        PyFrameObject *f = tb->tb_frame;
        Py_CLEAR(f->f_back);
        #if PY_VERSION_HEX >= 0x030B00a4
        Py_DECREF(exc_tb);
        #endif
    }
#endif
}
static CYTHON_INLINE
PyObject *__Pyx_Coroutine_MethodReturn(PyObject* gen, PyObject *retval) {
    CYTHON_MAYBE_UNUSED_VAR(gen);
    if (unlikely(!retval)) {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        if (!__Pyx_PyErr_Occurred()) {
            PyObject *exc = PyExc_StopIteration;
            #ifdef __Pyx_AsyncGen_USED
            if (__Pyx_AsyncGen_CheckExact(gen))
                exc = __Pyx_PyExc_StopAsyncIteration;
            #endif
            __Pyx_PyErr_SetNone(exc);
        }
    }
    return retval;
}
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
static CYTHON_INLINE
PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) {
#if PY_VERSION_HEX <= 0x030A00A1
    return _PyGen_Send(gen, arg);
#else
    PyObject *result;
    if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) {
        if (PyAsyncGen_CheckExact(gen)) {
            assert(result == Py_None);
            PyErr_SetNone(PyExc_StopAsyncIteration);
        }
        else if (result == Py_None) {
            PyErr_SetNone(PyExc_StopIteration);
        }
        else {
#if PY_VERSION_HEX < 0x030d00A1
            _PyGen_SetStopIterationValue(result);
#else
            if (!PyTuple_Check(result) && !PyExceptionInstance_Check(result)) {
                PyErr_SetObject(PyExc_StopIteration, result);
            } else {
                PyObject *exc = __Pyx_PyObject_CallOneArg(PyExc_StopIteration, result);
                if (likely(exc != NULL)) {
                    PyErr_SetObject(PyExc_StopIteration, exc);
                    Py_DECREF(exc);
                }
            }
#endif
        }
        Py_DECREF(result);
        result = NULL;
    }
    return result;
#endif
}
#endif
static CYTHON_INLINE
PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) {
    PyObject *ret;
    PyObject *val = NULL;
    __Pyx_Coroutine_Undelegate(gen);
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, &val);
    ret = __Pyx_Coroutine_SendEx(gen, val, 0);
    Py_XDECREF(val);
    return ret;
}
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
    PyObject *retval;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    PyObject *yf = gen->yieldfrom;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        PyObject *ret;
        gen->is_running = 1;
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_Check(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_AsyncGen_USED
        if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
            ret = __Pyx_async_gen_asend_send(yf, value);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
        if (PyGen_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
        if (PyCoro_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        #endif
        {
            if (value == Py_None)
                ret = __Pyx_PyObject_GetIterNextFunc(yf)(yf);
            else
                ret = __Pyx_PyObject_CallMethod1(yf, __pyx_n_s_send, value);
        }
        gen->is_running = 0;
        if (likely(ret)) {
            return ret;
        }
        retval = __Pyx_Coroutine_FinishDelegation(gen);
    } else {
        retval = __Pyx_Coroutine_SendEx(gen, value, 0);
    }
    return __Pyx_Coroutine_MethodReturn(self, retval);
}
static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) {
    PyObject *retval = NULL;
    int err = 0;
    #ifdef __Pyx_Generator_USED
    if (__Pyx_Generator_CheckExact(yf)) {
        retval = __Pyx_Coroutine_Close(yf);
        if (!retval)
            return -1;
    } else
    #endif
    #ifdef __Pyx_Coroutine_USED
    if (__Pyx_Coroutine_Check(yf)) {
        retval = __Pyx_Coroutine_Close(yf);
        if (!retval)
            return -1;
    } else
    if (__Pyx_CoroutineAwait_CheckExact(yf)) {
        retval = __Pyx_CoroutineAwait_Close((__pyx_CoroutineAwaitObject*)yf, NULL);
        if (!retval)
            return -1;
    } else
    #endif
    #ifdef __Pyx_AsyncGen_USED
    if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
        retval = __Pyx_async_gen_asend_close(yf, NULL);
    } else
    if (__pyx_PyAsyncGenAThrow_CheckExact(yf)) {
        retval = __Pyx_async_gen_athrow_close(yf, NULL);
    } else
    #endif
    {
        PyObject *meth;
        gen->is_running = 1;
        meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_n_s_close);
        if (unlikely(!meth)) {
            if (unlikely(PyErr_Occurred())) {
                PyErr_WriteUnraisable(yf);
            }
        } else {
            retval = __Pyx_PyObject_CallNoArg(meth);
            Py_DECREF(meth);
            if (unlikely(!retval))
                err = -1;
        }
        gen->is_running = 0;
    }
    Py_XDECREF(retval);
    return err;
}
static PyObject *__Pyx_Generator_Next(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    PyObject *yf = gen->yieldfrom;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        PyObject *ret;
        gen->is_running = 1;
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Generator_Next(yf);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
        if (PyGen_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_Check(yf)) {
            ret = __Pyx_Coroutine_Send(yf, Py_None);
        } else
        #endif
            ret = __Pyx_PyObject_GetIterNextFunc(yf)(yf);
        gen->is_running = 0;
        if (likely(ret)) {
            return ret;
        }
        return __Pyx_Coroutine_FinishDelegation(gen);
    }
    return __Pyx_Coroutine_SendEx(gen, Py_None, 0);
}
static PyObject *__Pyx_Coroutine_Close_Method(PyObject *self, PyObject *arg) {
    CYTHON_UNUSED_VAR(arg);
    return __Pyx_Coroutine_Close(self);
}
static PyObject *__Pyx_Coroutine_Close(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject *retval, *raised_exception;
    PyObject *yf = gen->yieldfrom;
    int err = 0;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        Py_INCREF(yf);
        err = __Pyx_Coroutine_CloseIter(gen, yf);
        __Pyx_Coroutine_Undelegate(gen);
        Py_DECREF(yf);
    }
    if (err == 0)
        PyErr_SetNone(PyExc_GeneratorExit);
    retval = __Pyx_Coroutine_SendEx(gen, NULL, 1);
    if (unlikely(retval)) {
        const char *msg;
        Py_DECREF(retval);
        if ((0)) {
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_Coroutine_Check(self)) {
            msg = "coroutine ignored GeneratorExit";
        #endif
        #ifdef __Pyx_AsyncGen_USED
        } else if (__Pyx_AsyncGen_CheckExact(self)) {
#if PY_VERSION_HEX < 0x03060000
            msg = "async generator ignored GeneratorExit - might require Python 3.6+ finalisation (PEP 525)";
#else
            msg = "async generator ignored GeneratorExit";
#endif
        #endif
        } else {
            msg = "generator ignored GeneratorExit";
        }
        PyErr_SetString(PyExc_RuntimeError, msg);
        return NULL;
    }
    raised_exception = PyErr_Occurred();
    if (likely(!raised_exception || __Pyx_PyErr_GivenExceptionMatches2(raised_exception, PyExc_GeneratorExit, PyExc_StopIteration))) {
        if (raised_exception) PyErr_Clear();
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
}
static PyObject *__Pyx__Coroutine_Throw(PyObject *self, PyObject *typ, PyObject *val, PyObject *tb,
                                        PyObject *args, int close_on_genexit) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject *yf = gen->yieldfrom;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        PyObject *ret;
        Py_INCREF(yf);
        if (__Pyx_PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit) && close_on_genexit) {
            int err = __Pyx_Coroutine_CloseIter(gen, yf);
            Py_DECREF(yf);
            __Pyx_Coroutine_Undelegate(gen);
            if (err < 0)
                return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0));
            goto throw_here;
        }
        gen->is_running = 1;
        if (0
        #ifdef __Pyx_Generator_USED
            || __Pyx_Generator_CheckExact(yf)
        #endif
        #ifdef __Pyx_Coroutine_USED
            || __Pyx_Coroutine_Check(yf)
        #endif
            ) {
            ret = __Pyx__Coroutine_Throw(yf, typ, val, tb, args, close_on_genexit);
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_CoroutineAwait_CheckExact(yf)) {
            ret = __Pyx__Coroutine_Throw(((__pyx_CoroutineAwaitObject*)yf)->coroutine, typ, val, tb, args, close_on_genexit);
        #endif
        } else {
            PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_n_s_throw);
            if (unlikely(!meth)) {
                Py_DECREF(yf);
                if (unlikely(PyErr_Occurred())) {
                    gen->is_running = 0;
                    return NULL;
                }
                __Pyx_Coroutine_Undelegate(gen);
                gen->is_running = 0;
                goto throw_here;
            }
            if (likely(args)) {
                ret = __Pyx_PyObject_Call(meth, args, NULL);
            } else {
                PyObject *cargs[4] = {NULL, typ, val, tb};
                ret = __Pyx_PyObject_FastCall(meth, cargs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
            }
            Py_DECREF(meth);
        }
        gen->is_running = 0;
        Py_DECREF(yf);
        if (!ret) {
            ret = __Pyx_Coroutine_FinishDelegation(gen);
        }
        return __Pyx_Coroutine_MethodReturn(self, ret);
    }
throw_here:
    __Pyx_Raise(typ, val, tb, NULL);
    return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0));
}
static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) {
    PyObject *typ;
    PyObject *val = NULL;
    PyObject *tb = NULL;
    if (unlikely(!PyArg_UnpackTuple(args, (char *)"throw", 1, 3, &typ, &val, &tb)))
        return NULL;
    return __Pyx__Coroutine_Throw(self, typ, val, tb, args, 1);
}
static CYTHON_INLINE int __Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct *exc_state, visitproc visit, void *arg) {
#if PY_VERSION_HEX >= 0x030B00a4
    Py_VISIT(exc_state->exc_value);
#else
    Py_VISIT(exc_state->exc_type);
    Py_VISIT(exc_state->exc_value);
    Py_VISIT(exc_state->exc_traceback);
#endif
    return 0;
}
static int __Pyx_Coroutine_traverse(__pyx_CoroutineObject *gen, visitproc visit, void *arg) {
    Py_VISIT(gen->closure);
    Py_VISIT(gen->classobj);
    Py_VISIT(gen->yieldfrom);
    return __Pyx_Coroutine_traverse_excstate(&gen->gi_exc_state, visit, arg);
}
static int __Pyx_Coroutine_clear(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    Py_CLEAR(gen->closure);
    Py_CLEAR(gen->classobj);
    Py_CLEAR(gen->yieldfrom);
    __Pyx_Coroutine_ExceptionClear(&gen->gi_exc_state);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        Py_CLEAR(((__pyx_PyAsyncGenObject*)gen)->ag_finalizer);
    }
#endif
    Py_CLEAR(gen->gi_code);
    Py_CLEAR(gen->gi_frame);
    Py_CLEAR(gen->gi_name);
    Py_CLEAR(gen->gi_qualname);
    Py_CLEAR(gen->gi_modulename);
    return 0;
}
static void __Pyx_Coroutine_dealloc(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject_GC_UnTrack(gen);
    if (gen->gi_weakreflist != NULL)
        PyObject_ClearWeakRefs(self);
    if (gen->resume_label >= 0) {
        PyObject_GC_Track(self);
#if PY_VERSION_HEX >= 0x030400a1 && CYTHON_USE_TP_FINALIZE
        if (unlikely(PyObject_CallFinalizerFromDealloc(self)))
#else
        Py_TYPE(gen)->tp_del(self);
        if (unlikely(Py_REFCNT(self) > 0))
#endif
        {
            return;
        }
        PyObject_GC_UnTrack(self);
    }
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        /* We have to handle this case for asynchronous generators
           right here, because this code has to be between UNTRACK
           and GC_Del. */
        Py_CLEAR(((__pyx_PyAsyncGenObject*)self)->ag_finalizer);
    }
#endif
    __Pyx_Coroutine_clear(self);
    __Pyx_PyHeapTypeObject_GC_Del(gen);
}
static void __Pyx_Coroutine_del(PyObject *self) {
    PyObject *error_type, *error_value, *error_traceback;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    __Pyx_PyThreadState_declare
    if (gen->resume_label < 0) {
        return;
    }
#if !CYTHON_USE_TP_FINALIZE
    assert(self->ob_refcnt == 0);
    __Pyx_SET_REFCNT(self, 1);
#endif
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&error_type, &error_value, &error_traceback);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        __pyx_PyAsyncGenObject *agen = (__pyx_PyAsyncGenObject*)self;
        PyObject *finalizer = agen->ag_finalizer;
        if (finalizer && !agen->ag_closed) {
            PyObject *res = __Pyx_PyObject_CallOneArg(finalizer, self);
            if (unlikely(!res)) {
                PyErr_WriteUnraisable(self);
            } else {
                Py_DECREF(res);
            }
            __Pyx_ErrRestore(error_type, error_value, error_traceback);
            return;
        }
    }
#endif
    if (unlikely(gen->resume_label == 0 && !error_value)) {
#ifdef __Pyx_Coroutine_USED
#ifdef __Pyx_Generator_USED
    if (!__Pyx_Generator_CheckExact(self))
#endif
        {
        PyObject_GC_UnTrack(self);
#if PY_MAJOR_VERSION >= 3  || defined(PyErr_WarnFormat)
        if (unlikely(PyErr_WarnFormat(PyExc_RuntimeWarning, 1, "coroutine '%.50S' was never awaited", gen->gi_qualname) < 0))
            PyErr_WriteUnraisable(self);
#else
        {PyObject *msg;
        char *cmsg;
        #if CYTHON_COMPILING_IN_PYPY
        msg = NULL;
        cmsg = (char*) "coroutine was never awaited";
        #else
        char *cname;
        PyObject *qualname;
        qualname = gen->gi_qualname;
        cname = PyString_AS_STRING(qualname);
        msg = PyString_FromFormat("coroutine '%.50s' was never awaited", cname);
        if (unlikely(!msg)) {
            PyErr_Clear();
            cmsg = (char*) "coroutine was never awaited";
        } else {
            cmsg = PyString_AS_STRING(msg);
        }
        #endif
        if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, cmsg, 1) < 0))
            PyErr_WriteUnraisable(self);
        Py_XDECREF(msg);}
#endif
        PyObject_GC_Track(self);
        }
#endif
    } else {
        PyObject *res = __Pyx_Coroutine_Close(self);
        if (unlikely(!res)) {
            if (PyErr_Occurred())
                PyErr_WriteUnraisable(self);
        } else {
            Py_DECREF(res);
        }
    }
    __Pyx_ErrRestore(error_type, error_value, error_traceback);
#if !CYTHON_USE_TP_FINALIZE
    assert(Py_REFCNT(self) > 0);
    if (likely(--self->ob_refcnt == 0)) {
        return;
    }
    {
        Py_ssize_t refcnt = Py_REFCNT(self);
        _Py_NewReference(self);
        __Pyx_SET_REFCNT(self, refcnt);
    }
#if CYTHON_COMPILING_IN_CPYTHON
    assert(PyType_IS_GC(Py_TYPE(self)) &&
           _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED);
    _Py_DEC_REFTOTAL;
#endif
#ifdef COUNT_ALLOCS
    --Py_TYPE(self)->tp_frees;
    --Py_TYPE(self)->tp_allocs;
#endif
#endif
}
static PyObject *
__Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, void *context)
{
    PyObject *name = self->gi_name;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(self->gi_name, value);
    return 0;
}
static PyObject *
__Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, void *context)
{
    PyObject *name = self->gi_qualname;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(self->gi_qualname, value);
    return 0;
}
static PyObject *
__Pyx_Coroutine_get_frame(__pyx_CoroutineObject *self, void *context)
{
    PyObject *frame = self->gi_frame;
    CYTHON_UNUSED_VAR(context);
    if (!frame) {
        if (unlikely(!self->gi_code)) {
            Py_RETURN_NONE;
        }
        frame = (PyObject *) PyFrame_New(
            PyThreadState_Get(),            /*PyThreadState *tstate,*/
            (PyCodeObject*) self->gi_code,  /*PyCodeObject *code,*/
            __pyx_d,                 /*PyObject *globals,*/
            0                               /*PyObject *locals*/
        );
        if (unlikely(!frame))
            return NULL;
        self->gi_frame = frame;
    }
    Py_INCREF(frame);
    return frame;
}
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
            PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type);
    if (unlikely(!gen))
        return NULL;
    return __Pyx__Coroutine_NewInit(gen, body, code, closure, name, qualname, module_name);
}
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    gen->body = body;
    gen->closure = closure;
    Py_XINCREF(closure);
    gen->is_running = 0;
    gen->resume_label = 0;
    gen->classobj = NULL;
    gen->yieldfrom = NULL;
    #if PY_VERSION_HEX >= 0x030B00a4
    gen->gi_exc_state.exc_value = NULL;
    #else
    gen->gi_exc_state.exc_type = NULL;
    gen->gi_exc_state.exc_value = NULL;
    gen->gi_exc_state.exc_traceback = NULL;
    #endif
#if CYTHON_USE_EXC_INFO_STACK
    gen->gi_exc_state.previous_item = NULL;
#endif
    gen->gi_weakreflist = NULL;
    Py_XINCREF(qualname);
    gen->gi_qualname = qualname;
    Py_XINCREF(name);
    gen->gi_name = name;
    Py_XINCREF(module_name);
    gen->gi_modulename = module_name;
    Py_XINCREF(code);
    gen->gi_code = code;
    gen->gi_frame = NULL;
    PyObject_GC_Track(gen);
    return gen;
}

/* PatchModuleWithCoroutine */
  static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code) {
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
    int result;
    PyObject *globals, *result_obj;
    globals = PyDict_New();  if (unlikely(!globals)) goto ignore;
    result = PyDict_SetItemString(globals, "_cython_coroutine_type",
    #ifdef __Pyx_Coroutine_USED
        (PyObject*)__pyx_CoroutineType);
    #else
        Py_None);
    #endif
    if (unlikely(result < 0)) goto ignore;
    result = PyDict_SetItemString(globals, "_cython_generator_type",
    #ifdef __Pyx_Generator_USED
        (PyObject*)__pyx_GeneratorType);
    #else
        Py_None);
    #endif
    if (unlikely(result < 0)) goto ignore;
    if (unlikely(PyDict_SetItemString(globals, "_module", module) < 0)) goto ignore;
    if (unlikely(PyDict_SetItemString(globals, "__builtins__", __pyx_b) < 0)) goto ignore;
    result_obj = PyRun_String(py_code, Py_file_input, globals, globals);
    if (unlikely(!result_obj)) goto ignore;
    Py_DECREF(result_obj);
    Py_DECREF(globals);
    return module;
ignore:
    Py_XDECREF(globals);
    PyErr_WriteUnraisable(module);
    if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type", 1) < 0)) {
        Py_DECREF(module);
        module = NULL;
    }
#else
    py_code++;
#endif
    return module;
}

/* PatchGeneratorABC */
  #ifndef CYTHON_REGISTER_ABCS
#define CYTHON_REGISTER_ABCS 1
#endif
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
static PyObject* __Pyx_patch_abc_module(PyObject *module);
static PyObject* __Pyx_patch_abc_module(PyObject *module) {
    module = __Pyx_Coroutine_patch_module(
        module, ""
"if _cython_generator_type is not None:\n"
"    try: Generator = _module.Generator\n"
"    except AttributeError: pass\n"
"    else: Generator.register(_cython_generator_type)\n"
"if _cython_coroutine_type is not None:\n"
"    try: Coroutine = _module.Coroutine\n"
"    except AttributeError: pass\n"
"    else: Coroutine.register(_cython_coroutine_type)\n"
    );
    return module;
}
#endif
static int __Pyx_patch_abc(void) {
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
    static int abc_patched = 0;
    if (CYTHON_REGISTER_ABCS && !abc_patched) {
        PyObject *module;
        module = PyImport_ImportModule((PY_MAJOR_VERSION >= 3) ? "collections.abc" : "collections");
        if (unlikely(!module)) {
            PyErr_WriteUnraisable(NULL);
            if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning,
                    ((PY_MAJOR_VERSION >= 3) ?
                        "Cython module failed to register with collections.abc module" :
                        "Cython module failed to register with collections module"), 1) < 0)) {
                return -1;
            }
        } else {
            module = __Pyx_patch_abc_module(module);
            abc_patched = 1;
            if (unlikely(!module))
                return -1;
            Py_DECREF(module);
        }
        module = PyImport_ImportModule("backports_abc");
        if (module) {
            module = __Pyx_patch_abc_module(module);
            Py_XDECREF(module);
        }
        if (!module) {
            PyErr_Clear();
        }
    }
#else
    if ((0)) __Pyx_Coroutine_patch_module(NULL, NULL);
#endif
    return 0;
}

/* Generator */
  static PyMethodDef __pyx_Generator_methods[] = {
    {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O,
     (char*) PyDoc_STR("send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration.")},
    {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS,
     (char*) PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")},
    {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS,
     (char*) PyDoc_STR("close() -> raise GeneratorExit inside generator.")},
    {0, 0, 0, 0}
};
static PyMemberDef __pyx_Generator_memberlist[] = {
    {(char *) "gi_running", T_BOOL, offsetof(__pyx_CoroutineObject, is_running), READONLY, NULL},
    {(char*) "gi_yieldfrom", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY,
     (char*) PyDoc_STR("object being iterated by 'yield from', or None")},
    {(char*) "gi_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL},
    {(char *) "__module__", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_modulename), 0, 0},
#if CYTHON_USE_TYPE_SPECS
    {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CoroutineObject, gi_weakreflist), READONLY, 0},
#endif
    {0, 0, 0, 0, 0}
};
static PyGetSetDef __pyx_Generator_getsets[] = {
    {(char *) "__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name,
     (char*) PyDoc_STR("name of the generator"), 0},
    {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
     (char*) PyDoc_STR("qualified name of the generator"), 0},
    {(char *) "gi_frame", (getter)__Pyx_Coroutine_get_frame, NULL,
     (char*) PyDoc_STR("Frame of the generator"), 0},
    {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_GeneratorType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_Coroutine_dealloc},
    {Py_tp_traverse, (void *)__Pyx_Coroutine_traverse},
    {Py_tp_iter, (void *)PyObject_SelfIter},
    {Py_tp_iternext, (void *)__Pyx_Generator_Next},
    {Py_tp_methods, (void *)__pyx_Generator_methods},
    {Py_tp_members, (void *)__pyx_Generator_memberlist},
    {Py_tp_getset, (void *)__pyx_Generator_getsets},
    {Py_tp_getattro, (void *) __Pyx_PyObject_GenericGetAttrNoDict},
#if CYTHON_USE_TP_FINALIZE
    {Py_tp_finalize, (void *)__Pyx_Coroutine_del},
#endif
    {0, 0},
};
static PyType_Spec __pyx_GeneratorType_spec = {
    __PYX_TYPE_MODULE_PREFIX "generator",
    sizeof(__pyx_CoroutineObject),
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE,
    __pyx_GeneratorType_slots
};
#else
static PyTypeObject __pyx_GeneratorType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    __PYX_TYPE_MODULE_PREFIX "generator",
    sizeof(__pyx_CoroutineObject),
    0,
    (destructor) __Pyx_Coroutine_dealloc,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE,
    0,
    (traverseproc) __Pyx_Coroutine_traverse,
    0,
    0,
    offsetof(__pyx_CoroutineObject, gi_weakreflist),
    0,
    (iternextfunc) __Pyx_Generator_Next,
    __pyx_Generator_methods,
    __pyx_Generator_memberlist,
    __pyx_Generator_getsets,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if CYTHON_USE_TP_FINALIZE
    0,
#else
    __Pyx_Coroutine_del,
#endif
    0,
#if CYTHON_USE_TP_FINALIZE
    __Pyx_Coroutine_del,
#elif PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
    0,
#endif
#if __PYX_NEED_TP_PRINT_SLOT
    0,
#endif
#if PY_VERSION_HEX >= 0x030C0000
    0,
#endif
#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
    0,
#endif
};
#endif
static int __pyx_Generator_init(PyObject *module) {
#if CYTHON_USE_TYPE_SPECS
    __pyx_GeneratorType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_GeneratorType_spec, NULL);
#else
    CYTHON_UNUSED_VAR(module);
    __pyx_GeneratorType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
    __pyx_GeneratorType_type.tp_iter = PyObject_SelfIter;
    __pyx_GeneratorType = __Pyx_FetchCommonType(&__pyx_GeneratorType_type);
#endif
    if (unlikely(!__pyx_GeneratorType)) {
        return -1;
    }
    return 0;
}

/* CheckBinaryVersion */
  static unsigned long __Pyx_get_runtime_version(void) {
#if __PYX_LIMITED_VERSION_HEX >= 0x030B00A4
    return Py_Version & ~0xFFUL;
#else
    const char* rt_version = Py_GetVersion();
    unsigned long version = 0;
    unsigned long factor = 0x01000000UL;
    unsigned int digit = 0;
    int i = 0;
    while (factor) {
        while ('0' <= rt_version[i] && rt_version[i] <= '9') {
            digit = digit * 10 + (unsigned int) (rt_version[i] - '0');
            ++i;
        }
        version += factor * digit;
        if (rt_version[i] != '.')
            break;
        digit = 0;
        factor >>= 8;
        ++i;
    }
    return version;
#endif
}
static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) {
    const unsigned long MAJOR_MINOR = 0xFFFF0000UL;
    if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR))
        return 0;
    if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR)))
        return 1;
    {
        char message[200];
        PyOS_snprintf(message, sizeof(message),
                      "compile time Python version %d.%d "
                      "of module '%.100s' "
                      "%s "
                      "runtime version %d.%d",
                       (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF),
                       __Pyx_MODULE_NAME,
                       (allow_newer) ? "was newer than" : "does not match",
                       (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF)
       );
        return PyErr_WarnEx(NULL, message, 1);
    }
}

/* InitStrings */
  #if PY_MAJOR_VERSION >= 3
static int __Pyx_InitString(__Pyx_StringTabEntry t, PyObject **str) {
    if (t.is_unicode | t.is_str) {
        if (t.intern) {
            *str = PyUnicode_InternFromString(t.s);
        } else if (t.encoding) {
            *str = PyUnicode_Decode(t.s, t.n - 1, t.encoding, NULL);
        } else {
            *str = PyUnicode_FromStringAndSize(t.s, t.n - 1);
        }
    } else {
        *str = PyBytes_FromStringAndSize(t.s, t.n - 1);
    }
    if (!*str)
        return -1;
    if (PyObject_Hash(*str) == -1)
        return -1;
    return 0;
}
#endif
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
    while (t->p) {
        #if PY_MAJOR_VERSION >= 3
        __Pyx_InitString(*t, t->p);
        #else
        if (t->is_unicode) {
            *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
        } else if (t->intern) {
            *t->p = PyString_InternFromString(t->s);
        } else {
            *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
        }
        if (!*t->p)
            return -1;
        if (PyObject_Hash(*t->p) == -1)
            return -1;
        #endif
        ++t;
    }
    return 0;
}

#include <string.h>
static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) {
    size_t len = strlen(s);
    if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) {
        PyErr_SetString(PyExc_OverflowError, "byte string is too long");
        return -1;
    }
    return (Py_ssize_t) len;
}
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
    Py_ssize_t len = __Pyx_ssize_strlen(c_str);
    if (unlikely(len < 0)) return NULL;
    return __Pyx_PyUnicode_FromStringAndSize(c_str, len);
}
static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) {
    Py_ssize_t len = __Pyx_ssize_strlen(c_str);
    if (unlikely(len < 0)) return NULL;
    return PyByteArray_FromStringAndSize(c_str, len);
}
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
    Py_ssize_t ignore;
    return __Pyx_PyObject_AsStringAndSize(o, &ignore);
}
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
#if !CYTHON_PEP393_ENABLED
static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    char* defenc_c;
    PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
    if (!defenc) return NULL;
    defenc_c = PyBytes_AS_STRING(defenc);
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    {
        char* end = defenc_c + PyBytes_GET_SIZE(defenc);
        char* c;
        for (c = defenc_c; c < end; c++) {
            if ((unsigned char) (*c) >= 128) {
                PyUnicode_AsASCIIString(o);
                return NULL;
            }
        }
    }
#endif
    *length = PyBytes_GET_SIZE(defenc);
    return defenc_c;
}
#else
static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    if (likely(PyUnicode_IS_ASCII(o))) {
        *length = PyUnicode_GET_LENGTH(o);
        return PyUnicode_AsUTF8(o);
    } else {
        PyUnicode_AsASCIIString(o);
        return NULL;
    }
#else
    return PyUnicode_AsUTF8AndSize(o, length);
#endif
}
#endif
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
    if (
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
            __Pyx_sys_getdefaultencoding_not_ascii &&
#endif
            PyUnicode_Check(o)) {
        return __Pyx_PyUnicode_AsStringAndSize(o, length);
    } else
#endif
#if (!CYTHON_COMPILING_IN_PYPY && !CYTHON_COMPILING_IN_LIMITED_API) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
    if (PyByteArray_Check(o)) {
        *length = PyByteArray_GET_SIZE(o);
        return PyByteArray_AS_STRING(o);
    } else
#endif
    {
        char* result;
        int r = PyBytes_AsStringAndSize(o, &result, length);
        if (unlikely(r < 0)) {
            return NULL;
        } else {
            return result;
        }
    }
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   int is_true = x == Py_True;
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
   else return PyObject_IsTrue(x);
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
    int retval;
    if (unlikely(!x)) return -1;
    retval = __Pyx_PyObject_IsTrue(x);
    Py_DECREF(x);
    return retval;
}
static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
    __Pyx_TypeName result_type_name = __Pyx_PyType_GetName(Py_TYPE(result));
#if PY_MAJOR_VERSION >= 3
    if (PyLong_Check(result)) {
        if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
                "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ").  "
                "The ability to return an instance of a strict subclass of int is deprecated, "
                "and may be removed in a future version of Python.",
                result_type_name)) {
            __Pyx_DECREF_TypeName(result_type_name);
            Py_DECREF(result);
            return NULL;
        }
        __Pyx_DECREF_TypeName(result_type_name);
        return result;
    }
#endif
    PyErr_Format(PyExc_TypeError,
                 "__%.4s__ returned non-%.4s (type " __Pyx_FMT_TYPENAME ")",
                 type_name, type_name, result_type_name);
    __Pyx_DECREF_TypeName(result_type_name);
    Py_DECREF(result);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
#if CYTHON_USE_TYPE_SLOTS
  PyNumberMethods *m;
#endif
  const char *name = NULL;
  PyObject *res = NULL;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_Check(x) || PyLong_Check(x)))
#else
  if (likely(PyLong_Check(x)))
#endif
    return __Pyx_NewRef(x);
#if CYTHON_USE_TYPE_SLOTS
  m = Py_TYPE(x)->tp_as_number;
  #if PY_MAJOR_VERSION < 3
  if (m && m->nb_int) {
    name = "int";
    res = m->nb_int(x);
  }
  else if (m && m->nb_long) {
    name = "long";
    res = m->nb_long(x);
  }
  #else
  if (likely(m && m->nb_int)) {
    name = "int";
    res = m->nb_int(x);
  }
  #endif
#else
  if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
    res = PyNumber_Int(x);
  }
#endif
  if (likely(res)) {
#if PY_MAJOR_VERSION < 3
    if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
#else
    if (unlikely(!PyLong_CheckExact(res))) {
#endif
        return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
    }
  }
  else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_TypeError,
                    "an integer is required");
  }
  return res;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  Py_ssize_t ival;
  PyObject *x;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_CheckExact(b))) {
    if (sizeof(Py_ssize_t) >= sizeof(long))
        return PyInt_AS_LONG(b);
    else
        return PyInt_AsSsize_t(b);
  }
#endif
  if (likely(PyLong_CheckExact(b))) {
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(__Pyx_PyLong_IsCompact(b))) {
        return __Pyx_PyLong_CompactValue(b);
    } else {
      const digit* digits = __Pyx_PyLong_Digits(b);
      const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b);
      switch (size) {
         case 2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
      }
    }
    #endif
    return PyLong_AsSsize_t(b);
  }
  x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyInt_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
  if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
    return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
#if PY_MAJOR_VERSION < 3
  } else if (likely(PyInt_CheckExact(o))) {
    return PyInt_AS_LONG(o);
#endif
  } else {
    Py_ssize_t ival;
    PyObject *x;
    x = PyNumber_Index(o);
    if (!x) return -1;
    ival = PyInt_AsLong(x);
    Py_DECREF(x);
    return ival;
  }
}
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
  return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
    return PyInt_FromSize_t(ival);
}


/* #### Code section: utility_code_pragmas_end ### */
#ifdef _MSC_VER
#pragma warning( pop )
#endif



/* #### Code section: end ### */
#endif /* Py_PYTHON_H */
